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 を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

  関連記事

RegExp オブジェクト Test メソッド
VBA で正規表現を使う(RegExp オブジェクトのメソッド)

RegExp オブジェクトのメソッド RegExp オブジェクトの詳細に関しては …

エラー(CVErr 関数・IsError 関数・Error 関数)

CVErr 関数(エラー番号をエラー値に変換する)の使い方 【書式】 retur …

Chr 関数 例
文字列:指定した文字コードに対応する文字を返す(Chr 関数)

Chr 関数の使い方 【書式】 result = Chr ( code ) 引数 …

取り消し線を設定する(Strikethrough プロパティ)

取り消し線を設定する(Strikethrough プロパティ) Striketh …

変数宣言と変数のデータ型
変数のデータ型・宣言(Dim ステートメント)

変数の宣言 一般的な方法 【書式】 Dim varname [ As type, …

Choose 関数 例01
指定した数値に対応する選択肢の値・数式を返す(Choose 関数)

Choose 関数 の使い方 Choose 関数は、指定されたインデックス値(1 …

日付時刻:年・月・日を取得(Year、Month、Day 関数)

日付から年・月・日を取得する関数 【書式】 date_year = Year ( …

文字列:文字列の一部を別の文字列で置換(Replace 関数)

Replace 関数の使い方 【書式】 result = Replace ( s …

データ型を調べてそのデータ型を示す文字列を返す(TypeName 関数)

TypeName 関数 の使い方 TypeName 関数は、引数に、データ型を調 …

変数が日付型かどうかをチェックする( IsDate 関数 )

IsDate 関数の使い方 【書式】 result = IsDate( expr …