EXCELを使っていて、いつも使い勝手が悪いなと思うのは、シートの取扱。
下部にずらーっと並んでいて、一覧性が悪いし、名前を変えようと思うときも面倒くさい。
以下のようなシートが並んでいるブックを扱っているときに、よくあるのが
002A,002B,002Cというシートを003A,003B,003Cという名前に変更して、新しく002A,002B,002Cというシートを追加するという作業。


もちろん、このぐらいなら手で直したほうが早いですが、10セットも20セットもあると時間もかかるし、間違えも発生しやすい。
というわけで、VBAでマクロを組んでみました。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
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 |
色々応用ができると思います。