Word VBA でリンク パスを更新する

Word VBA でリンク パスを更新する

Word 文書に Excel への次のリンクがあります:

http://i12.photobucket.com/albums/a212/hypersonik/links_zpsy9hghggl.png

問題は、変更が行われると、参照されている Excel シートと Word 文書の両方の文書バージョンが変更されることです。

そのため、リンク パスを更新する必要があります。

私はこれを VBA マクロで実行したいのですが、これまでのところ次のようになっています。

Sub Replace_Link()
Dim iShp As InlineShape
Dim exWb As Excel.Workbook
For Each iShp In ActiveDocument.InlineShapes
With ActiveDocument
        Set exWb = objExcel.Workbooks.Open(.Path & "\" & Replace$(.Name, ".docm", ".xlsm"))
    End With
  With iShp
     If Not .OLEFormat Is Nothing Then
      If Split(.OLEFormat.ClassType)(0) = "Excel" Then
        .LinkFormat.SourcePath = exWb
  End If
End If
  End With
Next
End Sub

「Dim exWb As Excel.Workbook」に対して「ユーザー定義型が定義されていません」というエラーが表示されます。また、「inlineShape」コマンドでは更新できない「ワークシート」タイプのリンクを含めるには、さらにコードが必要になることは間違いありません。

誰か助けていただける方はいらっしゃいますか? TIA

答え1

VBA プロジェクトに「Microsoft Excel 14.0 オブジェクト ライブラリ」への参照を追加しましたか? (注: 14.0 は、インストールされている Excel のバージョンによって異なる場合があります)

VBA ウィンドウの [ツール] メニューから [参照設定] を選択して、[参照設定 - プロジェクト] ダイアログを表示します。次に、リストを下にスクロールして Microsoft Excel ライブラリを探し、ボックスにチェックを入れます (これで、参照リストの一番上に表示されます)。

関連情報