• ベストアンサー

エクセルのシートごとに連番を入れたい

エクセルでお客様番号を振ったシートを300枚ほど作ることになりました。 ちなみにお客様番号は連番で通し番号になっています。 エクセルのシートを300枚ほど同じブックに作って 一括で印刷することは可能でしょうか? ちなみにその番号以外は同じ内容の文章なので いっぺんに同じ内容のシートをコピーしつつ、番号だけ連番となることが理想なのですが。 マクロの知識はほとんどありませんが、教えていただけるとありがたいです。 どうかよろしくお願いします。

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

  • ベストアンサー
  • mame9999
  • ベストアンサー率44% (90/203)
回答No.1

もし印字上番号が振られればよく 300枚のシートを保持する必要がないのなら 差し込み印刷のような機能を使ってみてはどうでしょう http://www.vector.co.jp/soft/win95/business/se386179.html このようなものもあるようですので EXCELだけでも実現できそうです

pyukao
質問者

お礼

差し込み印刷とは思いつきませんでした。 ソフトの方も確認してみます。 ありがとうございます。 ただ、一時的に保存の必要性も出てきそうなので 出来ればマクロがわかればな、と思います。 とにかくありがとうございました。

その他の回答 (2)

  • ka_na_de
  • ベストアンサー率56% (162/286)
回答No.3

参考までに一例を示します。 標準モジュールに登録して実行してください。 Sheet1が原本のシートだとして、 Sheet1をコピーして、シート名をお客様番号に変更し、A1セルにお客様番号を入力します。 印刷は「ブック全体で印刷」をすれば良いと思います。 Sub copysheet()  Dim Start_Num As Long  Dim End_Num As Long  Dim i As Long  Start_Num = 1 'お客様番号 開始番号  End_Num = 3 'お客様番号 終了番号  For i = Start_Num To End_Num   Sheets("Sheet1").copy After:=ActiveSheet   ActiveSheet.Name = "No" & i   ActiveSheet.Cells(1, "A").Value = "No" & i  Next i End Sub

pyukao
質問者

お礼

ありがとうございます。 とっても詳しく解説していただいて感謝しています!!! あっという間に数字が入力されてびっくりです! これをアレンジして書類を作っていけそうです。

回答No.2

マクロを使わない方法を。 まず、シートを一つにして、シート名を"(1)"とします。 シート(1)に文章などを入力します。 お客様番号のセル(たとえばA1)には、以下の関数を入力します。 =-VALUE(MID(CELL("filename",$A$1),FIND("]",CELL("filename",$A$1))+1,31)) "001"のように桁数を揃える場合は以下になります。 =TEXT(MID(CELL("filename",$A$1),FIND("]",CELL("filename",$A$1))+1,31),"000;000") 保存していないファイルではエラーとなります。 次に、以下の操作を繰り返します。 一番右のシートのタブを右クリック→全てのシートを選択 ctrlを押しながらタブをすぐ右の空いているところにドラッグ シートが倍々に増えていくので、必要なだけ行い、余分なシートは削除してください。 最後に、印刷ダイアログで「ブック全体」を選択して印刷します。 シート名の括弧がジャマだ、となると、やはりマクロになる気がします。

参考URL:
http://www2.odn.ne.jp/excel/waza/sheet.html#SEC5
pyukao
質問者

お礼

ありがとうございます!! 今回はマクロを使った方法を利用しようと思いますが こちらの方法も今後とても役に立ちそうです。 詳しく解説してくださって感謝しています。

関連するQ&A

専門家に質問してみよう