VBAでのコマンドボタン(CommandButton)の使い方とプロパティおよびイベント
Excel VBA からコマンドボタン(CommandButton)コントロールを利用する方法です。コマンドボタンはクリックされたときにあらかじめ設定した処理を実行したい場合に使用されるコントロールです。ここでは Excel のユーザーフォームで設置できるコマンドボタンを VBA から使用する方法と、コマンドボタンで設定可能なプロパティおよびイベントの一覧について解説します。
(Last modified: )
目次
コマンドボタンのプロパティ一覧
ユーザーフォームに設置するコマンドボタンで利用可能なプロパティ一覧は次の通りです。
Accelerator AutoSize BackColor BackStyle Cancel Caption ControlTipText Default Enabled Font ForeColor Height HelpContextID Left Locked MouseIcon MousePointer Picture PicturePosition TabIndex TabStop Tag TakeFocusOnClick Top Visible Width WordWrap
コマンドボタンの既定のプロパティは Value
プロパティです。
いくつかのプロパティについてはこのあと簡単に解説します。
コマンドボタンに表示する文字列を設定する(Caption)
コマンドボタンに表示される文字列を設定するには Caption
プロパティに値を設定します。
オブジェクト.Caption [= String ]
コマンドボタンに表示する文字列を代入してください。
具体的には次のように記述します。下記ではユーザーフォームが表示される前に発生する Initialize
イベントに対するイベントプロシージャにコードを記述し、コマンドボタンに表示する文字列を設定しています。
Option Explicit Private Sub UserForm_Initialize() CommandButton1.Caption = "Open" End Sub
ユーザーフォームを表示すると、表示されたコマンドボタンに指定した文字列が表示されているのが確認できます。
コマンドボタンの表示位置を設定する(Top,Left)
コマンドボタンが表示される位置を設定するには Top
プロパティと Left
プロパティに値を設定します。
オブジェクト.Top [= Single ] オブジェクト.Left [= Single ]
Top
プロパティにはユーザーフォームの上端からコマンドボタンの上端までの距離、 Left
プロパティにはユーザーフォームの左端からコマンドボタンの左端までの距離をそれぞれ単精度浮動小数点型の数値で代入します。単位はポイントです。
具体的には次のように記述します。下記ではユーザーフォームが表示される前に発生する Initialize
イベントに対するイベントプロシージャにコードを記述し、コマンドボタンの位置を設定しています。
Option Explicit Private Sub UserForm_Initialize() CommandButton1.Top = 100 CommandButton1.Left = 80 End Sub
ユーザーフォームを表示すると、表示されたコマンドボタンが指定した位置で表示されているのが確認できます。
コマンドボタンの幅と高さを設定する(Width,Height)
コマンドボタンの幅と高さを設定するには幅については Width
プロパティ、高さについては Height
プロパティに値を設定します。
オブジェクト.Width [= Single ] オブジェクト.Height [= Single ]
幅および高さをあらわす単精度浮動小数点型の数値を代入してください。単位はポイントです。
具体的には次のように記述します。下記ではユーザーフォームが表示される前に発生する Initialize
イベントに対するイベントプロシージャにコードを記述し、コマンドボタンの幅と高さを設定しています。
Option Explicit Private Sub UserForm_Initialize() CommandButton1.Width = 100 CommandButton1.Height = 100 End Sub
ユーザーフォームを表示すると、表示されたコマンドボタンの幅および高さが指定した値に設定されているのが確認できます。
コマンドボタンにアクセスキーを設定する(Accelerator)
コマンドボタンにアクセスキーを設定するには Accelerator
プロパティに値を設定します。
オブジェクト.Accelerator [= String ]
アクセスキーとして設定する文字を代入します。アクセスキーに設定した文字がコマンドボタンに表示されている文字列の中にあった場合は、該当の文字に下線が表示されます。
Alt
を押しながらアクセスキーとして設定した文字を押すと、コマンドボタンがクリックされたときと同じように実行されます。
具体的には次のように記述します。下記ではユーザーフォームが表示される前に発生する Initialize
イベントに対するイベントプロシージャにコードを記述し、アクセスキーとして "O" の文字を設定しています。また動作の確認のため、コマンドボタンがクリックされたときのイベントプロシージャを記述しています。
Option Explicit Private Sub UserForm_Initialize() CommandButton1.Caption = "Open" CommandButton1.Accelerator = "o" End Sub Private Sub CommandButton1_Click() MsgBox "Open" End Sub
ユーザーフォームを表示し、表示されたコマンドボタンを確認すると、コマンドボタンに表示されている文字列の中でアクセスキーに設定した "o" の文字に下線が表示されていることが確認できます。
また Alt
+ o
キーを押すと、コマンドボタンが実行されてメッセージボックスが表示されます。
コマンドボタンのイベント一覧
コマンドボタンで発生するイベント一覧は次の通りです。
BeforeDragOver BeforeDropOrPaste Click DblClick Enter Error Exit KeyDown KeyPress KeyUp MouseDown MouseMove MouseUp
コマンドボタンの既定のイベントは Click
イベントです。
-- --
Excel のユーザーフォームで設置できるコマンドボタンを VBA から使用する方法と、コマンドボタンで設定可能なプロパティおよびイベントの一覧について解説しました。
( Written by Tatsuo Ikura )
著者 / TATSUO IKURA
これから IT 関連の知識を学ばれる方を対象に、色々な言語でのプログラミング方法や関連する技術、開発環境構築などに関する解説サイトを運営しています。