ユーザーフォームを表示する直前に発生するイベント(Initializeイベント)
ユーザーフォームが表示される直前に発生するイベントが Initialize イベントです。このイベントに対するイベントプロシージャを作成することで、ユーザーフォームに関する初期設定などを行うことができます。ここでは Excel のユーザーフォームでユーザーフォームを表示する直前に発生する Initialize イベントについて解説します。
(Last modified: )
Initializeイベントの利用方法
イベントフォームが表示される直前に発生するイベントが Initialize
です。ユーザーフォームオブジェクトで発生します。このイベントに対するイベントプロシージャを作成することで、ユーザーフォームが表示される直前に行いたい処理などを実行することができます。
※ 公式サイトではこのイベントが発生するタイミングとして「オブジェクトが読み込まれてから表示されるまでに発生します。」と表記されています。
それでは例として次のようにテキストボックスとコマンドボタンが 1 つずつ設置されたユーザーフォームで Initialize
イベントに対するイベントプロシージャを作成してみます。
ユーザーフォームの何もコントロールが設置されているところをダブルクリックしてください。
ユーザーフォームの既定のイベントに対するイベントプロシージャが表示されます。
Private Sub UserForm_Click() End Sub
Visual Basic Editor の画面右上にある次の部分をクリックし、イベントの種類として Initialize
を選択してください。
Initialize
イベントに対するイベントプロシージャが表示されました。(最初に表示された Click
イベント用のイベントプロシージャは消して頂いて構いません)。
Private Sub UserForm_Initialize() End Sub
それではユーザーフォームが表示される直前に行いたい処理をこのイベントプロシージャの中に記述していきます。今回はテキストボックスの初期値を入力し、コマンドボタンに表示されるテキストを変更します。
Private Sub UserForm_Initialize() TextBox1.Value = "名前を入力してください" CommandButton1.Caption = "OK" End Sub
それでは実際に試してみます。「Sub/ユーザーフォームの実行」をクリックしてください。
ユーザーフォームが表示されました。ユーザーフォームが表示される直前に Initialize
イベントが発生し、イベントしプロシージャが実行されてテキストボックスへの初期値の代入とコマンドボタンに表示される文字列が変更された上でユーザーフォームが表示されました。
このように Initialize
イベントのイベントプロシージャを作成することで、ユーザーフォームが表示される直前に行いたい処理を実行することができます。
-- --
Excel のユーザーフォームでユーザーフォームを表示する直前に発生する Initialize イベントについて解説しました。
( Written by Tatsuo Ikura )
著者 / TATSUO IKURA
これから IT 関連の知識を学ばれる方を対象に、色々な言語でのプログラミング方法や関連する技術、開発環境構築などに関する解説サイトを運営しています。