0
IncludePicture
フィールドで追加された画像にハイパーリンクを追加しようとしています。リンクされた画像にハイパーリンクを追加する
たとえば、これはイメージです:
{ IncludePicture "C:\\Test\\Image 1.png" \d }
だから、それはそれにハイパーリンクを追加する必要があります。その後
C:\\Test\\Image 1.png
、私はマウスを使って文書に私の画像をクリックすることができますそれはファイルマネージャで開かれます。
ここにコードがあります。何らかの理由で、正常に動作しません。どのように修正する必要がありますか?
Sub AddHyperlinksToImages()
On Error Resume Next
Application.ScreenUpdating = False
Dim iShp As InlineShape
For Each iShp In ActiveDocument.InlineShapes
iShp.Hyperlink.Address = iShp.LinkFormat.SourceFullName 'Doesn't work
'Just for testing
'fullPath = iShp.LinkFormat.SourceFullName
'MsgBox fullPath
Next
Application.ScreenUpdating = True
End Sub
ありがとうございました。部分的に機能します。現在、私はそれをいくらか修正しようとしています。いくつかの問題があります:1)ドキュメントを開いてマクロを起動すると、エラーが表示されます。このエラーを回避するには、イメージを更新する必要があります。つまり、まずドキュメントを開き、次にCtrl-Aを押し、次にF9を押してマクロを起動します。この方法では、スクリプトはエラーなしで起動されます。 2)ハイパーリンクは少し壊れています。2.1)パスに空白が含まれているといくつかの文字が切り詰められます。2.2)何らかの理由で、\\のパスが\\\\になります。 [ここにそれを示すイメージがあります](https://i.imgur.com/aLVllJy.png)。 – james
私が理解しているように、スペースに関する問題は、 'FilePath = Split(Trim(Replace .Code、"、 "%20")))(1) 'を使って修正することができます。しかし、それは動作しません。 'FilePath = Split(Trim(Replace、.Code、" img "、" img%20 ")))(1)'のようなものがうまく動作するので、少し奇妙です。 – james
1。フィールドを更新するためのコードを追加することができます。私はそれが 'ActiveDocument.Fields.Update'のようなもので、プロシージャの始めに追加されるかもしれないと思います。 – Variatus