VBAでワークシートの選択とシートのアクティブを行う

ワークシートの選択

ワークシートの選択は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つをアクティブにすると、選択状態は解除されず、アクティブシートのみが変更されます。

サンプルコード

実行結果

実行前は以下のようにSheet3が選択されている状態とします。

7行目の「bk.Worksheets(1).Select」でSheet1が選択されます。

10行目の「bk.Sheets(“Sheet2”).Select(Replace:=False)」でSheet1に加えSheet2も選択されます。

13行目の「bk.Sheets(2).Activate」でSheet2がアクティブになります。その際にSheet1とSheet2の選択状態は保持されたままです。

関連記事

サブコンテンツ

このページの先頭へ