📋
NavigateToSheet
シート管理指定したシートにジャンプする
特定のワークシートに素早くジャンプするVBAマクロです。Worksheets("シート名").Activateメソッドで目的のシートを直接アクティブ化できます。入力ボックスやドロップダウンリストでシート名を選択してジャンプする対話型ナビゲーターや、ボタンにマクロを割り当てたダッシュボードメニューとして活用できます。シート数が多いブックでの操作効率を大幅に改善します。内部ではWorksheets("シート名").Activateメソッドを呼び出すだけのシンプルな仕組みですが、InputBoxやComboBoxと組み合わせることで対話的なナビゲーションUIに発展させられます。ListAllSheetsで作成した目次シートのハイパーリンクと組み合わせれば、クリック操作だけで巨大なブックを軽快に移動できる環境が整います。

📖 使い方
- VBAエディタを開く(Alt + F11)
- モジュールを挿入(挿入 > モジュール)
- 下記VBAコードをコピー&ペースト
- ブック上で実行(Alt + F8 でマクロ選択)
💡 実行例: 実行するとシート一覧から選択するダイアログが表示され該当するシートに移動する
🎯 活用シーン
- ✓100シート以上あるブックの目次・ナビゲーションパネルを作成
- ✓ダッシュボードボタンから各部門シートへワンクリックジャンプ
- ✓マクロメニューから目的のレポートシートに素早くアクセス
- ✓月別・支店別など大量のシートを持つブックで、目的のシートまで素早く移動したいとき
- ✓経理担当者が日々使う複数の集計シート間を、メニューから一発で切り替えたいとき
💡 実装のヒント
- ▸InputBoxでシート名を入力させてActivateするとインタラクティブになります
- ▸シート名の一覧をComboBoxに表示するユーザーフォームが実用的です
- ▸存在しないシート名はOn ErrorでエラーハンドリングできGracefulです
- ▸存在しないシート名が入力された場合に備え、On Error Resume Nextとエラーメッセージ表示を組み合わせてください。
- ▸頻繁に使うシートへのショートカットとして、ツールバーやリボンにマクロを登録しておくとさらに便利です。
💻 VBAコード
' NavigateToSheet
' -----------------
' Macro Name: NavigateToSheet
' Description: 指定したシートにジャンプする
' Parameters: なし
' Returns: なし
' Usage: 実行するとシート一覧から選択するダイアログが表示され該当するシートに移動する
' -----------------
Sub NavigateToSheet()
Dim ws As Worksheet
Dim sheetList As String
Dim sheetName As String
Dim i As Long
On Error GoTo ErrorHandler
sheetList = "移動先のシート名を入力:" & vbCrLf & vbCrLf
For i = 1 To Worksheets.Count
sheetList = sheetList & " " & i & ": " & Worksheets(i).Name & vbCrLf
Next i
sheetName = InputBox(sheetList, "シート移動", "")
If sheetName = "" Then
Exit Sub
End If
If IsNumeric(sheetName) Then
i = CLng(sheetName)
If i >= 1 And i <= Worksheets.Count Then
Worksheets(i).Select
MsgBox "「" & Worksheets(i).Name & "」に移動しました。", vbInformation
Else
MsgBox "無効な番号です。", vbExclamation
End If
Else
On Error Resume Next
Set ws = Worksheets(sheetName)
On Error GoTo ErrorHandler
If ws Is Nothing Then
MsgBox "「" & sheetName & "」は存在しません。", vbExclamation
Else
ws.Select
MsgBox "「" & sheetName & "」に移動しました。", vbInformation
End If
End If
Exit Sub
ErrorHandler:
MsgBox "エラーが発生しました: " & Err.Description, vbCritical
End Sub