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

  関連記事

VBA の演算子(論理演算子:And、Eqv、Imp、Not、Or、Xor)

論理演算子 論理演算を行うときに使用する演算子で、以下の 6 種類があります。 …

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

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

メッセージボックス使用例
メッセージボックスを表示(MsgBox関数)

MsgBox関数 【書式】 result = MsgBox ( Prompt [ …

DoEvents 関数 UserForm の設定
CPU に制御を移す(DoEvents 関数)

DoEvents 関数 DoEvents 関数を実行すると、CPU に制御を移し …

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

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

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

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

VBA正規表現使用例
VBA で正規表現を使う(RegExp オブジェクト)

RegExp オブジェクト VBA で正規表現を使うには、VBScript のR …

固定長形式で分割(TextToColumns メソッド)
セルのデータを固定長形式で複数のセルに分割する(TextToColumns メソッド・Parse メソッド)

固定長形式でセルを分割 TextToColumns メソッドや Parse メソ …

データ型を調べて、そのデータ型を示す数値を返す(VarType 関数)

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

no image
VBA の演算子(算術演算子)

算術演算子 算術演算を行うときに使用する演算子です。 ^(べき乗)、*(積)、/ …