Workbooks(i).Worksheets(i).Activate
Range("A1").Select
とうっかり書いちゃうんですが、これは期待した結果になりません。どういうことかというと、実際にコードを書いて動かしてみるとわかるんだけど、シートを移動することになるので、
Application.ScreenUpdating = Falseをいれることになります。
そうすると、↓これは
こうなって↓欲しいのに
こうなっちゃいます。↓ 残念...
あと、タイトル行を固定してフィルタをかけてる表はよくありますが、これも...
こんな残念な結果になります↓(A1は選択されているけど、、スクロールしてない、、残念...。)
Application.Goto メソッド
シートの選択、セルの選択、ウィンドウ固定のスクロールを全部やってくれる、とても便利なメソッドがあるので、これを使います。サンプルコード
選択しているシートやスクリーン更新の状態は、呼び出しの前後で変化すると使いにくくなりそうなので、元の状態に戻すようにしてます。
Sub 全シートのA1セルを選択()
Dim home As Worksheet
Dim bScrUpdStatus As Boolean
Dim ws As Worksheet
''初期状態を保存
Set home = ActiveSheet
bScrUpdStatus = Application.ScreenUpdating
Application.ScreenUpdating = False
With ThisWorkbook
For Each ws In .Worksheets
Select Case True
Case InStr(ws.Name, "除外したいシート名") > 0
'何もしない'
Case Else
Application.Goto reference:=ws.Range("A1"), scroll:=True
End Select
Next ws
End With
''初期状態に戻す
home.Activate
Application.ScreenUpdating = bScrUpdStatus
End Sub



0 件のコメント:
コメントを投稿