VBA6+Word2k: Textbox -> Textformularfeld?

Kriegr

Mitglied
Hallo!

Kann sein, dass es zu meinem Problem hier schon Beiträge gibt, ich bin allerdings immer etwas unsicher, wenn ich etwas von Textmarken etc. lese...

Das alles sind wohl olle Kamellen, aber ich habe so gut wie keine Ahnung von VBA und bin gerade dabei mich einzulernen.

Problembeschreibung:
Beim Aufruf einer Dokumentvorlage (KBVersuch.dot) wird ein Word-Dokument erstellt und gleichzeitig die Form "formEingabeKBVersuch" geöffnet. Das ist eine von mir mit dem VBA-Editor (Word2000) erstellte UserForm.
Dort gibt es eine textbox, deren Eingabe in ein Textformularfeld im Word-Dokument übertragen werden soll. Dieses Textformularfeld habe ich über die Formular-Iconleiste eingefügt.
Ich murkse schon eine ganze Weile daran herum und es klappt auch soweit, allerdings nur beim erstenmal nach dem Aufruf der UserForm.

Hier mein code aus Private Sub butOk_Click(). Mit dem OK-Button passiert eigentlich alles. Der code ist reichlich wirr, mit Hilfe der msgboxes versuche ich halt verschiedene Werte zu erkennen und wie man anhand der vielen Kommentare sieht, versuche ich das ein oder andere...

Code:
Dim ffFormularfeld As FormField
Dim ctrControl As Control
Dim strName As String

If ActiveDocument.ProtectionType = wdNoProtection Then
 ActiveDocument.Protect Type:=wdAllowOnlyFormFields, NoReset:=True
End If

strName = ActiveDocument.Bookmarks.Item(1).Name            'Bookmarks? Warum nicht Formfield
MsgBox "strName:   " + strName, 0, "strName"
'
If ActiveDocument.Bookmarks.Exists(strName) Then
 Set ffFormularfeld = ActiveDocument.FormFields(strName)   'Verweis auf das Formularfeld ...?
                                                            'Wozu?
'ffFormularfeld.Range.Fields(1).Result.Text = strTexteingabe
 MsgBox "Texteingabe:  " + strTexteingabe, 0, "Texteingabe"
' ActiveDocument.FormFields(1).Result = strTexteingabe
 ActiveDocument.Range.FormFields(1).Result = strTexteingabe
Else
 MsgBox "Textmarke nicht vorhanden!", 0, "Mist!"        'Kann nicht gefunden werden, da der Name
                                                        'des Formularfelds nicht gleichlautend mit
                                                        'textbox ist (Unterschied zum VB-Tipp).
 MsgBox "Anzahl der Textmarken: " + Str(ActiveDocument.Bookmarks.Count), 0, "Anzahl Textmarken"
End If

Den Wert für strTexteingabe hole ich mir aus dem Exit-Ereignis der textbox der UserForm.
Code:
strTexteingabe = tbTextEingabe.Value
Ich habe mir aus einem anderen Forum einen Tipp dazu besorgt, komme aber nicht wirklich damit klar.
Bücher habe ich auch schon gewälzt, ist aber nichts passendes dabei.
Meine online-Hilfe für den VBA-Editor ist nicht komplett installiert, soll noch demnächst nachgeholt werden.
 
Zurück