You are here Program VBA to create Task Pane sink Userform with Treeview unicode

Program VBA to create Task Pane sink Userform with Treeview unicode

Program VBA to create Task Pane sink Userform that has TreeView (create by BSTreeView control of BSAC) . Open Task Pane when opening Excel file.

When open file and open Task Pane you should create BSTaskPane - DO NOT use BSTaskPaneX

In VBA, do with step by step:

Step 1: Create Userform

Make sure you have installed Add-in A-Tools or BSAC.ocx activex controls before do Step 2

Step 2: Click to userform, see window "Toolbox", right click on tab "Controls" -> "Import Page", select file "ImportToToolbox.pag" (Download)

(Do Step 2 only if you do not see BSAC controls on Toolbox window)

Step 3: Drag controls to userform: BSTreeView (name BSTreeView1)

Set Userform1.ShowModal = False

Step 4: Right click on userform -> View Code. Now you have widow to edit code. Copy below code:
'-------BEGIN COPY
'Author: Nguyen Duy Tuan - http://atoolspro.com OR http://bluesofts.net
'       Mail: duytuan@bluesofts.net - Tel: (84) 904210337
Option Explicit
Public WithEvents TP As BSTaskPane
'---------------------------------------------------------
Private Sub UserForm_Initialize()
    'Create TreeView
    Dim Node As BSTreeNode, I&
    'Parent. Function UNC() convert TCVN3,VNI-> Unicode
    Set Node = BSTreeview1.Items.Add(, "mh", UNC("PURCHASE - Mua hµng"))
    Node.Bold = True 'Format font is bold
    Set Node = BSTreeview1.Items.Add("mh", "mh1", UNC("Mua hµng dÞch vô")) 'Child
    Set Node = BSTreeview1.Items.Add("mh", "mh2", UNC("Mua hµng nhËp kho")) 'Child
    Set Node = BSTreeview1.Items.Add("mh", "mh3", UNC("Mua hµng nhËp khÈu")) 'Child
    'Parent. Function UNC() convert TCVN3,VNI-> Unicode
    Set Node = BSTreeview1.Items.Add(, "bh", UNC("SALES - B¸n hµng"))
    Node.Bold = True 'Format font is bold
    Set Node = BSTreeview1.Items.Add("bh", "bh1", UNC("B¸n hµng dÞch vô")) 
    Set Node = BSTreeview1.Items.Add("bh", "bh2", UNC("B¸n hµng xuÊt lÎ")) 
    Set Node = BSTreeview1.Items.Add("bh", "bh3", UNC("B¸n hµng xuÊt bu«n")) 
    'Create REPORTS
    Set Node = BSTreeview1.Items.Add(, "rp", UNC("REPORT- B¸o c¸o qu¶n trÞ")) 'Parent
    Node.Bold = True 'Format font is bold
    'Create child in for...next
    For I = 1 To 50
        Set Node = BSTreeview1.Items.Add("rp", "rp" & I, UNC("B¸o c¸o qu¶n trÞ Þ" & I)) 'Child
    Next I
    'Open node full
    BSTreeview1.FullExpand
    BSTreeview1.Items(0).Selected = True 'First node seleted    
    'Create Task Pane
    Dim TPs As New BSTaskPanes 'Task Pane Engine
    Set TP = TPs.Add("My menu", Me, False, dpLeft)
    TP.DockPositionRestrict = msoCTPDockPositionRestrictNoHorizontal 'No dock on top, bottom
End Sub
'---------------------------------------------------------
Private Sub UserForm_Terminate()
    On Error Resume Next 'Important! 
    If Not TP Is Nothing Then
        TP.Remove 'Delete Task Pane when unload userform
    End If
End Sub
'---------------------------------------------------------
Private Sub UserForm_Resize()
    On Error Resume Next 'Important!
    BSTreeview1.Height = Height - BSTreeview1.Top - 2
    BSTreeview1.Width = Width - BSTreeview1.Left * 2
End Sub
'---------------------------------------------------------
Private Sub BSTreeview1_OnNodeClick(ByVal Node As BSAC.BSTreeNode)
    MsgBoxW Node.Text, vbInformation, "Node's Key: " & Node.Key
End Sub
'---------------------------------------------------------
Private Sub Image1_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
    ShellExecute 0, "OPEN", "http://atoolspro.com"
End Sub
'-------END COPY
 
(*) Download Source code