教えて!ExcelVBA!

ExcelVBAの基礎知識・書き方について紹介します。

【ExcelVBA フォーム&コントロール】フォームがクリックされた時に処理を実行する方法を教えて!

f:id:m_kbou:20210121112004p:plain

フォームがクリックされた時に処理を実行するには、フォームのClickイベントプロシージャを使用します。その使い方について紹介します。

 

 

構文

イベントプロシージャの記述方法は以下の通りです。

Private Sub[オブジェクト名]_Click()
  [実行する処理内容]
End Sub

[説明]:

フォームがクリックされた時に処理を実行させるイベントプロシージャはClickプロシージャを使用します。[オブジェクト名]にはフォームのオブジェクト名(フォーム名)を記述します。また、[実行する処理内容]にはフォームがクリックされた時に実行する処理内容を記述します。内容を纏めると、「[オブジェクト名]で指定したフォームがクリックされた場合、[実行する処理内容]を実行して下さい。」との意味になります。

[記述例]:

Private Sub UserForm_Click()
  MsgBox "画面がクリックされました。"
End Sub

[サンプル画面]: 

今回は以下のフォームを使用して処理を実行する方法について説明します。
※フォームの作成方法についてはこちらを参考にして下さい。

f:id:m_kbou:20210121112143p:plain

 

Clickイベントプロシージャの記述方法

(1)VBE(VBA記述画面)を開き、予め作成したフォームがある事を確認します。(※VBEの開き方についてはこちらを参考にして下さい。)

f:id:m_kbou:20210626080324p:plain

(2)UserForm1フォームをダブルクリックします。

f:id:m_kbou:20210626080340p:plain

(3)UserForm1フォームが表示されるので、フォーム上の任意の場所で右クリックします。小窓が開くので「コードの表示」を選択します。

f:id:m_kbou:20210625164804p:plain

(4)「UserForm_Click」イベントプロシージャが表示されます。(※このUserForm_Clickイベントプロシージャの中に実行する処理内容を記述する事で、フォームがクリックされた時に処理を実行する事ができます。)

f:id:m_kbou:20210625164829p:plain

(5)(4)で作成したイベントプロシージャに実行させる内容を記述します。以下で記述例を紹介します。

[プログラミング例]:

Private Sub UserForm_Click()
  MsgBox "画面がクリックされました。"
End Sub

内容を説明すると、

「UserForm1フォームがクリックされた時に”画面がクリックされました。”のメッセージを表示して下さい。」

との意味になります。

f:id:m_kbou:20210625165017p:plain

(6)プログラムを実行します。(※実行するにはメニューにある実行ボタン(▶)をクリックします。)

f:id:m_kbou:20210625165101p:plain

(7)UserForm1画面が表示されるので、画面上でクリックします。 

f:id:m_kbou:20210625165131p:plain

(8)画面をクリックすると「画面がクリックされました。」のメッセージが表示されます。(※Clickイベントプロシージャが有効に実行された事がわかります。)

f:id:m_kbou:20210625165155p:plain

Clickイベントプロシージャの記述方法についての説明は以上です。

 

サンプル

上記で説明したファイルをダウンロードできます。ご自由にお使い下さい。

drive.google.com

 

おわりに

今回はフォームがクリックされた時に処理を実行する方法について説明しました。様々な場面で画面をクリックするケースがあると思います。場面場面に応じた処理内容を記述して有効に活用してみて下さい。また、似たようなイベントプロシージャに、フォームがダブルクリックされた時に処理を実行するDblClickイベントプロシージャもあります。こちらも一緒に覚えておいて下さい。