VBAの基礎知識 選択しているワークシートを参照する

すでに選択した複数のシートを参照したい時に、
選択しているワークシートを参照する

VBAの基礎知識 006回

SelectedSheetsプロパティ

選択されているワークシートを参照するには、Windowオブ‘ジェク卜SelectedSheetsプロパティを使用します。
例えばいくつかのシートを選択して、ブックから削除したい場合などに複数シートをSelectedSheetプロパティで参照して、それらをまとめて削除するなどということができます。

SelectedSheetsプロパティを使ったサンプル

1. object.SelectedSheets
SelectedSheetsプロパティは、指定したウインドウで選択されているすべてのワークシートを取得します。
この時、obiectに指定するのは、WorkbookではなくWindowオブジェクトであるという点に注意が必要です。
親オブジェクトにブックを指定するとエラーになります。


選択しているワークシートを参照する1

2. 以下のサンプルではまず、ワークシートをArray関数を使って、シート1シート3を選択しました。 続いてActiveWindowのSelectedSheetsで選択したシート参照して、Deleteメソッドで、デリート削除しています。

Sub 複数の選択されたシートを削除()
    Worksheets(Array("Sheet1", "Sheet3")).Select
    Application.DisplayAlerts = False
    ActiveWindow.SelectedSheets.Delete
    Application.DisplayAlerts = True
End Sub

選択しているワークシートを参照する2

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という名前があるかどうか確認して、ある時は
メッセージボックスで選択していますと表示するものです。

選択しているワークシートを参照する3

SelectedSheetsプロパティのまとめ

5. SelectedSheetsプロパティは、Windowオブジェクトのプロパティです。
WindowオブジェクトのSelectedSheetsプロパティは、指定したウインドウで選択されているすべての Sheetsコレクションを返します。

どのような場面で使えるかと言うと、複数のワークシートを選択している時に、それらのワークシートを 参照したいときに使用できます。

Windowオブジェク卜は省略できないので、必ず記述します。
SelectedSheetsプロパティはウインドウ内で選択されているすべてのシートを参照します。したがって、ワーク シートだけでなく、グラフシートに対しでも使用できます。


こちらもおすすめ