Monat: Januar 2000

  • WordBASIC- und VBA-Befehle: Automatische Korrektur und Textbearbeitung

    In diesem Verzeichnis finden Sie alle WordBasic-Anweisungen und -Funktionen, und zwar nach Kategorien angeordnet. Zusätzlich sind die entsprechenden VBA-Befehle neben dem WordBasic-Befehl angegeben. Das Verzeichnis stellt in erster Linie ein Nachschlagewerk dar, daß Ihnen den Umstieg von WordBasic nach Visual Basic for Applications erleichtern soll. Sie sollten für neue Programme nur die VBA-Befehle verwenden, da diese in Zukunft nur noch unterstützt werden. Viele WordBasic-Befehle wurden zu einem VBA-Befehl zusammengefaßt, deshalb werden Sie häufig für unterschiedliche WordBasic-Befehle den gleichen VBA-Befehl finden

    Automatische Korrektur und Textbearbeitung

    WordBasic-BefehlVBA-BefehlFunktion
    AbrufenAutoKorrektur$()AutoCorrect.Entries(name).ValueLiefert den Ersetzungstext von Auto-Korrektur.
    AbrufenAutoKorrekturAusnahmen$()AutoCorrect.FirstLetterExceptions(num).Name

    Oder

    AutoCorrect.TwoInitialCapsExceptions(num).Name

    Gibt den Text der Ausnahme, der unter AUTO-KORREKTUR- AUSNAHMEN aufgelistet ist, an.
    AbrufenAutoText$()ActiveDocument.AttachedTemplate.AutoTextEntries(name).ValueDer angegebene Auto-Text-Eintrag wird als unformatierter Text zurückgegeben.
    AutoTextSelection.Range.InsertAutoTextBestimmt den Autotext oder fügt ihn in den Text ein.
    AutoTextBestimmenTemplates(name).AutoTextEntries.AddNeuen Autotext-Eintrag anlegen.
    AutoTextName$()ActiveDocument.AttachedTemplate.AutoTextEntries(num).NameNamen des Autotext-Eintrags ermitteln.
    BearbeitenAutoTextActiveDocument.AttachedTemplate.AutoTextEntries.Add

    ActiveDocument.AttachedTemplate.AutoTextEntries(name).Insert Where:=range, RichText:=True

    Templates(name).AutoTextEntries(name).Delete

    Anlegen, Löschen oder Einfügen eines Autotext-Eintrags.
    EinfügenAutoTextSelection.Range.InsertAutoTextInhalt eines Autotextes in das aktuelle Dokument einfügen.
    ExtrasAutoKorrekturAnfangsbuchstabenGroßAutoCorrect.CorrectInitialCaps = TrueAktiviert die Autokorrektur-Option zur Vermeidung von mehreren Großbuchstaben am Wortanfang.
    ExtrasAutoKorrekturAnfangsbuchstabenGroß()AutoCorrect.CorrectInitialCapsErmittelt den Status der Autokorrektur-Option zur Vermeidung von mehreren Großbuchstaben am Wortanfang.
    ExtrasAutoKorrekturAnfZeichenTypogrOptions.AutoFormatAsYouTypeReplaceQuotes = TrueAktiviert die Autokorrektur-Option zur Umwandlung von Anführungszeichen in typografische Anführungszeichen.
    ExtrasAutoKorrekturAnfZeichenTypogr()Options.AutoFormatAsYouTypeReplaceQuotesErmittelt den Status der Autokorrektur-Option zur Umwandlung von Anführungszeichen in typografische Anführungszeichen.
    ExtrasAutoKorrekturWith AutoCorrect

    .CorrectInitialCaps = True

    .CorrectSentenceCaps = True

    .CorrectDays = True

    .CorrectCapsLock = True

    .ReplaceText = True

    End with

    Optionen für die Auto-Korrektur festlegen.
    ExtrasAutoKorrekturAusnahmennicht verfügbarErweitert die Liste der Auto-Korrektur-Ausnahmen.
    ExtrasAutoKorrekturFeststelltasteAusAutoCorrect.CorrectCapsLock = TrueAktiviert oder deaktiviert die Feststelltaste.
    ExtrasAutoKorrekturFeststelltasteAus()AutoCorrect.CorrectCapsLockErmittelt den Status der Feststelltaste.
    ExtrasAutoKorrekturSatzanfangGroßAutoCorrect.CorrectSentenceCaps = TrueAktiviert oder deaktiviert die Autokorrektur-Option zur Umwandlung des ersten Buchstabens in einen Großbuchstaben am Satzanfang.
    ExtrasAutoKorrekturSatzanfangGroß()AutoCorrect.CorrectSentenceCapsErmittelt den Status der Autokorrektur-Option zur Umwandlung des ersten Buchstabens in einen Großbuchstaben am Satzanfang.
    ExtrasAutoKorrekturTextErsetzenAutoCorrect.ReplaceText = TrueAktiviert oder Deaktiviert die Autokorrektur-Option zur automatischen Umwandlung von Ersetzungstexten.
    ExtrasAutoKorrekturTextErsetzen()AutoCorrect.ReplaceTextErmittelt den Status der Autokorrektur-Option zur automatischen Umwandlung von Ersetzungstexten.
    IstAutoKorrekturAusnahme()For Each xItem In AutoCorrect.FirstLetterExceptions

    If xItem.Name = „jun.“ Then isFound = True

    Next xItem

    For Each aItem In AutoCorrect.TwoInitialCapsExceptions

    If aItem.Name = “DIese“ Then aExists = True

    Next aItem

    Ermittelt, ob die angegebene Ausnahme in der Liste der Ausnahmen aufgeführt ist.
    OrganisierenApplication.OrganizerCopy

    Application.OrganizerDelete

    Application.OrganizerRename

    Hilft bei der Organisation von Makros in einer Dokumentvorlage.
    ZählenAutoKorrekturAusnahmen()AutoCorrect.FirstLetterExceptions.CountLiefert die Anzahl, der inAUTO-KORREKTUR-AUSNAHMENaufgelisteten Ausnahmen.
    ZählenAutoTextEinträge()ActiveDocument.AttachedTemplate.AutoTextEntries.CountAnzahl der Autotext-Einträge.

  • WordBASIC- und VBA-Befehle: Aufzählungen und Numerierung

    In diesem Verzeichnis finden Sie alle WordBasic-Anweisungen und -Funktionen, und zwar nach Kategorien angeordnet. Zusätzlich sind die entsprechenden VBA-Befehle neben dem WordBasic-Befehl angegeben. Das Verzeichnis stellt in erster Linie ein Nachschlagewerk dar, daß Ihnen den Umstieg von WordBasic nach Visual Basic for Applications erleichtern soll. Sie sollten für neue Programme nur die VBA-Befehle verwenden, da diese in Zukunft nur noch unterstützt werden. Viele WordBasic-Befehle wurden zu einem VBA-Befehl zusammengefaßt, deshalb werden Sie häufig für unterschiedliche WordBasic-Befehle den gleichen VBA-Befehl finden.

    Aufzählungen und Numerierung

    WordBasic-BefehlVBA-BefehlFunktion
    AufzählungNumerierungEntfernenSelection.Range.ListFormat.RemoveNumbersEntfernen der Aufzählungs- und Numerierungszeichen.
    ExtrasAufzählungStandardSelection.Range.ListFormat.ApplyBulletDefaultDie markierten Absätze werden mit Aufzählungszeichen und Tab-Stops, sowie mit einem hängenden Einzug versehen.
    ExtrasNumerierungAufzählungenWith ListGalleries(wdNumberGallery).ListTemplates(1). ListLevels(1)     .NumberFormat = „%1.“     .TrailingCharacter = WdTrailingCharacter .NumberStyle =WdListNumberStyle .Alignment = WdListLevelAlignment .TextPosition = InchesToPoints(num)     .TabPosition = InchesToPoints(num)     .ResetOnHigher = True     .StartAt =num .Font.Size = num End With

    Selection.Range.ListFormat.ApplyListTemplate ListTemplate:=ListGalleries(wdNumberGallery). ListTemplates(1)

    Die Formatierung von Absätzen wird festgelegt.
    ExtrasNumerierungStandardSelection.Range.ListFormat.ApplyNumberDefaultDie markierten Absätze werden nach dem eingestellten Standard formatiert.
    FormatAufzählungWith ListGalleries(wdBulletGallery).ListTemplates(1).ListLevels(1)    .NumberFormat = ChrW(num)     .NumberStyle = wdListNumberStyleBullet     .NumberPosition = num .Alignment = WdListLevelAlignment .TextPosition = num .TabPosition = num With .Font         .Size = num .Name = text .ColorIndex = WdColorIndex End With End WithDer markierte Abschnitt wird mit Aufzählungszeichen versehen.
    FormatAufzählungStandardSelection.Range.ListFormat.ApplyBulletDefault

    Selection.Range.ListFormat.RemoveNumbers

    Hinzufügen oder Entfernen von Aufzählungszeichen eines markierten Absatzes.
    FormatAufzählungStandard()Selection.Range.ListFormat.ApplyBulletDefault

    Selection.Range.ListFormat.RemoveNumbers

    Stellt fest, ob die markierten Absätze Aufzählungszeichen enthalten oder ob sie nummeriet sind.
    FormatAufzählungUndNumerierungSelection.Range.ListFormat.ApplyListTemplate ListTemplate:=ListGalleries(WdListGalleryType). ListTemplates(num)

    Selection.Range.ListFormat.RemoveNumbers

    Absätze werden mit Aufzählungs- oder Numerierungszeichen versehen oder diese werden entfernt.
    FormatFVDefNumWith ActiveDocument.Styles(name). ListGalleries(WdListGalleryType).ListTemplates(num). ListLevels(num)

    .NumberFormat = „%1)“

    .TrailingCharacter = wdTrailingTab

    .NumberStyle = wdListNumberStyleArabic

    End With

    Festlegen der Zahlenformate für eine Dokumentvorlage.
    FormatGegliederteListeSet atemp = ListGalleries(wdOutlineNumberGallery).ListTemplates(num)

    atemp.ListLevels(1).NumberStyle = wdListNumberStyleLowercaseLetter

    Selection.Range.ListFormat.ApplyListTemplate ListTemplate:=atemp

    Ähnlich einer Gliedrung werden die markierten Absätze in Ebenen numeriert.
    FormatNumerierungSet atemp = ListGalleries(wdNumberGallery).ListTemplates(num)

    With atemp.ListLevels(1)

    .NumberFormat = „%1.“

    .TrailingCharacter = wdTrailingTab

    .NumberStyle = wdListNumberStyleArabic

    End With

    Selection.Range.ListFormat.ApplyListTemplate ListTemplate:=atemp

    Die markierten Absätze werden numeriert.
    FormatNummerStandardSelection.Range.ListFormat.ApplyNumberDefault

    Selection.Range.ListFormat.RemoveNumbers

    Die markierten Absätze werden numeriert oder die Numerierung wird entfernt.
    FormatNummerStandard()Selection.Range.ListFormat.ApplyNumberDefault

    Selection.Range.ListFormat.RemoveNumbers

    Ermittelt den Status der Numerierung.
    HöherstufenListeSelection.Range.ListFormat.ListIndentHöherstufen der marikeirten Absätze in einer Liste.
    NumerierungÜberspringenSelection.Range.ListFormat.RemoveNumbersAusschließen der markierten Absätze von Aufzählungs- und Numerierungslisten.
    NumerierungÜberspringen()Selection.Range.ListFormat.RemoveNumbersFeststellen, ob Aufzählungs- oder Numerierungszeichen der markierten Absätze in der Liste erscheinen.
    TieferstufenListeSelection.Range.ListFormat.ListOutdentTieferstufen der marikeirten Absätze in einer Liste.

  • WordBASIC- und VBA-Befehle: Ansichten für Dokumente

    In diesem Verzeichnis finden Sie alle WordBasic-Anweisungen und -Funktionen, und zwar nach Kategorien angeordnet. Zusätzlich sind die entsprechenden VBA-Befehle neben dem WordBasic-Befehl angegeben. Das Verzeichnis stellt in erster Linie ein Nachschlagewerk dar, daß Ihnen den Umstieg von WordBasic nach Visual Basic for Applications erleichtern soll. Sie sollten für neue Programme nur die VBA-Befehle verwenden, da diese in Zukunft nur noch unterstützt werden. Viele WordBasic-Befehle wurden zu einem VBA-Befehl zusammengefaßt, deshalb werden Sie häufig für unterschiedliche WordBasic-Befehle den gleichen VBA-Befehl finden.

    Ansichten für Dokumente

    WordBasic-BefehlVBA-BefehlFunktion
    AlleAnzeigenWindows(1).View.ShowAllDie Anzeige von Sonderzeichen An- oder Ausschalten.
    AlleAnzeigen()ActiveWindow.View.ShowAllLiefert den Anzeigemodus für die Sonderzeichen.
    AnsichtAnmerkungenActiveWindow.View.SplitSpecial = wdPaneCommentsDen Anmerkungsausschnitt schließen oder öffnen.
    AnsichtAnmerkungen()nicht verfügbarLiefert den Status des Anmerkungsausschnitts.
    AnsichtEndnotenBereichActiveWindow.View.SplitSpecial = wdPaneEndnotesDen Endnotenausschnitt schließen oder öffnen.
    AnsichtEndnotenBereich()ActiveWindow.View.SplitSpecialLiefert den Status des Endnotenausschnitts.
    AnsichtEndnotenFortset-zungsHinweisActiveWindow.View.SplitSpecial = wdPaneEndnoteContinuationNoticeDer Auschnitt mit dem Endnoten-Fortsetzungshinweis wird geöffnet.
    AnsichtEndnotenFortset-zungsTrennlinieActiveWindow.View.SplitSpecial = wdPaneEndnoteContinuationSeparatorDer Auschnitt mit dem Endnoten-Fortsetzungstrennline wird geöffnet.
    AnsichtEndnotenTrennlinieActiveWindow.View.SplitSpecial = wdPaneEndnoteSeparatorDer Auschnitt mit der Endnoten-Trennlinie wird geöffnet.
    AnsichtFeldfunktionenActiveWindow.View.ShowFieldCodes = TrueDie Ansicht der Feldfunktionen wird aktiviert oder deaktiviert.
    AnsichtFeldfunktionen()nicht verfügbarLiefert den Status der Feldfunktionen-Ansicht.
    AnsichtFormatierungs-leisteCommandBars(„Formatting“).Visible = TrueDie Formatierungssymbol-leiste anzeigen oder ausblenden.
    AnsichtFormatierungs-leiste()CommandBars(„Formatting“).VisibleLiefert den Status der Formatierungssymbol-leiste.
    AnsichtFußnotenIf ActiveDocument.Footnotes.Count >= 1 Then    ActiveWindow.View.SplitSpecial = wdPaneFootnotes ElseIf ActiveDocument.Endnotes.Count >= 1 Then    ActiveWindow.View.SplitSpecial = wdPaneEndnotes End IfDie Fußnotenansicht wird ein- oder ausgeschaltet.
    AnsichtFußnoten()Selection.Information(wdInFootnoteEndnotePane)Liefert den Status der Fußnotenansicht.
    AnsichtFußnotenBereichSelection.Information(wdInFootnoteEndnotePane)Einfügemarke in den Fußnotenbereich bzw. zurück in den Dokumentenbereich bewegen.
    AnsichtFußnotenBereich()ActiveWindow.View.SplitSpecialLiefert den Status über die Fußnotenbereichsansicht.
    AnsichtFußnotenFortsetzungsHinweisActiveWindow.View.SplitSpecial = wdPaneEndnoteContinuationNoticeDer Auschnitt mit dem Fußnotenfortsetzungshinweis wird geöffnet.
    AnsichtFußnotenFortsetzungsTrennlinieActiveWindow.View.SplitSpecial = wdPaneEndnoteContinuationSeparatorDer Auschnitt mit der Fußnotenfortsetzungstrennlinie wird geöffnet.
    AnsichtFußnotenTrennlinieActiveWindow.View.SplitSpecial = wdPaneEndnoteSeparatorDer Auschnitt mit der Fußnotentrennlinie wird geöffnet.
    AnsichtFußzeileActiveWindow.View.SplitSpecial = wdPaneCurrentPageFooterDer Fußzeilenbereich mit Fußzeilensymbolleiste wird angezeigt.
    AnsichtFußzeile()Selection.StoryTypeLiefert den Status der Fußzeilenansicht.
    AnsichtGliederungWindows(1).View.Type =wdOutlineViewDie Gliederungsansicht wird eingeschaltet.
    AnsichtGliederung()Windows(1).View.TypeLiefert den Status der Gliederungsansicht.
    AnsichtKonzeptActiveWindow.View.Draft = TrueDie Konzeptansicht wird ein- oder ausgeschaltet.
    AnsichtKonzept()ActiveWindow.View.DraftLiefert den Status der Konzeptansicht.
    AnsichtKopfFußzeileSchließenActiveWindow.View.SeekView = wdSeekMainDocumentDie Kopf- und Fußzeilenansicht wird geschlossen.
    AnsichtKopfzeileActiveWindow.View.SplitSpecial = wdPaneCurrentPageHeaderDie Kopf- und Fußzeilenansciht aktivieren.
    AnsichtKopfzeile()Selection.StoryTypeDen Status der Kopf- und Fußzeilenansicht feststellen.
    AnsichtLayoutWindows(name).View.Type =wdPageViewDie Layoutansicht einschalten.
    AnsichtLayout()Windows(name).View.TypeDen Status der Layoutansicht feststellen.
    AnsichtLinealActiveWindow.DisplayRulers = TrueDas Lineal einblenden.
    AnsichtLineal()ActiveWindow.DisplayRulersDen Status der Linealanzeige ermitteln.
    AnsichtMenüs()nicht verfügbarFeststellen, ob vollständige Menüleiste.
    AnsichtNormalActiveWindow.View.Type =wdNormalViewSchaltet die Normalansicht ein.
    AnsichtNormal()ActiveWindow.View.TypeLiefert den Status der Normalansicht.
    AnsichtRahmenSymbolleisteCommandBars(„Borders“).Visible = TrueRahmen-Symbolleiste ein- oder ausblenden.
    AnsichtStatusleisteApplication.DisplayStatusBar = TrueStatusleiste ein- oder ausblenden.
    AnsichtStatusleiste()Application.DisplayStatusBarLiefert den Status der Statusleiste.
    AnsichtSymbolleistenWith CommandBars     .LargeButtons = True    .DisplayToolTips = True    .DisplayKeysInToolTips = True End With CommandBars(name).Reset CommandBars(name).Delete CommandBars(name).Visible = TrueBefehl zur Verwaltung von Symbolleisten.
    AnsichtZeichnungsSymbolleisteCommandBars(„Drawing“).Visible = TrueZeichnungs-Symbolleiste ein- oder ausblenden.
    AnsichtZentraldokumentActiveWindow.View.Type = wdMasterViewZentraldokumentansicht einschalten.
    AnsichtZentraldokument()ActiveWindow.View.TypeLiefert den Status der Zentraldokumentansicht.
    AnsichtZentraldokumentUmschaltenIf ActiveWindow.View.Type = wdOutlineView Then     ActiveWindow.View.Type = wdMasterView ElseIf ActiveWindow.View.Type = wdMasterView Then     ActiveWindow.View.Type = wdOutlineView End IfZwischen Gliederungs und Zentraldokumentansicht umschalten.
    AnsichtZoomActiveWindow.View.Zoom.Percentage = numZoomfaktor für das aktuelle Dokument festlegen.
    AnsichtZoom100Windows(1).View.Zoom.Percentage = 100Zoomfaktor auf 100% festlegen.
    AnsichtZoom200Windows(1).View.Zoom.Percentage = 200Zoomfaktor auf 200% festlegen.
    AnsichtZoom75Windows(1).View.Zoom.Percentage = 75Zoomfaktor auf 75% festlegen.
    AnsichtZoomGanzeSeiteActiveWindow.View.Zoom.PageFit = wdPageFitFullPageStellt die gesamte Seite auf dem Bildschirm dar.
    AnsichtZoomSeitenbreiteWindows(name).View.Zoom.PageFit = wdPageFitBestFitStellt das Dokument so ein, daß die gesamte Breite auf dem Bildschirm sichtbar ist.
    DateiSeitenansichtPrintPreview = TrueSchaltet zwischen Seitenansicht und vorhergehender Dokumentansicht um.
    DateiSeitenansicht()PrintPreviewLiefert den Status der Seitenansicht.
    DateiSeitenansichtGanzerBildschirmPrintPreview = True ActiveWindow.View.FullScreen = TrueStellt das Dokument auf dem gesamten Bildschirm dar.
    DateiSeitenansichtSeitenWith ActiveWindow.View.Zoom    .PageColumns = 2     .PageRows = 1 End WithAnzahl der darzustelleneden Seiten in der Layoutansicht festlegen.
    DateiSeitenansichtSeiten()With ActiveWindow.View.Zoom     x = .PageColumns     y = .PageRows End WithAnzahl der Seiten in der Seitenansicht.
    EinblendenNächsteKopfFußzeileActiveWindow.View.NextHeaderFooterEinfügemarke in die nächste Kopf- bzw. Fußzeile bewegen.
    EinblendenVorherigeKopfFußzeileActiveWindow.View.PreviousHeaderFooterEinfügemarke in die vorherige Kopf- bzw. Fußzeile bewegen.
    ExtrasOptionenAnsichtWith ActiveWindow.View     .Draft = True    .WrapToWindow = True    .ShowPicturePlaceHolders = True    .ShowFieldCodes = True     .ShowBookmarks = True     .FieldShading = WdFieldShading .Parent.DisplayHorizontalScrollBar = True    .Parent.DisplayVerticalScrollBar = True    .Parent.StyleAreaWidth = num .ShowTabs = True     .ShowSpaces = True    .ShowParagraphs = True     .ShowHyphens = True     .ShowHiddenText = True     .ShowAll = True     .ShowDrawings = True    .ShowObjectAnchors = True    .ShowTextBoundaries = True    .Parent.DisplayVerticalRuler = True    .ShowHighlight = True End WithOptionen für die Ansicht einstellen.
    GanzerBildschirmUmschaltenActiveWindow.View.FullScreen = NotVollbildmodus ein- oder ausschalten.
    HochFormatUmschaltenActiveDocument.PageSetup.TogglePortraitUmschalten zwischen Hoch- und Querformat.
    LupeActiveWindow.View.Magnifier = TrueMauszeiger in der Seitenansicht als Lupe darstellen.
    Lupe()ActiveWindow.View.MagnifierLiefert den Status des Mauszeigers in der Seitenansicht.
    SeitenansichtSchließenActiveDocument.ClosePrintPreviewWechselt von der Seitenansicht in die vorherige Ansichtsart.

  • Kategorien der WordBASIC- und VBA-Befehle: Adressen verwalten

    In diesem Verzeichnis finden Sie alle WordBasic-Anweisungen und -Funktionen, und zwar nach Kategorien angeordnet. Zusätzlich sind die entsprechenden VBA-Befehle neben dem WordBasic-Befehl angegeben. Das Verzeichnis stellt in erster Linie ein Nachschlagewerk dar, daß Ihnen den Umstieg von WordBasic nach Visual Basic for Applications erleichtern soll. Sie sollten für neue Programme nur die VBA-Befehle verwenden, da diese in Zukunft nur noch unterstützt werden. Dieses Verzeichnis ist besonders praktisch, wenn Sie bereits Aktionen für Ihr Makro geplant haben, aber nicht genau wissen, welche Befehle für die Ausführung bestimmter Aufgaben zur Verfügung stehen. Es eignet sich dadurch aber auch, um verwandte Anweisungen und Funktionen kennenzulernen. Innerhalb der einzelnen Kategorien sind die Namen der Anweisungen und Funktionen alphabetisch sortiert; einige Befehle sind unter mehreren Kategorien zu finden. Viele WordBasic-Befehle wurden zu einem VBA-Befehl zusammengefaßt, deshalb werden Sie häufig für unterschiedliche WordBasic-Befehle den gleichen VBA-Befehl finden.

    Falls Sie die Syntax eines Befehls im Detail wissen wollen oder Sie haben diese gerade nicht im Kopf, dann empfehlen wir Ihnen die Visual Basic for Applications-Hilfe zu verwenden. Wenn Sie sich im VBA-Programm befinden, bewegen Sie einfach die Einfügemarke auf den Befehl, den Sie nachschlagen wollen und betätigen die [F1]-Taste. Sie aktivieren dadurch die Hilfe und erhalten eine detaillierte Beschreibung des Befehls.

    Adressen verwalten

    WordBasic-BefehlVBA-BefehlFunktion
    AbrufenAdresse$()Application.GetAddressEine Adresse aus dem Standardadressbuch lesen.
    EinfügenAdresseApplication.GetAddressDas persönliche Adreßbuch wird geöffnet und die Adresse an der Einfügemarke eingetragen.
    HinzufügenAdresseApplication.AddAddressDem Adreßbuch wird eine neue Adresse hinzufügen.

  • Visual Basic for Applications (VBA): Dokumenten-Manager

    Der Dokumenten-Manager erleichtert die Verwaltung von LIEFERSCHEINEN, RECHNUNGEN und GESCHÄFTSBRIEFEN. Die einzelnen Rubriken können Sie Ihren eigenen Bedürfnissen anpassen oder auch um eigene Rubriken erweitern. Zur Auswahl der Rubriken dienen drei OptionButton. Wird eine Rubrik gewechselt, dann erscheinen im Listenfeld DATEIEN unterhalb der Rubriken, die Dateien der entsprechenden Rubrik. Für jede Rubrik wird ein Verzeichnis benötigt, in das zur jeweiligen Rubrik gehörende Dokumente abgelegt sind. In unserem Beispiel heißen die VerzeichnisseC:DOKSRECHNUNGEN, C:DOKSBRIEFE GESCHÄFTLICH und  C:DOKSLIEFERSCHEINE.

    Das Hauptprogramm des Dokumenten-Managers sieht sehr bescheiden aus. Es werden nur einige Standardeinstellungen durchgeführt und das Dialogfeld DOKUMENTENMANAGER aufgerufen.

    Sub DokManager()

    ‚ Verwaltet Dokumente aus bestimmten Rubriken

    DokumentenManager.CmdButtonOpen.Default = True

    DokumentenManager.OptionRechnung.Value = 1

    DokumentenManager.FileBox.ListIndex = 0

    DokumentenManager.Show

    End Sub

    Das Hauptprogramm des Dokumenten-Managers

    Die Prozedur zum Öffnen eines Dokuments wird als Click-Ereignis der Schaltfläche ÖFFNEN programmiert. Dabei wird das Dialogfeld – wie auch beim Befehl ABBRECHEN – geschlossen, da es nach dem Öffnen eines Dokuments nicht mehr benötigt wird. Mit dem Befehl Unload wird es nicht nur geschlossen, sondern auch aus dem Speicher entfernt, was den Resourcen unter Windows zu Gute kommt.

    Private Sub CmdButtonOpen_Click()

    Unload DokumentenManager ‚Dialog aus dem Speicher entfernen

    If OptionRechnung.Value Then

    Documents.Open FileName:=“C:DoksRechnungen“ + VBAProgramme.Dateiliste(FileBox.ListIndex + 1)

    End If

    If OptionLiefer.Value Then

    Documents.Open FileName:=“C:DoksLieferscheine“ + VBAProgramme.Dateiliste(FileBox.ListIndex + 1)

    End If

    If OptionBriefeG.Value Then

    Documents.Open FileName:=“C:DoksBriefe geschäftlich“ + VBAProgramme.Dateiliste(FileBox.ListIndex + 1)

    End If

    End Sub

    Das Click-Ereignis für die Schaltfläche ÖFFNEN.

    Vor dem Öffnen eines Dokuments muß festgestellt werden, welcher Rubrik das Dokument zu entnehmen ist. Das geschieht durch drei If-Abfragen der Eigenschaft Value eines jeden OptionButton. Der Wert Value ist True, falls eine Rubrik ausgewählt ist oder False, falls die Rubrik nicht ausgewählt ist. Innerhalb der If-Abfrage wird dann das jeweilige Dokument über den Befehl Open aus demDocuments-Objekt geladen.

    In den meisten Windows-Anwendungen werden Dateien geöffnet, wenn Sie einen Doppelklick auf den Dateinamen ausführen. Diese Funktionalität enthält auch unser Dokumenten-Manager. Führen Sie einen Doppelklick auf den Dateinamen aus, dann wird ein entsprechendes Ereignis ausgelöst auf das reagiert werden kann. Dies geschieht in unserem Programm in der Prozedur Private Sub FileBox_DblClick(ByVal Cancel As MSForms.ReturnBoolean). Der übergebene Parameter hat keine weitere Bedeutung. Das Ereignis entspricht genau dem Click-Ereignis der SchaltflächeÖFFNEN, da auch hier ebenfalls ein Dokument geöffnet wird. Deshalb wird die Prozedur CmdButtonOpen_Click aufgerufen, die entsprechendes veranlaßt.

    Private Sub FileBox_DblClick(ByVal Cancel As MSForms.ReturnBoolean)

    Call CmdButtonOpen_Click

    End Sub

    Ein Doppelklick im Listenfeld auf den Dateinamen entspricht dem Click-Ereignis der Schaltfläche ÖFFNEN.

    Bei jedem Wechsel der Rubrik müssen die Dateinamen der entsprechenden Rubrik neu eingelesen und im Listenfeld Dateien dargestellt werden. Dazu dient die folgende Prozedur.

    Private Sub OptionRechnung_Click()

    Dim RechnPath As String

    RechnPath = „c:DoksRechnungen“

    FileBox.Clear

    With Application.FileSearch

    .LookIn = RechnPath

    .SearchSubFolders = False

    .FileName = „*.DOC“

    .Execute

    For i = 1 To .FoundFiles.Count

    VBAProgramme.Dateiliste(i) = Mid(.FoundFiles(i), Len(RechnPath) + 2)

    FileBox.AddItem VBAProgramme.Dateiliste(i)

    Next i

    FileBox.ListIndex = 0

    End With

    End Sub

    Bei einem Wechsel der Rubrik müssen die Dateinamen neu eingelesen und angezeigt werden.

    Wir wollen uns dazu die Prozedur Private Sub OptionRechnung_Click() ansehen. Die Prozeduren für LIEFERSCHEINE und GESCHÄFTSBRIEFE sehen identisch aus. Es werden nur die Verzeichnissnamen ausgetauscht.

    RechnPath nimmt den String für den Pfad auf der die Rechnungsdokumente enthält. Das Listenfeld muß über den Befehl FileBox.Clear gelöscht werden, da sich die Namen der Dateien ändern. Danach wird der Suchbefehl gestartet. Damit der Suchbefehl auch im richtigen Verzeichnis nachschaut, wird ihm dies über die Eigenschaft LookIn angegeben. Durch die With-Anweisung kann auf die Elemente einer Struktur zugegriffen werden. Der Befehl würde ausgeschrieben so aussehen:

    Application.FileSearch.LookIn = RechnPath

    Dies ist aber die weniger elegante Art und sollte generell vermieden werden.

    Da keine Unterverzeichnisse existieren, wird die entsprechende Eigenschaft auf False eingestellt. Die Art der Dateien, nach denen gesucht werden soll, wird mit *.DOC auf alle vorhandenen Dokumentdateien festgelegt.

    Die Methode Execute startet den Suchvorgang. In der folgenden For … Next-Schleife werden die Ergebnisse der Dateiliste und dem DATEIEN-Listenfeld hinzugefügt. Nachdem alle Dateinamen eingetragen sind wird der Index für das Listenfeld auf Null eingestellt.

    Die Schaltfläche DRUCKEN erlaubt dem Anwender die ausgewählte Datei auf dem Standarddrucker auszugeben. Dies geschieht über eine sehr einfache Prozedur, die auf das Click-Ereignis der Schaltfläche reagiert.

    Private Sub CmdButtonPrint_Click()

    Unload DokumentenManager ‚Dialog aus dem Speicher entfernen

    If OptionRechnung.Value Then

    Documents.Open FileName:=“C:DoksRechnungen“ + VBAProgramme.Dateiliste(FileBox.ListIndex + 1)

    End If

    If OptionLiefer.Value Then

    Documents.Open FileName:=“C:DoksLieferscheine“ + VBAProgramme.Dateiliste(FileBox.ListIndex + 1)

    End If

    If OptionBriefeG.Value Then

    Documents.Open FileName:=“C:DoksBriefe geschäftlich“ + VBAProgramme.Dateiliste(FileBox.ListIndex + 1)

    End If

    ActiveDocument.PrintOut

    Documents.Close (False)

    End Sub

    Die Druckausgabe hat sehr viel Ähnlichkeit mit der Prozedur Datei öffnen.

    Zuerst wird das ausgewählte Dokument geladen. Hier muß wieder der darauf geachtet werden, daß das Dokument aus dem richtigen Verzeichnis und damit aus der richtigen Rubrik genommen wird. Das Dokument wird dann über die Anweisung ActiveDocument.PrintOut auf dem Standarddrucker ausgegeben und über die Anweisung Documents.Close wieder aus dem Speicher und vom Bildschirm entfernt. Der Parameter False gibt an, daß das Dokument keine Änderungen enthält und nicht gespeichert werden soll.

  • Visual Basic for Applications (VBA): Datei-Manager für zuletzt geöffnete Dokumente

    In sehr vielen Fällen werden Sie auf Dokumente zurückgreifen, die Sie bereits einmal bearbeitet haben. Normalerweise werden Sie die Dokumente aus dem Menü DATEI auswählen. Möchten Sie aber ein Dokument aus der LISTE DER ZULETZT GEÖFFNETEN DATEIEN streichen, dann ist dies nicht so ohne weiteres möglich. Sie bewerkstelligen dies über das Menü EXTRAS und den Befehl OPTIONENim Dialogfeld OPTIONEN > Registerkarte ALLGEMEIN indem Sie den Befehl LISTE ZULETZT GEÖFFNETER DATEIEN auf Null setzen. Der Nachteil dieser Methode besteht darin, daß alle Dateien aus der Liste entfernt werden.

    Der hier vorgestellte Datei-Manager für zuletzt geöffnete Dokumente kann die gestellte Aufgabe ohne weiteres erfüllen. Darüber hinaus kann er auch noch die maximale Anzahl der Dokumente, die in der Liste gespeichert werden sollen, verändern und er öffnet natürlich auch ein ausgewähltes Dokument.

    Der Datei-Manager besteht aus einem kleinen Hauptprogramm und einer USER-FORM die das abgebildete Dialogfeld enthält. Werfen wir zuerst einen Blick auf das Hauptprogramm:

    Sub LastFilesDialog()

    ‚ Verwaltet die zuletzt geöffneten Dateien

    If RecentFiles.Count > 0 Then

    For i = 1 To RecentFiles.Count

    Dateiliste(i) = RecentFiles.Item(i)

    Pathliste(i) = RecentFiles(i).Path

    RecentFilesDialog.LRFilesListBox.AddItem Dateiliste(i)

    Next

    RecentFilesDialog.LRFilesListBox.ListIndex = 0

    RecentFilesDialog.CmdButtonOpen.Enabled = True

    RecentFilesDialog.CmdButtonOpen.Default = True

    RecentFilesDialog.CmdButtonDelFile.Enabled = True

    Else

    RecentFilesDialog.CmdButtonClose.Default = True

    End If

    RecentFilesDialog.AmountOfFiles.Text = Str(RecentFiles.Maximum)

    RecentFilesDialog.Show

    End Sub

    Hauptprogramm des kleinen Datei-Managers.

    Das Programm stellt zuerst fest, ob sich überhaupt Dateien in der LISTE DER ZULETZT GEÖFFNETEN DATEIEN befinden. Das geschieht über den Befehl RecentFiles.Count. Die EigenschaftCount enthält die Anzahl der Dateien die sich in der Liste befinden, ist diese größer Null – was eigentlich üblich ist – dann werden zuerst die einzelnen Dateinamen in der Variablen Dateilistegespeichert. Der Pfad einer jeden Datei wird in der Variablen Pathliste gespeichert. Beide Variablen wurden als globale Variablen am Anfang des Moduls deklariert.

    Public Pathliste(1 To 9) As String   ‚Array der Pfade

    Public Dateiliste(1 To 64) As String ‚Array der zuletzt geöffneten Dateien

    Variablendeklaration am Anfang des Moduls.

    Die Variablen Dateiliste und Pathliste sind als Datenfelder deklariert, d. h. sie nehmen von einem Datentyp mehrere Einträge entgegen. Der Vorteil von Datenfeldern liegt in der Tatsache begründet, daß mehrere Daten unter einer Variablen erreichbar sind. In der Pathliste können max. neun Pfade gespeichert werden, da die LISTE DER ZULETZT GESPEICHERTEN DATEIEN auch nicht mehr als neun Einträge entgegen nimmt. Die Variable Dateiliste kann mehr Einträge entgegen nehmen, da sie für den Einsatz im nächsten VBA-Programm ebenfalls vorgesehen ist.

    Die einzelnen Dateinamen werden dann über den Befehl RecentFiles­Dialog.LRFilesListBox.AddItem Dateiliste(i) einem Listenfeld zugewiesen. Wir wollen diesen Befehl nun in seine Bestandteile auflösen. Im ersten Teil steht der Name des Dialogfelds, das das Listenfeld enthält. In unserem Fall heißt das Dialogfeld RecentFilesDialog. Danach folgt der Name des Listenfeldes, hierLRFilesListBox. Die Methode AddItem fügt dem Listenfeld den Eintrag hinzu, der der gesamten Anweisung folgt. Hier wird der Liste ein Dateiname aus dem Datenfeld Dateiliste hinzugefügt. Diese Prozedur wird solange wiederholt, bis alle Dateinamen aus der LISTE DER ZULETZT GESPEICHERTEN DATEIEN ausgelesen und in der Dateiliste aufgenommen sind.

    Die auf Next folgende Anweisung RecentFilesDialog.LRFiles­ListBox.ListIndex = 0 stellt den ersten Eintrag des Listenfelds als ausgewähltes Element sicher. Dies ist immer dann sinnvoll, wenn nicht sicher gestellt ist, daß der Anwender auch wirklich einen Eintrag aus der Liste auswählen wird bzw. muß.

    Die Anweisung RecentFilesDialog.CmdButtonOpen.Enabled = True schaltet die Schaltfläche ÖFFNEN des Dialogfelds RecentFilesDialog wieder ein. Diese Schaltfläche ist standardmäßig nicht aktiv, da eventuell keine Einträge in der LISTE DER ZULETZT GEÖFFNETEN DATEIEN enthalten sind. Das Programm würde in einem solchen Fall mit einer Laufzeit-Fehlermeldung abbrechen, wenn die Schaltfläche ÖFFNEN betätigt wird, da es ja kein Dokument laden kann. Die Schaltfläche wird außerdem als Standardschaltfläche markiert. Das geschieht über die AnweisungRecentFilesDialog.CmdButtonOpen.Default = True. Eine Standardschaltfläche sollte ein Dialogfeld immer besitzen, da viele Anwender ihre Einstellungen mit der Maus vornehmen und dann ihre Eingaben mit der Ü -Taste bestätigen. In unserem Fall würde dann das ausgewählte Dokument geöffnet.

    Die Schaltfläche DATEI AUS DER LISTE ENTFERNEN, wird über die Anweisung RecentFilesDialog.CmdButtonDelFile.Enabled = True ebenfalls aktiviert, da es tatsächlich Dateien in der Liste gibt, die u. U. auch entfernt werden können.

    Der Else-Zweig wird nur dann ausgeführt, wenn keine Dateien in der LISTE DER ZULETZT GEÖFFNETEN DATEIEN enthalten ist. Es wird dann die Schaltfläche SCHLIESSE als Standardschaltfläche definiert. Die restlichen Schaltflächen sind in diesem Fall nicht aktiv.

    Im Textfeld AmountOfFiles wird die maximale Anzahl der Listeneinträge in der LISTE DER ZULETZT GEÖFFNETEN DATEIEN eingetragen. Die Anweisung dazu lautetRecentFilesDialog.AmountOfFiles.Text = Str(RecentFiles.Maximum). Die Maximalzahl der Einträge kann über die Eigenschaft RecentFiles.Maximum ermittelt werden. Dabei handelt es sich um eine Integerzahl, die zuerst noch in einen String umgewandelt werden muß. Dies bewerkstelligt der Befehl Str.

    Die Anzahl kann über den SpinButton verändert werden. Diese wird beim Schließen des Dialogfelds an Word 2000 übergeben.

    Die letzte Anweisung im Hauptprogramm ruft das Dialogfeld selber auf. Die vorhergehenden Anweisungen dienten alle lediglich der Initialisierung des Dialogfelds. Beim Erscheinen des Dialogfelds auf dem Bildschirm werden alle Felder und Schaltflächen so eingestellt sein, daß sie dem aktuellen Zustand der LISTE DER ZULETZT GEÖFFNETEN DATEIEN entsprechen. Das bedeutet, falls keine Dateien in der Liste enthalten sind, werden auch einige Schaltflächen nicht aktiv sein. Sind aber Dateien vorhanden, dann sind die entsprechenden Einträge vorhanden und die Schaltflächen aktiv.

    Die verschiedenen Schaltflächen und das Listenfeld müssen nun noch mit Code für die einzelnen Ereignisse versehen werden. Ein Ereignis tritt dann ein, wenn der Anwender eine Schaltfläche betätigt oder im Listenfeld einen Doppelklick ausführt. Auf derartige Ereignisse sollte reagiert werden. Auf andere Ereignisse, wie beispielsweise ein Doppelklick auf eine Schaltfläche, muß nicht reagiert werden, da ein derartiges Ereignis zwar durch den Anwender ausgelöst werden kann, aber keineswegs sinnvoll ist.

    Befassen wir uns zuerst mit den Schaltflächen. Die Schaltfläche SCHLIESSE entfernt das Dialogfeld nicht nur vom Bildschirm, sondern auch aus dem Speicher. Aufgrund der immer knappen Resourcen unter Windows sollte man dies immer tun. Der Code dafür ist recht kurz wie das folgende Listing zeigt.

    Private Sub CmdButtonClose_Click()

    Unload RecentFilesDialog ‚Dialog aus dem Speicher entfernen

    End Sub

    Prozedur, die das Dialogfeld wieder aus dem Speicher entfernt und damit auch vom Bildschirm.

    Mit Hilfe der Schaltfläche ÖFFNEN wird das im Listenfeld ausgewählte Dokument in Word geladen und das Dialogfeld ebenfalls geschlossen, sowie aus dem Speicher entfernt.

    Private Sub CmdButtonOpen_Click()

    Unload RecentFilesDialog ‚Dialog aus dem Speicher entfernen

    Documents.Open FileName:=VBAProgramme.PathListe(LRFilesListBox.ListIndex + 1) + „“ + VBAProgramme.Dateiliste(LRFilesListBox.ListIndex + 1)

    End Sub

    Das ausgewählte Dokument wird geöffnet und das Dialogfeld aus dem Speicher entfernt.

    Zum Öffnen einer Datei wird die Methode Open aus der Klasse Documents verwendet. Der Dateiname setzt sich aus den entsprechenden Einträgen in der Pfadliste und Dateiliste zusammen. Dabei wird der Index über die Eigenschaft LRFilesListBox.ListIndex bestimmt. Zu diesem Index muß noch eine Eins addiert werden, da der Index bei Listenfeldern immer bei Null beginnt unser Feld aber bei Eins.

    Die Schaltfläche DATEI AUS DER LISTE ENTFERNEN löscht einen Eintrag aus der Liste. Der Eintrag muß nicht nur aus dem Listenfeld, sondern auch aus der Pathliste, Dateiliste und der LISTE DER ZULETZT GEÖFFNETEN DATEIEN entfernt werden. Die folgende Prozedur sorgt dafür:

    Private Sub CmdButtonDelFile_Click()

    RecentFiles(LRFilesListBox.ListIndex + 1).Delete

    LRFilesListBox.Clear

    If RecentFiles.Count > 0 Then

    For i = 1 To RecentFiles.Count

    Dateiliste(i) = RecentFiles.Item(i)

    PathListe(i) = RecentFiles(i).Path

    RecentFilesDialog.LRFilesListBox.AddItem Dateiliste(i)

    Next

    RecentFilesDialog.LRFilesListBox.ListIndex = 0

    RecentFilesDialog.CmdButtonOpen.Enabled = True

    RecentFilesDialog.CmdButtonOpen.Default = True

    RecentFilesDialog.CmdButtonDelFile.Enabled = True

    Else

    RecentFilesDialog.CmdButtonClose.Default = True

    End If

    End Sub

    Entfernen einer Datei aus der Liste der zuletzt geöffneten Dateien.

    Die Prozedur entfernt zuerst die Datei aus DER LISTE DER ZULETZT GEÖFFNETEN DATEIEN und löscht danach das gesamte Listenfeld. Im folgenden wird, wie zu Beginn des Programms, die Dateiliste und die Pathliste neu erstellt und dem Listenfeld übergeben.

    Die beiden folgenden Prozeduren reagieren auf einen Klick des SpinButtons, dabei muß beim Rauf- und Runterzählen unbedingt auf die Grenzen geachtet werden.

    Private Sub LRFSpinButton_SpinDown()

    If RecentFiles.Maximum > 0 Then

    RecentFiles.Maximum = RecentFiles.Maximum – 1

    End If

    AmountOfFiles.Text = Str(RecentFiles.Maximum)

    End Sub

    Private Sub LRFSpinButton_SpinUp()

    If RecentFiles.Maximum < 9 Then

    RecentFiles.Maximum = RecentFiles.Maximum + 1

    End If

    AmountOfFiles.Text = Str(RecentFiles.Maximum)

    End Sub

    Prozeduren, die die maximale Anzahl der zu speichernden Dateien verändern.

    Das Maximum darf Null nicht unter- und neun nicht überschreiten. Das wird durch eine entsprechende If-Abfrage abgefangen. Der neue Wert wird nach einer Datentypumwandlung dem Textfeld als neuer Text zugewiesen und damit zur Anzeige gebracht.

    Damit sind alle Prozeduren des kleinen Datei-Managers beschrieben. Wie Sie sicher bemerkt haben, ist selbst bei einem derart kleinen Dialogfeld, mit relativ geringem Funktionsumfang, sehr viel Aufwand für die Sicherheit notwendig. Dies ist bei den meisten Projekten so. Sie werden während der Programmierung größerer Projekt weit mehr mit dem Abfangen von Fehlerzuständen zu tun haben, als mit dem eigentlichen Funktionsumfang des Projekts. Der hier vorgestellte kleine Datei-Manager dient in erster Linie als Beispiel für die Programmierung von VBA-Projekten. Sie sollten durch eigene Experimente das Programm noch erweitern. Den auch hier gilt; Übung macht den Meister.

  • Visual Basic for Applications (VBA): Aufrufen von Standarddialogfeldern

    Das Aktivieren von Standarddialogen gehört zu den Dingen die ein Visual Basic for Applications-Programmierer häufig anwendetet. Das folgende Makro formatiert den markierten Text mit Schriftattributen und / oder mit einem Rahmen bzw. einer Schattierung. Der Dialog wdDialogFormatFont für die Festlegung der Zeicheneigenschaften und der Dialog wdDialogFormatBordersAndShading für den Rahmen und die Schattierung werden dabei nacheinander aufgerufen. Beim verlassen der Dialogfelder wird dann festgestellt über welche Schaltfläche das geschehen ist. Das Ergebnis wird in der gleichnamigen Variablen gespeichert und in der If … Then … Else-Struktur ausgewertet, sowie dem Anwender über ein Nachrichtenfenster mitgeteilt.

    Sub ZeichenRahmenDialogAufrufen()

    ‚ Ruft die Dialoge Zeichen und Rahmen / Schattierung

    ‚  auf und weist die dort eingestellten Attribute

    ‚  dem markierten Text zu.

    Dim Ergebnis1, Ergebnis2 As Integer

    Set ZeichenDlg = Dialogs(wdDialogFormatFont)

    Set RahmenDlg = Dialogs(wdDialogFormatBordersAndShading)

    Ergebnis1 = ZeichenDlg.Show

    Ergebnis2 = RahmenDlg.Show

    If (Ergebnis1 = -1) And (Ergebnis2 = -1) Then

    MsgBox „Die Markierung wird mit Rahmen- und Schriftattributen formatiert.“, vbInformation, „Dialog verlassen“

    ElseIf (Ergebnis1 = -1) And (Ergebnis2 = 0) Then

    MsgBox „Die Markierung wird nur mit Schriftattributen formatiert.“, vbInformation, „Dialog verlassen“

    Else: Ergebnis1 = 0 And Ergebnis2 = -1

    MsgBox „Die Markierung wird nur mit Rahmenattributen formatiert“, vbInformation, „Dialog verlassen“

    End If

    End Sub

    Das Makro ruft zwei Word-Dialoge auf und weist die Einstellungen dem markierten Text zu. Zuerst wird das Dialogfeld ZEICHEN aufgerufen. Danach das Dialogfeld RAHMEN UND SCHATTIERUNG.

    Nachdem alle Einstellungen gemacht wurden ist der markierte Text wie gewünscht formatiert. Die Standarddialoge von Word 2000 werden über die Methode Show aufgerufen. Diese ist im Gegensatz zur Methode Display auch in der Lage, die durchgeführten Einstellungen an den markierten Text weiterzugeben. Das Ergebnis kann dann wie folgt aussehen.

  • Visual Basic for Applications (VBA): Spezielle Formatierungen

    Häufig werden Makros mit speziellen Eigenschaften benötigt, wie zum Beispiel der Fähigkeit, einen ganzen Absatz in einer bestimmten Art zu formatieren. Das im folgenden aufgelistete Makro stellt einen Abschnitt in Großbuchstaben und fett dar.

    Sub AbschnittGroßFett()

    ‚ AbschnittGroßFett Makro

    ‚ Stellt einen Abschnitt in fetten Großbuchstaben dar.

    Selection.MoveUp Unit:=wdParagraph, Count:=1

    Selection.MoveDown Unit:=wdParagraph, Count:=1, Extend:=wdExtend

    Selection.Font.AllCaps = wdToggle

    Selection.Font.Bold = wdToggle

    End Sub

    Stellt einen Absatz in fetten Großbuchstaben dar.

    Zuerst wird über die beiden Selection-Befehle der Absatz markiert. Danach werden dem Absatz die Attribute AllCaps und Bold zugewiesen, falls der Abschnitt noch nicht so formatiert ist. In den meisten Fällen ist es aber auch wichtig, den Absatz wieder normal formatieren zu können. Dies ist mit dem Makro ebenfalls möglich, da bei den Formatierungsbefehlen zur Umschaltung der ParameterWDTOGGLE verwendet wird. Dieser invertiert das zuletzt gesetzte Attribut.

    Sie müssen das Makro nur noch über den Befehl ANPASSEN aus dem Menü EXTRAS einer Taste oder einer Symbolleiste zuweisen und schon haben Sie einen weiteren leistungsfähigen Befehl zur Hand, der Ihre Arbeit erleichtert.

  • Visual Basic for Applications (VBA): Behandlung des Dokuments

    Wie wir bereits in den vorhergehenden Abschnitten gesehen haben, bringt die Anpassung von Word 2000 an die restlichen Office-Mitglieder, in Bezug auf die gemeinsam zu verwendende Programmiersprache Visual Basic for Applications, erhebliche Änderungen mit sich. So können auch Dinge, die dem geübten WordBasic-Programmierer leicht von der Hand gingen, zu einem Problem für den Visual Basic for Applications-Anfänger werden. Daher wollen wir im folgenden einige Tips zum Umgang mit Dokumenten geben.

    Neues Dokument anlegen

    Sie legen ein neues Dokument an, indem Sie die Methode Add aus dem Documents-Objekt einsetzen. Das gesamte Dokument wird als ein Objekt betrachtet. Ein Objekt besitzt verschiedene Befehle – auch Methoden genannt – und Eigenschaften.

    Sub DokumentErstellen()

    Documents.Add

    End Sub

    Diese Anweisung entspricht dem Befehl NEU aus der Symbolleiste STANDARD. Ein wesentlich besserer Weg ein neues Dokument anzulegen ist im folgenden Beispiel dargestellt:

    Sub DokumentErstellen2()

    Set neuDok = Documents.Add

    With neuDok

    .Content.Insert „Das Word Buch„

    .Content.Font.Name = „Impress„

    .SaveAs Name:= „Beispiel1.DOC„

    End With

    End Sub

    Die Verwendung einer Objekt-Variablen, bietet Ihnen wesentlich mehr Möglichkeiten das neue Dokument zu initialisieren.

    Vorhandenes Dokument öffnen

    Sie öffnen ein auf Ihrer Festplatte oder auf einem Server gespeichertes Dokument über die Methode Open des Documents-Objekts. Das geöffnete Dokument wird dann in die Sammlung der offenen Dokumente aufgenommen. Beim Öffnen ist der Name und der Pfad desDokuments anzugeben.

    Sub DokumentÖffnen()

    Documents.Open(„c:TexteVersicherungenKünd.DOC„)

    End Sub

    Geöffnetes Dokument aktivieren

    Während einer längeren Word-Sitzung werden meistens mehrere Dokumente geöffnet. Damit Sie das richtige Dokument aktivieren, können Sie es über den Namen identifizieren und zum aktiven Dokument machen.

    Sub DokumentAktivieren()

    Documents(„Künd.DOC„).Activate

    End Sub

    Eleganter ist allerdings die folgende Lösung:

    Sub DokumentÖffnen()

    For Each Item In Application.Documents

    If InStr(1, Item.Name, „Künd.DOC„, 1) Then

    Item.Activate

    Else

    Documents.Open(„c:TexteVersicherungenKünd.DOC„)

    End If

    Next

    End Sub

    In diesem Beispiel wird durch den For Each-Befehl die Sammlung der Dokumente druchgesehen. Sobald das gesuchte Dokument entdeckt wird, wird es auch zum aktiven Dokument gemacht, ansonsten wird es von der Festplatte geladen und der Sammlung der offenen Dokumente hinzugefügt.

  • Visual Basic for Applications (VBA): Benennen von Variablen und Prozeduren

    Sie werden beim Programmieren sehr häufig Variablen, Funktionen, Formulare, Prozeduren, Steuerelemente, Module oder Klassen benennen müssen. Sie sollten sich dabei zuerst auf die Aussagekraft der Namen konzentrieren. Ein Modul mit der Bezeichnung Sammlung, ist sicher nicht so aussagekräftig, als wenn das Modul die Bezeichnung Makrosammlung bekommen hätte. Hier kann man sich schon mehr darunter vorstellen. Bei der Namensgebung sind aber noch ein paar andere Dinge zu beachten, die wir im folgenden aufgelistet haben.

    • Der Name muß mit einem Buchstaben beginnen.
    • Der Name darf nur aus Buchstaben, Zahlen und dem Unterstreichungsstrich (_) bestehen. Andere Zeichen wie Symbole, Leer- oder Interpunktions­zeichen sind nicht erlaubt.
    • Der Name darf auch nicht aus einem reservierten Wort bestehen. Reservierte Wörter sind zum Beispiel alle Schlüsselwörter wie If oder For in Visual Basic for Applications, ihnen wurde ja bereits eine Bedeutung zugewiesen.
    • Der Name der Variablen darf 200 Zeichen nicht überschreiten.

    Bei der Namensgebung sollten Sie vermeiden einem Modul und einer Prozedur in einem anderen Modul gleiche Namen zu geben. Dies führt zwar nicht zu einem Fehler, aber unter Umständen zur Verwirrung der Leser Ihres Programms, da die Eindeutigkeit verloren geht.

    Die Deklarationen von Variablen werden aus Gründen der Übersicht direkt an den Anfang einer Prozedur oder eines Moduls durchgeführt. Normalerweise müssen Sie in Visual Basic for Applications keine Variablen deklarieren, Sie sollten es aber dennoch tun. Dies erhöht die Sicherheit Ihres Programms, da mögliche Fehler schon während des Kompilierens entdeckt werden. Damit Sie das Deklarieren von Variablen nicht vergessen, können Sie über das Menü EXTRAS > OPTIONEN Registerkarte EDITOR das Feld VARIABLENDEKLARATION ERFORDERLICH anwählen. Sobald der Compiler auf eine Variable stößt, die nicht deklariert ist, wird er dies anmahnen und den Compiler stoppen. Diese Funktion ist besonders interessant für Programmierer, die aus dem C++ oder Pascal-Lager stammen, sie sind es nämlich gewohnt, daß sich der Compiler über nicht deklarierte Variablen beschwert.