Does anyone know where I can find a list of FaceIDs for processbook?
Do you mean toolbar's button's FaceID?
I am not sure it is what you want but I run following macro and get the FaceID results.
Dim Toolbar As PBCommandBar
Dim Item As Variant
Dim list As String
For Each Toolbar In Application.CommandBars
For Each Item In Toolbar.Controls
If Item.Type = "1" Then
list = list & Item.Caption & " : FaceID : " & Item.FaceId & vbCrLf
Sorry that the captions are in Japanese. Is this what you want?
Thank you for this question. When I saw it yesterday evening my reaction was like "By Toutatis! What is a FaceID?"
I had never heard this term but a brief research showed FaceID's are used with CommandButtons in ProcessBook and are actually a very useful way to assign a predefined icon. Unfortunately I wasn't able to locate a list of FaceID's used in ProcessBook.
The sample code provided by Kenji is useful. It iterates through the open Toolbars and reads the definition of the existing buttons but it doesn't allow to list the FaceID's that are not referenced. To fill that gap, I have created a Display and added a few lines of VBA code that allow to create or select a Toolbar by name and to specify a range of FaceID's. Another button starts adding new buttons, assigning the FaceID's and also changing the ToolTip, so the FaceID shows when hovering the mouse over the button.
Caution: Please be stingy with "new" toolbar names. You will find them under View -> Toolbars and it's possible to delete them. Again, please be careful.
Dim tbName As String
Private Sub CommandButton1_Click()
tbName = TextBox1.Text
Dim toolBar As PBCommandBar
Dim bExist As Boolean
bExist = False
For Each toolBar In Application.CommandBars
If toolBar.Name = tbName Then bExist = True
If bExist = False Then
Set toolBar = Application.CommandBars.Add(tbName, 1, False, False)
toolBar.Visible = True
Private Sub CommandButton2_Click()
Dim toolBar As PBCommandBar
Dim cmdButton As PBCommandBarButton
Dim iSta As Long
Dim iEnd As Long
Dim i As Long
iSta = CLng(TextBox2.Text)
iEnd = CLng(TextBox3.Text)
Set toolBar = Application.CommandBars(tbName)
For i = iSta To iEnd
Set cmdButton = toolBar.Controls.Add(pbControlButton)
cmdButton.Style = pbButtonIcon
cmdButton.FaceId = i
cmdButton.ToolTipText = Str(i)
So now that Ive been able to find some of the IDs, thanks to you guys, I've noticed that I am unable to add a FaceId to a Control Button, which is part of the menu rather than a tool bar.
In the VBA Editor, the FaceId property actually gets changed to Faceid (*notice the lowercase i). I can get the item added to the menu, just no icon associated.
Anyone else have this problem?
Here is the code, youll need a variable called ToolName for your menu name :
I've checked the code and found that cbbutton's Type = IDualCommandBarButton.
It seems like this object regects Set faceid from VBA code.
I think that it is difficult to set faceid to IDualCommandBarButton.
You may look: Pictures On CommandBar Items
I don't know if this is gonna work for you I did not test it, but this guys has a quite good website on VBA in general.
You can probably derive his embeded image strategy with a bitmap object hidden on the PB .PDI.
I am also wondering why you want to stick with PB icons?
if you can, just pic some icons specifically for your application that will not interfere and confuse the user with existing functions in PB.
For instance, this site has a ton of cool icons.
Hope this helps,
Retrieving data ...