Word 2007 - Prüfen, ob aktuelle Seite Querformat ist

01/07/2009 - 08:05 von Claudia | Report spam
Liebe Word-Freaks,

ich habe in Word 2007 ein Ribbon erstellt, auf dem verschiedene
Befehle abgelegt sind. Unter anderem auch ein Befehl zum Einfügen von
Querseiten. Das klappt so ganz gut, nur leider bekomme ich Probleme
mit den Kopfzeilen, wenn der Cursor schon auf einer Querseite steht,
dann stolpert Word über die vielen Abschnittswechsel.

Ich möchte jetzt gerne prüfen, ob die aktuelle Seite als Seitenlayout
Quer- oder Hochformat hat und dann entsprechend meine Schnellbausteine
einfügen.

Mein Code-Schnipsel sieht so aus:
Sub Schnipsel
Dim MyRange As Range
Selection.GoTo What:=wdGoToBookmark, Name:="\page"
Set MyRange = Selection.Range
Set MyRange = MyRange.GoTo(What:=wdGoToBookmark, Name:="\page")
If MyRange.PageSetup.Orientation = 1 Then
MsgBox "Quer"
'Hier kommt mein Schnellbaustein
Else
MsgBox "Làngs"
'Abschnittswechsel einfügen
Selection.InsertBreak Type:=wdSectionBreakNextPage
'Hier kommt mein Schnellbaustein
End If
End Sub

Leider klappt das nicht, das Makro liefert als PageSetup.Orientation
immer 99999999.

Wàre schön, wenn mir jemand helfen könnte - VIELEN DANK!

Grüße
Claudia
 

Lesen sie die antworten

#1 Cindy M.
11/07/2009 - 10:09 | Warnen spam
Hi Claudia,

ich habe in Word 2007 ein Ribbon erstellt, auf dem verschiedene
Befehle abgelegt sind. Unter anderem auch ein Befehl zum Einfügen von
Querseiten. Das klappt so ganz gut, nur leider bekomme ich Probleme
mit den Kopfzeilen, wenn der Cursor schon auf einer Querseite steht,
dann stolpert Word über die vielen Abschnittswechsel.

Ich möchte jetzt gerne prüfen, ob die aktuelle Seite als Seitenlayout
Quer- oder Hochformat hat und dann entsprechend meine Schnellbausteine
einfügen.

Mein Code-Schnipsel sieht so aus:
Sub Schnipsel
Dim MyRange As Range
Selection.GoTo What:=wdGoToBookmark, Name:="\page"
Set MyRange = Selection.Range
Set MyRange = MyRange.GoTo(What:=wdGoToBookmark, Name:="\page")
If MyRange.PageSetup.Orientation = 1 Then
MsgBox "Quer"
'Hier kommt mein Schnellbaustein
Else
MsgBox "Làngs"
'Abschnittswechsel einfügen
Selection.InsertBreak Type:=wdSectionBreakNextPage
'Hier kommt mein Schnellbaustein
End If
End Sub

Leider klappt das nicht, das Makro liefert als PageSetup.Orientation
immer 99999999.



Höchst wahrscheinlich beinhaltet "page" den vorangehenden
Abschnittswechsel, weshalb "undefiniert" zurückgegeben wird. Probiere,
den Bereich auf einen Punkt zu verkleinern. Ich würde zunàchst die
folgenden Zeilen probieren, zuerst eine, dann die andere, um zu sehen,
ob eine davon zum erwünschten Ergebnis führt:

MyRange.Collapse wdCollapseEnd
MyRange.Collapse wdCollapseStart

Hier ein weiterer Vorschlag:

MyRange.Sections(1).PageSetup.Orientation

Cindy Meister
Co-Autor von »Microsoft Word-Programmierung Das Handbuch« (MS Press)
http://www.word.mvps.org
http://homepage.swissonline.ch/cindymeister

Rückfragen & Antworten nur in der Newsgroup, bitte!

Ähnliche fragen