ユーザーフォームを表示する直前に発生するイベント(Initializeイベント)

ユーザーフォームが表示される直前に発生するイベントが Initialize イベントです。このイベントに対するイベントプロシージャを作成することで、ユーザーフォームに関する初期設定などを行うことができます。ここでは Excel のユーザーフォームでユーザーフォームを表示する直前に発生する Initialize イベントについて解説します。

(Last modified: )

Initializeイベントの利用方法

イベントフォームが表示される直前に発生するイベントが Initialize です。ユーザーフォームオブジェクトで発生します。このイベントに対するイベントプロシージャを作成することで、ユーザーフォームが表示される直前に行いたい処理などを実行することができます。

※ 公式サイトではこのイベントが発生するタイミングとして「オブジェクトが読み込まれてから表示されるまでに発生します。」と表記されています。

それでは例として次のようにテキストボックスとコマンドボタンが 1 つずつ設置されたユーザーフォームで Initialize イベントに対するイベントプロシージャを作成してみます。

Initializeイベントの利用方法(1)

ユーザーフォームの何もコントロールが設置されているところをダブルクリックしてください。

Initializeイベントの利用方法(2)

ユーザーフォームの既定のイベントに対するイベントプロシージャが表示されます。

Private Sub UserForm_Click()

End Sub

Initializeイベントの利用方法(3)

Visual Basic Editor の画面右上にある次の部分をクリックし、イベントの種類として Initialize を選択してください。

Initializeイベントの利用方法(4)

Initializeイベントの利用方法(5)

Initialize イベントに対するイベントプロシージャが表示されました。(最初に表示された Click イベント用のイベントプロシージャは消して頂いて構いません)。

Private Sub UserForm_Initialize()

End Sub

Initializeイベントの利用方法(6)

それではユーザーフォームが表示される直前に行いたい処理をこのイベントプロシージャの中に記述していきます。今回はテキストボックスの初期値を入力し、コマンドボタンに表示されるテキストを変更します。

Private Sub UserForm_Initialize()
    TextBox1.Value = "名前を入力してください"
    CommandButton1.Caption = "OK"
End Sub

Initializeイベントの利用方法(7)

それでは実際に試してみます。「Sub/ユーザーフォームの実行」をクリックしてください。

Initializeイベントの利用方法(8)

ユーザーフォームが表示されました。ユーザーフォームが表示される直前に Initialize イベントが発生し、イベントしプロシージャが実行されてテキストボックスへの初期値の代入とコマンドボタンに表示される文字列が変更された上でユーザーフォームが表示されました。

Initializeイベントの利用方法(9)

このように Initialize イベントのイベントプロシージャを作成することで、ユーザーフォームが表示される直前に行いたい処理を実行することができます。

-- --

Excel のユーザーフォームでユーザーフォームを表示する直前に発生する Initialize イベントについて解説しました。

( Written by Tatsuo Ikura )

Profile
profile_img

著者 / TATSUO IKURA

プログラミングや開発環境構築の解説サイトを運営しています。