• ベストアンサー

エクセルVBAにてワークシートの挿入

エクセルで作った『ひな型』のシートを同じワークブック内に、 1号,2号,3号・・・と挿入したいのですが VBAの初心者につきさっぱりわからないので 誰かアドバイスください。

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

  • ベストアンサー
noname#123709
noname#123709
回答No.6

#1です。 >初心者なのですみません。 全てこの言葉で逃げられても困るのですが・・・。 >既存のシートが「雛型」「1号」の場合 私の提示した条件にあってますか? とりあえず、シートを雛型のみにして、それをコピーしてシートの最後にもっていき、シート名を「1号」としておきます。 それから実行して下さい。

Mont-Vento
質問者

お礼

ありがとうございました。 思ったとおりにできました。

その他の回答 (5)

  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.5

50シートをいちどに作れればいいということですか?それでしたら、シート「ひな形」を一番左側に置いてください。 で、 Sub test01() For i = 1 To 50 Sheets("ひな型").Copy After:=Sheets(i) Sheets(i + 1).Name = i & "号" Next End Sub

noname#123709
noname#123709
回答No.4

#1です。 既存のシートが「雛型」「1号」の場合 実行する度にシートが追加されます。 Sub test() Sheets("雛型").Copy After:=Sheets(Sheets.Count) Sheets(Sheets.Count).Name = Left(Sheets(Sheets.Count - 1).Name, _ Len(Sheets(Sheets.Count - 1).Name) - 1) + 1 & "号" End Sub

Mont-Vento
質問者

補足

先ほどので実行するとシートの挿入はできますが、 『型が一致しません』というエラーが出ます。 あと、『ひな型(2)』、『ひな型(3)』… という風に挿入されるので 1号、2号… という風になりませんか? *初心者なのですみません。

  • hana-hana3
  • ベストアンサー率31% (4940/15541)
回答No.3

Sub WsCOPY53() Dim i As Integer For i = 1 To 53 Sheets("ひな形").Copy After:=Sheets(Worksheets.count) ActiveSheet.Name = i & "号" Next End Sub

Mont-Vento
質問者

補足

『実行時エラー`9` インデックスが有効範囲にありません。』 と出てエラーになりますが、どうしたらよいのでしょうか?

  • toshi_ho
  • ベストアンサー率42% (71/168)
回答No.2

以下でどうでしょう。(これをシートの数だけ繰り返せばOK) Sheets("ひな型").Copy Before:=Sheets(1) Sheets(1).Name="1号" Sheets("ひな型").Copy Before:=Sheets(1) Sheets(1).Name="2号" 以下同様

Mont-Vento
質問者

補足

週1回に1枚追加で1年分を作ろうと思っているので、 約50枚になってしまうので、『変数』を使ってできないかな と思っておりますが、いいアイディアないですか?

noname#123709
noname#123709
回答No.1

この質問ではサッパリわかりません。 どのタイミングでどれだけの枚数とか、詳しく説明して下さい。 VBAが使えないのであれば、雛型のシートをコピーして使えばよろしいのでは?

Mont-Vento
質問者

補足

週1回につき1枚追加したいのですが、(1年分で約50枚ぐらいかな) 良い方法はないですか? (コピーしてシート名を変えるのが面倒なので・・・)

関連するQ&A

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

    エクセル2000を使っています。 15枚くらいのシートで構成されているエクセルBookですが、 メニューバー「挿入」-「ワークシート」とやっても新しいワークシートが挿入できません。 しかし、既存のシートのタグで右クリックして「挿入」-「ワークシート」と選択すると新しいワークシートが挿入できます。 同じ事だと思うのですが、何故違いが出てくるのでしょうか? また、1BOOK内に作成できるシートの最大数は何シート迄でしょうか?

  • Excel VBAで、ある名前のワークシートが存在するかを調べるには?

    VBA初心者です。 例えば、開いているブックの中に「Sheet4」が存在するかどうかを調べ、無い場合にだけ「Sheet4」を挿入するには、どのように記述すればよいのでしょうか? よろしくお願いします。

  • エクセルのシートの挿入

    こんにちは。エクセルに新しいシートを2枚挿入したいのですが、普通に挿入すると、自動的に最後のシートの左側に挿入されてしまいますよね?私は最後のシートの右側に付け足す形で挿入したいのです。どうすればいいのですか?私は超が付く初心者なので、簡単な言葉で説明していただけると嬉しいです。よろしくお願いします!

  • Excelでワークシートが挿入できない!

    Excelで新しくワークシートを挿入しようとしてメニュバー→挿入からワークシートを選択しようとしたらワークシートの文字が灰色になっていて選択できません。操作できないように他の人がシートにロックかなにかをかけているのでしょうか?ご教授願います。

  • Excel VBAでシートのコピーをできなくするには

    Excel VBAで シートのコピー及びシートの新規挿入を出来なくする事はできるでしょうか? どなたかご教示お願いいたします。

  • VBA シート操作

    エクセル2002使ってます。 VBAにて雛型のシートを27枚コピーし、集計用のシートに入力されている名簿の名前の通りにシート名を変更したいと思い、式を組みました。 しかし、雛型のコピーまではできましたが、シート名を上手く変更できません。 シート名を変更したいシートは雛型(2)~雛型(28)の名前で、ブックの一番左から並んでます。 これをシート名変更するにはどうすればいいでしょうか?

  • マクロ?VBA?で新しいシートを増やす

    こんにちは、 Excelで新しいシートを挿入するマクロを作成したいのです。 「新しいマクロの記録」からすると、選択した前にシートが挿入されますが、選択した後に挿入したいのです。 その動作をショートカットキーの「Ctrl」+「n」で動くようにしたいのですが可能でしょうか? VBAは初心者です。よろしくお願いします。

  • VBAでシート挿入を禁止したい。

    エクセル2007で、ファイルを閉じるとその状態が全部保存されるように下記VBAを使ったファイルを作りました。 Private Sub Workbook_BeforeClose(Cancel As Boolean)  ThisWorkbook.Save End Sub ファイルのシート数は全部で6枚です。ファイルを開くとsheet5だけが表示します。マクロを有効にするとそのシートを非表示にしてsheet1からsheet4が表示するようにしてあります。 リボンは非表示にして操作できないようにしてあります。この状態でもファイルを開いている間に誰かがシート挿入タブ等でシートを挿入して閉じてしまうとその分も保存されてしまい、シートがどんどん増えてしまいます。ブックの保護をするとシート表示切り替えがうまくいかないみたいです。シート挿入タブを非表示にする方法はありますか。なければVBAでシート挿入禁止はどのように書くのでしょうか。

  • エクセルでワークシートの挿入

    エクセル作業中に『ワークシートの挿入(shift+F12)』 なるものが、タブにできてしまいました。これを削除するにはどうすればよいでしょうか。教えてください。

  • excel vba シートがなければコピーしたい

    excel vba で教えてください sheet名0を雛形に、使用者が1 2 3のsheet名でコピーして利用できるようにしたい。1はあるのでコピーを作らない。2はないのでsheet名0をコピーして作るといったように現在sheet2があるや否やで作成するや否やを判断してsheet copyをしたい。 すべてのsheet を名前をしらべつつ判断したいのです 教えてください

専門家に質問してみよう