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
色々応用ができると思います。