概要 - ツールバー ボタンのイメージを定義する(VBA/ActiveX)

ツールバー ボタンで使用するイメージを定義するには、SetBitmaps メソッドと GetBitmaps メソッドを使用します。

SetBitmaps メソッドは、SmallIconNameLargeIconName の 2 つのパラメータを受け取ります。

SmallIconName
小さいアイコン名は、小さいイメージ リソース(16 x 16 ビットマップ)の ID 文字列を示します。この文字列は、英数字で構成され、ダッシュ(-)、アンダースコア(_)以外の句読点が含まれていてはなりません。また、拡張子 .bmp が含まれていなければなりません。リソースは、システム ビットマップまたはユーザ定義ビットマップのどちらでもかまいません。ユーザ定義ビットマップの場合は、適切なサイズのもので、サポート パスになければなりません。
LargeIconName
大きいアイコン名は、大きいイメージ リソース(32 x 32 ビットマップ)の ID 文字列を示します。この文字列は、英数字で構成され、ダッシュ(-)、アンダースコア(_)以外の句読点が含まれていてはなりません。また、拡張子 .bmp が含まれていなければなりません。リソースは、システム ビットマップまたはユーザ定義ビットマップのどちらでもかまいません。ユーザ定義ビットマップの場合は、適切なサイズのもので、サポート パスになければなりません。

既存のツールバーを調べ、ボタンのアイコンの名前を探す

Sub Ch6_GetButtonImages()
 Dim Button As AcadToolbarItem
 Dim Toolbar0 As AcadToolbar
 Dim MenuGroup0 As AcadMenuGroup
 Dim SmallButtonName As String
 Dim LargeButtonName As String
 Dim msg As String
 Dim ButtonType As String

 ' Get the first toolbar in the first menu group
 Set MenuGroup0 = ThisDrawing.Application. _
 MenuGroups.Item(0)
 Set Toolbar0 = MenuGroup0.Toolbars.Item(0)

 ' Clear the string variables
 SmallButtonName = ""
 LargeButtonName = ""

 ' Create a header for the message box and
 ' display the toolbar to be queried
 msg = "Toolbar: " + Toolbar0.Name + vbCrLf
 Toolbar0.Visible = True

 ' Iterate through the toolbar and collect data
 ' for each button in the toolbar. If the toolbar is
 ' a normal button or a flyout, collect the small
 ' and large button names for the button.
 For Each Button In Toolbar0
 ButtonType = Choose(Button.Type + 1, "Button", _
 "Separator", "Control", "Flyout")
 msg = msg & ButtonType & ":   "
 If Button.Type = acToolbarButton Or _
 Button.Type = acToolbarFlyout Then
 Button.GetBitmaps SmallButtonName, _
 LargeButtonName
 msg = msg + SmallButtonName + ", " _
 + LargeButtonName
 End If
 msg = msg + vbCrLf
 Next Button

 ' Display the results
 MsgBox msg
End Sub