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
(*) Support online: https://www.facebook.com/groups/hocexcel/