will mal nicht so sein…
hi Sutti
na gut, du hast explizit nach vbs und xml gefragt, also hier eine beispiellösung:
folgende voraussetzungen:
- unter c:\temp gibt es ein word.dokument mit namen „vartest.doc“
es ist ein relativ normales word-dokument, in dass du an beliebiger stelle folgende Felder einfügst:
{docvariable name}
{docvariable adresse}
{docvariable telefon}
(die geschwungenen klammern erhältst du durch drücken von strg-f9)
-
ebenfalls unter c:\temp gibt es eine xml-datei „vartest.xml“ mit folgendem inhalt:
max musterfeldweg 11234
-
du legst ein vbscript mit dateinamen „c:\temp\vartest.vbs“ und folgendem inhalt an:
dim datei
dim xml
dim mainelement
dim feld
set xml = createobject(„msxml2.domdocument“)
if not xml.load („c:\temp\vartest.xml“) then
msgbox „XML-Daten konnte nicht geladen werden“
stop
end if
set datei = getobject(„c:\temp\vartest.doc“)
set mainelement = xml.documentelement
setVariable „name“, mainelement.selectsinglenode("./name").text
setVariable „adresse“, mainelement.selectsinglenode("./adresse").text
setVariable „telefon“, mainelement.selectsinglenode("./telefon").text
for each feld in datei.fields
feld.update
next
datei.save
datei.close
sub setVariable(VarName, Wert)
On Error Resume Next
datei.Variables.Item(VarName).Value = Wert
If Err.Number 0 Then
datei.variables.add VarName, Wert
end if
End Sub
-
einfach auf die vartest.vbs doppelt klicken
wenn du nun das word-dokument aufmachst, sollte dort, wo du deine docvariable-felder eingefügt hast, der wert aus dem dokument stehen.
noch ein paar hinweise:
- solange eine dokumentvariable nicht angelegt ist, kommt beim referenzieren darauf entweder ein leerer text oder eine fehlermeldung
- dokumentvariablen MÜSSEN einen inhalt haben. setzt man den inhalt auf leer, wird die variable automatisch gelöscht
- es gibt keine möglichkeit, mit standardmitteln im word auf die variablen zuzugreifen (ausser eben über das docvariable-feld). das kann ein vorteil und ein nachteil sein
das ganze ist natürlich ein quick-and-dirty-beispiel. es fehlen alle arten von fehlerbehandlungen, kommentare usw. soll ja nur das prinzip zeigen, wie sowas möglich ist.
lg
erwin