CATIAです。
"図面のパラメータをファイルに書き出す" と言うのは、ここの事かな?
と解釈しました。
こんな感じで作成しました。
'vba 図面のパラメータをファイルに書き出し Option Explicit Sub CATMain() '書き出し先のファイルパス Dim path As String path = "C:\temp\sample.csv" 'ドキュメント取得 Dim drawDoc As DrawingDocument Set drawDoc = CATIA.ActiveDocument 'Treeに表示されているパラメータ取得 Dim prms As Collection Set prms = getUserParamLst(drawDoc) If prms.Count < 1 Then MsgBox "書き出すパラメータがありません" Exit Sub End If 'パラメータの名前と値を取得 Dim infos As Variant infos = getParams_Name_Value_list(prms, "a") 'ファイルに書き出し WriteFile path, Join(infos, vbCrLf) 'おしまい MsgBox "Done" End Sub ' ファイルに書き出し Private Sub WriteFile( _ ByVal path As String, _ ByVal txt As String _ ) Dim fso As Object Set fso = CreateObject("Scripting.FileSystemObject") Call fso.OpenTextFile(path, 2, True).Write(txt) End Sub ' パラメータの名前と値を取得 ' GetNameToUseInRelationメソッド重要 ' return - array Private Function getParams_Name_Value_list( _ ByVal prmlst As Collection, _ ByVal docName As String _ ) As Variant Dim infos() As Variant ReDim infos(prmlst.Count - 1) Dim prms As Parameters Dim prm As Parameter Dim idx As Long idx = 0 For Each prm In prmlst Set prms = prm.Parent infos(idx) = _ prms.GetNameToUseInRelation(prm) & _ "," & _ prm.Value idx = idx + 1 Next getParams_Name_Value_list = infos End Function ' Treeに表示されているパラメータ取得 Private Function getUserParamLst( _ ByVal drawDoc As DrawingDocument _ ) As Collection Dim prms As Collection Set prms = New Collection Dim a Dim prm As Parameter For Each prm In drawDoc.Parameters If prm.UserAccessMode = 2 Then prms.Add prm End If Next Set getUserParamLst = prms End Function
指定したファイルパスにcsvファイルが出来ると思います。
excelで開くと
パラメータ名に「'」が入ってしましますが、画面の表示と同じです。
これの有り無しは "ツール" - "オプション" の何処かに設定が
あったはず・・・。
処理的に削除してしまっても良い気もしますが。