
VBAの基礎知識 006回
選択されているワークシートを参照するには、Windowオブ‘ジェク卜のSelectedSheetsプロパティを使用します。
例えばいくつかのシートを選択して、ブックから削除したい場合などに複数シートをSelectedSheetプロパティで参照して、それらをまとめて削除するなどということができます。
1. object.SelectedSheets
SelectedSheetsプロパティは、指定したウインドウで選択されているすべてのワークシートを取得します。
この時、obiectに指定するのは、WorkbookではなくWindowオブジェクトであるという点に注意が必要です。
親オブジェクトにブックを指定するとエラーになります。

2. 以下のサンプルではまず、ワークシートをArray関数を使って、シート1シート3を選択しました。 続いてActiveWindowのSelectedSheetsで選択したシート参照して、Deleteメソッドで、デリート削除しています。
Sub 複数の選択されたシートを削除()
Worksheets(Array("Sheet1", "Sheet3")).Select
Application.DisplayAlerts = False
ActiveWindow.SelectedSheets.Delete
Application.DisplayAlerts = True
End Sub
3. では今度は、複数のシートを選択した後で、その選択した中にSheet1が選択されているかどうかを判定するコードを作成します。メッセージボックスで結果を表示します。
Sub 選択複数シートの中に指定シートがあるか()
Dim ws As Worksheet
Worksheets(Array("Sheet4", "Sheet5")).Select
For Each ws In ActiveWindow.SelectedSheets
If ws.Name = "Sheet1" Then
MsgBox "選択されています"
Exit For
Else
MsgBox "選択されていません"
End If
Next
End Sub
4. For Each ws In ActiveWindow.SelectedSheets を使って選択したシートの中に一個一個を処理を実行します。
処理の内容は、 If ws.Name = "Sheet1" Then
シート1という名前があるかどうか確認して、ある時は
メッセージボックスで選択していますと表示するものです。

5. SelectedSheetsプロパティは、Windowオブジェクトのプロパティです。
WindowオブジェクトのSelectedSheetsプロパティは、指定したウインドウで選択されているすべての
Sheetsコレクションを返します。
どのような場面で使えるかと言うと、複数のワークシートを選択している時に、それらのワークシートを
参照したいときに使用できます。
Windowオブジェク卜は省略できないので、必ず記述します。
SelectedSheetsプロパティはウインドウ内で選択されているすべてのシートを参照します。したがって、ワーク
シートだけでなく、グラフシートに対しでも使用できます。