久々にCATIAです。
DrawのテーブルをCSVファイルとしてエクスポートするを、以前は作って
いたのですが、あまりに使わないので紛失しました・・・。
仕方が無い為、急遽作成。
こんな感じのテーブルが有ります。
これを、こんな感じで
実際は、Excelに取り込みますが・・・。
'vba ExportTable using-'KCL0.0.12' 'テーブルをCSVでエクスポート Option Explicit Sub CATMain() 'ドキュメントのチェック If Not KCL.CanExecute("DrawingDocument") Then Exit Sub 'ドキュメント Dim doc As DrawingDocument Set doc = CATIA.ActiveDocument ' テーブル選択 Dim msg As String msg = "エクスポートするテーブルを選択して下さい : ESCキー 終了" Dim table As DrawingTable Set table = KCL.SelectItem(msg, "DrawingTable") If KCL.IsNothing(table) Then Exit Sub ' テーブル情報取得 Dim data As String data = get_table_data(table) ' パス取得 msg = "CSVファイル保存" Dim path As String path = get_path(msg) If path = vbNullString Then Exit Sub ' 書き出し KCL.WriteFile path, data End Sub Private Function get_path( _ ByVal msg As String) _ As String Dim suffix As String suffix = "*.csv" get_path = CATIA.FileSelectionBox( _ msg, _ suffix, _ CatFileSelectionModeSave _ ) End Function Private Function get_table_data( _ ByVal table As DrawingTable) _ As String Dim maxRow As Long maxRow = table.NumberOfRows Dim maxColumns As Long maxColumns = table.NumberOfColumns Dim data() As Variant ReDim data(maxRow - 1) Dim buf() As Variant ReDim buf(maxColumns - 1) Dim rowData As Variant Dim idx As Long Dim i As Long, j As Long For i = 1 To maxRow For j = 1 To maxColumns buf(j - 1) = table.GetCellString(i, j) Next data(i - 1) = Join(buf, ",") Next get_table_data = Join(data, vbCrLf) End Function
本当に急いでいたので、こちらの"KCL"と言う自作ライブラリを使用しています。
GitHub - kantoku-code/KCL: CATIA Library for personal CATVBA (CATIA macro)