VBAでのワークシート名前の基本操作
VBAでワークシートの名前を操作する基本的な方法について詳しく解説します。
① アクティブシートの名前を取得する方法
VBAでは、ActiveSheet.Name
を使用してアクティブなシートの名前を取得できます。このコマンドは、現在開いているアクティブなシートの名前を返します。例えば、MsgBox ActiveSheet.Name
と記述すると、メッセージボックスにアクティブシートの名前が表示されます。これは、現在作業中のシート名を知りたい場合に特に便利です。
② シート番号を指定して名前を取得する方法
シートの番号を指定して名前を取得するには Worksheets(シート番号).Name
を使用します。たとえば、MsgBox Worksheets(2).Name
と記述すると、ワークブック内の2番目のシートの名前が表示されます。この方法は、特定の順番にあるシートの名前を把握したい場合に有用です。
③ 全てのシート名の一覧を取得する方法
全てのシート名を一覧で取得するには、For Next
ループを使用します。For i = 1 To Worksheets.Count
というループを作成し、それぞれのシート名を Debug.Print Worksheets(i).Name
で取得できます。これにより、ワークブック内の全シートの名前を確認できます。
④ 別のファイルのシート名を取得する方法
別のファイルのシート名を取得するには、まず Workbooks.Open
でファイルを開き、その後 Worksheets(シート番号).Name
で名前を取得します。例えば、Set wb = Workbooks.Open("ファイルパス")
でファイルを開き、MsgBox wb.Worksheets(1).Name
でそのファイルの最初のシートの名前を表示できます。処理が完了したら wb.Close
でファイルを閉じます。
⑤ シート名を変更する方法
シート名を変更する場合は ActiveSheet.Name = "新しい名前"
と記述します。これにより、アクティブなシートの名前が「新しい名前」に変更されます。特定のシートを指定して名前を変更する場合は、Worksheets("現在の名前").Name = "新しい名前"
と記述します。
VBAでのワークシート名の応用操作
VBAでワークシート名を操作する応用的な方法についても解説します。
① 特定のシート群の名前を取得または変更する方法
特定の複数のシートの名前を取得または変更するには、Sheets(Array("Sheet1", "Sheet2"))
のように配列を使用します。この方法で複数のシートオブジェクトを取得し、ループ処理を用いて名前を変更することができます。例えば、For Each s In Sheets(Array("Sheet1", "Sheet2"))
を使って、それぞれのシート名を取得または変更します。
② アクティブシートの名前を取得または変更する方法
アクティブシートの名前を取得または変更するには、ActiveSheet.Name
を使用します。名前の取得
の取得には単に ActiveSheet.Name
を記述し、変更する場合は ActiveSheet.Name = "新しい名前"
と記述します。この単純なコマンドは、現在アクティブなシートの名前を動的に取得または変更するのに非常に便利です。
③ 選択シート名の取得方法
選択中のシート名を取得するには、ActiveWindow.SelectedSheets
を使用します。このコマンドは、現在選択されているシート、またはシート群を返します。例えば、Set ws = ActiveWindow.SelectedSheets(1)
は選択中のシート群の中で最も左にあるシートを返します。
④ 別ブックのシート名を取得または変更する方法
別ブックのシート名を取得または変更するには、まず Workbooks.Open
を使ってブックを開きます。その後、wb.Worksheets(シート番号).Name
で特定のシートの名前を取得し、必要に応じて wb.Worksheets(シート番号).Name = "新しい名前"
として名前を変更します。処理完了後は wb.Close
を忘れないようにしましょう。
サンプルコード
アクティブなワークシートの名前を変更する
アクティブなワークシート、つまり現在開いているワークシートの名前を変更するには以下のように記述します。
Sub ChangeActiveWorksheetName()
' シート名を "NewName" に変更
ActiveSheet.Name = "NewName"
End Sub
このコードは、現在アクティブなワークシートの名前を “NewName” に変更します。
特定のワークシートの名前を変更する
特定のワークシートを指定して名前を変更するには、以下のコードを使用します。
Sub ChangeSpecificWorksheetName()
' シート "Sheet1" の名前を "NewName" に変更
Worksheets("Sheet1").Name = "NewName"
End Sub
このコードは、”Sheet1″ という名前のシートを “NewName” に変更します。
インデックスを使用してワークシートの名前を変更する
ワークシートのインデックス(順序)を使用して名前を変更するには、以下のように記述します。
Sub ChangeWorksheetNameByIndex()
' ワークブック内の2番目のシートの名前を "NewName" に変更
Sheets(2).Name = "NewName"
End Sub
このコードでは、ワークブック内の2番目のシートの名前を “NewName” に変更します。