はじめに
VBAでワークシートをアクティブにしたい時には2つの方法があります。
Sheets(“Sheet1”).Activate
Sheets(“Sheet1”).Select
どちらも、Sheet1をアクティブにすることができます。
結論から言うと、Activaeはシートをアクティブにしていて、
Selectはシートを選択した結果アクティブになったということになります。
マクロの記録を使って、別のシートからSheet1をアクティブにすると、Selectの方が記録されます。
これはつまり、Sheet1を選択した結果アクティブになったという事になります。
2つの大きな違いは、Selectでは、複数のシートを扱う事ができるという点です。
つまり、1つのシートだけを対象にしたい場合は、ActivateでもSelectでも同じ結果となります。
複数選択されたシートの1つをアクティブにする
ここでは、複数のシートを選択して、その中の任意の1つをアクティブにしてみます。
SelectとActivateを同時に使う方法です。
Sub macro()
Worksheets(Array(1, 3, 5)).Select
Worksheets(3).Activate
End Sub
複数のワークシートを選択する方法は他にもいくつかあります。
詳しくは、以下のページを参照してみてください。
・複数のワークシートを扱う方法
まとめ
結局のところ、ワークシートをアクティブにしたい時は Activate と Select のどちらを使えば良いのでしょうか?
答えは、Activateでしょう。
プログラミングでは、別の人がコードを見た時に、何を意図しているかを明確にした方が伝わりやすくなります。
コメント