- ベストアンサー
エクセルのシートごとに連番を入れたい
エクセルでお客様番号を振ったシートを300枚ほど作ることになりました。 ちなみにお客様番号は連番で通し番号になっています。 エクセルのシートを300枚ほど同じブックに作って 一括で印刷することは可能でしょうか? ちなみにその番号以外は同じ内容の文章なので いっぺんに同じ内容のシートをコピーしつつ、番号だけ連番となることが理想なのですが。 マクロの知識はほとんどありませんが、教えていただけるとありがたいです。 どうかよろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
もし印字上番号が振られればよく 300枚のシートを保持する必要がないのなら 差し込み印刷のような機能を使ってみてはどうでしょう http://www.vector.co.jp/soft/win95/business/se386179.html このようなものもあるようですので EXCELだけでも実現できそうです
その他の回答 (2)
- ka_na_de
- ベストアンサー率56% (162/286)
参考までに一例を示します。 標準モジュールに登録して実行してください。 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
お礼
ありがとうございます。 とっても詳しく解説していただいて感謝しています!!! あっという間に数字が入力されてびっくりです! これをアレンジして書類を作っていけそうです。
- cafe_au_lait
- ベストアンサー率51% (143/276)
マクロを使わない方法を。 まず、シートを一つにして、シート名を"(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を押しながらタブをすぐ右の空いているところにドラッグ シートが倍々に増えていくので、必要なだけ行い、余分なシートは削除してください。 最後に、印刷ダイアログで「ブック全体」を選択して印刷します。 シート名の括弧がジャマだ、となると、やはりマクロになる気がします。
お礼
ありがとうございます!! 今回はマクロを使った方法を利用しようと思いますが こちらの方法も今後とても役に立ちそうです。 詳しく解説してくださって感謝しています。
お礼
差し込み印刷とは思いつきませんでした。 ソフトの方も確認してみます。 ありがとうございます。 ただ、一時的に保存の必要性も出てきそうなので 出来ればマクロがわかればな、と思います。 とにかくありがとうございました。