りゅう
はじめに
今回は、シートの選択について解説します。
サンプルコードや引数、複数のシートを参照する場合の注意点、Activeとの違いなどを画像付きで詳しく説明しますので最後までお付き合いください。
この記事を読むメリット
- シートの選択について、サンプルコードや画像付きで解説します
- アクティブシートと選択済みシートの違いが分かります
- 複数のシートを選択(グループ化)する方法が分かります
- 応用的なソースコードを掲載しています
前提
選択済みシートとアクティブシートの違い
アクティブシート(ActiveSheet)というコードをよく見かけると思いますが、選択とアクティブの違いをご存知でしょうか?
以下画像は、Sheet2とSheet3が選択されています。
この場合、青枠が選択済みシート、赤枠がアクティブシートとなります。
選択とアクティブの違い
- 選択済みシート:選択されているシートすべて
- アクティブシート:最前面に表示されているシート
めい
アクティブシートは必然的に単一となります。
使用例
本項では、Selectメソッドのサンプルコード、引数などの基本的な使用方法を解説します。
サンプルコード
以下ソースコードでは、ブックの先頭のシートを選択した後、追加で隣のシートを選択します。
サンプルコード
Public Sub selectSheet()
' 先頭のシートを選択
ThisWorkbook.Worksheets(1).Select
' シートを追加で選択
ThisWorkbook.Worksheets(2).Select Replace:=False
End Sub
実行結果
実行前
実行後
選択とアクティブの違い
- Sheet1が選択され、Sheet3が非選択状態となる
- Sheet2が追加で選択される
りゅう
Selectメソッドの引数にFalseを指定すると、既に選択されているシートの選択状態を保持したまま追加でシートを選択することが出来ます。
引数の詳細は次項にて解説します。
引数の詳細は次項にて解説します。
詳細解説
Selectメソッドの構文や引数、注意点などについて解説します。
構文
構文
WorksheetObject.Select(Replace)
引数
# | 引数 | 必須 | 詳細 |
1 | Replace | 既に選択されたシートの選択を解除するかどうかを指定します。 Trueの場合:選択状態を解除 Falseの場合:選択状態を維持 ※デフォルト値はTrueです。 |
応用編
複数のシートを選択する
複数のシートを選択する際は、配列(Array)にインデックス番号 もしくは シート名を指定します。
サンプルコード
サンプルコード
Public Sub selectSheetMultiple()
' インデックス番号 1と2のシートを選択
ThisWorkbook.Worksheets(Array(1, 2)).Select
' Sheet1とSheet2をを選択
ThisWorkbook.Worksheets(Array("Sheet1", "Sheet2")).Select
' Sheet1とSheet2をを選択
ThisWorkbook.Sheets(Array("Sheet1", "Sheet2")).Select
End Sub
実行結果
すべてのシートを選択する
サンプルコード
サンプルコード
Public Sub selectAllSheet()
' ブック内の全てのシートを選択
ThisWorkbook.Worksheets.Select
End Sub
実行結果
選択シートをループする
サンプルコード
サンプルコード
Public Sub loopSelectSheet()
Dim wsObj As Worksheet ' Worksheetオブジェクト
' インデックス番号 1と2のシートを選択
ThisWorkbook.Worksheets(Array(1, 2)).Select
' 選択されたシート単位でループする
For Each wsObj In ActiveWindow.SelectedSheets
' シートの見出しを黄色にする
wsObj.Tab.ColorIndex = 6
Next wsObj
End Sub
実行結果
めい
上記の例では見出しの色変更を行っています。
それ以外の処理について、参考になる記事をご紹介しますので、もしよろしければご参照ください。
それ以外の処理について、参考になる記事をご紹介しますので、もしよろしければご参照ください。
【Excel VBA】シートの色変更(Colorプロパティ)
はじめに 今回は、シート見出しの色を変更する方法について解説します。 シート見出しとは以下、赤枠箇所のことです。 この記事を読むメリット シート見出しの色変更の...
【Excel VBA】シートのコピー(Copyメソッド)
はじめに 今回は、シートをコピーする方法について解説します。 コピーにおける注意点も解説しますので、ぜひ最後までご覧ください。 この記事を読むメリット シートの...
【Excel VBA】シートの移動(Moveメソッド)
はじめに 今回は、シートを移動する方法について解説します。 移動における注意点も解説しますので、ぜひ最後までご覧ください。 この記事を読むメリット シートの移動...
シートが複数選択されているかを確認する(グループ化の判定)
サンプルコード
サンプルコード
Public Sub checkSheetGrouping()
' 複数シート選択(グループ化)判定
If ActiveWindow.SelectedSheets.Count > 1 Then
MsgBox "グループ化されています。", vbInformation
Else
MsgBox "グループ化されていません。", vbInformation
End If
End Sub
実行結果
グループ化されている場合
グループ化されていない場合
コメント