ちょうどUzCodeHelperで使った関数です。 #メーリングリストに出てました。
'/////////////////////////////////////////////////////////////////////////// ' 関数名 : NodeMove ' 目的説明 : 選択されているノードを移動する ' 前提条件 : なし ' 結果 : なし ' 引数 : lngFlag Long : 0 上へ移動 ' 1 下へ移動 ' 戻り値 : なし ' 備考 : なし '/////////////////////////////////////////////////////////////////////////// Private Sub NodeMove(lngFlag As Long) Dim oNewNode As Node Dim oSelectedNode As Node Dim vImage As Variant Dim vExpandedImage As Variant Dim bExpanded As Boolean Dim sKey As String
Set oSelectedNode = trvTree.SelectedItem
With oSelectedNode If lngFlag = 0 Then If .Previous Is Nothing Then Exit Sub Set oNewNode = trvTree.Nodes.Add(.Previous.Key, tvwPrevious, , .Text, .SelectedImage) ElseIf lngFlag = 1 Then If .Next Is Nothing Then Exit Sub Set oNewNode = trvTree.Nodes.Add(.Next.Key, tvwNext, , .Text, .SelectedImage) End If Do If .Child Is Nothing Then Exit Do Else If .Child.LastSibling Is Nothing Then Set .Child.Parent = oNewNode Else Set .Child.LastSibling.Parent = oNewNode End If End If Loop
vImage = .Image vExpandedImage = .ExpandedImage bExpanded = .Expanded sKey = .Key End With
Call trvTree.Nodes.Remove(sKey)
With oNewNode .Image = vImage .ExpandedImage = vExpandedImage .Expanded = bExpanded .Key = sKey End With
Set trvTree.SelectedItem = oNewNode End Sub
|