Tipp 0446 Makroaufzeichnung zum Generieren von Code
Autor/Einsender:
Datum:
  Angie
25.03.2005
Entwicklungsumgebung:   Word
Wenn Sie sich nicht sicher sind, welche Visual Basic-Methode oder -Eigenschaft Sie verwenden sollen, können Sie die Makroaufzeichnung aktivieren und die Aktion manuell ausführen. Die Makroaufzeichnung übersetzt Ihre Aktionen in Visual Basic-Code und stellt damit eine Hilfe dar.
Es gibt jedoch einige Einschränkungen beim Aufzeichnen von Makros, Folgendes lässt sich beispielsweise nicht aufzeichnen:
-  Bedingte Verzweigungen
-  Variablenzuweisungen
-  Schleifenstrukturen
-  Benutzerdefinierte Formulare
-  Fehlerbehandlung
-  u.v.m
Optimieren von aufgezeichnetem Code
Nachdem Ihre Aktionen aufgezeichnet wurden, können/sollten Sie den Code Ihren Wünschen entsprechend ändern bzw. anpassen. Makros, die über die Makroaufzeichnung erstellt wurden, sind von der Markierung abhängig, und verwenden die Selection-Eigenschaft zur Rückgabe des Selection-Objekts.
Beispiel - Text zur Kopfzeile hinzufügen
Hier wird davon ausgegangen, dass es sich um ein Dokument handelt, das nur aus einem Abschnitt besteht, und bei Seitenlayout weder 'Erste Seite anders' noch 'Gerade/ungerade anders' ausgewählt ist. Der aufgezeichnete Code, um den ggf. vorhandenen Text in der Kopfzeile zu löschen, neuen Text zuzuweisen und diesen zu formatieren, sieht wie folgt oder ähnlich aus:
 
  If ActiveWindow.View.SplitSpecial <> wdPaneNone Then
    ActiveWindow.Panes(2).Close
  End If
  If ActiveWindow.ActivePane.View.Type = wdNormalView Or _
    ActiveWindow.ActivePane.View.Type = wdOutlineView Then
    ActiveWindow.ActivePane.View.Type = wdPrintView
  End If
  ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageHeader
  Selection.WholeStory
  Selection.Delete Unit:=wdCharacter, Count:=1
  Selection.TypeText Text:="Neuer Text in der Kopfzeile"
  Selection.WholeStory
  Selection.Font.Bold = wdToggle
  Selection.Font.Size = 14
  Selection.Font.Name = "Arial"
  ActiveWindow.ActivePane.View.SeekView = wdSeekMainDocument
 
Die Kopfzeile des Dokuments kann durch ein Range-Objekt dargestellt werden, es ist also nicht notwendig, wie in obigem Beispiel in die Kopfzeilenansicht zu wechseln, um beispielsweise Text zuzuweisen. Nachdem das Range-Objekt definiert wurde, können Methoden und Eigenschaften des Range-Objekts angewandt bzw. zugewiesen werden, um den Inhalt des Bereichs zu modifizieren.
 
  Dim objRange As Range

  Set objRange = ActiveDocument.Sections(1). _
        Headers(wdHeaderFooterPrimary).Range

  objRange.Text = "VB-fun-Demo - Neuer Text in der Kopfzeile"
  objRange.SetRange Start:=objRange.Start, End:=objRange.End
  With objRange
    .Font.Bold = True
    .Font.Size = 14
    .Font.Name = "Arial"
  End With

  Set objRange = Nothing
 
Beispiel - Text am Anfang des Dokuments einfügen
Mit folgendem aufgezeichnetem Makro wird am Anfang des Dokuments das Wort 'Titel' und ein Absatz eingefügt, und entsprechend formatiert:
 
  Selection.HomeKey Unit:=wdStory
  Selection.TypeText Text:="Titel"
  Selection.TypeParagraph
  Selection.MoveUp Unit:=wdLine, Count:=1
  Selection.MoveDown Unit:=wdLine, Count:=1, Extend:=wdExtend
  Selection.Font.Bold = wdToggle
  Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter
  Selection.Font.Size = 18
 
Das selbe Ergebnis kann auch hier ohne Verwendung des Selection-Objekts erreicht werden:
 
With ActiveDocument
  .Range(Start:=0, End:=0).InsertAfter "Titel" & vbCrLf
  With .Paragraphs(1).Range
    .ParagraphFormat.Alignment = wdAlignParagraphCenter
    .Font.Bold = True
    .Font.Size = 18
  End With
End With
 
Hinweis
In der Word-VB-Hilfe wird das Thema Arbeiten mit Range-Objekten sehr ausführlich behandelt.

Windows-Version
95
98
ME
NT
2000
XP
Vista
Win 7
Word-Version
95
97
2000
2002 (XP)
2003
2007
2010


Vorheriger Tipp Zum Seitenanfang Nächster Tipp

Startseite | Projekte | Tutorials | API-Referenz | VB-/VBA-Tipps | Komponenten | Bücherecke | VB/VBA-Forum | VB.Net-Forum | DirectX-Forum | Foren-Archiv | DirectX | VB.Net-Tipps | Chat | Spielplatz | Links | Suchen | Stichwortverzeichnis | Feedback | Impressum

Seite empfehlen Bug-Report
Letzte Aktualisierung: Freitag, 20. Mai 2011