VBAの基礎知識 選択しているワークシートを参照する
VBAの基礎知識 006回
SelectedSheetsプロパティ
選択されているワークシートを参照するには、Windowオブ‘ジェク卜のSelectedSheetsプロパティを使用します。
例えばいくつかのシートを選択して、ブックから削除したい場合などに複数シートをSelectedSheetプロパティで参照して、それらをまとめて削除するなどということができます。
SelectedSheetsプロパティを使ったサンプル
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という名前があるかどうか確認して、ある時は
メッセージボックスで選択していますと表示するものです。
SelectedSheetsプロパティのまとめ
5. SelectedSheetsプロパティは、Windowオブジェクトのプロパティです。
WindowオブジェクトのSelectedSheetsプロパティは、指定したウインドウで選択されているすべての
Sheetsコレクションを返します。
どのような場面で使えるかと言うと、複数のワークシートを選択している時に、それらのワークシートを
参照したいときに使用できます。
Windowオブジェク卜は省略できないので、必ず記述します。
SelectedSheetsプロパティはウインドウ内で選択されているすべてのシートを参照します。したがって、ワーク
シートだけでなく、グラフシートに対しでも使用できます。