FileMaker-Daten mit AppleScript und VBA-Makro an Word-Formular übergeben
Kurzbeschreibung
Aus FileMaker heraus eine Word-Vorlage mit Text-Formularfeldern aufrufen, in diese die Daten aus dem aktuellen FileMaker-Datensatz eintragen und die ausgefüllte Word-Vorlage an einem in der FileMaker-Datenbank definierten Ort abspeichern, das mit der Möglichkeit dieses Word-Dokument jederzeit aus FileMaker öffen zu können.zuletzt aktualisiert: 10.02.2005
Download: FileMaker AppleScript VBA Word Beispiel (StuffIt gepackt / 176KB)
FileMaker
Der Kern in der FileMaker-Programmierung sind die zwei Script-Schritte:1. "Feld angeben"
Feld: "Parameter",
Parameter:
(Hinweis: Um innerhalb eines Text-Strings der Parameter-Anweisung ein Anführungzeichen zu notieren, escapen Sie das Anführungzeichen, indem Sie ein weiteres Anführungszeichen voranstellen.)
"tell application ""Microsoft Word""¶" &
" activate¶" &
" do Visual Basic ""call FileMaker4You.fm2wd.Brief(" &
"\""" & Anrede & "\""," &
"\""" & Titel & "\""," &
"\""" & Vorname & "\""," &
"\""" & Nachname & "\""," &
"\""" & Str & "\""," &
"\""" & Land & "\""," &
"\""" & PLZ & "\""," &
"\""" & Ort & "\""," &
"\""" & Betreff & "\""," &
"\""" & Zeichen & "\""," &
"\""" & Datum & "\""," &
"\""" & Briefanrede & "\""," &
"\""" & Ablage & Dokument & "\""" &
")""¶" &
"end tell"
2. "AppleScript ausführen"Wählen Sie das Optionsfeld "Feldwert" und geben Sie das Feld "Parameter" an.
Word
Hier dreht sich alles um das Makro "Brief" im Modul "fm2wd" im Add-In "FielMaker4You":
Public Sub Brief( _
s_Anrede As String, _
s_Titel As String, _
s_Vorname As String, _
s_Nachname As String, _
s_Str As String, _
s_Land As String, _
s_PLZ As String, _
s_Ort As String, _
s_Betreff As String, _
s_Zeichen As String, _
s_Datum As String, _
s_Briefanrede As String, _
s_Dateipfad As String _
)
On Error Resume Next
ActiveDocument.FormFields("Anrede").Result = s_Anrede
ActiveDocument.FormFields("Titel").Result = s_Titel
ActiveDocument.FormFields("Vorname").Result = s_Vorname
ActiveDocument.FormFields("Nachname").Result = s_Nachname
ActiveDocument.FormFields("Str").Result = s_Str
ActiveDocument.FormFields("Land").Result = s_Land
ActiveDocument.FormFields("PLZ").Result = s_PLZ
ActiveDocument.FormFields("Ort").Result = s_Ort
ActiveDocument.FormFields("Betreff").Result = s_Betreff
ActiveDocument.FormFields("Zeichen").Result = s_Zeichen
ActiveDocument.FormFields("Datum").Result = s_Datum
ActiveDocument.FormFields("Briefanrede").Result = s_Briefanrede
ActiveDocument.FormFields("Dateipfad").Result = s_Dateipfad
On Error Resume Next
Kill s_Dateipfad
ActiveDocument.SaveAs _
FileName:=s_Dateipfad, _
FileFormat:=wdFormatDocument
End Sub
Dieses VBA-Makro wird durch die Zeile
do Visual Basic "call FileMaker4You.fm2wd.Brief(Paramter)"im oben beschriebenen AppleScript aufgerufen.
VBA-Makro in einem Add-In aufrufen und Parameter übergeben
Um einem VBA-Makro beim Aufruf einen Parameter zu übergeben, muß es mit call aufgerufen werden (run arbeitet nur ohne Parameter). Es folgen durch einen Punkt getrennt der Name des Add-Ins und des Moduls, in dem sich das VBA-Makro befindet, und schließlich der der Name des VBA-Makros. In der folgenden Klammer werden die in Anführungszeichen eingeschlossenen und durch Kommata getrennten Parameter übergeben.Add-In in Word laden
Damit der Aufruf funktioniert, muß das Add-In in Word geladen sein. Legen Sie es dazu in den in der Word-Konfiguration als AutoStart definierten Ordner oder fügen Sie es über das Word-Menü "Extras" mit dem Befehl "Vorlagen und Add-Ins" hinzu. Abschließend muß noch ein Verweis auf das Add-In erstellt werden. Wählen Sie in Word aus dem Menü "Extras" den Befehl "Makro > VisualBasic-Editor". Wählen Sie wiederum im Menü "Extras" den Befehl "Verweise ...". Erstellen Sie einen Verweis auf das AddIn "FileMaker4You", indem Sie dort ein Kreuz eintragen.Sie können mit folgendem VBA-Makro überprüfen, ob das Add-In geladen ist:
Sub AddInAvl()
Dim s_avl As String
For Each aAddIn In AddIns
If aAddIn.Name = "FileMaker4You" Then
s_avl = aAddIn.Name
MsgBox ("Pfad des Add-Ins ""FileMaker4You"" ist angemeldet:" _
& vbNewLine & "" & aAddIn.path)
Exit For
End If
Next
If s_avl = "FileMaker4You" Then
If aAddIn.Installed = True Then
MsgBox ("Das Add-In ""FileMaker4You"" ist geladen!")
Else
MsgBox ("Das Add-In ""FileMaker4You"" ist noch nicht geladen" _
& vbNewLine & "und wird jetzt nachgeladen!")
aAddIn.Installed = True
End If
Else
MsgBox ("Das Add-In ""FileMaker4You"" ist nicht angemeldet!")
End If
End Sub
Wir von FileMaker4You
hoffen, Ihnen mit dieser Anleitung weitergehofen zu haben. Über Fragen und Anregungen freuen wir uns!Gerne dürfen Sie einen Link auf unsere Seite setzen. Besonders einfach haben Sie es, wenn Sie die untenstehenden HTML-Zeilen mit copy/paste in Ihre HTML-Seite kopieren:
<a href="www.filemaker-4-you.de/programmieren/filemaker-applescript-word.html"
title="FileMaker-Daten mit AppleScript und VBA-Makro an Word-Formular übergeben">
FileMaker-Daten mit AppleScript und VBA-Makro an Word-Formular übergeben</a>