Excel VBA シート名をプログラムで動的に変更する

 

Excel VBAで「シート名変更」で、シートの名前をプログラムで動的に変更できます。手動で変更するのではなく、VBAコードを使って名前を変更することで、自動化が可能です。具体的な使い方や、注意点やサンプルコードを紹介します。

 

Excel VBA シート名変更の利用

以下のようなシーンで利用されます。

・データをインポートするたびにシート名に日付を付けて管理

・複数のレポートを生成する際に、それぞれのシート名をプロジェクト名やカテゴリに変更

・多くのシートがある場合、目的に応じてシート名を整理して変更

使い方

シート名を変更するには、Nameプロパティを使います。対象となるシートを特定して、そのNameプロパティに新しい名前を代入します。

 

ポイント

・重複禁止
同じブック内でシート名が重複するとエラーが発生します。既に使用されている名前を避けましょう。

・長すぎる名前に注意
シート名は31文字までで、これを超えるとエラーになります。

・特殊文字の使用制限
シート名には、/、\、?、*、[、]などの特殊文字を使用できません。

 

Excel VBA シート名変更のサンプルコード
特定のシート名を変更

Option Explicit

Sub RenameSheet()
    ' "Sheet1" のシート名を "データシート" に変更
    Worksheets("Sheet1").Name = "データシート"
End Sub

現在のシート名を日付に変更

Option Explicit

Sub RenameSheetToDate()
    ' アクティブなシートの名前を現在の日付に変更
    ActiveSheet.Name = Format(Date, "yyyy-mm-dd")
End Sub

複数のシート名を順番に変更

Option Explicit

Sub RenameAllSheets()
    Dim ws As Worksheet
    Dim i As Integer
    i = 1
    
    ' 全シートを順に名前を「シート1」、「シート2」...に変更
    For Each ws In ThisWorkbook.Worksheets
        ws.Name = "シート" & i
        i = i + 1
    Next ws
End Sub

1.Worksheets("Sheet1").Name = "データシート"
"Sheet1" のシート名を "データシート" に変更します。

2.ActiveSheet.Name = Format(Date, "yyyy-mm-dd")
アクティブなシート名を、現在の日付("2024-09-07"のような形式)に変更します。

3.For Each ws In ThisWorkbook.Worksheets
全てのシートをループして、それぞれ順番に名前を変更しています。

ExcelVBAを使ったシート名の変更は、シート管理の自動化やプロジェクトに応じた動的な処理に役立ちます。手動で名前を付ける手間を省き、エラーを防ぐためにも、シート名の変更をVBAで適切に処理することが重要です。

 

毎日のルーチン作業をExcel VBAで自動化し、時間を有効活用しませんか?Excel VBAエキスパート資格取得問題集を活用して資格取得、そして効率的な仕事を実現しましょう!

VBAエキスパート資格は、日常業務でExcelを多用し、手動作業を減らしたいと考えている方には価値あるものです。

ExcelVBAエキスパートベーシック
仕事の効率をあげるためにExcelVBAを利用する人が対象の問題集です。


ExcelVBAエキスパートスタンダード

ExcelVBAの開発を仕事にする人が対象の問題集です。

 

Excel  VBA エキスパート資格について知りたい方は、下記「Excel VBAスキルアップを目指すなら知っておきたいVBAエキスパート」をご確認ください。

 

ExcelVBAの学習方法で効果的な学び方を知りたい方は、下記「Excel VBA初心者のための効果的な学習ガイド」をご確認ください。