1

VBA、Excelに次のコードがあります。まず、クラス「List」を作成しました。

Public next as List
Public val as Integer

そして次はこんな風にしたい

Sub Test()
    Dim ls as List
    Set ls = new List

     Set_val ls.next, 8
     Debug.Print (ls.next is Nothing) 'True - why?
     Debug.Print ls.next.val 'Error
end sub


Sub Set_val(l as List, v as Integer)
     Set l = new List
     l.val = v
end sub

しかし、それは機能せず、「ブロック変数が設定されていないオブジェクトまたは変数」というエラーメッセージが表示されます。適切に行う方法を知っていますか?

4

2 に答える 2

0

Public next As List使えないのでNext使えません。

の値を変更することはありませんnext。関数はval代わりに の値を変更します。

あなたが何をしようとしているのかわかりませんが、これは役立つはずです:

Sub Test()
    Dim ls As List
    Set ls = New List

     Set_val ls, 8
     Debug.Print (ls.next0 Is Nothing) 'True - why?
     Debug.Print ls.next0.val 'Error
End Sub

Sub Set_val(l As List, v As Integer)
     Set l.next0 = New List
     l.val = v
End Sub
于 2013-07-20T21:17:03.113 に答える