Corredor

ウェブ、プログラミングの勉強メモ。

Excel でシートを開いた時に全シート A1 セルにカーソルを合わせ、必ず1シート目を開かせるマクロ

タイトルそのまんま。以下のマクロを「ThisWorkbook」に仕込んでおく。

Private Sub Workbook_Open()
  ' 処理中は画面描画を抑止しておく
  Application.ScreenUpdating = False
  
  ' 全シートのホームポジションを A1 セルに設定する
  Dim ws As Variant
  For Each ws In Workbooks
    If Sheets(ws.Name).Visible = True Then
      Sheets(ws.Name).Select
      Application.Goto Reference:=ActiveWindow.ActiveSheet.Range("A1"), Scroll:=True
      ' Range("A1").Select
    End If
  Next
  
  ' 最初のシートをアクティブにする
  ' 1シート目が非表示になっていなければ「Sheets(1).Activate」の1行で済むが、
  ' 非表示に設定されている場合はエラーになるので、表示されているシートで最初のシートを探す
  For Each ws In Worksheets
    If Sheets(ws.Name).Visible = True Then
      Sheets(ws.Name).Select
      Exit For
    End If
  Next
  
  Application.ScreenUpdating = True
End Sub

かんたんだけどしっかりわかるExcelマクロ・VBA入門

かんたんだけどしっかりわかるExcelマクロ・VBA入門