vbscript ms word查找并用超链接替换文本

时间:2016-02-02 12:28:10

标签: vbscript hyperlink ms-word

我有一些vbscript使用find和replace来填充签名模板。它运作良好但我希望一些文本显示为超链接。我已经尝试了各种各样的东西,但是我真的不知道我在做什么,所以对任何指针都会感激不尽。

Sub SearchAndRep(searchTerm, replaceTerm, WordApp)
WordApp.Selection.GoTo 1
Set objSelection = objWord.Selection

objSelection.Find.Text = searchTerm
objSelection.Find.Replacement.Text = replaceTerm & ""
objSelection.Find.Forward = TRUE
objSelection.Find.MatchWholeWord = TRUE

If objSelection.Find.Execute Then

  Select Case searchTerm
    Case "%ScannedSignature%"

      WordApp.Selection.TypeBackspace()

  PictureFile="\\bb01.com\bwbdfs01\users\Signatures\scanned\" & replaceTerm
  Set fs = CreateObject("Scripting.FileSystemObject")

  If fs.FileExists(PictureFile) Then
    Set objShape = objSelection.InlineShapes.AddPicture(PictureFile)
  Else
    WordApp.Selection.MoveEnd
    WordApp.Selection.TypeBackspace()
    wscript.echo("Could not find scanned logo")
    wscript.echo(PictureFile)
  End If
  Set fs = Nothing

Case "%LinkedIn%",
  'This is where my code will go to insert a hyperlink

Case "%TelephoneLine3%", "%TelephoneLine4%"

  If replaceTerm & "" <> "" Then
    objSelection.Find.Execute,,,,,,,,,,2
  Else
    WordApp.Selection.TypeBackspace()
    WordApp.Selection.TypeBackspace()
    WordApp.Selection.TypeBackspace()
  End If

Case Else

  If replaceTerm & "" <> "" Then
    objSelection.Find.Execute,,,,,,,,,,2
  Else
    WordApp.Selection.TypeBackspace()
    WordApp.Selection.TypeBackspace()
  End If

End Select

Else
  'Do nothing
 End If
End Sub

1 个答案:

答案 0 :(得分:0)

在Word中,超链接由域代码管理。如果在文档中按Alt + F9,则在域代码和字段结果视图之间切换。手动将超链接插入文档,然后查看字段代码,只是为了了解您正在处理的内容。

在对象模型中,字段代码是&#34;抽象的&#34;为了让您不必担心字段结构,只需使用IQueryable<Person>方法即可。您没有向我们展示您在代码中使用的文档的对象变量,因此我将假设objDocument ...

Document.Hyperlinks.Add

是最低限度。子地址还有其他参数,Screentip,TextToDisplay和Target - 有关详细信息,请在语言参考中查找。