作成したクラスを別のクラスのプロパティとして使用できません。1 つは Vertex と呼ばれ、もう 1 つは Edge と呼ばれます。Edge の 2 つのプロパティである Parent と Child は Vertex オブジェクトです。ここに私がそれらを使用しようとする方法があります。
Option Explicit
Public Sub OrgChart()
Dim Vertices As Collection
Dim Edges As Collection
Dim vParent As Vertex
Dim vChild As Vertex
Dim eEdge As Edge
Dim rEdgeRow As Range
Set rEdgeRow = ActiveSheet.Range("A1:C1")
Do While Len(rEdgeRow(1, 1).Value) > 0
Set vChild = New Vertex
Set vParent = New Vertex
Set eEdge = New Edge
vChild.Name = rEdgeRow(1, 1).Value
vChild.Dummy = False
vParent.Name = rEdgeRow(2, 1).Value
vParent.Dummy = False
eEdge.Parent = vParent
eEdge.Child = vChild
eEdge.Percent = rEdgeRow(3, 1).Value
Set rEdgeRow = rEdgeRow.Offset(1, 0)
Loop
End Sub
これを実行すると、エラーが発生します。
「実行時エラー '91': オブジェクト変数または With ブロック変数が設定されていません」
デバッガーは、行で中断していることを示します
eEdge.Parent = vParent
問題は eEdge.Parent が初期化されていないことに関係していると思いますが、使用してみました
Set eEdge.Parent = New Vertex
同じ問題が発生しました。
それが役立つ場合は、クラス コードも投稿できますが、これらはかなり単純で、Property Get および Property Let 関数のみを含んでいます。
これを投稿するときに何か間違ったことをしたことをお詫びします。SOに何かを投稿するのはこれが初めてです。
ありがとう、エリック