• ベストアンサー

Excelのシート名変更について

いつもお世話になっています。 エクセルにおいて、シート名を自動変更することは可能でしょうか? 現在、1ファイルにシートを100枚用意してあります。 それぞれのシートに「1」~「100」という名前を付けてあります。 このファイルをコピーして、新しいファイルのシート名を「101」~「200」としたいのです。 現在は、一枚ずつ手入力をしていますが、後10ファイル以上(1000シート以上)あり、また今後も発生するためできるだけ簡単に変えられる方法を探しています。 このOKWave内を検索し、欲しい内容に近い回答がありましたので、下記のようなマクロを作成してみましたが、「インデックスが正しくありません」というエラーが出てしまいました。 マクロについては、全く知識がないので、ぜひご教授のほどよろしくお願いいたします。 Sub Macro1() For counter = 101 To 200 Sheets(counter).Select ActiveSheet.Name = CStr(counter) Sheets(counter + 1).Select Next End Sub

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

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.1

こんにちは。 Personal.xls(個人用マクロブック)にでも入れて、ボタンにでも登録すればよいと思います。 Sub TestSheetCount() Dim sh As Worksheet 'シートオブジェクト Dim shnum As String 'シートの名前 For Each sh In ActiveWorkbook.Worksheets  shnum = StrConv(sh.Name, vbNarrow)  If IsNumeric(shnum) Then   sh.Name = CStr(CLng(shnum) + 100) '100を足す  End If Next End Sub ただし、これは、並べ替えはしてくれません。順番が違っていれば、違ったままです。

michbird
質問者

お礼

さっそくのご回答、どうもありがとうございます! ご助言通り、Personal.xlsに保存して、ツールバーに登録しましたところ、うまく行きました!!\(^o^)/ 望んだ通りの結果で非常に助かりました。 本当にどうもありがとうございました!!

その他の回答 (1)

  • TK1961
  • ベストアンサー率35% (16/45)
回答No.2

 見本を元に最小の変更を加えてみました。 Sub Macro1() For counter = 1 To 100 Sheets(counter).Select ActiveSheet.Name = CStr(counter+100) Next End Sub これを、コピー後のブック(ファイル)で実行してください。

michbird
質問者

お礼

早速のご回答、どうもありがとうございます! なるほど、最初に従来のシート名を読み込んで、それに100を足す、という風にすれば良かったんですね! マクロの命令コマンドを全く知らないため、例文が見つかってもなかなか応用ができません。 これから仕事の合間を見ながら少しずつ勉強していきたいと思います。 今回は本当にありがとうございました!m(_ _)m

