ユーザーフォームで、シートを選択させるフォームを作るマクロコードをご紹介します。
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」
動作
「ユーザーフォームを開く」ボタンをクリックして、ユーザーフォームを起動します。
ユーザーフォームから開きたいシート名を選択して、「シートを開く」ボタンをクリックします。
選択したシートを開いて、アクティブの状態にします。
ユーザー側が簡単にアクティブシートを切り替えることができます。
この記事がお役に立ちますと幸いです。
・【ExcelVBA】ユーザーフォーム作成の事例まとめ
【VBAユーザーフォーム】何ができるの?:使用例34選
...
「たった1秒で仕事が片づくExcel自動化の教科書【増強完全版】」
「5時間かかる作業が3時間でできます」ではなく「1秒で終わらせます」へ
毎日の業務を瞬時に終わらせるしくみを解説
リンク