- ベストアンサー
エクセル2010 複数枚のシートの名前を一度に変更
エクセル2010を使用しています。 複数枚のシート名にそれぞれ次のように名前が入っています。 A001abcdef_R_1_1 A002abcdef_R_1-2 A003abcdef_L_1-1 A004abcdef_L_1-2 A005abcdef_R_2-1 A006abcdef_R_2-2 A007abcdef_L_2_1 A007abcdef_L_2-2 ・ ・ ・ (文字はすべて半角です。) この複数枚のそれぞれのシート名から、アンダーバー(_)とハイフン(-)を削除したいです。 どうぞよろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
こんな感じでいかがでしょ。 Sub test() Dim mySheet As Worksheet, strName As String For Each mySheet In Worksheets strName = mySheet.Name strName = Replace(strName, "-", "") strName = Replace(strName, "_", "") mySheet.Name = strName Next End Sub 念のため、保存してから試してくださいね。
その他の回答 (2)
- K Kazz(@JazzCorp)
- ベストアンサー率31% (549/1751)
名前を変換すると重複が発生しそうなので、適当な所(変数定義の下辺り)に、 On Error Resume Next を入れておくのが賢明かも、、、
お礼
ありがとうございました。
- K Kazz(@JazzCorp)
- ベストアンサー率31% (549/1751)
Sub RenameSheets() Const xChar = "-" Const xChar2 = "_" Dim xSheetName As Variant Dim kk As Long Application.ScreenUpdating = False Application.DisplayAlerts = False For kk = 1 To Worksheets.Count xSheetName = Worksheets(kk).Name xSheetName = Application.Substitute(Application.Substitute(xSheetName, xChar2, ""), xChar, "") Worksheets(kk).Name = xSheetName 'MsgBox (Worksheets(kk).Range("A1")) Next kk Application.DisplayAlerts = True Application.ScreenUpdating = True End Sub
お礼
ありがとうございました。
お礼
できました!ありがとうございました!