ワークシートを選択する
シートを選択する方法
まず、特定のシートを選択する基本的な方法から始めましょう。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 をさらに活用できるようになります。