Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Wenn ein Makro endet, werden die in seinen Variablen enthaltenen Werte nicht automatisch auf einem Datenträger gespeichert. Soll ein Wert erhalten bleiben, muss dieser außerhalb des Makros gespeichert werden, bevor die Ausführung des Makros abgeschlossen ist. In diesem Thema werden fünf Speicherorte beschrieben, an denen Makrowerte einfach gespeichert und von denen sie abgerufen werden können.
Dokumentvariablen
Mit Dokumentvariablen können Sie Werte als Teil eines Dokuments oder einer Vorlage speichern. Beispielsweise können Sie Makrowerte in dem Dokument oder der Vorlage speichern, in dem sich das Makro befindet. Sie können variablen zu einem Dokument oder einer Vorlage hinzufügen, indem Sie die Add-Methode der Variables-Auflistung verwenden. Im folgenden Beispiel wird eine Dokumentvariable mithilfe der ActiveDocument-Eigenschaft am selben Speicherort wie das makro gespeichert, das ausgeführt wird (Dokument oder Vorlage).
Sub AddDocumentVariable()
ActiveDocument.Variables.Add Name:="Age", Value:=12
End Sub
Im folgenden Beispiel wird die Value-Eigenschaft mit einem Variable-Objekt verwendet, um den Wert einer Dokumentvariablen zurückzugeben.
Sub UseDocumentVariable()
Dim intAge As Integer
intAge = ActiveDocument.Variables("Age").Value
End Sub
Hinweise
Verwenden Sie das Feld DOCVARIABLE, um eine Dokumentvariable in ein Dokument einzufügen.
Document-Eigenschaften
Wie mit Dokumentvariablen können Werte auch mithilfe von Dokumenteigenschaften als Teil eines Dokuments oder einer Vorlage gespeichert werden. Dokumenteigenschaften können im Dialogfeld Eigenschaften angezeigt werden.
Das Word Objektmodell unterteilt Dokumenteigenschaften in zwei Gruppen: integriert und benutzerdefiniert. Benutzerdefinierte Dokumenteigenschaften sind die Eigenschaften, die im Dialogfeld Eigenschaften auf der Registerkarte Anpassen angezeigt werden. Als integrierte Dokumenteigenschaften gelten die Eigenschaften auf allen Registerkarten im Dialogfeld Eigenschaften mit Ausnahme der Registerkarte Anpassen.
Verwenden Sie für den Zugriff auf integrierte Eigenschaften die BuiltInDocumentProperties-Eigenschaft , um eine DocumentProperties-Auflistung zurückzugeben, die die integrierten Dokumenteigenschaften enthält. Verwenden Sie die CustomDocumentProperties-Eigenschaft eines Document-Objekts oder eines Template-Objekts , um eine DocumentProperties-Auflistung zurückzugeben, die die benutzerdefinierten Dokumenteigenschaften enthält. Im folgenden Beispiel wird eine benutzerdefinierte Dokumenteigenschaft mit dem Namen "YourName" am selben Speicherort wie das makro erstellt, das ausgeführt wird (Dokument oder Vorlage).
Sub AddCustomDocumentProperties()
ActiveDocument.CustomDocumentProperties.Add Name:="YourName", _
LinkToContent:=False, Value:="Joe", Type:=msoPropertyTypeString
End Sub
Integrierte Dokumenteigenschaften können nicht der DocumentProperties-Auflistung hinzugefügt werden, die von der BuiltInDocumentProperties-Eigenschaft eines Document- oder Template-Objekts zurückgegeben wird. Sie können jedoch den Inhalt einer integrierten Dokumenteigenschaft abrufen oder den Wert einer integrierten Dokumenteigenschaft mit Lese-/Schreibzugriff ändern.
Verwenden Sie das Feld DOCPROPERTY, um Dokumenteigenschaften in ein Dokument einzufügen.
AutoText-Einträge
AutoText-Einträge können verwendet werden, um Informationen in einer Vorlage zu speichern. Im Gegensatz zu einer Dokumentvariablen oder -eigenschaft können AutoText-Einträge Elemente enthalten, die über Makrovariablen hinausgehen, z. B. formatierten Text oder eine Grafik. Verwenden Sie die Add-Methode mit der AutoTextEntries-Auflistung , um einen neuen AutoText-Eintrag zu erstellen. Im folgenden Beispiel wird ein AutoText-Eintrag mit dem Namen "MyText" erstellt, der den Inhalt der Auswahl enthält. Wenn die folgende Anweisung Teil eines Vorlagenmakros ist, wird der neue AutoText-Eintrag in der Vorlage gespeichert. Andernfalls wird der AutoText-Eintrag in der Vorlage gespeichert, die an das Dokument angefügt ist, in dem sich die Anweisung befindet.
Sub AddAutoTextEntry()
ActiveDocument.AttachedTemplate.AutoTextEntries.Add Name:="MyText", _
Range:=Selection.Range
End Sub
Verwenden Sie die Value-Eigenschaft mit einem AutoTextEntry-Objekt , um den Inhalt eines AutoText-Eintragsobjekts abzurufen.
Einstellungsdateien
Mithilfe der PrivateProfileString-Eigenschaft des System-Objekts können Sie Informationen aus einer Einstellungsdatei festlegen und abrufen. Die Struktur einer Windows-Einstellungsdatei ist identisch mit der Windows 3.1-WIN.INI-Datei. Im folgenden Beispiel wird der DocNum-Schlüssel im Abschnitt DocTracker in der Macro.ini-Datei auf 1 festgelegt.
Sub MacroSystemFile()
System.PrivateProfileString( _
FileName:="C:\My Documents\Macro.ini", _
Section:="DocTracker", Key:="DocNum") = 1
End Sub
Nach dem Ausführen der oben stehenden Anweisung enthält die Datei Macro.ini den folgenden Text.
[DocTracker]
DocNum=1
Die PrivateProfileString-Eigenschaft weist drei Argumente auf: FileName, Section und Key. Das Argument FileName wird verwendet, um einen Einstellungsdateipfad und Dateinamen anzugeben. Das Argument Section gibt den Abschnittsnamen an, der zwischen Klammern vor den zugeordneten Schlüsseln angezeigt wird (schließen Sie die Klammern nicht mit dem Abschnittsnamen ein). Das Argument Key gibt den Schlüsselnamen an, gefolgt von einem Gleichheitszeichen (=) und der Einstellung.
Verwenden Sie dieselbe PrivateProfileString-Eigenschaft , um eine Einstellung aus einer Einstellungsdatei abzurufen. Im folgenden Beispiel wird die DocNum-Einstellung im Abschnitt DocTracker in der Macro.ini-Datei abgerufen.
Sub GetSystemFileInfo()
Dim intDocNum As Integer
intDocNum = System.PrivateProfileString( _
FileName:="C:\My Documents\Macro.ini", _
Section:="DocTracker", Key:="DocNum")
MsgBox "DocNum is " & intDocNum
End Sub
Windows-Registrierung
Mithilfe der PrivateProfileString-Eigenschaft können Sie Informationen aus der Windows-Registrierung festlegen und abrufen. Im folgenden Beispiel wird das programmverzeichnis Word 2007 aus der Windows-Registrierung abgerufen.
Sub GetRegistryInfo()
Dim strSection As String
Dim strPgmDir As String
strSection = "HKEY_CURRENT_USER\Software\Microsoft" _
& "\Office\12.0\Word\Options"
strPgmDir = System.PrivateProfileString(FileName:="", _
Section:=strSection, Key:="PROGRAMDIR")
MsgBox "The directory for Word is - " & strPgmDir
End Sub
Die PrivateProfileString-Eigenschaft weist drei Argumente auf: FileName, Section und Key. Um einen Wert für einen Registrierungseintrag zurückzugeben oder festzulegen, geben Sie eine leere Zeichenfolge ("") für das Argument FileName an. Das Argument Section sollte der vollständige Pfad zum Registrierungsunterschlüssel sein. Das Key-Argument sollte der Name eines Eintrags im Unterschlüssel sein, der durch Section angegeben wird.
Sie können informationen auch in der Windows-Registrierung festlegen, indem Sie die folgende PrivateProfileString-Syntax verwenden.
System.PrivateProfileString(FileName, Section, Key)=-Wert
Im folgenden Beispiel wird in der Windows-Registrierung im Unterschlüssel Options für Office Word 2007 der Eintrag DOC-PATH auf C:\My Documents festgelegt.
Sub SetDocumentDirectory()
Dim strDocDirectory As String
strDocDirectory = "HKEY_CURRENT_USER\Software\Microsoft" _
& "\Office\10.0\Word\Options"
System.PrivateProfileString(FileName:="", _
Section:=strDocDirectory, Key:="DOC-PATH") = "C:\My Documents"
End Sub
Support und Feedback
Haben Sie Fragen oder Feedback zu Office VBA oder zu dieser Dokumentation? Unter Office VBA-Support und Feedback finden Sie Hilfestellung zu den Möglichkeiten, wie Sie Support erhalten und Feedback abgeben können.