- ベストアンサー
シート名変更のマクロ
QNo.4400605『エクセルでシート数を指定して挿入するマクロはどうやって作ったらいいでしょうか。例えばA1セルに挿入したいシートの数を入力するとその数のシートが作成されるというようなマクロを作りたいのですが』という質問をしてそれについては解決しましたが、作成されたシートの名前を1~40のような数字に変更するマクロが分かりません。作成するシートの枚数は決まってなく、25シートであったり、40シートだったりします。A1:A40に1~40と変更後のシート名を入力して、それをシート名に反映させるマクロは作れたのですが、毎回シート枚数が変わるので「インデックスが有効範囲にありません」と出てしまいます。型としては、元シートがあり、そこでシート数を指定しシートを挿入し、そのできたシートに数字の名前をつけたいと考えています。長々なりましたが教えて下さい。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
こんばんは。 前の掲示は、解決しているなら、閉じたほうがよいのでは? それと、同様の質問を出す前に、前に質問の解答してくださった人にコメントを付けるようにしたらどうですか?そういう質問の仕方をすると、常連の方からレスが付かなくなります。 '標準モジュールがベスト Sub Test1() '同名があるエラーや、シート1のA列に何も書かなかった場合のエラーは考えておりません。 Dim i As Integer Dim j As Integer Dim n As Integer Dim r As Range With Worksheets("Sheet1") Set r = .Range("A1", .Range("A65536").End(xlUp)) End With j = r.Cells.Count i = Worksheets.Count Application.ScreenUpdating = False Worksheets.Add After:=Worksheets(i), Count:=j For n = 1 To j Worksheets(i + n).Name = r.Cells(n, 1).Value Next n Application.ScreenUpdating = True End Sub
その他の回答 (1)
- FEX2053
- ベストアンサー率37% (7991/21371)
前質問の#2さんの回答をいじればいいんじゃないかと。 Sub Macro1() n = Sheets(1).Cells(1, 1) Do Until Sheets.Count = n Sheets.Add After:=Sheets(Sheets.Count) Sheets(Sheets.Count).Name = "Sheet" & Sheets.Count Loop End Sub 5行目でシート名を指定していますので、こいつの右辺を適当に 指定してやればいいんです。 Sub Macro1() n = Sheets(1).Cells(1, 1) i = 1 Do Until Sheets.Count = n Sheets.Add After:=Sheets(Sheets.Count) i = i + 1 Sheets(Sheets.Count).Name = Cells(1, i) Loop End Sub こんな感じで行けると思います。動作チェックはしてないですけど。
お礼
いじりかたが分かりませんでした。 解決しました。ありがとうございます。
お礼
失礼しました。今後気をつけます。 この件については解決しました。ありがとうございました。