ユーザーフォームにボタンなどのコントロールを配置する方法の備忘録です。
(前回紹介した、「【VBA】VBAでエクセル外のオブジェクトを使うとき」に関連した内容になりますので、そちらの投稿も参考にしてください。)
ユーザーフォームにボタンなどのコントロールを配置する方法
ユーザーフォームにボタンなどのコントロールを配置する場合は、object.Add を使用します。
Dim ctrl As Control Set Set Ctrl = object.Add(class [, Name [, Visible ]] )
class は、配置するコントロールに割り振られた class を指定します。Name には、コントロールに振り分ける名前を指定します。
具体的には、次のように記述します。
Dim ctrl As Control
Set ctrl = CreateObject("Forms.CommandButton.1" , "btn_01")
ProgID(プログラムID)の例を次にあげておきます。
Set ctrl = Controls.Add("BARCODE.BarCodeCtrl.1")
Set ctrl = Controls.Add("RefEdit.Ctrl")
Set ctrl = Controls.Add("Forms.CheckBox.1") 'チェックボックス
Set ctrl = Controls.Add("Forms.ComboBox.1") 'コンボボックス
Set ctrl = Controls.Add("Forms.CommandButton.1") 'コマンドボタン
Set ctrl = Controls.Add("Forms.Image.1") 'イメージ
Set ctrl = Controls.Add("Forms.Label.1") 'ラベル
Set ctrl = Controls.Add("Forms.ListBox.1") 'リストボックス
Set ctrl = Controls.Add("Forms.MultiPage.1") 'マルチページ
Set ctrl = Controls.Add("Forms.OptionButton.1") 'オプションボタン
Set ctrl = Controls.Add("Forms.ScrollBar.1") 'スクロールバー
Set ctrl = Controls.Add("Forms.SpinButton.1") 'スピンボタン
Set ctrl = Controls.Add("Forms.TabStrip.1") 'タブストリップ
Set ctrl = Controls.Add("Forms.TextBox.1") 'テキストボックス
Set ctrl = Controls.Add("Forms.ToggleButton.1") 'トグルボタン
Set ctrl = Controls.Add("MSComctlLib.ListViewCtrl")
Set ctrl = Controls.Add("MSComctlLib.TreeCtrl")
Set ctrl = Controls.Add("InkEd.InkEdit.1")
Set ctrl = Controls.Add("MSInkaut.InkPicture.1")
Set ctrl = Controls.Add("WMPlayer.OCX.7")
ワークシート上に設置する場合は、OLEObjects.Add を使用します。
ActiveWorkbook.Worksheets("Sheet1").OLEObjects.Add ClassType:="Word.Document"
