オリジナルコマンドバーを作成する方法
オリジナルのコマンドバーを作成するには、CommandBars【コマンドバーズ】コレクションの
Add【アド】メソッドを使用します。
Add【アド】メソッドを実行するとCommandBar【コマンドバー】オブジェクトがCommandBars【コマンドバーズ】コレクションに追加されます。
通常は「ツールバー」が作成されますがAdd【アド】メソッドの引数Position【ポジション】にmsoBarPopup【エムエスオーバーポップア;ツプ】を指定すると「ショートカットメニュー」が作成されます。
作成したCommandBar【コマンドバー】オブジェクトのメニューやボタンを作成するにはCommandBarControls【コマンドバーコントロールズ】コレクションのAdd【アド】メソッドを使用します。
引数Type【タイプ】に「msoControlPopup」を指定することでサブメニューを持つメニューに指定できます。
作成したコマンドバーが「ツールバー」の場合は、CommandBar【コマンドバー】オブジェクトのVisible【ビジブル】プロパティを「True」に設定すると「アドイン」タグが追加され「アドイン」タグのリボンにCommandBar【コマンドバー】オブジェクトが表示されます。
作成したコマンドバーが「ショートカットメニュー」の場合は、CommandBar【コマンドバー】オブジェクトのShowPopup【ショウポップアップ】メソッドを使用してショートカットメニューを使用したいワークシートモジュールのBeforeRightClik【ビフォアライトクリック】イベントプロシージャーに記述してセルをマウスボタン右クリックでメニューが表示されるようにします。
「コマンドバー」を作成するメソッド一覧
メソッド | 内容 |
---|---|
CommandBars.Add 【コマンドバーズアド】 | 「コマンドバー」を表す CommandBar【コマンドバー】オブジェクトを追加します。 |
CommandBarControls.Add 【コマンドバーコンオロールズアド】 | コマンドバーコントロール(ボタンやメニュー)を表す CommandBarButton【コマンドバーボタン】オブジェクトや CommandBarPopup【コマンドバーポップアップ】オブジェクト を追加します。 |
CommandBar.ShowPopup 【コマンドバーショウポップアップ】 | 「ショートカットメニュー」を表示します。 |
コマンドバーコントロールの主なプロパティ一覧
プロパティ | 内容 |
---|---|
Controls 【コントロールズ】 | コマンドバーコントロールを表す CommandBarControls【コマンドバーコントロールズ】コレクション を参照します。 |
Caption 【キャプション】 | コマンドバーに表示する名前を設定または取得します。 |
FaceID 【フェイスアイディ】 | ボタンイメージのID番号を設定または取得します。 |
Style 【スタイル】 | サブメニューを持たないメニューやボタンの 表示方法を設定します。 |
OnAction 【オンアクション】 | 実行するマクロを設定します。 |
BeginGroup 【ビギングループ】 | メニューの区切り線の表示・非表示を設定します。 |
TooltipText 【ツールチップテキスト】 | ポップヒントに指定する文字列を設定します。 |
Visible 【ビジブル】 | ツールバーの表示・非表示を設定します。 |
CommandBars.Add【コマンドバーズアド】メソッド
コマンドバーを作成するには、CommandBars【コマンドバーズ】コレクションのAdd【アド】メソッドを使用します。
CommandBars.Add【コマンドバーズアド】メソッドの書式と設定値(引数)の説明
[]内は省略可能です。
オブジェクト.CommandBars.Add( [Name, Position, Temporary] )
- オブジェクト(必須)
Application【アプリケーション】オブジェクトを指定します。 - Name【ネーム】(省略可)
作成するコマンドバーの名前を設定します。
省略した場合は、「ユーザー設定 1」といった名前が
連番で自動的に設定されます。
設定した名前は画面上に表示されることはありませんが
操作したいツールバーをVBAで特定するときなどに使用されます。 - Position【ポジション】(省略可)
コマンドバーの種類を指定します。設定値 内容 msoBarPopup
【エムエスオーバーポップアップ】「ショートカットメニュー」を作成します。 (省略) 「ツールバー」を作成します。 - Temporary【テンポラリ】(省略可)
作成したコマンドバーをExcel終了時に削除するかしないかを指定します。設定値 内容 True コマンドバーを削除する False コマンドバーを削除しない(既定値)
Controls【コントロールズ】プロパティ
コマンドバーのコントロール表すCommandBarControls【コマンドバーコントロールズ】コレクションを参照するにはControls【コントロールズ】プロパティを使用します。
Controls【コントロールズ】プロパティの書式と設定値の説明
オブジェクト.Controls
- オブジェクト(必須)
CommandBars.Add【コマンドバーズアド】メソッドで追加したCommandBar【コマンドバー】オブジェクトを指定します。
CommandBarControls.Add【コマンドコントロールズアド】メソッド
追加したCommandBar【コマンドバー】オブジェクトに、メニューやボタンを追加するには
CommandBarControlsコレクションのAdd【アド】メソッドを使用します。
CommandBarControls.Add【コマンドコントロールズアド】メソッドの書式と設定値(引数)の説明
[]内は省略可能です。
オブジェクト.Add( [Type, Before, Temporary] )
- オブジェクト(必須)
Controls【コントロールズ】プロパティで参照したCommandBarControls【コマンドバーコントロール】コレクションを指定します。 - Type【タイプ】(省略可)
作成するコマンドコントロールの種類をMsoControlType列挙型の定数で指定します。
省略した場合は既定値が指定されるので、サブメニューを持つメニューを作成する場合のみ指定します。MsoControlType列挙型の定数 定数 値 内容 msoControlButto(既定値) 1 サブメニューをもたないボタン msoControlPopup 10 サブメニューを持つメニュー
- Before【ビフォア】
コマンドバーに配置する位置を数値で指定します。指定した位置にあるコマンドバーコントロールの直前に配置されます。省略した場合は、コマンドバーの末尾に配置されます。 - Temporary【テンポラリ】(省略可)
作成したコマンドバーをExcel終了時に削除するかしないかを指定します。設定値 内容 True コマンドバーを削除する False コマンドバーを削除しない(既定値)
Caption【キャプション】プロパティ
コマンドバーコントロールに名前を設定または取得するには、CommandBarControl【コマンドバーコントロール】オブジェクトのCaption【キャプション】プロパティを使用します。
Caption【キャプション】プロパティの書式と設定値の説明
オブジェクト.Caption = 設定値
- オブジェクト(必須)
サブメニューを持たないコントロールを表すCommandBarButton【コマンドバーボタン】オブジェクト、またはサブメニューがあるコントロールを表すCommandBarPopup【コマンドバーポップアップ】を指定します。 - 設定値
ボタンやメニューに表示する名前を文字列で指定します。名前の文字列の最後に(&半角英数)でアクセスキーを設定することができます。アクセスキーとはショートカットでAltキーを使用したショートカットです。既定のアクセスキーと同じ半角英数を指定した場合は既定のアクセスキーが優先されます。(例)Caption = “オリジナルボタン(&M)”
FaceID【フェイスアイディ】プロパティ
ボタンにExcelで用意されているアイコンを表示するには、CommandBarButton【コマンドバーボタン】オブジェクトのFaceID【フェイスアイディ】プロパティを使用します。値の取得と設定が可能です。
FaceID【フェイスアイディ】プロパティの書式と設定値の説明
オブジェクト.FaceID = 設定値
- オブジェクト(必須)
サブメニューを持たないコントロールを表すCommandBarButton【コマンドバーボタン】オブジェクトを指定します。 - 設定値
アイコンのID(番号)を指定します。アイコンのIDについては
コマンドバーのボタンイメージ FaceIDを取得する
をご覧ください。
Style【スタイル】プロパティ
サブメニューを持たないCommandBarButton【コマンドバーボタン】オブジェクトの表示方法を設定するにはStyle【スタイル】プロパティを使用します。
Style【スタイル】プロパティの書式と設定値の説明
オブジェクト.Style = 定数
- オブジェクト(必須)
サブメニューを持たないコントロールを表すCommandBarButton【コマンドバーボタン】オブジェクトを指定します。 - 定数
コントロールの表示方法をMsoButtonStyle列挙型の定数で指定します。MsoButtonStyle列挙型の定数 定数 表示方法 msoButtonCaption テキストのみ msoButtonIcon アイコンのみ msoButtonAndCaption テキストとアイコン
OnAction【オンアクション】プロパティ
コントロールに実行するマクロを設定するには、CommandBarControl【コマンドバーコントロール】オブジェクトのOnAction【オンアクション】メソッドを使用します。
OnAction【オンアクション】プロパティの書式と設定値の説明
オブジェクト.OnAction = “実行するマクロ名”
- オブジェクト(必須)
サブメニューを持たないコントロールを表すCommandBarButton【コマンドバーボタン】オブジェクト、またはサブメニューがあるコントロールを表すCommandBarPopup【コマンドバーポップアップ】を指定します。 - “実行するマクロ名”
コントロールを押したときに実行するマクロ名を文字列型で指定します。
BeginGroup【ビギングループ】プロパティ
コントロールに区切り線を表示するかしないかを設定するには、CommandBarControl【コマンドバーコントロール】オブジェクトのBeginGroup【ビギングループ】プロパティを使用します。
BeginGroup【ビギングループ】プロパティの書式と設定値の説明
オブジェクト.BeginGroup = 設定値
- オブジェクト(必須)
サブメニューを持たないコントロールを表すCommandBarButton【コマンドバーボタン】オブジェクト、またはサブメニューがあるコントロールを表すCommandBarPopup【コマンドバーポップアップ】を指定します。 - 設定値
区切り線を表示する場合は「True」を設定します。設定値 内容 True 区切り線を表示 False 区切り線を非表示(既定値)
TooltipText【ツールチップテキスト】プロパティ
マウスポンタ―がコントロール上にあるときにポップヒントを表示するには、CommandBarControl【コマンドバーコントロール】オブジェクトのTooltipText【ツールチップテキスト】プロパティを使用します。
TooltipText【ツールチップテキスト】プロパティの書式と設定値の説明
オブジェクト.TooltipText = “表示する文字列”
- オブジェクト(必須)
サブメニューを持たないコントロールを表すCommandBarButton【コマンドバーボタン】オブジェクトまたはサブメニューがあるコントロールを表すCommandBarPopup【コマンドバーポップアップ】を指定します。 - “表示する文字列”
表示する文字を文字列型で指定します。TooltipText【ツールチップテキスト】プロパティを設定しない場合は、ポップヒントとして表示されるのはCaption【キャプション】プロパティに設定した文字列です。
Visible【ビジブル】プロパティ
Add【アド】メソッドで作成したコマンドバーを表示するには、CommandBar【コマンドバー】オブジェクトVisible【ビジブル】プロパティを使用します。
Visible【ビジブル】プロパティの書式と設定値の説明
オブジェクト.Visible = 設定値
- オブジェクト(必須)
CommandBar【コマンドバー】オブジェクトを指定します。 - 設定値
コマンドバーを表示するには「True」を設定します。設定値 内容 True コマンドバーを表示します。 False コマンドバーを非表示にします。(既定値)
CommandBar.ShowPopup【コマンドバーショウポップアップ】メソッド
CommandBars.Add【コマンドバーズアド】メソッドで、引数Position【ポジション】にmsoBarPopupを指定して作成した「ショートカットメニュー」を表示するには、CommandBar【コマンドバー】オブジェクトのShowPopup【ショウポップアップ】メソッドを使用します。
CommandBar.ShowPopup【コマンドバーショウポップアップ】メソッドの書式と設定値の説明
オブジェクト.ShowPopup
- オブジェクト(必須)
表示する「ショートカットメニュー」を表すCommandBar【コマンドバー】オブジェクトを指定します。※ショートカットメニューを作成するコードはショートカットメニューを使用したいワークシートモジュールの「BeforeRightClick」イベントプロシージャに記述します。ショートカットメニューをクリックしたときに実行するマクロは標準モジュールに記述します。
コード例リンク
- コマンドボタン(マクロ実行ボタン)を作成する
- サブメニューがあるボタン(マクロ実行ボタン)を作成する
- ショートカットメニューにマクロ実行ボタンを作成する
- ショートカットのサブメニューにマクロ実行ボタンを作成する
以上で、CommandBar【コマンドバー】オブジェクト のメソッド・プロパティについての解説を終了します。ありがとうございました。