2

VBA ツリービュー ユーザーフォームで、ノードがキーまたはその他で存在するかどうかを確認するにはどうすればよいですか?

ノードが存在するかどうかを確認する良い方法はありますか?

Public Sub Test
  Dim thisNode as New Node

  ' Determine if node exists
  If tvNodeExample.Nodes.Item("TestKey") is Nothing Then
    msgbox "Node Does Not Exist"
  Else
    Set thisNode = tvNodeExample.Nodes.Item("TestKey")
  End If
End Sub
4

1 に答える 1

3

多くの検索を行った結果、実装は好きではありませんが、許容できる答えであることがわかりました。キーに基づいてノード オブジェクトを設定するときに、そのノードが存在しない場合は、エラー番号 35601 が表示されます。したがって、次のコードは機能します。

Public Sub Test()
  Dim thisNode as Node

  ' Determine if node exists

  ' Disable error handling temporairily
  On Error Resume Next
  Set thisNode = tvNodeExample.Nodes.Item("testKey")
  If Err.Number = 35601 Then

    On Error Goto ErrorHandler      

    ' Create the node
    Set thisNode = tvNodeExample.Add(, tvwFirst, "testKey", "test Description")
  End If

  On Error Goto ErrorHandler

  ' Do Stuff      

End Sub
于 2013-08-26T13:33:04.537 に答える