C#ATIA

↑タイトル詐欺 主にCATIA V5 の VBA(最近はPMillマクロとFusion360APIが多い)

Drawのテーブルに最後の列を追加

Drawの穴寸法/座標寸法テーブルで、最後の列を増やしたい事が
結構あるのですが、恐らく手動では出来ないような気がしてます。
手動で出来ます(コメント部で、mineさんに教えて頂きました)
f:id:kandennti:20171023192119p:plain
(方法知っている方いらっしゃいましたら、教えて頂けると助かります)

仕方ないので、マクロを作成しました。

'vba DrawTable_Add_LastColumn ver0.0.1  using-'KCL0.0.12'  by Kantoku

Option Explicit

Sub CATMain()

    'ドキュメントのチェック
    If Not CanExecute("DrawingDocument") Then Exit Sub

    'テーブル選択
    Dim Msg As String
    Msg = "最後に列を追加するテーブルを選択 // [Esc]=Cancel"
    
    Dim Tbl As DrawingTable
    Set Tbl = KCL.SelectItem(Msg, "DrawingTable")
    If Tbl Is Nothing Then Exit Sub
    
    '一列追加
    Dim CntCol As Long: CntCol = Tbl.NumberOfColumns
    Call Tbl.AddColumn(CntCol)
    
    'コピー
    Dim CntRow As Long: CntRow = Tbl.NumberOfRows
    Dim Txt As String, i As Long
    
    For i = 1 To CntRow
        Txt = Tbl.GetCellString(i, CntCol + 1)
        Call Tbl.SetCellString(i, CntCol, Txt)
        Call Tbl.SetCellString(i, CntCol + 1, "")
    Next
End Sub

最後から2番目の位置に列を追加し、最後の列をコピーしつつ
最後の列を空欄にしています。(vbNullStringではNG)

コード的にはくだらないのですが、これを手動でやると本当に
手間がかかるんですよね。Excelの様に複数のセルをまとめて
コピー出来ないですし。

・・・最後に追加出来ない! ってMS製品でも多いですよね?