Word 文書に Excel への次のリンクがあります:
問題は、変更が行われると、参照されている 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 ライブラリを探し、ボックスにチェックを入れます (これで、参照リストの一番上に表示されます)。