Word 2003 - Makro zum Füllen von Textformularfeldern

railroadman

Cadet 1st Year
Registriert
Dez. 2009
Beiträge
11
Hallo,

ich habe ein Word-Dokument (Word 2003) zur Datenerfassung erstellt, dass schreibgeschützt verteilt werden soll. Dieses Dokument enthält Textformularfelder, die zur Erfassung der Daten dienen.

Einige dieser Textformularfelder enthalten "wiederkehrende" Informationen (z.B. Datum, Orte etc.). Um den "Anwendern" die Arbeit zu erleichtern, sollten die Folgefelder nach dem Befüllen des "Referenzfeldes" automatisch gefüllt werden.

Das Verknüfen dieser Felder mit Einfügen -> Referenz -> Querverweis ist mir zu umständlich, da eine Aktualisierung mit der rechten Maustaste erforderlich ist.

Nützlich wäre hier also ein Makro. Mit der Microsoft-Hilfe und den Hinweisen auf der Microsoft-Seite bin ich nicht zurechtgekommen.

Frage: Kann mir jemand beim schreiben eines solchen behilflich sein?

Vielen Dank in voraus
 
Sieht ziemlich kompliziert aus. Wie gesagt. kenne ich mich mit Makros schreiben nicht aus.

Mein Wunsch wäre es eher, ein Beispiel wie ich es hier jetzt zugesandt bekam (Link zu Microsoft-Support: http://support.microsoft.com/kb/504512/de), zu vervollständigen, so dass ich es in den Makro-Editor kopieren kann:

Sub MAIN

REM Feststellen, ob Dokument geschützt ist (geschützt: Schutz=-1).

Schutz = BefehlGültig("ExtrasDokumentschutzAufheben")

REM Gegebenenfalls den Dokumentschutz entfernen.

If Schutz = -1 Then

ExtrasDokumentschutzAufheben

EndIf

REM Bestimmen der Formular-Felder.

Zahl = ZählenTextmarken()

If Zahl = 0 Then

MsgBox "Keine Formularfelder gefunden!"

Goto Ende 'Keine Formularfelder vorhanden

EndIf

For i = 1 To Zahl

Name$ = TextmarkeName$(i)

BearbeitenTextmarke .Name = Name$, .Gehezu

Redim dlg As FormularFeldOptionen

GetCurValues dlg

If dlg.TextArt = 5 Then

BestimmenFormularFeldergebnis Name$

EndIf

Next i

REM Den entfernten Dokumentschutz wieder hinzufügen.

If Schutz=-1 Then

ExtrasDokumentSchützen .KeineVorgabe = 1, .Art = 2

EndIf

Ende:

End Sub

Da die Textmarken-Namen nicht bekannt sind, müssen die Berechnungs-Felder erst festgestellt werden. Dazu müssen Makro-Befehle verwendet werden, die nur im ungeschützten Dokument anwendbar sind. Deshalb wird also der Dokumentschutz gegebenenfalls aufgehoben und wieder hinzugefügt.

Wenn Sie allerdings die Textmarken-Namen der Formular-Felder, in denen die Berechnungen durchgeführt werden, bereits kennen, so können Sie auch den folgenden, wesentlich kürzeren, Makro verwenden:

Sub MAIN

REM Folgende Zeile für jedes Berechnungs-Formular-Feld wiederholen.

REM Für "Name" setzen Sie bitte den Textmarken-Namen ein.

REM (in Anführungszeichen).

BestimmenFormularFeldergebnis "Name"

End Sub




Ich habe den Text mal reinkopiert, aber es klappt nicht.
 
Zurück
Oben