恐らくこのコードで問題はないと思われますが、もし万が一動作が遅くなるなどありましたら使用を中止してください
このコードを記述したブックをアドオン形式のファイルとして保存してください
開発タブ→Excelアドインから保存したファイルを選択してください
このコードをTisworkbookモジュールに記述します
'変数の宣言を強制
Option Explicit
'アプリケーションイベントを宣言
Private WithEvents Excelapp As Application
'アドオン用のオープンイベント(つまりどのブックを開いても「Excelの起動時に」マクロを実行)
Private Sub Workbook_Open()
'アプリケーションオブジェクトをPrivate変数に代入
Set Excelapp = Application
End Sub
'(本題)どのブックでも開いたときにWorkbookOpenイベントを実行
'開いたブック(ファイル)は引数としてWB変数に代入される
Private Sub Excelapp_WorkbookOpen(ByVal WB As Workbook)
'ワークシートの変数
Dim ws As Worksheet
'開いたブック(WB変数)の全てのシート(コレクション)をループする
'For Each In WB.Worksheetsで取り出されたワークシートはws変数に代入される
For Each ws In WB.Worksheets
'まずシートをアクティブにしないとA1セルをセレクトした時にエラーが発生する
ws.Activate
ws.Range("A1").Select
'Withでアクティブを省略
With ActiveWindow
'A1セルの行にスクロール
.ScrollRow = ActiveCell.Row
'A1セルの列にスクロール
.ScrollColumn = ActiveCell.Column
End With
'次のワークシートへ
Next ws
'最後に一番左のワークシートをアクティブにする
WB.Sheets(1).Activate
End Sub