HOME > 即効テクニック > Excel VBA > シート操作関連のテクニック > コンボボックスにアクティブシートの名前を初期表示する

コンボボックスにアクティブシートの名前を初期表示する|Excel VBA

シート操作関連のテクニック

コンボボックスにアクティブシートの名前を初期表示する

(Excel 97/2000/2002/2003/2007/2010/2013)

次のコードは、ユーザーフォームの表示時に、ブックに含まれるすべてのシート名をコンボボックスに追加して、アクティブシートを初期表示します。ユーザーフォームにコンボボックス「ComboBox1」を配置して実行してください。
これを応用すると、シート名のほかにも、配列やコレクションのメンバーをコンボボックスやリストボックスに追加して、特定の要素を選択された状態にすることができます。

Private Sub UserForm_Initialize()
    Dim intCnt As Long, intListIndex As Long
    Dim sh As Variant
    Dim strSheetName As String

    strSheetName = ActiveSheet.Name 'アクティブシートの名前を保存
    ComboBox1.Clear                 'コンボボックスをクリア
    intCnt = 0                      'カウンタ変数を初期化
    
    For Each sh In Application.Sheets
        'シート名をコンボボックスに追加
        ComboBox1.AddItem sh.Name
        'アクティブシートかどうかをチェックしてインデックス番号を保存
        If strSheetName = sh.Name Then
            intListIndex = intCnt
        End If
        intCnt = intCnt + 1
    Next sh
    'アクティブシートを初期表示
    ComboBox1.ListIndex = intListIndex
End Sub