C#ATIA

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

CATIAな空のコレクションオブジェクトのForEach

CATIA V5です。
知らなかったのですが、表題のループはエラーになるんですね。

新規のDrawingSheetを作って(テキストが1個も無い状態)
DrawingTextsをForEachするとエラーになる と言うサンプルです。

'vba エラーになります

Option Explicit

Sub CATMain()

    '空のリストのFor Each
    Dim lst As Collection
    Set lst = New Collection

'    lst.Add "hoge"
'    lst.Remove 1
    
    Dim dmy As Variant
    For Each dmy In lst
        '空でも大丈夫
    Next


    '空のCATIAのコレクションのFor Each
    Dim dDoc As DrawingDocument
    Set dDoc = CATIA.ActiveDocument

    Dim texts As DrawingTexts
    Set texts = dDoc.sheets.ActiveSheet.views.Item(1).texts

    Dim text As DrawingText
    For Each text In texts
        '空だとエラー
    Next
    
End Sub

そうなんだ、countチェックするとかしなきゃならないのか。
VBAのコレクションは空でも大丈夫。pythonのリストも大丈夫。

・・・面倒だな。今まで試してなかったんだな。