Thema Datum  Von Nutzer Rating
Antwort
Rot VBA Fields.Add(Type:=wdFieldLink)
17.06.2016 12:14:31 Andreas
NotSolved
17.06.2016 13:10:29 Gast86328
NotSolved
20.06.2016 15:07:25 Gast25417
Solved

Ansicht des Beitrags:
Von:
Andreas
Datum:
17.06.2016 12:14:31
Views:
1518
Rating: Antwort:
  Ja
Thema:
VBA Fields.Add(Type:=wdFieldLink)

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


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
Rot VBA Fields.Add(Type:=wdFieldLink)
17.06.2016 12:14:31 Andreas
NotSolved
17.06.2016 13:10:29 Gast86328
NotSolved
20.06.2016 15:07:25 Gast25417
Solved