ExcelWork.info

Excel(エクセル)のマクロ・VBA・関数・操作などのメモ

ショートカットメニュー(CommandBar オブジェクト)

      2016/01/28

ショートカットメニュー(コンテキストメニュー)

右クリックで表示されるメニューのことをコンテキストメニューまたはショートカットメニューといいます。これらは、CommandBar オブジェクトで操作します。


主なショートカットメニュー(コンテキストメニュー)


【書式】

<セル>
object.CommandBars(“Cell”)

<行>
object.CommandBars(“Row”)

<列>
object.CommandBars(“Column”)

<シート>
object.CommandBars(“Ply”)

<グラフ>
object.CommandBars(“chart”)

<図形>
object.CommandBars(“shapes”)

<オートフィル>
object.CommandBars(“autofill”)


引数・戻り値

  • object  ・・・  対象となる Application オブジェクトを指定します。


Controls プロパティ

コマンドバーのすべてのコントロールを表す CommandBarControls コレクションを取得します。(読み取り専用)


【書式】

object.Controls


引数・戻り値

  • object  ・・・  対象となる CommandBar オブジェクトを指定します。
    (例)CommandBars(“Cell”)、CommandBars(“Row”)、CommandBars(“Column”)、CommandBars(“Ply”)、CommandBars(“chart”) グラフ、CommandBars(“shapes”) 図形、CommandBars(“autofill”) オートフィル など


ショートカットメニューへのコントロールの登録や設定について


コントロールの作成

ショートカットメニュー(コンテキストメニュー)上にコントロールを登録するには、Controls.Add メソッドを使用します。Controls.Add メソッドは、新しい CommandBarControl オブジェクトを作成し、指定した CommandBarControls コレクションに追加します。


【書式】

object.Add ( type, id, parameter, before, temporary )


引数・戻り値

  • object  ・・・  対象となる CommandBarControls コレクションを指定します。
  • type  ・・・  MsoControl 列挙型 の定数を指定します。指定できるのは、msoControlButton(通常のボタン)または、msoControlPopup(サブメニューを持つボタン)のいずれかで、省略すると msoControlButton を指定した場合と同じになります。
  • id  ・・・  Excel が持つ既存の機能を割り当てたい場合にのみ、その機能を表す ID 番号 を指定します。
    (例)機能(ID 番号)
    ファイルを開く(23)、ファイルを閉じる(106)、上書き保存(3)、コピー(19)など
  • parameter  ・・・  実行するプロシージャで使用する引数を指定します。(省略可)
    (例)プロシージャ内でこの値を使用するには、
    Application.CommandBars.ActionControl.Parameter
     とします。
  • before  ・・・  コントロールを登録する位置を 1 以上の整数値で指定します。(省略可)
    (例)Before:= 1  この場合、メニューの一番上に設定されます。
  • temporary  ・・・  True を指定するとエクセル終了時に削除されます。規定値は、False です。(省略可)
  • 戻り値  ・・・  CommandBarControl オブジェクト

コントロールの名前を設定

登録したコントロールの名前(ショートカットメニューに表示される文字列)を取得・設定を行うには、Caption プロパティを使用します。


【書式】

object.Caption


引数・戻り値

  • object  ・・・  対象となる CommandBarControl オブジェクトを指定します。

コントロールにマクロを登録する

コントロールにマクロを登録するには、OnAction プロパティに、実行するマクロ名(プロシージャ名)を設定します。


【書式】

object.OnAction


引数・戻り値

  • object  ・・・  対象となる CommandBarControl オブジェクトを指定します。

マクロの指定方法
(例)マクロ名を、TestMacro とすると、
   .OnAction = “TestMacro”
のように指定します。

引数を指定する方法 1
CommandBarControls.Add メソッド の引数 parameter に指定します。
(例)CommandBars(“Cell”).Controls.Add(Parameter:=”こんにちは!”)

引数を指定する方法 2
CommandBarControl.OnAction プロパティに、引数を含めて指定します。
(例)マクロ名を、TestMacro とすると、
   .OnAction = “‘TestMacro(“”こんにちは!””)'”
のように指定します。


区切り線を挿入する

BeginGroup プロパティに、True を設定すると、指定したコントロールの上部に区切り線を入れることができます。


【書式】

object.BeginGroup


引数・戻り値

  • object  ・・・  対象となる CommandBarControl オブジェクトを指定します。

コントロールにアイコン(ボタンのイメージ)を表示する

