VBA:ワークシートの名前の変更

目次

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” に変更します。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次