• ベストアンサー

シート名変更のマクロ

QNo.4400605『エクセルでシート数を指定して挿入するマクロはどうやって作ったらいいでしょうか。例えばA1セルに挿入したいシートの数を入力するとその数のシートが作成されるというようなマクロを作りたいのですが』という質問をしてそれについては解決しましたが、作成されたシートの名前を1~40のような数字に変更するマクロが分かりません。作成するシートの枚数は決まってなく、25シートであったり、40シートだったりします。A1:A40に1~40と変更後のシート名を入力して、それをシート名に反映させるマクロは作れたのですが、毎回シート枚数が変わるので「インデックスが有効範囲にありません」と出てしまいます。型としては、元シートがあり、そこでシート数を指定しシートを挿入し、そのできたシートに数字の名前をつけたいと考えています。長々なりましたが教えて下さい。

質問者が選んだベストアンサー

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.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

noa8998
質問者

お礼

失礼しました。今後気をつけます。 この件については解決しました。ありがとうございました。

その他の回答 (1)

  • FEX2053
  • ベストアンサー率37% (7987/21355)
回答No.1

前質問の#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 こんな感じで行けると思います。動作チェックはしてないですけど。

noa8998
質問者

お礼

いじりかたが分かりませんでした。 解決しました。ありがとうございます。