関連するQ&A

  • エクセルの図形移動で困っています。

    エクセルの図形移動で困っています。 シート2にある図形をシート1にマクロを使って移動(コピー&貼り付け)をしようとしています。 マクロの記録でやった所、以下のような感じになりました。 Sub Macro4() ' ' Macro4 Macro ' ' Sheets("sheet2").Select Selection.Copy Sheets("sheet1").Select Range("N16").Select ActiveSheet.Paste End Sub しかし、なぜか3回程つかうとシート1に貼り付けされなくなります。 原因はシート2の図形をコピーする時に選択されるところがないからではないか?と思い 色々ネットで調べてみたのですが、まだまだ結論が出ていない状態です。 皆様のお力を貸して頂ければと思います。 Sub Macro4() ' ' Macro4 Macro ' ' Sheets("sheet2").Select (たぶんここに"図形1)とか入るのでは??と思っています Selection.Copy Sheets("sheet1").Select Range("N16").Select ActiveSheet.Paste End Sub

  • エクセルシートの順繰り表示マクロについて

    エクセルにて随時更新されるデータを全画面表示し、3枚のシートを5秒置きに順繰り表示させるようマクロを組みました。始めは順調なのですが、数時間たつとフリーズしてしまいます。そもそもエンドレスのマクロプログラム実行に無理があるのでしょうか。 または下記のプログラムに問題があるのでしょうか。ご教授お願いします。 Sub Macro1() Sheets("Sheet2").Select Application.OnTime Now + TimeValue("00:00:05"), "Macro2" End Sub Sub Macro2() Sheets("Sheet3").Select Application.OnTime Now + TimeValue("00:00:05"), "Macro3" End Sub Sub Macro3() Sheets("Sheet1").Select Application.OnTime Now + TimeValue("00:00:05"), "Macro1" End Sub

  • エクセル「マクロの記録」を少し直したい

    マクロの記録で作った下記を Sub Macro1() Sheets("Sheet1").Select Rows("6:6").Select Selection.Copy Sheets("Sheet2").Select Rows("2:2").Select ActiveSheet.Paste End Sub 以下のように書き換えたら、2行目(Paste)がエラーになりました。 Sub ts1() Sheets("Sheet1").Rows("6:6").Copy Sheets("Sheet2").Rows("2:2").Paste End Sub セレクトしないで行ないたいのです。 どう直せばいいでしょうか?

  • エクセル2007マクロ シート間のセルコピー

    [Sheet1]にあるデータを[Sheet2]にコピーするマクロボタンを[Sheet2]に作りたいのですが、マクロがよく分からないので、「マクロの記録」で作成してみました。 Sub siken() ' ' siken Macro ' ' Sheets("Sheet1").Select Range("A1").Select Selection.Copy Sheets("Sheet2").Select Range("A1").Select ActiveSheet.Paste Sheets("Sheet1").Select Range("B3").Select Application.CutCopyMode = False Selection.Copy Sheets("Sheet2").Select Range("B3").Select ActiveSheet.Paste Sheets("Sheet1").Select Range("B6:D6").Select Application.CutCopyMode = False Selection.Copy Sheets("Sheet2").Select Range("B6").Select ActiveSheet.Paste End Sub (実際はもっと多くのセルをコピーします) マクロを実行すると、ちゃんとコピーできるのですが、セルをコピーする都度[Sheet1]と[Sheet2]が交互に表示されます。 コピー元の[Sheet1]を表示させずにマクロを実行させるにはどのようにしたらよいのでしょうか? よろしくお願いします。

  • エクセルでシート名をセル参照するマクロ

    いつもお世話になっております。 ワークシートをコピーする際、 B1セルの値を複製したシート名にするマクロを と思ってやってみましたが、 Sub Macro1() ' ' Macro1 Macro Sheets("0000").Select Application.CutCopyMode = False Sheets("0000").Copy Before:=Sheets(3) Range("B1").Select Selection.Copy Sheets("0000 (2)").Select Sheets("0000 (2)").Name = "0524" Range("B1").Select End Sub 5行目でB1セルをコピーしましたが、 シート名として命名されたのは、 "0524"という固定の値でした。 (そのときのB1セルの値です) このB1セルは日付データなのですが、 マクロを実行する日によって、 翌日だったり、3日後だったりします。 (営業日ベースなので) どのようにしたら、B1セルの値を シート名に使用できるでしょうか よろしくお願いいたします。

  • シート名に自動で年月をつけたい!

    VBA初心者です。 「新規ページ作成」のマクロを作りました。 「H23.3」のシートの上で実行すると、新規ページを挿入し、 雛形というシートにある表をコピーするところまではできました。 そこに、シート名に自動で翌月(この場合は「H24.4」)をつけるにはどうすれば良いでしょうか? 不都合であれば、表記は「平成●年●月」等でも構いません。 また、「H24.4」で実行したら「H24.5」・・・・としていきたいです。 現在のところまでは下記のとおりです。 Sub 新規ページ作成() ' ' 新規ページ作成 Macro ' ' Sheets("H24.3").Select Sheets.Add Sheets("Sheet3").Select Sheets("Sheet3").Move Before:=Sheets(5) Sheets("雛形").Select Cells.Select Selection.Copy Sheets("Sheet3").Select Cells.Select ActiveSheet.Paste Application.CutCopyMode = False Range("A1").Select End Sub 質問の仕方に不備等があればご指摘下さい。 回答と併せてよろしくお願いします。

  • エクセルマクロ 教えてください

    エクセルの自動記録でマクロを取り組み始めたばかりの初心者です。 本部から毎月送られてくるエクセルファイルにこちらで別のワークブックに記録したマクロを使って加工しようとしていますが方法がわかりません。 他の人がこのファイルを間単に加工出来るようマクロを使って (マクロのコードの書き換え等の作業をしないで)行えるようにしようとしています。 ※送られれくるエクセルファイルは月毎にファイル名が違います(シート名は変わりません)。 下記は自動記録の内容ですがこれを適用させる方法であります。 宜しくお願いいたします。 Sub Macro1() ' ' Macro1 Macro ' マクロ記録日 : 2008/9/8 ユーザー名 : ******* ' ' ActiveWindow.TabRatio = 0.819 Sheets(Array("Sheet1", "Sheet2", "Sheet3", "Sheet4", "Sheet5")).Select Sheets("Sheet1").Activate With ActiveWindow .DisplayHeadings = False .DisplayHorizontalScrollBar = False .DisplayVerticalScrollBar = False End With Sheets(Array("Sheet6", "Sheet7", "Sheet1", "Sheet2")).Select Sheets("Sheet1").Activate ActiveWindow.Zoom = 120 End Sub

  • Excelでシートをコピーする時に「シート名が長すぎます」と表示される

    環境 OS : Win2000 SP4 Office : Excel 2000 SP1 表題の通りでシート名「P.05-2_BK(-2)」を同じブック内でコピーしようとすると「シート名が長すぎます」とメッセージが出てコピーできません。 MSのサイトではシート名は半角31文字までOKと書いてあるのですが・・・ マクロでは大丈夫かな?と思い Sub Macro1() Sheets("P.05-2_BK(-2)").Select Sheets("P.05-2_BK(-2)").Copy After:=Sheets(24) End Sub と言うマクロを実行してみましたが、2行目で同じエラーが出ます。 また、ブックが悪いのかと思い、シートを新しいブックにコピーして、その新しいブック内でコピーしようとしても同様にエラーが出てコピーできません。 何故なんでしょう??

  • エクセルマクロで不特定なファイル名を使用するには

    初めて質問します。 不適切があれば申し訳ございません。 教えていただきたいです。 ファイル名が日々変わる場合、以下のマクロを使用した際に ファイル名が変ったとしてもマクロが実行できるようにするにはどうすれば良いでしょうか? ファイル名が変るのが"日別進捗_20140814.xlsx"の日付の所です。 初歩的で誠に申し訳ございません。 教えていただければ幸いです。 ----------------------------------------------------------- Sub Macro1() ' ' Macro1 Macro ' ' Sheets("Sheet2").Select Windows("日別進捗_20140814.xlsx").Activate Cells.Select Selection.Copy Windows("Book1.xlsm").Activate Cells.Select Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _ xlNone, SkipBlanks:=False, Transpose:=False Range("A1").Select Sheets("Sheet1").Select Range("D15").Select End Sub

  • エクセルのマクロで各Sheetのデータを複数コピー&ペーストしたいです

    エクセルのマクロで各Sheetのデータを複数コピー&ペーストしたいです 1つのエクセルファイルの中に複数のSheetがあります。 各Sheetの4行目以降(5行目から)にデータのあるA列~O列をコピーしていって、 挿入-ワークシート(Sheet1という名前で構わない)に全てを順番にコピーしていきたいです。 ”新しいマクロの記録”で下記のように作成したのですが、  ・5行目からデータのあるA列~O列をコピーしていく   ・存在する全てのSheetから上記の作業をする というマクロの書き方が分かりません。 恐れ入りますがお時間ある方で上記の内容をご理解頂ける方がいましたらアドバイス頂ければ非常に助かります。 Sub Macro1() Sheets.Add Sheets("ER10(zy)").Select Rows("5:8").Select Selection.Copy Sheets("Sheet1").Select ActiveSheet.Paste Sheets("ER10(cx)").Select Rows("5:9").Select Application.CutCopyMode = False Selection.Copy Sheets("Sheet1").Select Range("A5").Select ActiveSheet.Paste Sheets("ER10(zht)").Select Rows("5:13").Select Application.CutCopyMode = False Selection.Copy Sheets("Sheet1").Select Range("A10").Select ActiveSheet.Paste End Sub

専門家に質問してみよう