【ExcelVBA・マクロ】UserForm_Initializeの使い方|フォーム起動時の初期処理を設定する方法【コピペOK】

UserForm_Initializeの使い方 ExcelVBA

ユーザーフォームのUserForm_Initializeの使い方についてご紹介します。

  • フォームを開いたときに初期値を設定したい
  • コンボボックスやリストを自動で読み込みたい
  • 毎回同じ準備処理を実行したい

このような場合は、UserForm_Initialize を使うことで解決できます。
フォームが開いたタイミングで自動的に処理を実行できる、非常に重要なイベントです。

この記事では、Initializeイベントの基本から実務での使い方まで、初心者向けに分かりやすく解説します。


スポンサーリンク
スポンサーリンク

この記事でできること

  • UserForm_Initializeの役割が分かる
  • フォーム起動時に処理を実行できる
  • 初期値やリスト設定ができる
  • 実務で使えるパターンが分かる

UserForm_Initializeとは?

フォームが表示される直前に自動実行されるイベントです。

つまり、

  • UserForm.Show を実行すると
  • → Initialize が自動で動く
  • → その後フォームが表示される

という流れになります。


基本:Initializeの書き方

ユーザーフォームのコードに次のように書きます。

Private Sub UserForm_Initialize()

    MsgBox "フォームが起動しました"

End Sub

これでフォーム表示時にメッセージが出ます。


よくある使い方①:テキストボックスの初期値設定

Private Sub UserForm_Initialize()

    Me.TextBox1.Value = "初期値"

End Sub

フォームを開いた瞬間に値が入ります。


よくある使い方②:セルの値を表示

Private Sub UserForm_Initialize()

    Me.TextBox1.Value = Range("A1").Value

End Sub

Excelの内容をフォームに表示できます。


よくある使い方③:コンボボックスにリストを設定

Private Sub UserForm_Initialize()

    Me.ComboBox1.AddItem "未処理"
    Me.ComboBox1.AddItem "進行中"
    Me.ComboBox1.AddItem "完了"

End Sub

フォーム表示時に選択肢が自動で設定されます。


よくある使い方④:リストボックスにデータを読み込む

Private Sub UserForm_Initialize()

    Me.ListBox1.List = Range("A1:A5").Value

End Sub

一覧表示系の処理はInitializeが基本です。


よくある使い方⑤:ラベルにメッセージ表示

Private Sub UserForm_Initialize()

    Me.Label1.Caption = "処理を選択してください"

End Sub

InitializeとActivateの違い

似たイベントに Activate があります。

イベント実行タイミング
Initializeフォーム生成時(1回だけ)
Activateフォームがアクティブになるたび

基本は Initializeを使えばOK です。


Initializeが動かない原因

① コードを書く場所が違う

標準モジュールではなく、ユーザーフォームのコードに書いてください。

② イベント名が間違っている

正しくは次です。

Private Sub UserForm_Initialize()

③ フォームをShowしていない

UserForm1.Show

これが実行されていないと動きません。


実務での活用例

  • 入力フォームの初期化
  • マスタデータの読み込み
  • 既存データの表示
  • UIの初期設定

フォーム系の処理はほぼInitializeから始まります。


まとめ

  • Initializeはフォーム起動時に自動実行される
  • 初期値・リスト設定に使う
  • 基本はここに処理を書く
  • フォーム開発の土台となる重要イベント

UserForm_Initializeを使いこなせるようになると、ユーザーフォームの完成度が一気に上がります。
フォーム処理の基本中の基本なので、ぜひしっかり理解しておきましょう。

スポンサーリンク
スポンサーリンク
ExcelVBA
いがぴをフォローする

コメント

タイトルとURLをコピーしました