Sub RepOcc()
' 開いているアセンブリを定義
Dim oDoc As AssemblyDocument
Set oDoc = ThisApplication.ActiveDocument
' オカレンス(コンポーネント)にアクセスする為の定義
Dim oCompOccs As ComponentOccurrences
Set oCompOccs = oDoc.ComponentDefinition.Occurrences
' 最初のオカレンスのフルパスを格納
Dim FirstOccName As String
' 条件分岐用
Dim bFirstOcc As Boolean
bFirstOcc = False
Dim oCompOcc As ComponentOccurrence
Dim oCompOccDoc As Document
' アセンブリ内の全てのオカレンスをoCompOccに一時的に代入し
' 最初のオカレンスと違うものを全て置換する
For Each oCompOcc In oCompOccs
' オカレンスからは直接ファイルの内容に辿り着けないので
' Documentとして取得する
Set oCompOccDoc = oCompOcc.Definition.Document
' 最初のオカレンスのフルパスを取得
If bFirstOcc = False Then
FirstOccName = oCompOccDoc.FullFileName
bFirstOcc = True
End If
' 実際の置換作業
If oCompOccDoc.FullFileName <> FirstOccName Then
Call oCompOcc.Replace(FirstOccName, False)
End If
Next
End Sub