Excel

【Excel】VBAマクロでシート名変更(セルから取得、ダイヤログ、一括でループ、重複時のエラー処理、Cells関数、InputBox関数)方法

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

この記事ではVBAマクロでExcelのシート名を変更する方法について解説していきます。

ポイントとしては☆Cells関数、☆InputBox関数、☆エラー処理を使用することです。

なお、下記の解説では完全な初心者でもわかりやすいようにあえて変数名(あなた自身が名付けていい場所)を少々変わった名称にしております。

そのため、あなた自身がご活用の際には、ここを適切な(英語表記でしっくりくるものが一般的)ものに変更してご活用くださいね。

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

VBAマクロでシート名の一括変更【各々のシート名をA1セルのものに全てかえる、Cells関数】

それではまず、VBAマクロでシート名の一括変更について解説していきます。

各シートがあり、そのa1セルの値を自動で取得しシート名変更させてみます。

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


Sub SheetoKaeHenshu()
    Dim shito As Worksheet
    Dim shimei As String

    For Each shito In ThisWorkbook.Worksheets
        On Error Resume Next
        shimei = shito.Cells(1, 1).Value
        If shimei <> "" And Not IsError(shimei) Then
            shito.Name = shimei
        End If
        On Error GoTo 0
    Next shito
End Sub

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

このコードはExcelの各シートのA1セルの値を取得してシート名を変更するものです。

エラー処理も含めて、シート名が空や無効な値の場合はスキップします。

VBAマクロでシート名をセルから取得し変更する方法【別のinput.csvのa列を順番にループで読み込んでリネーム、Cells関数】

続いては、VBAマクロでシート名をセルから取得し変更する方法について解説していきます。

今度はエクセルファイルとは別にinput.csvがあり、このa列をループして順に読み込み、これらをエクセルの新規シート名として一気に変更してみます。

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


Sub ShitoHenshuInputCSV()
    Dim yomikomi As Workbook
    Dim i As Integer
    Dim meishou As String

    Set yomikomi = Workbooks.Open("path\input.csv")
    
    For i = 1 To yomikomi.Worksheets(1).Cells(Rows.Count, 1).End(xlUp).Row
        On Error Resume Next
        meishou = yomikomi.Worksheets(1).Cells(i, 1).Value
        If meishou <> "" And Not IsError(meishou) Then
            ThisWorkbook.Worksheets(i).Name = meishou
        End If
        On Error GoTo 0
    Next i

    yomikomi.Close
End Sub

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

このコードは外部のinput.csvからシート名を読み込んで、Excelの各シート名を変更します。エラー処理も実施しています。

VBAマクロでダイヤログでシート名を変更する方法【InputBox関数】

最後に、VBAマクロでダイヤログを使ってシート名を変更する方法について解説していきます。

変更前後でダイヤログから命名できます。

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


Sub ShitoHenshuDialog()
    Dim motoShito As String
    Dim atarashiiShito As String

    motoShito = InputBox("変更前のシート名を入力してください。")
    atarashiiShito = InputBox("変更後のシート名を入力してください。")

    On Error Resume Next
    ThisWorkbook.Worksheets(motoShito).Name = atarashiiShito
    On Error GoTo 0
End Sub

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

このコードはダイヤログを表示して、変更前後のシート名を入力させ、シート名を変更します。エラー処理も行っています。

まとめ

以上で、ExcelのVBAマクロを使用して、様々な方法でシート名を変更する方法について解説しました。適切な方法を選んで、効率よく作業を進めてください!