MENU

【マクロVBA】新しいシートを作成して、シート名を変更する方法を解説

【マクロVBA】新しいシートを作成して、シート名を変更する方法を解説

エクセルで新しいシートを作成したい場面があります。

今回は、エクセルVBAを使って「新しいシートを作成する」「シート名を変更する方法」を解説します。

       

目次

【マクロVBA】新しいシートを作成して、シート名を変更する方法を解説

       

新しいシートを作成して、シート名を変更するコードを紹介します。

       

Sub CreateAndRenameSheet()
    Dim NewSheet As Worksheet

    ' 新しいシートを作成
    Set NewSheet = Worksheets.Add

    ' シート名を「テストシート」に変更
    NewSheet.Name = "テストシート"
End Sub

        

このコードをVBAエディタの標準モジュールに貼り付け、実行することで新しいシートが作成され、「テストシート」という名前に変更されます。

       

コードの解説

Dim NewSheet As Worksheet

      

この行では、NewSheetという名前のWorksheetオブジェクト用の変数を宣言しています。

これにより、新しく作成されたシートを参照するための変数が用意されます。

        

Set NewSheet = Worksheets.Add

      

この行では、Worksheets.Addメソッドを使用して新しいシートを作成し、そのシートをNewSheet変数に代入しています。

Worksheets.Addメソッドは、新しいシートを作成し、作成されたシートへの参照を返します。これにより、NewSheet変数に新しいシートへの参照が格納されます。

       

NewSheet.Name = "テストシート"

     

この行では、先ほど作成したシート(NewSheet変数が参照しているシート)の名前を変更しています。

シートオブジェクトのNameプロパティに新しい名前を代入することで、シート名が変更されます。この場合、シート名を「テストシート」としています。

       

他のやり方でも作成可能

他のコードの書き方もあります。

       

Sub CreateAndRenameSheet()
    ' 新しいシートを作成
    Worksheets.Add

    ' シート名を「テストシート」に変更
    ActiveSheet.Name = "テストシート"
End Sub

       

どちらのコードも同じ結果を得ることができます。

ただし、最初のコードは、新しく作成されたシートをNewSheetという変数に格納しているため、その後の処理で新しく作成されたシートを簡単に参照できます。これはコードの可読性と保守性に寄与します。

    

一方、こちらのコードではActiveSheetを使用してシート名を変更しています。

ActiveSheetは現在アクティブなシートを参照するため、新しいシートが作成された直後には問題ありません。

ただし、この方法では後続の処理で新しく作成されたシートを参照する際に、再度アクティブシートを指定する必要があります。これにより、コードの可読性と保守性が低下する可能性があります。

    

どちらの方法でも問題はありませんが、最初コードは可読性と保守性が向上します。

状況やニーズに応じて使い分けてください。

    

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

コメント

コメントする

目次