ワークシートを選択する、もう一つ選択する

ワークシートを選択した後で、追加でさらにシートをもう一つ選択するというような操作をVBAコードではどのように記述すればよいでしょうか。


ワークシートを選択し、さらにもう一つ選択する

ワークシートを選択する

ワークシートを選択するには

ワークシートを選択するには、SelectメソッドまたはActivateメソッドを使用して選択します。
これについてはワークシートを参照するでご説明しました。
そこで、今回はセレクトとアクティベートの違いがわかるコードの例をご紹介します。
1番目のシートを選択し、そのシートを選択したまま、3番目のシートを選択してみます。

複数シートを選択と特定シートのアクティベイト

1. まず最初の一番目のシートを選択して、ひとつ飛ばして3番目のシートを1番目のシートの選択を解除しないままの状態で3番目のシートを選択するというケースです。


ワークシートを選択し、さらにもう一つ選択する1
Sub ワークシートの複数選択()
    Worksheets("1番目").Select
    Worksheets("3番目").Select Replace:=False
    Worksheets("3番目").Activate
End Sub

2. WorksheetsオブジェクトのSELECT メソッドにはReplaceという引数があり、 普段は省略してselectだけで使うことが多いですが、 引数replaceにFalseを指定すると、 現在の選択範囲を拡張して指定したシートを追加選択することになります。


ワークシートを選択し、さらにもう一つ選択する2

3.ふだん良く使うSelectメソッドでは、 引数を省略するので、この場合は、その前の選択シートは解除されて、最後に選択したシートを選択しています。

Sub ワークシートの選択() Worksheets("1番目").Select Worksheets("3番目").Select End Sub
ワークシートを選択し、さらにもう一つ選択する3

4. さて、1番目のシートだけを選択するとそれはアクティブになります。
その状態のままで3番目のシートも選択したいときは、次のように書きます。
単純にWorksheets("3番目").Select Replace:=Falseと記述すれば、選択が拡張されただけで、アクティブシートの移動はありません。

Sub ワークシートの選択追加()
    Worksheets("1番目").Select
    Worksheets("3番目").Select Replace:=False
End Sub

ワークシートを選択し、さらにもう一つ選択する4

アクティブシートを移動する

5. アクティブシートを移動したい時には、指定したシートをActivateメゾッドによってアクティブにしてやる必要があります。
Worksheet.Activate メソッドには、引数はなく、現在のシートを作業中のシートにするという意味があります。
Worksheets("3番目").Activate