OfficeType

VBA~ユーザーフォームのラベルをクリックした時の処理を設定しよう~Excel

ラベルをクリックした時の処理を設定する方法を解説します。

例として下のユーザーフォームにLabel2を追加しLabel2をクリックするとユーザーフォームの解説が表示されるように設定します。このユーザーフォームには既にはいボタンを押すとセルA1が赤くなりユーザーフォームが閉じるコードといいえボタンをおすと処理なしでユーザーフォームが閉じるように下のコードが設定されています。

image-01

Public Sub CommandButton1_Click()
Range("A1").Interior.Color = RGB(255, 0, 0)
Unload UserForm1
End Sub
Private Sub CommandButton2_Click()
Unload UserForm1
End Sub

ツールボックスのAマーク(ラベル)をクリックしユーザーフォームのラベルを表示したい箇所でクリックするとラベルが設定され、中にLabel2の文字列が表示されています。ツールボックスが表示されていない場合はメニューの表示からツールボックスをクリックすると表示されます。

image-02

image-03

ラベルをクリックすると入力カーソルが表示されるので表示したい文字列を入力します。今回は"クリックすると解説が開きます。"としました。

image-04

ラベルを強調するために文字列を青くします。ラベルを選択した状態でプロパティウィンドウのForeColor項目をクリックすると▼マークが表示されるのでクリックします。パレットから今回は青を選択しました。プロパティウィンドウが表示されていない場合はメニューの表示からプロパティウィンドウをクリックすると表示されます。

image-05

image-06

image-07

ラベルをダブルクリックすると下のコードが表示されます。

Private Sub Label2_Click()

End Sub

ここに処理内容を書き込めばラベルをクリックしたときの処理を設定できます。今回はラベルをクリックするとメッセージボックスでユーザーボックスの解説を表示したいので下のコードを書き込みます。

Private Sub Label2_Click()
MsgBox "はいを押すとセルA1が赤く塗りつぶされます。" & vbLf & "いいえを押すと処理は実行されません。"
End Sub

VBAで次のコードを実行するとユーザーフォームが表示されるのでLabel2をクリックすると解説が表示されます。

Sub test1()

UserForm1.Show

End Sub

image-08

image-09