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

  関連記事

ClearContents メソッド 例01
データをクリアする(ClearContents メソッド)

ClearContents メソッド 対象がセル範囲(Range オブジェクト) …

式の値に応じて多分岐を行う(Switch 関数)

Switch 関数 の使い方 Switch 関数は、「式・値」を対にして指定して …

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

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

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

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

日付時刻:時・分・秒を取得(Hour、Minute、Second 関数)

日付時刻から時・分・秒を取得する関数 【書式】 time_hour = Hour …

上付き文字・下付き文字(Superscript,Subscript)

上付き文字(Superscript プロパティ) Superscript プロパ …

文字列:文字列左から指定文字数取得(Left 関数,LeftB 関数)

Left 関数・LeftB 関数 の使い方 【書式】 result_left = …

no image
VBA の演算子(比較演算子)

比較演算子 比較演算子による演算の結果は「真」の場合は「True」、「偽」の場合 …

四捨五入・切り上げ・切り捨て・丸め(Round 関数 他)

Round 関数(丸め)の使い方 【書式】 value = Round ( ex …

指定した文字列を数値に変換する(Val 関数)

Val 関数 の使い方 Val 関数は、指定した文字列に含まれる数字を数値として …