Empfohlener Beitrag

Microsoft Word 2013: 5 aufregende neuigkeiten

N ach einer Reihe von Einblicken, Microsoft letzten Monat endlich Windows 8 und die hausgebrauten Oberfläche Tablette, die von Windows Ph...

Donnerstag, 7. Februar 2013

Page (dh Abschnitt) Grenzen

Sowohl Word-Benutzeroberfläche und die Dokumentation zum Objektmodell finden Sie unter "Seitenränder". In der Tat, es gibt keine solche Sache. Was bedeutet existieren Grenzen für Abschnitte.
Diese Seite beschreibt meine Erfahrung in der Verwaltung so genannte "Seitenränder".

Überblick

Es gibt keine Eigenschaft eines Dokuments, das Sie steuern die Sichtbarkeit der Seite (das heißt, Abschnitt) Grenzen können. Wir steuern Abschnitt Grenzen auf der Ebene der Sektion.
Jeder Abschnitt kann 4 Grenzen: oben, rechts, unten, links. Es gibt keine horizontale, vertikale oder diagonale Grenzen für einen Abschnitt. Der Versuch, horizontal, vertikal oder diagonal Grenzen für einen Abschnitt zuzugreifen wirft Fehler 5941 "Das angeforderte Element der Auflistung ist nicht vorhanden."
Es gibt einen Satz von Grenzen für jeden Abschnitt. Es ist nicht möglich zu haben, sagen, pink Grenzen auf Seite 1 und grünen Grenzen auf Seite 2 eines Abschnitts. Jedoch, dass ein Satz von Grenzen kann auf der ersten Seite nur aus einem Abschnitt oder auf zweiten und nachfolgenden Seiten, oder beiden anzuzeigen.

Auf Dokumentebene: Aktivieren Grenzen mit Sektionen (n) Borders.Enable.

Die Section-Objekt verfügt über eine .Borders.Enable Eigentum. Sie können diese Eigenschaft auf True oder False . Leider aber ist es nicht darauf beschränken, ein Abschnitt. Egal, welche Ihrer Dokuments Sections Sie diese um, Word gelten ändert den Wert der Eigenschaft für alle Abschnitte im Dokument.
Deshalb, wenn wir irgendwelche Abschnitt Grenzen wollen, müssen diese Eigenschaft True . Nachdem Sie festgelegt haben es True , nicht ändern oder Sie müssen eingestellt erneut alle Details der einzelnen Grenzen in einzelnen Abschnitt.
Während wir nicht können die .Enable Eigenschaft für einen einzelnen Abschnitt, können wir es für jeden einzelnen Abschnitt zu lesen. Die möglichen Rückgabewerte für Sections( n ).Enable zu sein scheinen:
  • Wenn alle vier Ränder im Querschnitt haben .LineStyle = wdLineStyleNone , dann Word gibt 0 (das heißt, False )
  • Wenn alle vier Ränder im Abschnitt. LineStyle anderen haben als wdLineStyleNone , dann Word kehrt -1 (das heißt, True )
  • Else kehrt Wort wdUndefined (9999999).
Für was es wert ist, ist das Objektmodell Hilfe nicht erwähnt wdUndefined als mögliche gültigen Wert hier.

Wo wird die Grenze erscheinen: Sektionen (n) Borders.EnableFirstPage und EnableOtherPages..

Drehen grenzt

Wir können steuern, welche Grenzen innerhalb eines Abschnitts durch Verwendung angezeigt .EnableFirstPage und / oder .EnableOtherPages .
Aber wir sind nicht völlig unter Kontrolle. Wenn Sie zum Beispiel,
  ActiveDocument.Sections (1). Borders.Enable = True
dann Word wird dafür sorgen, dass entweder .EnableFirstPage oder .EnableOtherPages ist True . Zum Beispiel:
  • .EnableFirstPage wurde zuvor auf False .
  • Ihr Code setzt .EnableOtherPages = False .
  • Word gesetzt .EnableFirstPage zum True .
Das heißt, wenn ActiveDocument.Sections(1).Borders.Enable True ist, dann Word wird nicht zulassen, sowohl .EnableFirstPage und .EnableOtherPages falsch zu sein. Es ist jedoch, OK, haben sie beide wahr.

Drehen Grenzen off

