EXCELでブラウザの様に「戻る」「進む」する
シートがたくさんあるファイルを見てるときに、ALT + →キー、ALT + ←キー で今まで見たシートを見てきた順番に行ったり来たりできる。
ALT + F11 を押し、「ThisWorkbook」をダブルクリックし、以下を貼り付ける。
Public sheet_history As New Collection 'シート移動履歴 Public current_sheetnumber As Integer '現在の履歴位置 'キー設定解除 Private Sub Workbook_BeforeClose(Cancel As Boolean) Application.OnKey "%{left}", "" Application.OnKey "%{right}", "" End Sub 'キー設定 Private Sub Workbook_Open() Application.OnKey "%{left}", "ThisWorkbook.back_sheet" Application.OnKey "%{right}", "ThisWorkbook.next_sheet" sheet_history.Add ActiveSheet current_sheetnumber = 1 End Sub '新しく選択された Private Sub Workbook_SheetActivate(ByVal Sh As Object) Do While sheet_history.Count > current_sheetnumber ' 以降全部消す sheet_history.Remove current_sheetnumber + 1 Loop If sheet_history.Count > 100 Then sheet_history.Remove 1 '100回まで保存 超えたら先頭を消す sheet_history.Add Sh current_sheetnumber = sheet_history.Count End Sub '戻る Public Sub back_sheet() If current_sheetnumber < 2 Then Exit Sub Application.EnableEvents = False If Not IsNull(sheet_history(current_sheetnumber - 1)) Then sheet_history(current_sheetnumber - 1).Activate current_sheetnumber = current_sheetnumber - 1 Application.EnableEvents = True End Sub '進む Public Sub next_sheet() If current_sheetnumber = sheet_history.Count Then Exit Sub Application.EnableEvents = False If Not IsNull(sheet_history(current_sheetnumber + 1)) Then sheet_history(current_sheetnumber + 1).Activate current_sheetnumber = current_sheetnumber + 1 Application.EnableEvents = True End Sub
貼り付けたウィンドウは閉じてOK。ファイルを保存してもう一度開くと動作する。