読者です 読者をやめる 読者になる 読者になる

C#ATIA

↑タイトル詐欺 主にCATIA V5 の VBA

DrawingTableに文字を入力する

メールで御質問頂いたのですが、完成した形が良くわからなかったので・・。

文面からすると、こんなコードかな? と思いました。

'vba
Sub CATMain()
    Dim DrawDoc As DrawingDocument
    Set DrawDoc = CATIA.ActiveDocument
    
    Dim DrawTable As DrawingTable
    Set DrawTable = DrawDoc.Sheets.ActiveSheet.Views.ActiveView.Tables.Item(1)
    cnt = 5
    
    '↓ここから
    Dim iString As String
    iString = " AAA" & vbCrLf
    For I = 1 To cnt
        iString = iString & CStr(I) & vbCrLf
    Next
    Call DrawTable.SetCellString(2, 2, iString)
End Sub

結果はこんな感じです。
f:id:kandennti:20160115130209p:plain




何となく変な感じがしたので、こんな事をやりたいのかな?
と予想したコードです。

'vba
Sub CATMain()
    Dim DrawDoc As DrawingDocument
    Set DrawDoc = CATIA.ActiveDocument
    
    Dim DrawTable As DrawingTable
    Set DrawTable = DrawDoc.Sheets.ActiveSheet.Views.ActiveView.Tables.Item(1)
    
    'Columns
    For I = 1 To DrawTable.NumberOfColumns - 1
        Call DrawTable.SetCellString(1, I + 1, String(3, 64 + I))
    Next
    
    'Rows
    For I = 1 To DrawTable.NumberOfRows - 1
        Call DrawTable.SetCellString(I + 1, 1, CStr(I))
    Next
End Sub

結果はこちら
f:id:kandennti:20160115130216p:plain

ん~イメージできない・・・。

'vba
Sub CATMain()
    Dim DrawDoc As DrawingDocument
    Set DrawDoc = CATIA.ActiveDocument
    
    Dim DrawTable As DrawingTable
    Set DrawTable = DrawDoc.Sheets.ActiveSheet.Views.ActiveView.Tables.Item(1)
    cnt = 5
    
    '↓ここから
    Dim iString As String, txt As String
    iString = " AAA"
    txt = ""
    For I = 1 To cnt
        txt = txt + iString & CStr(I) & vbCrLf
    Next
    Call DrawTable.SetCellString(2, 2, txt)
End Sub

結果はこんな感じ
f:id:kandennti:20160120122808p:plain