【EXCEL VBA】シート名をまとめて変更するツール

EXCELを使っていて、いつも使い勝手が悪いなと思うのは、シートの取扱。
下部にずらーっと並んでいて、一覧性が悪いし、名前を変えようと思うときも面倒くさい。

以下のようなシートが並んでいるブックを扱っているときに、よくあるのが
002A,002B,002Cというシートを003A,003B,003Cという名前に変更して、新しく002A,002B,002Cというシートを追加するという作業。

こう並んだシートを
こう変更したい

もちろん、このぐらいなら手で直したほうが早いですが、10セットも20セットもあると時間もかかるし、間違えも発生しやすい。

というわけで、VBAでマクロを組んでみました。

Sub シート名置換()
    Dim wkb As Object
    Set wkb = ActiveWorkbook
    Application.ScreenUpdating = False
    
  '2つ目のオプションに変更前のシート名の一部
  '3つ目のオプションに変更後のシート名の一部
    Call シート名変換2(wkb, "002", "003")
    ………………………………
    Call シート名変換2(wkb, "00X", "00Y")

    Application.ScreenUpdating = False
End Sub

Private Sub シート名変換2(wkb As Object, change1 As String, change2 As String)
    Dim i As Long
    For i = 1 To wkb.Sheets.Count
        wkb.Worksheets(i).Name = Replace(wkb.Worksheets(i).Name, change1, change2, 1, -1, 2)
    Next i
End Sub

色々応用ができると思います。

スポンサーリンク
レクタングル大

シェアする

  • このエントリーをはてなブックマークに追加

フォローする

スポンサーリンク
レクタングル大
%d人のブロガーが「いいね」をつけました。