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

  関連記事

配列の添字の最小値を「1」に設定する

Option Base ステートメントを使用する 【書式】 Option Bas …

文字列:指定した数の空白(スペース)からなる文字列を返す(Space 関数)

Space 関数 【書式】 result = Space ( number ) …

UBound LBound 関数 使用例01
配列の要素数を取得する(UBound 関数・LBound 関数)

UBound 関数・LBound 関数 【書式】 result = UBound …

データ型変換関数

データ型変換関数の使い方 【書式】 function ( expression …

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

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

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

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

配列(宣言・要素数の変更について)

配列の宣言 【書式】※ 配列の宣言 <Type 型の静的配列(固定長配列)の宣言 …

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

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

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

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

定数(改行・タブ) 使用例
文字列:定数(改行・タブ)

改行・タブの定数 これらの定数は、使用前に定義する必要はありません。コード中のど …