ユーザーフォームにボタンなどのコントロールを配置する方法の備忘録です。
(前回紹介した、「【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"