Excel

【Excel】VBAマクロでシート名の存在チェックして一致したら別の名前に変更・保存・メッセージ表示する方法【WorksheetExists関数, Sheets.Addメソッド, MsgBox関数】

当サイトでは記事内に広告を含みます
いつも記事を読んでいただきありがとうございます!!! これからもお役に立てる各情報を発信していきますので、今後ともよろしくお願いします(^^)/

この記事では、VBAマクロを使ってExcelのシート名の存在チェックし、一致した場合にはそのシート名を別の名前に変更して保存する方法、そして変更結果をメッセージとして表示する方法について解説していきます。

ポイントとしては、**WorksheetExists関数**、**Sheets.Addメソッド**、そして**MsgBox関数**を使用することです。

なお、下記の解説では完全な初心者でもわかりやすいようにあえて変数名(あなた自身が名付けていい場所)を少々変わった名称にしております。そのため、あなた自身がご活用の際には、ここを適切な(英語表記でしっくりくるものが一般的)ものに変更してご活用くださいね。

それでは詳しく見ていきましょう!

VBAマクロでシート名の存在チェックして一致したら別のシート名に変更し保存する方法【確認結果はメッセージで必ず表示】【WorksheetExists関数, MsgBox関数】

それではまず、VBAマクロでシート名の存在チェックして一致したら別のシート名に変更し保存する方法について解説していきます。

Alt + F11にてVBE画面を開いて、以下コードをコピペしましょう。


Sub SheetNameKakuninToHenkou()

    Dim shiitoNamae As String
    Dim henkouSakiNamae As String
    shiitoNamae = "SampleSheet"
    henkouSakiNamae = "NewSampleSheet"

    ' シート名の存在確認
    If WorksheetExists(shiitoNamae) Then
        Sheets(shiitoNamae).Name = henkouSakiNamae
        ThisWorkbook.Save
        MsgBox shiitoNamae & " を " & henkouSakiNamae & " に変更し保存しました。"
    Else
        MsgBox shiitoNamae & " は存在しません。"
    End If

End Sub

Function WorksheetExists(sName As String) As Boolean
    On Error Resume Next
    WorksheetExists = Not Sheets(sName) Is Nothing
    On Error GoTo 0
End Function

コードのAlt+F8を押し、マクロ選択画面でSheetNameKakuninToHenkou関数を実行します。

このコードは、シート名”SampleSheet”が存在するかを確認し、存在すればその名前を”NewSampleSheet”に変更して保存するものです。存在しない場合、メッセージボックスでシートが存在しないことを通知します。

VBAマクロで複数のシート名の存在チェックして一致したら別の名前に変更して保存する方法【確認結果はメッセージで必ず表示】【WorksheetExists関数, MsgBox関数】

続いては、VBAマクロで複数のシート名の存在チェックして一致したら別の名前に変更して保存する方法について解説していきます。

Alt + F11にてVBE画面を開いて、以下コードをコピペしましょう。


Sub SheetNamesTakusanKakuninToHenkou()

    Dim shiitoArray() As String
    Dim henkouSakiArray() As String
    Dim i As Integer

    shiitoArray = Split("Sheet1,Sheet2,Sheet3", ",")
    henkouSakiArray = Split("NewSheet1,NewSheet2,NewSheet3", ",")

    For i = LBound(shiitoArray) To UBound(shiitoArray)
        If WorksheetExists(shiitoArray(i)) Then
            Sheets(shiitoArray(i)).Name = henkouSakiArray(i)
            MsgBox shiitoArray(i) & " を " & henkouSakiArray(i) & " に変更しました。"
        Else
            MsgBox shiitoArray(i) & " は存在しません。"
        End If
    Next i

    ThisWorkbook.Save

End Sub

コードのAlt+F8を押し、マクロ選択画面でSheetNamesTakusanKakuninToHenkou関数を実行します。

このコードは、”Sheet1″, “Sheet2”, “Sheet3″の3つのシート名が存在するかを確認し、存在すればそれぞれ”NewSheet1”, “NewSheet2”, “NewSheet3″に変更して保存するものです。存在しない場合、メッセージボックスでシートが存在しないことを通知します。

以上、VBAマクロを使用したシート名の存在チェックと名前変更の方法を解説しました。初心者の方でも簡単に実装できるように、変数名をわかりやすくしましたが、実際の使用時には適切な変数名に変更してご利用ください。