アイコンを設定するには、FaceId プロパティに、アイコンを表す数値を設定します。


【書式】

object.FaceId


引数・戻り値

  • object  ・・・  対象となる CommandBarControl オブジェクトを指定します。

コントロールの情報・説明等を設定

Tag プロパティ を使用すると、指定したコントロールについての情報や説明等を設定することができます。


【書式】

object.Tag


引数・戻り値

  • object  ・・・  対象となる CommandBarControl オブジェクトを指定します。

コントロールの表示・非表示を設定

コントロールを表示するには、Visible プロパティTrue を指定します(既定値)。非表示にするには、False を指定します。ブール型(Boolean)の値を使用します。


【書式】

object.Visible


引数・戻り値

  • object  ・・・  対象となる CommandBarControl オブジェクトを指定します。

コントロールにチェックを入れる

State プロパティTrue を指定するとショートカットメニュー(コンテキストメニュー)を表示した時、指定したコントロールにチェックマークが表示します。False を指定する元の状態に戻ります。ブール型(Boolean)の値を使用します。


【書式】

object.State


引数・戻り値

  • object  ・・・  対象となる CommandBarControl オブジェクトを指定します。


コントロールを削除

登録したコントロールを削除するには、Delete メソッドを使用します。ただし、存在しないコントロールを削除しようとするとエラーが発生します。


【書式】

object.Delete


引数・戻り値

  • object  ・・・  対象となる CommandBarControl オブジェクトを指定します。

CommandBars(“Cell”).Controls(“削除するコマンド名“).Delete
CommandBars(“Cell”).Controls(Index 番号).Delete
※ CommandBar オブジェクトは、Index 値(長整数型)を使って指定することも可能です。



ショートカットメニュー(コンテキストメニュー)を初期化

ショートカットメニュー(コンテキストメニュー)を初期状態に戻すには、CommandBar オブジェクトReset メソッド を使用します。ただし、アドインを設定した時に登録されたコマンドなども消えてしまうので使用時には注意が必要です。


【書式】

object.Reset


引数・戻り値

  • object  ・・・  対象となる CommandBar オブジェクトを指定します。
    (例)CommandBars(“Cell”)、CommandBars(“Row”)、CommandBars(“Column”)、CommandBars(“Ply”)、CommandBars(“chart”) グラフ、CommandBars(“shapes”) 図形、CommandBars(“autofill”) オートフィル など


コンテキストメニュー(ショートカットメニュー)使用例

サンプルVBAソース


実行結果

Sample_CommandBars_Cell_01() を実行

ショートカットメニュー



 - VBA基本 , , , , , ,

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

  関連記事

QBColor 関数 使用例
色を設定する(QBColor 関数)

QBColor 関数 QBColor 関数は、指定した色番号に対応するRGB コ …

ADO Stream オブジェクト テキスト(UTF-8)読み込み
テキストファイル(UTF-8)を読み込み、書き出し(ADODB.Stream)

Stream オブジェクト ADO(ActiveX Database Objec …

カレントフォルダの変更・確認
カレントフォルダ(CurDir 関数、ChDir ステートメント、ChDrive ステートメント)

カレントフォルダ カレントフォルダとは、ブックを開いたり保存するときに既定で参照 …

変数がEmpty 値かどうかをチェックする( IsEmpty 関数 )

IsEmpty 関数の使い方 【書式】 result = IsEmpty ( e …

RSet 関数・LSet 関数 例1
文字列:文字列変数の値を右詰めまたは左詰めにする(RSet ステートメント・LSet ステートメント)

RSet ステートメント・LSet ステートメント 【書式】 < RSet ステ …

インプットボックスを表示する(InputBox関数・InputBoxメソッド)

「InputBox関数」と「InputBoxメソッド」の違い 「InputBox …

カレントフォルダの取得・設定(DefaultFilePath プロパティ)

DefaultFilePath プロパティ カレントフォルダとは、ブックを開いた …

色の設定(ColorIndex プロパティ・Colors プロパティ)

ColorIndex プロパティ ColorIndex プロパティは、指定したオ …

指定した値を16進数で表記した文字列に変換する(Hex 関数)

Hex 関数 の使い方 【書式】 result = Hex ( expressi …

乱数(Rnd 関数)例1
乱数を生成する(Rnd 関数)

Rnd 関数の使い方 Rnd 関数は、0 以上、1 未満の範囲の乱数を単精度浮動 …