ワークシートの選択
ワークシートの選択はSelectメソッドを利用します。選択状態になるとWorkbookオブジェクトのSelectionプロパティで参照できるようになります。
ワークシートの選択は単一シートだけでなく複数シートに対しても行うことが可能です。
SelectメソッドのBoolean型の引数で、新しく選択しなおすか、追加でさらに選択するワークシートを増やすかを指定します。
構文
Worksheets.Select(Replace As Boolean)
Worksheet.Select(Replace As Boolean)
Worksheets、Worksheet | Selectメソッドの親オブジェクトにはWorksheetsコレクションかWorksheetオブジェクトを指定します。
Worksheetsコレクションを指定した場合はブックに含まれるワークシート全てが対象になりますが、Worksheetオブジェクトを指定した場合はそのワークシートのみが対象になります。 |
Replace | TrueまたはFalseを指定します。省略はTrueと同じ意味になります。
True(または省略)を指定した場合は、現在選択中のワークシートの選択を解除し、指定したワークシートを選択します。単一のワークシートを選択した場合は、自動的にそのワークシートがアクティブになります。 Falseを指定した場合は、現在選択中のワークシートに加えてさらに指定したワークシートを選択します。指定したシートはアクティブにはならず、元々アクティブだったワークシートがアクティブのままになります。 |
ワークシートをアクティブにする
ワークシートをアクティブにするにはActivateメソッドを利用します。アクティブというのはシートが一番手前に表示されている状態のことを指します。
アクティブにできるのは1シートのみです。
構文
Worksheet.Activate
Worksheet | Activateメソッドの親オブジェクトにアクティブにするワークシートを指定します。 |
ワークシートの選択とアクティブの違い
シートの選択には単一シートを選択する場合と複数シートを選択する場合の2通りがあります。
シートの選択とは異なり、アクティブシートは1つに限定されます。
アクティブであることは選択されている状態でもあります。単一シートの場合はアクティブシートと選択シートは同じシートになります。ただし、複数シートを選択している場合は選択シートのうちの1つのシートがアクティブになっている状態です。
複数あるシートのうち、未選択だったシートをアクティブにすると、それまで選択状態だったシートは選択状態を解除され、アクティブになったシートが選択されます。
複数シートを選択している場合に、そのうちの1つをアクティブにすると、選択状態は解除されず、アクティブシートのみが変更されます。
サンプルコード
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
Sub SheetSelectActivateTest() Dim bk As Workbook Set bk = ActiveWorkbook '// Sheet1を選択 bk.Worksheets(1).Select '// Sheet2を追加で選択(Sheet1がアクティブ) Call bk.Sheets("Sheet2").Select(Replace:=False) '// Sheet2をアクティブ bk.Sheets(2).Activate End Sub |
実行結果
実行前は以下のようにSheet3が選択されている状態とします。
7行目の「bk.Worksheets(1).Select」でSheet1が選択されます。
10行目の「bk.Sheets(“Sheet2”).Select(Replace:=False)」でSheet1に加えSheet2も選択されます。
13行目の「bk.Sheets(2).Activate」でSheet2がアクティブになります。その際にSheet1とSheet2の選択状態は保持されたままです。