回答編集履歴

1

最終行対応版

2018/05/17 01:46

投稿

ttyp03
ttyp03

スコア16998

test CHANGED
@@ -77,3 +77,71 @@
77
77
 
78
78
 
79
79
  ```
80
+
81
+
82
+
83
+ 最終行の処理が足りていませんでしたので修正してみました。
84
+
85
+ 処理済みかどうかの判定をフラグに変更しました。
86
+
87
+ なんか無駄が多いですが、基本的な作りとしてはこんな感じかと思います。
88
+
89
+ 配列に代入する3行を関数化したりすれば多少は見やすくなりますかね。
90
+
91
+ そこらへんはご自分で調整願います。
92
+
93
+ ```VBA
94
+
95
+ Sub Add(ByRef tree() As String, ByRef extree() As String, depth As String)
96
+
97
+ ReDim extree(1 To UBound(tree, 1) + 1, 1 To UBound(tree, 2))
98
+
99
+ Dim ti As Integer
100
+
101
+ Dim eti As Integer
102
+
103
+ Dim f As Boolean
104
+
105
+ eti = 1
106
+
107
+ f = False
108
+
109
+ For ti = 1 To UBound(tree, 1)
110
+
111
+ If depth < tree(ti, 3) And f = False Then
112
+
113
+ extree(eti, 1) = CStr(eti)
114
+
115
+ extree(eti, 2) = tree(ti - 1, 2)
116
+
117
+ extree(eti, 3) = depth
118
+
119
+ eti = eti + 1
120
+
121
+ f = True
122
+
123
+ End If
124
+
125
+ extree(eti, 1) = CStr(eti)
126
+
127
+ extree(eti, 2) = tree(ti, 2)
128
+
129
+ extree(eti, 3) = tree(ti, 3)
130
+
131
+ eti = eti + 1
132
+
133
+ Next
134
+
135
+ If f = False Then
136
+
137
+ extree(eti, 1) = CStr(eti)
138
+
139
+ extree(eti, 2) = tree(ti - 1, 2)
140
+
141
+ extree(eti, 3) = depth
142
+
143
+ End If
144
+
145
+ End Sub
146
+
147
+ ```