Veranderende Wat wordt geplakt in een dialoogvenster

Ihor wil het invoegen van een URL hyperlink te automatiseren in een Word-document. De URL zal worden geassocieerd met een zin, zoals "klik hier". Hij eerste exemplaren van de URL van een specifieke website naar het Klembord. Hij neemt vervolgens een macro waarmee u het dialoogvenster Hyperlink invoegen (Ctrl + K) en pasta's opent in het juiste veld de URL van het klembord (Ctrl + V) en klikt op OK. Als hij rent later de macro, het geeft hem dezelfde URL elke keer als hij runt. Ihor wil een andere URL te plakken in het dialoogvenster elke keer dat hij werkt met de macro, maar lijkt te ontbreken hoe dat te doen.

Wanneer u een macro opneemt, is het heel letterlijk over wat het doet-het registreert precies de stappen die je neemt, inclusief hoe dialoogvensters worden ingevuld. De oplossing is niet om te zoeken naar manieren om nieuwe informatie te plakken in een dialoogvenster, maar om te kijken hoe je jouw eigen hyperlink. Hier is wat zou worden opgenomen als u een hyperlink met de macro recorder running ingevoegd:

Sub Macro1 ()
'
'Macro1 Macro
'
'
ActiveDocument.Hyperlinks.Add Anker: = Selection.Range, Adres: = _
"Http://www.tips.net/", sub-adres: = "", ScreenTip: = "", TextToDisplay: = _
"Klik hier"
End Sub

Wat Ihor wil om te veranderen is de doelstelling voor de hyperlink, die is toegewezen aan de eigenschap Adres; dit is wat er wordt "geplakt" in het adresveld van het dialoogvenster. Om dit te doen, kunt u uw macro veranderen op een eenvoudige manier, zoals deze:

Sub Macro2 ()
Dim Stemp als Koord
Stemp = "http://www.tips.net/"

ActiveDocument.Hyperlinks.Add Anker: = Selection.Range, Adres: = Stemp, _
Subadres: = "", ScreenTip: = "", TextToDisplay: = "klik hier"
End Sub

Alles wat is gedaan in dit voorbeeld verwijder enkele onnodige reacties aan het begin van de macro en een tekenreeksvariabele, STEMP, dat bevat nu de doelstelling voor de hyperlink. Deze variabele wordt vervolgens naar de woning adres toegewezen. Om het doel te veranderen, dan dient men alleen de waarde van de STEMP wijzigen variabele en er zijn een aantal manieren waarop dit kan worden gedaan.

Een manier is om een ​​InputBox functie gebruiken om uw eigen dialoogvenster te creëren, op deze manier:

Sub Macro3 ()
Dim Stemp als Koord
Dim sPrompt als Koord
Dim sTitle als Koord

sPrompt = "Voer de doelstelling voor de hyperlink"
sTitle = "hyperlinkdoel"
Stemp = "http://www.tips.net/"
Stemp = InputBox (sPrompt, sTitle, Stemp)

ActiveDocument.Hyperlinks.Add Anker: = Selection.Range, Adres: = Stemp, _
Subadres: = "", ScreenTip: = "", TextToDisplay: = "klik hier"
End Sub

Natuurlijk, Ihor vermeld dat in zijn proces dat hij eigenlijk kopieert de URL naar het Klembord. Als dat het proces dat hij wil gebruiken, is het mogelijk de URL toegewezen op basis van wat in het klembord macro wordt uitgevoerd. Hier is hoe je dat zou doen:

Sub Macro4 ()
Dim Stemp als Koord
Dim MyData Zoals DataObject
Stel MyData = Nieuwe DataObject

MyData.GetFromClipboard
Stemp = Trim (MyData.GetText (1))

ActiveDocument.Hyperlinks.Add Anker: = Selection.Range, Adres: = Stemp, _
Subadres: = "", ScreenTip: = "", TextToDisplay: = "klik hier"
End Sub

Met het oog op het Klembord op deze manier te gebruiken, moet u het opzetten van een referentie voor de Microsoft-formulieren in de VBA-editor. (Kies Verwijzingen in het menu Extra in de Editor.)

Let op, als goed, dat al deze voorbeelden aan te passen wat is toegewezen aan de eigenschap adres van uw nieuwe hyperlink. Er is een goede kans dat je de macro wilt veranderen aan te passen wat wordt toegewezen aan de eigenschap TextToDisplay, als goed.

WordTips is uw bron voor kosteneffectieve Microsoft Word training. (Microsoft Word is de meest populaire tekstverwerker in de wereld.) Deze tip (138) van toepassing op Microsoft Word 97, 2000, 2002 en 2003. U kunt een versie van deze tip voor de ribbon-interface van het Woord (Word 2007 en later) hier: Veranderende Wat wordt geplakt in een dialoogvenster.