この記事では【Excel】VBAでシートが無ければ作成、追加、終了、何もしない(同じシート名、ifなど)について解説していきます。ポイントとして`WorksheetExists`関数と`Add`メソッド、条件分岐を使用することです。
マクロ初心者でもわかりやすいように変数名をaaaaa変数aaaaaといった名称にしています。そのため、あなた自身がご活用の際には、ここを適切な(英語表記でしっくりくるものが一般的)ものに変更してご活用くださいね。それでは詳しく見ていきましょう!
VBAで同じシート名が無ければ作成、追加する方法
それではまず、「VBAで同じシート名が無ければ作成、追加する方法」について解説していきます。この方法は、特定のシート名が存在しない場合に新しくシートを追加する処理です。アクティブブックで「okok」というシート名を対象に説明します。
Alt + F11にてVBE画面を開いて、以下コードをコピペしましょう。
Sub AddSheetIfNotExists()
Dim aaaaaSheetNameaaaaa As String
aaaaaSheetNameaaaaa = "okok"
If Not WorksheetExists(aaaaaSheetNameaaaaa) Then
Sheets.Add(After:=Sheets(Sheets.Count)).Name = aaaaaSheetNameaaaaa
End If
End Sub
Function WorksheetExists(aaaaaSheetNameaaaaa As String) As Boolean
WorksheetExists = False
For Each Sheet In Worksheets
If Sheet.Name = aaaaaSheetNameaaaaa Then
WorksheetExists = True
Exit Function
End If
Next Sheet
End Function
コードのAlt+F8を押し、マクロ選択画面でAddSheetIfNotExists関数を実行します。
このコードでは、まず指定したシート名が存在するかどうかをチェックします。存在しない場合にのみ新しいシートを追加し、その名前を指定します。
WorksheetExists関数は、指定されたシート名が存在するかどうかを返します。
VBAで同じシート名が無ければ何もしないで処理終了する方法
続いては、「VBAで同じシート名が無ければ何もしないで処理終了する方法」について解説していきます。
この方法は、指定したシート名が存在しない場合には何もせず処理を終了します。
Alt + F11にてVBE画面を開いて、以下コードをコピペしましょう。
Sub ExitIfSheetNotExists()
Dim aaaaaSheetNameaaaaa As String
aaaaaSheetNameaaaaa = "okok"
If Not WorksheetExists(aaaaaSheetNameaaaaa) Then
Exit Sub
End If
End Sub
コードのAlt+F8を押し、マクロ選択画面でExitIfSheetNotExists関数を実行します。このコードでは、指定したシート名が存在しない場合には、単純に処理を終了します。
これにより、存在しないシート名に対する無駄な操作を避けることができます。
まとめ マクロで同じシート名の確認・チェック方法
この記事では、Excel VBAを使ってシートの存在を確認し、条件に応じて異なるアクションを取る方法を紹介しました。
これらのテクニックを活用することで、Excelマクロの効率化とエラー回避が可能になります。ぜひお試しください!