Word 2000, Textstellen suchen und durch ein Formularfeld ersetzen

27/08/2007 - 14:56 von BIG | Report spam
Hallo,

ich bin WORD-VBA-Neuling. Mein Problem:
Ich übergebe einen Text aus Access heraus an eine Textmarke in einer dot. In
diesem Text stehen Variablen (>>FIELD<<) die durch ein Formularfeld ersetzt
werden sollen.

Hier mal mein Makro:

Selection.Find.ClearFormatting
With Selection.Find
.Text = ">>FIELD<<"
.Replacement.Text = ""
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute
Selection.FormFields.Add Range:=Selection.Range, Type:= _
wdFieldFormTextInput

Das Formularfeld wird am Anfang des Dokumentes eingesetzt und nicht an der
">>FIELD<<"-Position. Weiß jemand was ich falsch machen?

Vielen Dank für die Hilfe!

Gruß

BIG
 

Lesen sie die antworten

#1 Helmut Weber
27/08/2007 - 16:45 | Warnen spam
Hallo BIG,

richtige, real life Namen werden hier gerne gelesen,

Das Formularfeld wird am Anfang des Dokumentes eingesetzt
und nicht an der ">>FIELD<<"-Position. Weiß jemand was ich falsch mache?



Das Formularfeld wird bei mir vor ">>FIELD<<" eingesetzt.
Wenn ">>FIELD<<" am Anfang des Dokumentes steht, dann eben am Anfang.

Es scheint wieder mal, das in der Hilfe einfach was Falsches steht,
"If the range isn't collapsed, the form field replaces the range."
hier mit meiner US-Version. Nein, eben nicht.

Mal so versuchen:

Sub Macro2a()
Dim rTmp As Range
Set rTmp = ActiveDocument.Range
With rTmp.Find
.Text = ">>FIELD<<"
If .Execute Then
rTmp.Delete
rTmp.FormFields.Add _
Range:=rTmp, _
Type:=wdFieldFormTextInput
End If
End With
End Sub

Mehr braucht's nicht.

Und nicht die Dokumentvorlage veràndern.
Sondern ein Dokument auf Grundlage der Vorlage erzeugen
und dieses àndern.


Gruß

Helmut Weber, MVP WordVBA

"red.sys" & chr$(64) & "t-online.de"
Win XP, Office 2003 (US-Versions)

Ähnliche fragen