見出し画像

Excel VBA 名前を指定してシートを追加する

Excelで名前を指定して、マクロでシートを追加したいと思います。
(そんなの何に使うんだって感じですが、後にいろいろなマクロに応用できると思い、やってみます)

ソースは以下の様になりました。

Sub createSheet()

   'シート名を取得
   Dim sheetName As String: sheetName = Range("B3")
   
   'シート名の存在チェック
   Dim Worksheet As Worksheet
   For Each Worksheet In Worksheets
       If Worksheet.Name = sheetName Then
           MsgBox "シート名『" & sheetName & "』は既に存在します!"
           Exit Sub
       End If
   Next Worksheet
   
   '指定した名前で、シートを末尾に追加する
   Worksheets.Add after:=Worksheets(Worksheets.Count)
   ActiveSheet.Name = sheetName
   
   '先頭のシートに戻る
   Worksheets(1).Select

End Sub

ボタンを押すと(マクロが実行されて)、シートが最後尾に追加されます

シート追加

すでに同じ名前のシートが存在したら、アラートが上がります。

シート追加2

要注意ポイント

シート名の存在チェック

For Each Worksheet In Worksheets でワークシートを1枚ずつループして
Nameが取得したシート名と一致するかをチェックしています。

シートを末尾に追加する

Worksheets.Add after:=Worksheets(Worksheets.Count)
Worksheets.Countでシートの枚数が取得できるので
after:= で指定した枚数の後ろに、つまり最後尾に追加しています。

先頭のシートに戻る

Worksheets(1).Select
シートの番号を指定してSelect で初めのシートに戻ってます

今回は以上になります!

この処理を使って、今後、色々マクロを考えていこうと思います。

この記事が気に入ったらサポートをしてみませんか?