リストボックスを動的に作成し、リストを追加する

ActiveXコントロールを動的に作成するには、OLEObjectsコレクションのAddメソッドを使います。
作成後、なぜか「 ActiveSheet.Select 」を実行しないと、リストボックスが使用できません。


Homeに戻る > Excel コンボボックスのTipsへ

実行画面

「リストボックス作成」ボタンをクリックすると、作成されます。
リストボックスを作成するソフト

作成したリストボックスです。
"国語"、"理科"、"社会"、"算数" の項目が追加されています。
4項目が追加されているリストボックス

実行VBAコード

Option Explicit

Private Sub CommandButton1_Click()
    Dim olelist As Object
    Dim objlist As Object

    'リストボックス作成
    Set olelist = ActiveSheet.OLEObjects.Add(ClassType:="Forms.ListBox.1", Left:=35, Top:=70, Width:=150, Height:=150)
    
    '作成したリストボックス
    Set objlist = ActiveSheet.OLEObjects(olelist.Name).Object

    '項目をセット
    With objlist
        .AddItem "国語"
        .AddItem "理科"
        .AddItem "社会"
        .AddItem "算数"
    End With
    
    'これがないと使えない
    ActiveSheet.Select
    
    '終了処理
    Set objlist = Nothing
    Set olelist = Nothing
End Sub

Homeに戻る > Excel コンボボックスのTipsへ

■■■
このサイトの内容を利用して発生した、いかなる問題にも一切責任は負いませんのでご了承下さい
■■■
当ホームページに掲載されているあらゆる内容の無許可転載・転用を禁止します


Copyright (c) Excel-Excel ! All rights reserved