Hallo liebes Forum,
seit einiger Zeit arbeite ich an einem Makro zum Import von Visio-Zeichnungen (.vsdx-Format) zum Import in ein WORD-Dokument.
Meine Arbeitsumgebung ist: MS Office 2013 und Visio 2013
Es gibt folgendes Problem:
Ich habe erfolgreich einen LINK zu meinen Zeichnungen (Testweise 15 Dokumente mit 1-70 Seiten Inhalt) herstellen können.
Dieser Code funktioniert soweit in der Testumgebung:
'Link-Teile in Variablen schreiben
String_Teil_1 = "Visio.Drawing.15 " 'Festwert für den Link
String_Teil_2 = Temp_Pfad 'manipulierter Visio-Zeichnungspfad
String_Teil_3 = "Drawing\\~" 'Festwert für den Link
String_Teil_4 = Temp_String_1 'Seitenname Visio-Zeichnung
String_Teil_5 = " \a \p" 'Festwert für den Link
'Link-Teile zu einem Link zusammenführen
String_Link = (String_Teil_1 & Chr(34) & String_Teil_2 & Chr(34) & " " & _
Chr(34) & String_Teil_3 & String_Teil_4 & Chr(34) & String_Teil_5)
'Visio-Zeichnung lt. Pfad in Word einfügen
Set Temp_Field = ActiveDocument.Fields.Add(Range:=Selection.Range, _
Type:=wdFieldLink, Text:=String_Link, PreserveFormatting:=False)
Im Folgenden bin ich mal ein bisschen verrückt gewesen und habe mal alle 144 Visio-Zeichnungen importieren wollen.
....was soll ich sagen, es ging nicht.
Bei meiner Analyse zu dem Problem bin ich darauf gestoßen, dass mein Makro zu jeder Visio-Zeichnung einen neuen Prozess im TASK-Manager öffnet aber nicht wieder schließt
Bei ca. 50 "VISIO.exe *32" Prozessen steigt mein Programm dann aus.
Meine LINK-Variable habe ich so definiert:
Dim Temp_Field As Object
Meine Finale frage ist jetzt:
Habt ihr einen Ansatz, wie ich nach dem Einfügen aller Visio-Seiten eines Visio-Dokumentes den hierfür geöffneten Prozess beenden kann?
(Am besten wäre es ohne direkt auf den Windows-Prozess schreiben)...ist aber auch egal...Hauptsache es klappt.
Versucht habe ich es hiermit:
With Temp_Field
.Quit
End With
Set Temp_Field = Nothing
...leider ohne Erfolg...bei ".Quit" bekomme ich die Meldung, dass diese Anweisung nicht unterstützt wird.
.Unlink-Methode ist auch nicht die Lösung, da die Feldfunktionen erhalten bleiben sollen.
Ich hoffe ich konnte mein Problem einigermaßen klar darlegen und bin in froher Erwartung toller Vorschläge.
Liebe Grüße aus Hamburg
Andreas
|