マクロを使用してPublisherでOLEObjectsへのリンクを更新するプロセスを自動化する方法はありますか?私はこれを行う方法(主にPowerPointで)に関する議論をいくつか見つけましたが、2010 Publisherドキュメントにこれを適用しようとすると、いくつかの問題が発生しています。Publisherでvbaを使用してファイルへのリンクを更新する
最初に、メッセージボックスに.LinkFormat.SourceFullNameを表示すると、Excelワークシートまたはオブジェクトへの参照が、メニューオプションを使用してファイルへのリンクを編集するときにダイアログボックスで表示されるように表示されません。
第2に、.SourceFullNameとして表示されるファイル名を変更しようとすると、読み取り専用プロパティに割り当てることができないというコンパイルエラーメッセージが表示されます。
これについてのお手伝いがあれば幸いです。
次のコードを適用すると、新しいリンク名を割り当てるときにコンパイルエラーが発生します。 .SourceFullName = newlinkname行をコメントアウトすると、編集とOpenVerbsが利用可能であることを示すメッセージボックスが表示され、表示されるリンク名には「C:\ Desktop \ Projects \ old.xlsx」のみが含まれます。リボンを使用して[ファイルへのリンクを編集]コマンドを使用すると、オブジェクトにリンクされていると表示されているワークシートとチャートの参照は表示されません。そこでは、ダイアログボックスが実際に示しています!
old.xlsx H_A_CurrStat_byYrDxBar [old.xlsx] H_A_CurrStat_byYrDxBarチャート1
私はnew.xlsxするold.xlsxからソース名を変更するマクロを使用すると、リンクされたオブジェクトを更新します。
Option Explicit
Sub links()
Dim linkname As String
Dim newlinkname As String
Dim shpShape As Shape
Dim intCount As Integer
newlinkname = "C:\Desktop\Projects\new.xlsx"
For Each shpShape In ActiveDocument.Pages(1).Shapes
shpShape.OLEFormat.Activate
With shpShape.OLEFormat
For intCount = 1 To .ObjectVerbs.count
MsgBox .ObjectVerbs(intCount)
Next
End With
With shpShape.LinkFormat
linkname = .SourceFullName
'.SourceFullName = newlinkname
MsgBox linkname
End With
shpShape.LinkFormat.Update
Next
End Sub