0
0

Excel VBAを使用して指定された名前とサフィックスを持つシートを一括作成する方法

Posted at

Excelでは、特定の命名規則に従って複数のシートを一括作成する必要がある場合があります(例えば、筆者が現在テスト用のエビデンススクリーンショットを作成している際に、事前に指定された名称と数のシートを準備する必要がある状況)。VBA(Visual Basic for Applications)を使用することで、このような作業を簡単に実現できます。本記事では、そのためのVBAコードの作成方法について詳しく説明します。

目的

指定した名前とシート数を入力することで、指定された数のシートを作成し、各シートの名前は 名前_番号_OK の形式で命名されます。例えば:CD0101_001_OKCD0101_002_OK などです。

実装手順

1. Excelを開き、VBAエディターに移動する

まず、操作したいExcelファイルを開いてください。その後、ショートカットキー Alt + F11 を押して、VBAエディターを開きます。

2. 標準モジュールを挿入する

VBAエディター内で、以下の手順で標準モジュールを挿入します:

  • 左側の Project Explorer ウィンドウで、 VBAProject (あなたのExcelファイル名) を見つけます。
  • VBAProject を右クリックし、 Insert (挿入) を選択して、次に Module (モジュール) をクリックします。
  • すると、右側に空白の編集エリアが表示され、これで新しい標準モジュールが挿入されたことを示しています。
※VBAエディターでモジュールを挿入する際に、Class ModuleModule という選択肢が表示された場合は、 Module を選択してください。
違い:
  • Module(標準モジュール):通常のマクロコード(シート作成機能など)を格納するためのもので、最も一般的なタイプです。
  • Class Module(クラスモジュール):カスタムオブジェクトやクラスを作成するためのもので、より高度なプログラミングに使用されます。

今回のニーズ(複数のシートを作成する)では、 標準モジュール を使用すれば十分ですので、 Module を選択してください。

3. VBAコードを貼り付ける

挿入したモジュール内に、以下のVBAコードを貼り付けます:

Sub CreateSheets()
    Dim sheetName As String
    Dim sheetCount As Integer
    Dim i As Integer
    Dim newSheet As Worksheet

    ' 名前とシート数を入力
    sheetName = InputBox("名前を入力してください:")
    sheetCount = InputBox("作成するシート数を入力してください:")

    ' 指定された数のシートを作成するループ
    For i = 1 To sheetCount
        ' 新しいシートを作成
        Set newSheet = ThisWorkbook.Sheets.Add(After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count))
        
        ' シート名を設定、形式は "名前_番号_OK"
        newSheet.Name = sheetName & "_" & Format(i, "000") & "_OK"
    Next i
End Sub

4. コードを実行する

コードを貼り付けた後、以下の手順でマクロを実行します:

  • VBAエディターで、 F5 キーを押すか、メニューの Run (実行) ボタンをクリックします。
  • システムが入力ボックスを表示し、名前の入力を求めてきます。例えば、 CD0101 と入力します。
  • 次に、作成するシートの数を入力するための入力ボックスが表示されます。例として、 5 と入力します。

完了後、Excelは自動的に5つの新しいシートを作成し、それぞれの名前は次のようになります:

  • CD0101_001_OK
  • CD0101_002_OK
  • CD0101_003_OK
  • CD0101_004_OK
  • CD0101_005_OK

5. 注意点

  • シート名の重複:Excelに同じ名前のシートが既に存在する場合、エラーメッセージが表示されます。シート名が一意であることを確認してください。
  • マクロの実行をキャンセル:入力中に操作をキャンセルしたい場合は、入力ボックスの「キャンセル」ボタンをクリックしてください。

まとめ

簡単なVBAコードを使用することで、特定の名前付きシートを一括作成する操作が簡単に行えます。この手法は作業効率の向上に役立つでしょう。この記事があなたのお役に立てば幸いです!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0