ワークシートをアクティブにするActivateとSelect

中級VBA

はじめに

 VBAでワークシートをアクティブにしたい時には2つの方法があります。
 
  Sheets(“Sheet1”).Activate
  Sheets(“Sheet1”).Select

 どちらも、Sheet1をアクティブにすることができます。
 結論から言うと、Activaeはシートをアクティブにしていて、
 Selectはシートを選択した結果アクティブになったということになります。
 
 マクロの記録を使って、別のシートからSheet1をアクティブにすると、Selectの方が記録されます。
 これはつまり、Sheet1を選択した結果アクティブになったという事になります。
 
 2つの大きな違いは、Selectでは、複数のシートを扱う事ができるという点です。
 
 つまり、1つのシートだけを対象にしたい場合は、ActivateでもSelectでも同じ結果となります。

複数選択されたシートの1つをアクティブにする

 ここでは、複数のシートを選択して、その中の任意の1つをアクティブにしてみます。
 SelectActivateを同時に使う方法です。

Sub macro()
    Worksheets(Array(1, 3, 5)).Select
    Worksheets(3).Activate
End Sub

 複数のワークシートを選択する方法は他にもいくつかあります。
 詳しくは、以下のページを参照してみてください。
 ・複数のワークシートを扱う方法

まとめ

 結局のところ、ワークシートをアクティブにしたい時は Activate Select のどちらを使えば良いのでしょうか?
 答えは、Activateでしょう。
 プログラミングでは、別の人がコードを見た時に、何を意図しているかを明確にした方が伝わりやすくなります。

コメント

タイトルとURLをコピーしました