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
ボタンを押すと(マクロが実行されて)、シートが最後尾に追加されます
すでに同じ名前のシートが存在したら、アラートが上がります。
要注意ポイント
シート名の存在チェック
For Each Worksheet In Worksheets でワークシートを1枚ずつループして
Nameが取得したシート名と一致するかをチェックしています。
シートを末尾に追加する
Worksheets.Add after:=Worksheets(Worksheets.Count)
Worksheets.Countでシートの枚数が取得できるので
after:= で指定した枚数の後ろに、つまり最後尾に追加しています。
先頭のシートに戻る
Worksheets(1).Select
シートの番号を指定してSelect で初めのシートに戻ってます
今回は以上になります!
この処理を使って、今後、色々マクロを考えていこうと思います。
この記事が気に入ったらサポートをしてみませんか?