ワークシートを選択する
シートを選択する方法
まず、特定のシートを選択する基本的な方法から始めましょう。Excel VBA では、Worksheets または Sheets オブジェクトを使用してシートを操作します。
Sub SelectSingleSheet()
Worksheets("Sheet1").Select
End Sub
このコードは、「Sheet1」という名前のシートを選択します。
特別なケースとして、シート名が数字のみの場合は次のように扱います。
Sub SelectSingleSheet()
Worksheets(1).Select
End Sub
Worksheetsは、ワークシートのみを対象とします。Sheetsは、ワークシートとチャートシートの両方を含むコレクションです。複数シートを選択する方法
複数のシートを選択するには、Array関数を使用して、選択したいシート名を配列として指定します。
Sub SelectMultipleSheets()
Worksheets(Array("Sheet1", "Sheet2")).Select
End Sub
このコードは、「Sheet1」と「Sheet2」の 2 つのシートを同時に選択します。
複数のシートを選択する場合、最初に選択したシートが”アクティブなシート”として扱われます。
コードの応用例
動的にシートを選択する
シート名が動的に変わる場合、変数を使ってシートを選択することができます。
Sub SelectSheetDynamically()
Dim sheetName As String
sheetName = "Sheet3"
Worksheets(sheetName).Select
End Sub
このコードでは、sheetName変数に指定されたシート名を使ってシートを選択します。
特定の条件でシートを選択
例えば、シート名が特定のパターンに一致する場合に選択することもできます。
Sub SelectSheetsByPattern()
Dim ws As Worksheet
For Each ws In ThisWorkbook.Worksheets
If InStr(ws.Name, "Report") > 0 Then
ws.Select False ' False を渡すことで複数シートを選択
End If
Next ws
End Sub
このコードは、シート名に「Report」という文字列が含まれているすべてのシートを選択します。
Select Falseを使用すると、現在の選択に新しいシートを追加することができます。これにより、複数のシートを選択可能です。
注意点
シートを選択して操作する前に、必ずそのシートが存在することを確認するようにしましょう。存在しないシートを選択しようとすると、ランタイムエラーが発生します。
- 複数シートを選択した状態では、一部の操作(例: セルの書式設定)が制限されることがあります。 - シートの選択は、Excel の UI 操作をシミュレートするため、実行時間が長くなる可能性があります。可能な限り、選択せずにシートやセルを直接操作することを検討してください。
まとめ
VBA を使えば、単一のシートや複数のシートをプログラム的に選択できます。これにより、Excel の作業を効率化し、手作業を減らすことができます。しかし、シートを選択せずに操作した方が効率的なケースもあるため、最適な方法を選択してください。
これらの手法をマスターすることで、Excel をさらに活用できるようになります。