【ユーザーフォーム】シートを選択させるフォーム作成:VBA

エクセルマクロ_ユーザーフォームでシート選択_アイキャッチ エクセルマクロで効率化する

ユーザーフォームで、シートを選択させるフォームを作るマクロコードをご紹介します。

ListBoxにシート一覧を表示して、シートを選択します。
シート数の増減にも対応しているVBAコードです。

このページのマクロコードは、コピペで使えます。
せひ、お試しください。

ユーザーフォームを作成して開く

エクセルにコマンドボタンを作成し、ユーザーフォームを開きます。


 

マクロコードを標準モジュール「Module1」に入力します。


Sub ボタン1_Click()
    UserForm1.Show vbModeless
End Sub

 

マクロコードを「Module1」に入力した画面の様子


 

ユーザーフォーム内部にマクロコードを入力する

マクロコードを「UserForm1」に入力します。


Option Explicit
Dim ShtName As String

Private Sub CommandButton1_Click()

    ShtName = UserForm1.ListBox1.Value

    'シートを選択する
    Sheets(ShtName).Activate

End Sub

Private Sub UserForm_Initialize()

Dim MyList() As Variant
Dim i As Integer

    With UserForm1.ListBox1

        '1つだけ選択
        .MultiSelect = fmMultiSelectSingle

        'チェックボックス表示
        .ListStyle = fmListStyleOption
        
        ReDim Preserve MyList(Sheets.Count)

        'シート名を取得
        For i = 1 To Sheets.Count
            MyList(i) = Sheets(i).Name
        Next i

        'リストボックスに追加
        For i = 2 To UBound(MyList)
            .AddItem MyList(i)
        Next i
    End With

End Sub

 

マクロコードを入力する場所「UserForm1」


 

動作

「ユーザーフォームを開く」ボタンをクリックして、ユーザーフォームを起動します。


 
 

ユーザーフォームから開きたいシート名を選択して、「シートを開く」ボタンをクリックします。

選択したシートを開いて、アクティブの状態にします。

ユーザー側が簡単にアクティブシートを切り替えることができます。

この記事がお役に立ちますと幸いです。
 

【VBAユーザーフォーム】何ができるの?:具体的な使用例11選
...