ワークシートを選択する

にメンテナンス済み

シートを選択する方法

まず、特定のシートを選択する基本的な方法から始めましょう。Excel VBA では、Worksheets または Sheets オブジェクトを使用してシートを操作します。

名前を指定してシートを選択
Sub SelectSingleSheet()
    Worksheets("Sheet1").Select
End Sub

このコードは、「Sheet1」という名前のシートを選択します。
特別なケースとして、シート名が数字のみの場合は次のように扱います。

インデックスを指定してシートを選択
Sub SelectSingleSheet()
    Worksheets(1).Select
End Sub
WorksheetsとSheetsの違いについて
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」という文字列が含まれているすべてのシートを選択します。

Info

Select Falseを使用すると、現在の選択に新しいシートを追加することができます。これにより、複数のシートを選択可能です。

注意点

注意点

シートを選択して操作する前に、必ずそのシートが存在することを確認するようにしましょう。存在しないシートを選択しようとすると、ランタイムエラーが発生します。

  • 複数シートを選択した状態では、一部の操作(例: セルの書式設定)が制限されることがあります。 - シートの選択は、Excel の UI 操作をシミュレートするため、実行時間が長くなる可能性があります。可能な限り、選択せずにシートやセルを直接操作することを検討してください。

まとめ

VBA を使えば、単一のシートや複数のシートをプログラム的に選択できます。これにより、Excel の作業を効率化し、手作業を減らすことができます。しかし、シートを選択せずに操作した方が効率的なケースもあるため、最適な方法を選択してください。

これらの手法をマスターすることで、Excel をさらに活用できるようになります。

#VBA #Excel #シート #選択