Word 2007 Makro mit Link aus der Zwischenablage

Ich möchte einen Makro programmieren, der ein Wort einfügt, dieses mit einem Internet-Link versieht und dort als Zieladresse den Inhalt der Zwischenablage einfügt.
Ist mir bis jetzt nicht gelungen. Entweder wird ein konkreter Link eingefügt (immer derselbe). Oder wenn ich die Adresse im Visual Basic ändere und z. B. durch Paste ersetze, gibt’s Syntaxfehler.
Weiß jemand Rat?

Gruß v. Jens

Ich möchte einen Makro programmieren, der ein Wort einfügt,
dieses mit einem Internet-Link versieht und dort als
Zieladresse den Inhalt der Zwischenablage einfügt.
Ist mir bis jetzt nicht gelungen. Entweder wird ein konkreter
Link eingefügt (immer derselbe). Oder wenn ich die Adresse im
Visual Basic ändere und z. B. durch Paste ersetze, gibt’s
Syntaxfehler.

Hi Jens,

klarer Fall, der Syntaxfehler liegt an Codezeile 3, dort ist das zweite Wort falsch geschrieben, typischer Fehler.

Gruß
Reinhard

klarer Fall, der Syntaxfehler liegt an Codezeile 3, dort ist
das zweite Wort falsch geschrieben, typischer Fehler.

Welches wort?

Mein makro lautet jetzt:

Selection.TypeText Text:=" - Wikip."
Selection.MoveLeft Unit:=wdWord, Count:=2, Extend:=wdExtend
ActiveDocument.Hyperlinks.Add Anchor:=Selection.Range, Address:=„http://de.wikipedia.org/wiki/Janusz_Korczak“, SubAddress:="", ScreenTip:= _
„“, TextToDisplay:=„Wikip.“
Selection.TypeText Text:=" "

Ich möchte, dass das makro statt der dort angegebenen internet-adresse den inhalt der zwischenablage einfügt (d.h. eine aktuelle adresse, die ich vorher in die zwischenablage kopiert habe).

Geht das irgendwie?

Ein irrtum, pardon!
Es handelt sich bei meinem programm um Word 2002.

Hi Jens,

klarer Fall, der Syntaxfehler liegt an Codezeile 3, dort ist
das zweite Wort falsch geschrieben, typischer Fehler.

Welches wort?

ich wollte dich nur sanft darauf hinweisen daß wir ja wohl keinen Syntaxfehler finden können wenn wir den Code nicht sehen :smile:

Ich möchte, dass das makro statt der dort angegebenen
internet-adresse den inhalt der zwischenablage einfügt (d.h.
eine aktuelle adresse, die ich vorher in die zwischenablage
kopiert habe).

Sub Einfüg()
' Über Extras--Verweis muß für Dataobject der Verweis auf
' MS Forms 2.0 Object Library gesetzt sein
Dim myData As New DataObject
myData.GetFromClipboard
Selection.TypeText Text:=" - Wikip."
Selection.MoveLeft Unit:=wdWord, Count:=2, Extend:=wdExtend
ActiveDocument.Hyperlinks.Add Anchor:=Selection.Range, Address:=myData.GetText(1), SubAddress:="", ScreenTip:= \_
"", TextToDisplay:="Wikip."
Selection.TypeText Text:=" "
End Sub

Gruß
Reinhard

ich wollte dich nur sanft darauf hinweisen daß wir ja wohl
keinen Syntaxfehler finden können wenn wir den Code nicht
sehen :smile:

OK, die methode hat anscheinend funktioniert :wink:

Ich hatte mich vertan, es handelt sich um Word 2002. Vielleicht hängt damit zusammen, dass es so noch nicht klappt.
Die

-Tags werden bei mir nicht akzeptiert.
Unter "Verweise" finde ich weder DataObject noch MS Forms noch Microsoft Forms. (Hat lange genug gedauert, bis ich überhaupt den Menüpunkt gefunden habe.)

Wenn ich das Makro ohne 

    -Tags und ohne die DataObject-Einstellung laufen lasse, kommt folgende Fehlermeldung:
    
    Fehler beim Kompilieren:
    Benutzerdefinierter Typ nicht definiert
    
    Markiert ist im Debugger:
    myData As New DataObject
    
    Gruß von Jens

Hallo Jens,

ich wollte dich nur sanft darauf hinweisen daß wir ja wohl
keinen Syntaxfehler finden können wenn wir den Code nicht
sehen :smile:

OK, die methode hat anscheinend funktioniert :wink:

jepp:smile:

Die

-Tags werden bei mir nicht akzeptiert.

Mit den Pre-Tags umschließt man Code um die Einrückungen beizubehalten bei der Darstellung hier bei w-w-w,hat mit dem eigentlichen Code nichts zu tun.

Unter „Verweise“ finde ich weder DataObject noch MS Forms noch
Microsoft Forms. (Hat lange genug gedauert, bis ich überhaupt
den Menüpunkt gefunden habe.)

Okay, Microsoft und nicht MS, Rest stimmt aber.
Der müßte da sein, gehe mal im Editor auf Einfügen–Userform und füge eine UF ein, ist der Verweis nun angehakt?
Wie auch immer,danach dann Rechtsklick auf die UF und Entefernen wählen , ohne zu exportieren.

Wenn nicht, suche mal auf deinem Rechner nach einer Datei fm20.dll, schau zuerst ob sie in C:\windows\system32 steht.
Wenn sie auf dem Rechner nicht ist, auf der Office-Cd, Win-Cd.

Dann läßt du sie im VB-Editor finden durch Extras–Verweise–Durchsuchen…

Fehler beim Kompilieren:
Benutzerdefinierter Typ nicht definiert
Markiert ist im Debugger:
myData As New DataObject

Ja, Dataobject wird im Verweis definiert.

Gruß
Reinhard

1 „Gefällt mir“

Hallo Reinhard, ich komme im moment nicht dazu, das auszuprobieren. Erst mal heißen dank für deine intensiven bemühungen. Ich hoffe, es klappt so wie beschrieben.
Gruß von Jens

So, jetzt hab ich es ausprobiert. Es funktioniert hervorragend! Heißen dank! Gruß von Jens