VBAで業務効率化!シート名がなかったら自動で作成する方法

こんにちは!大阪市を拠点に活動している『縁紡ぐ』の稲垣です。
SWELLを使ったホームページ制作や、Excel、ACCESS、RPAなどのシステム開発を行っています。
また、Excel、Word、Outlookの研修や、情報セキュリティ研修も行っています。身近なITの相談相手になりたいと思っています。
お気軽にお問い合わせください。
目次
なんでシートを自動で作成するん?
業務効率化を目指すあなたに、VBAを使って指定したシート名がない場合に自動で新しいシートを作成する方法を紹介します。この方法を知っておくと、日々の作業がほんまに楽になるんです!
VBAコードの全体像
コード
Sub CreateSheetIfNotExists(sheetName As String)
Dim ws As Worksheet
Dim sheetExists As Boolean
sheetExists = False
' ワークブック内のすべてのシートを確認
For Each ws In ThisWorkbook.Worksheets
If ws.Name = sheetName Then
sheetExists = True
Exit For
End If
Next ws
' シートが存在しなかったら、作成するで
If Not sheetExists Then
ThisWorkbook.Worksheets.Add(After:=ThisWorkbook.Worksheets(ThisWorkbook.Worksheets.Count)).Name = sheetName
MsgBox "シート '" & sheetName & "' を作成しました!"
Else
MsgBox "シート '" & sheetName & "' はすでに存在します!"
End If
End Sub
コードのポイント
このコードは、指定したシート名があるかどうかを確認し、存在しなかったら新しいシートを作成します。これによって、手動での作業を省けるんです。
メソッドの呼び出し
このメソッドを使うには、CreateSheetIfNotExists "シート名"
と入力するだけでOKです。
Sub test()
CreateSheetIfNotExists ("新しいシート")
End Sub
実行前と実行後
実行前

実行後

すでにシートがある場合

複数のシート名を処理したい場合
コード
Sub CreateSheetsIfNotExists(sheetNames As String)
Dim ws As Worksheet
Dim sheetExists As Boolean
Dim nameArray() As String
Dim sheetName As String
Dim i As Integer
' カンマ区切りでシート名を分割
nameArray = Split(sheetNames, ",")
' 各シート名に対して処理
For i = LBound(nameArray) To UBound(nameArray)
sheetName = Trim(nameArray(i)) ' 前後の空白を削除
sheetExists = False
' ワークブック内のすべてのシートを確認
For Each ws In ThisWorkbook.Worksheets
If ws.name = sheetName Then
sheetExists = True
Exit For
End If
Next ws
' シートが存在しなかったら、作成する
If Not sheetExists Then
ThisWorkbook.Worksheets.Add(After:=ThisWorkbook.Worksheets(ThisWorkbook.Worksheets.count)).name = sheetName
End If
Next i
End Sub
メソッドの呼び出し
Sub test()
CreateSheetsIfNotExists "Sheet1, Sheet2, Sheet3"
End Sub

自動化でミスがなくなる
VBAを使うことで、シートを自動的に作成できるんです。これって、業務を効率化するだけでなく、ヒューマンエラーも防げるんですよ。手動でシートを作成する時、名前を間違えたり、作成を忘れたりすることがありますが、自動化すればそういうミスが減ります。ぜひチャレンジしてみてくださいね!
まとめ
VBAを使ってシート作成を自動化することで、手動での作業を省けて、業務効率化が図れます。これからの作業をもっとスムーズにするために、ぜひこの方法を試してみてくださいね!
記事を書いた人

稲垣
- Excel、ACCESSでのシステム開発が得意
- ITスキルを共有し実践的に学びながら成長する人を見るのが幸せ
- 自家焙煎するほどのコーヒー好き
- 使用言語 VBA、Python、Javascript、Java、HTML、CSS etc.
- 保有資格 Kintoneアソシエイト、日商簿記検定2級、マンション管理士、管理業務主任者、情報セキュリティマネジメント、ExcelVBA etc.
- 業務フロー図の作成や業務時間分析を通して、効率化ポイントを探る人
- お客様にとって本当に良いことかを第一に考える人
コメント