前提・実現したいこと
エクセルのマクロでTreeViewにて表示したい内容があるのですが、
ノードの順番を入れ替えるのにつまづいています。
添付画像の左側がDBよりRecordsetで取得してきた情報をシートに反映したものなのですが、
この状態のまま、上の行より読み込んでいくと、
2行目のParentID=A900の親ノードがまだ存在していないため、エラーとなります。
なので、添付画像の右側のように並び替える必要があります。
並び替えの優先順位としては
①ParentIDがnullのものはルートノードとなるので一番先頭に移動したい
②NodeIDがParentIDに存在しているものは下に移動したい
③NodeIDがParentIDに存在しないものは一番下に移動したい
上記の中でも①だけでもできれば幸いです。
Range.Sort メソッドだとあくまで昇順、降順しか選択できないのでしょうか?
昇順、降順だとKeyに指定したセルに空白がある行は下に移動してしまうのですが、上に表示する方法があれば知りたいです。
If Cells(i , 3).Value="" Then
先頭に移動
Else
のようなことが書ければよいのですが・・・
どうかご教示お願いいたします。
補足情報(FW/ツールのバージョンなど)
Office2013
追加
①であれば
If Cells(i , 3).Value="" Then Cells(i , 3).Value="0"
にすれば昇順でいけました。

バッドをするには、ログインかつ
こちらの条件を満たす必要があります。