Excel ワークシートの選択

Excelでシートがたくさんになると探すのがとても面倒でした。一覧にして、クリックでジャンプできると便利なのに、なぜそういう機能がないのか。VBAで作りました。

こういうフォームをつくって、

VBA userform

こういうコードを書きました。

Private Sub SheetList_Click()
    Sheets(SheetList.Value).Select
    Unload JumpWorksheetForm
End Sub

Private Sub UserForm_Initialize()
    Dim sh As Worksheet
    Dim list_height As Integer
    
    list_height = ActiveWorkbook.Sheets.Count * 10
    list_height = Application.WorksheetFunction.Max(list_height, 40)
    list_height = Application.WorksheetFunction.Min(list_height, 240)
    JumpWorksheetForm.Height = list_height + 30
    
    With SheetList
        .Height = list_height
        For Each sh In ActiveWorkbook.Sheets
            .AddItem sh.Name
        Next sh
    End With
End Sub

さらにPERSONAL.XLSBにフォームを呼び出すコードをつけ、Ctrl + Shift + Jで呼び出すようにしました。

Sub JumpWorksheet()
    JumpWorksheetForm.Show
End Sub

後の祭り

完成したあとで、Excelの標準機能に同じものがあるのを発見しました。

ウィンドウ下部の、シート名の左にある矢印を右クリックで、

excel window

こういうものが出てくる

sheet select