エクセルマクロで複数シートを選択し、シート名を表示する方法

エクセルマクロで複数シートを選択し、シート名を表示する方法

 エクセルマクロを使って、複数のシートを選択し、そのシート名をメッセージボックスで表示する方法をご紹介します。このマクロは、ArrayとSelectを使用してシートを選択し、選択されたシート名を表示するものです。

コードの全体像

まずは、コード全体を見てみましょう。

Sub ShowSelectedSheetNames()
    Dim sheetArray As Variant
    Dim sheetName As String
    Dim i As Integer
    
    ' シート名を配列に格納
    sheetArray = Array("Sheet1", "Sheet2", "Sheet3") ' ここに選択したいシート名を追加
    
    ' シートを選択
    Sheets(sheetArray).Select
    
    ' 選択したシート名をメッセージボックスで表示
    For i = LBound(sheetArray) To UBound(sheetArray)
        sheetName = sheetName & Sheets(sheetArray(i)).Name & vbCrLf
    Next i
    
    MsgBox "選択されたシート名は以下の通りです:" & vbCrLf & sheetName
End Sub

コードの詳細解説

それでは、各部分を詳しく見ていきましょう。

1. 変数の宣言

Dim sheetArray As Variant
Dim sheetName As String
Dim i As Integer

最初に、シート名を格納するための配列 sheetArray、シート名を連結するための文字列 sheetName、ループカウンタ i を宣言します。

2. シート名を配列に格納

sheetArray = Array("Sheet1", "Sheet2", "Sheet3") ' ここに選択したいシート名を追加

Array 関数を使って、選択したいシート名を配列に格納します。ここでは例として “Sheet1”, “Sheet2”, “Sheet3” を使用していますが、必要に応じて変更してください。

3. シートを選択

Sheets(sheetArray).Select

Sheets オブジェクトを使って、配列に格納されたシートを選択します。

4. 選択したシート名をメッセージボックスで表示

For i = LBound(sheetArray) To UBound(sheetArray)
    sheetName = sheetName & Sheets(sheetArray(i)).Name & vbCrLf
Next i

MsgBox "選択されたシート名は以下の通りです:" & vbCrLf & sheetName

LBoundUBound 関数を使って配列の範囲を取得し、ループを使って各シート名を sheetName 文字列に連結します。最後に、MsgBox 関数を使ってメッセージボックスにシート名を表示します。

まとめ

 このマクロを使うことで、簡単に複数のシートを選択し、そのシート名を表示することができます。エクセルの操作を自動化する際に、ぜひ活用してみてください。