PlusOne Blog

【VBA】ユーザーフォームにボタンなどのコントロールを配置するとき

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

 

 

この記事を読む
記事一覧に戻る