Excelのuserformのツリービューを作成しています。私は、フォームのユーザーが任意のノードの名前を編集できるようにし、labeleditプロパティが必要であることを理解したいと思いますが、コードを書く方法がわかりません。どんな形の助けでも感謝しています。excelでノードを編集するTreeView VBA
1
A
答えて
1
あなたは時代にさかのぼるマイクロソフトからActiveXコントロールをする必要がありますVisual Basic 6.0の
でこの
https://msdn.microsoft.com/en-us/library/ms172635(v=vs.90).aspx
一つは、場所制御を試してみてください(VBAはVB6のバリアントです)コントロールツールボックスに移動してリストから追加のコントロールを選択してフォームを作成するMicrosoft TreeView Control, version 6.0
オブジェクトブラウザを使用してTreeView
クラスを選択すると、あなたが使用する必要がある方法や出来事に関する調査。 LabelEdit
プロパティをtvwAutomatic
に設定し、システムが編集を処理できるようにするか、またはAfterLabelEdit
またはLabelEdit
プロパティを1つ設定してtvwManual
に設定し、ノードをダブルクリックした場合、これをトラップしてDoubleClick
イベントで手動で捕捉する必要があります。 StartLabelEdit
を呼び出し、AfterLabelEdit
を使用して編集を検証します。
いくつかのリンク:
VB Coding Tip Treeview - Label-Editing
いくつかのサンプルコード
Option Explicit
Private Sub TreeView1_DblClick()
Dim nodSelected As MSComctlLib.Node
Set nodSelected = TreeView1.SelectedItem
If nodSelected.Text <> "root" Then
TreeView1.StartLabelEdit
End If
End Sub
Private Sub UserForm_Initialize()
TreeView1.Style = tvwTreelinesPlusMinusText
TreeView1.LabelEdit = tvwManual
'Add some nodes to the TreeView
Dim nodRoot As MSComctlLib.Node
Set nodRoot = TreeView1.Nodes.Add(Key:="root", Text:="root")
'
Dim nodChildren(1 To 2) As MSComctlLib.Node
Set nodChildren(1) = TreeView1.Nodes.Add(nodRoot, tvwChild, "child 1", "child 1")
Set nodChildren(2) = TreeView1.Nodes.Add(nodRoot, tvwChild, "child 2", "child 2")
Dim nodGrandChildren(1 To 3) As MSComctlLib.Node
Set nodGrandChildren(1) = TreeView1.Nodes.Add(nodChildren(1), tvwChild, "grandchild 1", "grandchild 1")
Set nodGrandChildren(2) = TreeView1.Nodes.Add(nodChildren(2), tvwChild, "grandchild 2", "grandchild 2")
Set nodGrandChildren(3) = TreeView1.Nodes.Add(nodChildren(2), tvwChild, "grandchild 3", "grandchild 3")
End Sub
Private Sub TreeView1_AfterLabelEdit(Cancel As Integer, NewString As String)
' Make sure that we have a value in the Label
If Len(NewString) < 1 Then
' The Label is empty
MsgBox "Error! You must enter a value"
Cancel = True
Else
MsgBox "You successfully edited label to " & NewString
End If
End Sub
注:(明白ではない)子ノードを展開するルートをクリックしてください。
関連する問題
- 1. TreeView - 一部のノードの編集のみを許可する
- 2. Excel vbaグラフ作成、範囲を編集
- 3. Excel VBAで編集するPowerPointを選択する方法は?
- 4. コレクション内の配列の編集Excel VBA
- 5. TreeViewの編集済みテンプレート
- 6. ExcelでVBAを使用してカスタムスタイルを編集する
- 7. Excel VBAでPowerPointデータシートのチャートオブジェクトを編集する
- 8. WordとExcelのVBAでHTMLソースファイルをダウンロードして編集する
- 9. Excel VBAを使用してHTMLコードを編集する
- 10. Xmlノードを編集する
- 11. VBAを使用してExcelメニューを編集できません
- 12. SharePoint - Excel Online - Excelで編集し、複数のユーザーで編集する
- 13. ノードをバイナリツリー構造で編集する
- 14. asp.netでExcelファイルを編集
- 15. VBA for ExcelをDD-mmm-YYYY形式に編集しますか?
- 16. Access VBAから開いたExcelシートを編集します。
- 17. Gladeを使ってGTK TreeViewでトグルセルを編集するには?
- 18. VBAでExcelでデータを集計する
- 19. C#でTreeViewのフィールドを編集するには?
- 20. SharepointでExcelファイルを編集するシーケンシャルワークフロー
- 21. excelで式を編集する方法
- 22. iTextでXFA PDFを編集する(ノード内のフィールドのみを編集する)
- 23. Excelファイルでバッチ処理を実行し、VBAコードを編集する
- 24. VBAにアクセスしてExcelを開く、編集する、保存する
- 25. Excel VBA、切り取りペースト、テキストの追加と編集
- 26. Drupal 6 - フィールドではなく、ノード編集のホームページを編集する理由
- 27. ハイパーリンクを編集するExcel 2010マクロ
- 28. gridview excel exportの編集
- 29. C# - 編集Excelのグラフデータ
- 30. クライアントサーバーアーキテクチャのサーバー側でExcelファイルを編集
第4節で説明したように、ユーザーフォームにTreeViewコントロールを追加しますか? –
あなたのユーザーフォームに移動します。トップメニューからView-> Toolboxに移動します。その後、グレーの空白領域の新しいウィンドウで右クリックし、ポップアップメニューから追加コントロールを選択し、リスト内で「Microsoft TreeView Control、version 6.0」をクリックし、「OK」をクリックします。新しいツリービューアイコンが表示されたら、クリックして、これをフォームにドラッグします。コントロールのデフォルト名はTreeview1になります。 –
既にツリービューをお持ちの場合は、コードを修正すると思います。私はテキストのコンパイルエラーに困惑しています。あなたのTools-> Referencesに 'Microsoft Windows Common Controls 6.0(SP6)'がありますか? –