AddControlイベントは、指定のフォームでコードにより新たにコントロールが作成されたときに発生するイベントです
最初にLoadされた時にもコントロールは作成されていますが、ここでは発生しません
Addメソッドを使用してコントロールを追加した際に発生します
UserFormでのイベント
引数
AddControl(ByVal Control As MSForms.Control)
Controlは、新規作成されたコントロールです
'フォームにボタンを新規作成 Dim 新ボタン As CommandButton Set 新ボタン = Me.Controls.Add("Forms.CommandButton.1", "新ボタン") Set 新ボタン = Nothing
ユーザーフォームでは、フォームにコントロールを作成したときに発生します
上記のコードでコマンドボタンを新規追加作成します
この2行目のコードで、イベントが発生します
Frameでのイベント
引数
AddControl(ByVal Control As MSForms.Control)
Controlは、新規作成されたコントロールです
'フレームにボタンを新規作成 Dim 新ボタン As CommandButton Set 新ボタン = Me.Frame1.Controls.Add("Forms.CommandButton.1", "新ボタン") Set 新ボタン = Nothing
こちらのコードではFrameコントロールにコマンドボタンを新規作成します
フォームの方と同じで、2行目のコードでイベントが発生します
MultiPageでのイベント
引数
AddControl(ByVal Index As Long, ByVal Control As MSForms.Control)
Indexは、追加したコントロールのページのインデックス番号です
Controlは、新規作成されたコントロールです
'フレームにボタンを新規作成 Dim 新ボタン As CommandButton Set 新ボタン = Me.MultiPage1.Pages(0).Controls.Add("Forms.CommandButton.1", "新ボタン") Set 新ボタン = Nothing
MultiPageコントロールの1ページ目にコマンドボタンを追加するコードです
ここも2行目のコード実行時にイベントが発生します
似たようなコントロールのTabStripコントロールではコントロールの追加作成は行えませんのでイベントもありません
また、ページの追加作成ではこのイベントは発生しません
引数Controlについて
Controlには新規作成したコントロールが代入されます
引数の型は「MSForms.Control」となっていますので、コントロールの型全てを含む型になります
なので、この引数でのコーディング時には各コントロールの専用プロパティなどがインテリセンス入力されませんが、使用は出来ます