Excel

【Excel】VBAでシートが無ければ作成、追加、終了、何もしない(同じシート名、ifなど)

当サイトでは記事内に広告を含みます。

この記事では【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マクロの効率化とエラー回避が可能になります。ぜひお試しください!