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 件のコメント:
コメントを投稿