関連するQ&A

  • マクロ シート名変更

    マクロ シート名変更 Sheet1,Sheet2,Sheet3の名前を、 Sheet1のA1~A3に入力してある名前にしたいときどうすればいいでしょうか。 そして、 次に、A1~A3の入力を変えたときにSheet1,2,3の名前も 変わるにはどうやればいいんでしょうか。 お願いします...

  • シート名変更マクロ

    「1」というシートのH4にコピー数を入力し、「1」の後ろに挿入するマクロがあります。できたシートの名前は「1(2)」「1(3)」となってしまいます。このシート名を挿入した数の通し番号(「2」「3」に変更することはできるのでしょうか?挿入するシートの数は決まっていません。 Sub シートのコピー() Dim i As Integer Dim n As Integer n = Worksheets("1").Range("H4").Value For i = 1 To n Worksheets("1").Copy Before:=Worksheets(Sheets.Count) Next i End Sub

  • エクセルでシートを追加するマクロについて

    マクロ初心者ですよろしくお願いします エクセルでシート1は名前などの入力用、シート2はフォーム用として作成しております シート1のA1から最大でA20(変動あり)に名前を入力すると名前の数だけシート2のコピーが追加され、シート名も入力した名前に変更する場合のマクロはどうすれば良いのでしょうか? またシート2のB1にも入力した名前を表示させたいです ご教授お願いいたします

  • エクセルのシートについて

    エクセルでシート数を指定して挿入するマクロはどうやって作ったらいいでしょうか。 例えばA1セルに挿入したいシートの数を入力するとその数のシートが作成されるというようなマクロを作りたいのですが・・・

  • エクセルマクロ シート名の指定と変更について

    いつもお世話になります。 現在、このような作業をしています。 1.前月と前々月の資料(ファイル名 "資料" シート名 "404" "405")を、計算用シート(ファイル名 "分析" シート名 "計算")に転記する。(手動) 2.月次の分析資料を作る。(マクロ起動) 3.2で作成した資料を、シート名 "000" に転記する。(マクロ) 4.次回の準備として、新しいシートを挿入する。(マクロ終了) 5.3で作成されたシート名 "000" をシート名 "406" に変更する。(手動) 6.5のシート名"406"を、ファイル名"分析"から、ファイル名"資料"に移動する。(手動) 7.4で挿入されたシート名を "000" と書き換える。(手動) 以上の一連の作業の中で、(手動)の部分をマクロで出来るようにしたいのですが、構文がわかりません。 といいますのは、シート名は、各年月の略号をあらわしており、毎月毎月、参照するシート名が変わるのです。(逆に言えばマクロの中で参照シート名を固定できない) そこで、今月のシート名ならば、"406"となりますので、その数字を入力(ファイル名 "分析" シート名 "計算" のセルA1に入力)してやれば、必要なシートが、前月と前々月、"405" "404" と判別できるので、何か方法があると思うのですが、構文がうまくできないので、たずねてみました。 補足しますと、現在、仮の置場的に機能しているシート "000"は、不要になると思います。 どうかよろしくおねがいします。 ちなみにエクセル2003、OS=XPです。

  • エクセルマクロでファイル名やシート名変更できない

    エクセルは初心者なのでマクロを自動記録して作成しています。 少しづつ動作を小分けにして記録して、まとめてボタンで連続実行させるようにしました。 (1)作成途中で失敗したら最初からの作業になると思い、 ある程度進んだら何度かファイルのコピーを作成して進めていました。 ある程度完成した時点でファイル名が「○○○4~コピー~」の様な名前だったので、正式に名前を決めて変更したらマクロの実行が出来なくなりました。(元の名前に戻すと実行可能) (2)またシートも複数のシートに跨って参照するようなマクロです。 シート名を分かりやすい名前に変更したらこの場合もマクロ実行できなくなりました。 (3)コピーしたファイルもマクロ実行できないものがあります。 コピーしたファイルはマクロ実行できないのでしょうか? (4)ファイル作成途中で何かの変更が生じて列や行の挿入を行った場合、 特定のセルを参照して計算するマクロは実行できなくなるのでしょうか? その場合、簡単に修正する方法はありますか? 初心者にも分かるような回答をよろしくお願いいたします。

  • シートコピーと値の転記 シート名変更マクロを

    エクセル2010で マクロのご教授をお願いいたします。 BOOK1の Sheet1 A1~A10に 数値1000が入力されているとして Sheet1のシートのコピーを作成 Sheet1にもどり A1~A3の値だけコピーして 作業列C1に 値を貼り付け A1~A10 をクリアーにしたのちに  ※↓が うまくいきません。 A1の値→ A8 A2の値→ A9 A3の値→ A10 に入力 させるマクロは どうなるでしょうか? マクロの記録で いろいろと やってみましたが どうも ※の部分が うまくいきません どう考えてもエクセルに対しての 理解不足だと思われますが、ご教授のほどお願いします。 おこなった自動マクロの記録は↓です。 マクロの記録開始する 名前 シートコピー Sheet1を右クリックして移動またコピー コピーを作成にチェックをいれ OK コピーシートが作成される。 Sheet1をクリックしなおして A1からA3をコピー  作業列として C1に 形式を選択して貼り付け 値 A1~A10を delete でクリア C1~C3を選択 コピー A8に 形式を選択して貼り付け 値 マクロの記録終了。 あと Sheet1をコピーするさいに シート名を前日の日付に自動的に変更できればと いいなと 考えておりますが できるのでしょうか? 例えば、本日でいえば シート名→ 0112 のような シート名を変更できればすてきだと おもいます。 どうぞ よろしくお願いします。

  • EXCEL シート名を自動変更するマクロ

    いつも御世話になっています。 質問内容ですが、特定セルに入力した値を特定のシート名に反映させるマクロについてです。 例えば、 Sheet1のセルA1に「会議室」と入力した場合、Sheet5のシート名が「会議室」となり、 Sheet1のセルA2に「休養室」と入力した場合、Sheet7のシート名が「休養室」となる。 というようなものです。 (※Sheet番号は連番になっていません) なお、シート名変更用の入力シートはSheet1のみです。 できれば、各シート名を変更する際、以下のようにしたいと考えています。 Sheet5 元シート名:負荷計算(1)            ↓ Sheet5 変更後シート名:"Sheet1のA1で入力した名前" 負荷計算    教えて頂けると助かります。 宜しくお願いします。

  • EXCELのシート名を一括変更するマクロ

    マクロの超初心者ですが、EXCELのシート名を一括変更するマクロを考えてます。 例えば、1つのBOOKで「1」~「31」までの名前が入っているシートを予め用意しておいて、マクロを実行するとメッセージボックスがでてきて、そこに200806と入力するとシート名の「1」が『20080601』に、「2」が『20080602』という感じで31日分自動でできるような方法はないでしょうか?いつも手入力でやっていて大変なので、なにか方法があれば教えて欲しいです。お願いします。

  • エクセルマクロ シート名の変更方法

    エクセル2000を使用しています。 シート名「1月」~「12月」の12枚のシートと、これらとは別の1枚のシート(仮に、シート名:sheet13とします)があります。 たとえば、sheet13のA1セルに「4」(開始月)を入力するとシート名「1月」~「12月」のシート名が「4月」~「3月」に変更されるマクロを組みたいのですが、皆目見当がつきません。シート名が重複するので一旦ぜんぜん違う名前に変更しておいて、その後正しいシート名をつける。という手順だとは思うのですが、具体的なソースが良くわかりません。アドバイスよろしくお願いします。

専門家に質問してみよう