C#ATIA

↑タイトル詐欺 主にFusion360API 偶にCATIA V5 VBA(絶賛ネタ切れ中)

ファイル間リンクの取得7

こちらの続きです。
ファイル間リンクの取得6 - C#ATIA


説明不足にも程があるので、追加します。

まず肝心な事を忘れていました。
実行ファイル「catv5_GetLinkReport.exe」は「.NET Framework4 ClientProfile」
以上がインストールされている必要があります。
恐らくCATIAが動く環境であれば大丈夫かと思います。
又、32bitでは動かない可能性が高いのですが、当方には
確認する為の環境がありません。

後は、昨日のサンプルコードの補足です。

'vba
'リンク情報の取得
Private Function GetLinkReport() As Variant
    Dim GetLinkClass As GetLinkReportSupport
    Set GetLinkClass = New GetLinkReportSupport'①
    GetLinkReport = GetLinkClass.GetLinkReport'②
    Set GetLinkClass = Nothing
End Function

①部分で、先日のサポートクラスのインスタンスを作成し
②部分で、サポートクラス側のGetLinkReport関数を呼び出してます。
(同じ関数名ですね・・・センス無い)
極端な話、この2行だけでサポートクラス側で勝手に処理します。

戻り値はジャグ配列です。 ブレークポイント入れて見ると
このような感じです。
f:id:kandennti:20160129124450p:plain
1個目の "元エレメント" を取得したければ、

'VBA
MsgBox GetLinkReport(0)(0)

こんな感じです。

'VBA これはNG
MsgBox GetLinkReport(0,0)

このような書き方では無いので、ご注意下さい。