.EnableFirstPage und .EnableOtherPages sind nützlich für die Ansicht Grenzen, aber nicht sinnvoll, für nicht angezeigt Grenzen.
Deshalb, wenn wir nicht wollen, Grenzen, müssen wir wiederum jeweils off auf der Ebene des Individuums Grenze.
Und wir können, dass in einem von zwei Wegen tun: indem Sie die .Visible Eigentum der Grenze, oder Einstellung der Grenze der .LineStyle zur wdLineStyleNone .
Zum Beispiel, in VBA, können Sie deaktivieren den oberen Rand des Abschnitts 2 mit:
ActiveDocument.Sections(2).Borders(wdBorderTop).Visible = False , oder
ActiveDocument. Sections(2).Borders(wdBorderTop).LineStyle = wdLineStyleNone
Es spielt keine Rolle welche dieser unser Code tut. Word tun, das andere. Das heißt, wenn wir eingestellt .Visible auf False, dann wird Word ändern .LineStyle unübertroffen. Und umgekehrt.

Zusammenfassung von dem, was Grenzen Sie sehen

Diese Tabelle zeigt, welchen Abschnitt Grenzen Sie für verschiedene Einstellungen siehe Sections( n ).Enable , .EnablePage1 , .EnableOtherPages und individuellen Grenzen " .LineStyle .
. Aktivieren . EnablePage1 . EnableOtherPages . LineStyle Siehe p1? Siehe auf anderen Seiten?
Falsch Wahr oder Falsch Wahr oder Falsch Jeder Nicht Nicht
Wahr Wahr oder Falsch Wahr oder Falsch wdLineStyleNone Nicht Nicht
Wahr Wahr Falsch Alles außer wdLineStyleNone Ja Nicht
Wahr Falsch Wahr Alles außer wdLineStyleNone Nicht Ja
Wahr Wahr Wahr Alles außer wdLineStyleNone Ja Ja

Steuerung einzelner Grenzen

Sie können die Linienart, Linienbreite und Farbe für jede Grenze individuell einstellen, wie dies unter Border Grundlagen für Entwickler .
Es gibt jedoch einige Kuriositäten.
Gemäß der Dokumentation, eine Grenze .LineWidth kann entweder wdUndefined (9999999) oder einer der wdLineWidth Konstanten. Aber:
  • In Word 2003, einen Abschnitt der Standard Grenze .LineWidth entspricht -2098703536. Diese Zahl ist nicht gültig, nach der Dokumentation. Ich weiß nicht, was es bedeutet.
  • In Word 2007, die Standardeinstellung .LineWidth entspricht 7405540. Diese Zahl ist nicht gültig, nach der Dokumentation. Ich weiß nicht, was es bedeutet.
  • In Word 2010 ist der Standardwert 2 (das ist wdLineWidth025pt ).
(Ich weiß nicht ausdenken, wissen Sie!)
In allen Versionen von Word, dass ich eingecheckt haben, ist die Standardeinstellung für den Abschnitt Grenzen, .Enable = False . Also in gewisser Weise spielt es keine Rolle, was die Linienbreite ist, denn wenn .Enable = False , können wir sehen keine Grenzen.

Schritt für Schritt Anleitung zur Verwaltung Abschnitt grenzt im Code

Wenn ich irgendwelche Abschnitt grenzt im Code verwalten möchten, ist dies, was ich finde was ich tun müssen:
  1. Schalten Sie alle Grenzen in das Dokument, indem Sie Section(1).Borders.Enable = True . Dies wird an den Grenzen für alle Bereiche ein. Es ist nicht beschränken sich auf Abschnitt (1).
  2. Zyklus durch jeden Abschnitt, und:
    1. Stellen Sie eine oder beide .EnableFirstPage oder .EnableOtherPages auf True, aber zu keinem Zeitpunkt erlauben sowohl falsch zu sein.
    2. Zyklus durch jedes der vier Ränder im Abschnitt und:
      1. Setzen jedes einzelnen Rahmenlinie .LineStyle entweder wdLineStyleNone oder der Linienstil Ich möchte (zB ActiveDocument.Sections(2).Borders(wdBorderTop).LineStyle = wdLineStyleDot )
      2. Wenn (und nur wenn!) .LineStyle nicht wdLineStyleNone , dann die .LineWidth und .Color der Grenze. Beachten Sie, dass nicht jeder. LineWidth für jeden. LineStyle ist .
      3. Set des Abschnitts .Borders.DistanceFrom Immobilie zu ermitteln, ob Abstände von der Grenze werden aus dem Text oder in der Kante des Papiers gemessen.
      4. Set des Abschnitts .Borders.DistanceFromTop , .DistanceFromLeft etc Eigenschaften.
      5. Legen Sie die anderen Eigenschaften, die nur für Abschnitt Grenzen (sind .AlwaysInFront , .JoinBorders , .SurroundFooter und .SurroundHeader ).
      6. Kümmern Sie sich nicht setzen die .Shadow . Es funktioniert nicht, aber es hat nicht zu einem Fehler, entweder.

Keine Kommentare:

Kommentar veröffentlichen