• 締切済み

Excelで1部印刷する毎に連番を2箇所つけたい

Excelで1ページに同じ表を2つ作成し、それぞれに連番を振って印刷した後に切り離して利用したいと考えています。 連番の位置の都合上、ヘッダーやフッターの機能では対応できません。 例えば、表1、表2を1ページに作成し、表1内のセルA1に「1」、表2内のセルA10に「2」と入力し、10部印刷したとします。 1部目は表1のA1の場所に「1」、表2のA10の場所に「2」と印刷され、2部目は表1に「3」、表2に「4」と印刷される、といった具合で、10部目は表1に「9」、表2に「10」となります。 また、A1に「5」、A10に「6」と入力した状態で印刷した場合は、1部目は表1に「5」、表2に「6」、2部目は表1に「7」、表2に「8」となりようにしたいです。 解決策を検索すると、マクロを開いて印刷部数を直接記述する方法がありますが、その作業ができない人も印刷するため、単純に表1、表2にスタート時の番号を入れておけば、後は印刷した部数分、自動で番号が1ずつ増えていくようにしたいです。 ボタンを設置してマクロを実行する形は問題ないと思います。 環境はExcel2010、Windows7です。 説明がややこしくなりましてすみません。 どなたかご教示のほど、よろしくお願いします。

みんなの回答

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.2

No.1です。 補足の >A1セルに「=E1」として試したところ、印刷は上手くいくのですが、 >その後A1セルの式が最後に印刷された数値に置き換わってしまうため、 >2回目から上手くいかない状況です。 についてですが、最終的に印刷終了時には最初の状態になればよい!というコトでしょうかね? 前回のコードではA1・A10セルは数式ではなく値そのものが入るようにしていましたので、 最後の行でA1セルの数値を印刷終了時の段階にするよういしていました。 一案ですが、 A10セルは操作せずに単に =IF(A1="","",A1+1) という数式を入れておき、 A1セルには =IF(E1="","",E1) という数式を入れておいて、↓のコードに変更してみてください。 (マクロ実行時、A1セルの数式は消えて「値」になりますが、最後にもう一度数式に戻してみました) Private Sub CommandButton1_Click() 'A1セルはE1セルを参照の場合 Dim k As Long, cnt As Long If Range("A1") <> "" Then k = Application.InputBox("印刷部数を入力してください。") Do Until cnt = k cnt = cnt + 1 ActiveSheet.PrintOut Range("A1") = Range("A10") + 1 Loop Range("A1").Formula = "=IF(E1="""","""",E1)" Else MsgBox "E1セルに入力してください。", vbOKOnly Range("E1").Select Exit Sub End If End Sub

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.1

こんにちは! Sheetにコマンドボタンを配置し、それをクリックするとマクロ実行ではどうでしょうか? A10セルは必ずA1セルの次番号だという前提での一例です。 開発 → 挿入 → ActiveXコントロールのコマンドボタンを挿入 → 挿入したコマンドボタン上でダブルクリック → VBA画面に↓のコードをコピー&ペースト → ExcelSheetに戻り デザインモードを解除 あとは普通にコマンドボタンをクリックしてみてください。 Private Sub CommandButton1_Click() 'この行から Dim k As Long, cnt As Long If Range("A1") <> "" Then k = Application.InputBox("印刷部数を入力してください。") Do Until cnt = k cnt = cnt + 1 Range("A10") = Range("A1") + 1 ActiveSheet.PrintOut Range("A1") = Range("A10") + 1 Loop Range("A1") = Range("A1") - 2 Else MsgBox "A1セルに数値を入力してください。", vbOKOnly Range("A1").Select Exit Sub End If End Sub 'この行まで ※ このままではコマンドボタンも一緒に印刷されます。 コマンドボタンを印刷したくない場合は「デザインモード」をクリック → コマンドボタン上で右クリック → コントロールの書式設定 → 「プロパティ」タブ → 「オブジェクトを印刷する」のチェックを外します。 こんな感じではどうでしょうか?m(_ _)m

heberesky
質問者

補足

早々にありがとうございます! さっそく実行してみたところ、まさに要求通りの動作をしました! 大変助かりました! 追加で恐縮なのですが、現在A1セルに入力する形をとっていますが、たとえばE1セルに数値を入力するようにして、その数値がA1セルに反映されるようにすることは可能でしょうか? A1セルに「=E1」として試したところ、印刷は上手くいくのですが、その後A1セルの式が最後に印刷された数値に置き換わってしまうため、2回目から上手くいかない状況です。 よろしくお願いします。

関連するQ&A

  • Excelで印刷設定をした後に部数の連番を印刷

    おそらくVBAを使うことになると思いますが、やりたいことは、 シートを1ページ印刷します。 それを例えば10部印刷します。 合計10枚出力します。 そのときに用紙サイズや用紙種類を指定して、 10部の連番を一枚ずつのページに印刷されるようにしたいです。 例えば、 1枚目:1/10 2枚目:2/10 ・・・ 10枚目:10/10 ちなみに部数印刷の場合なので ヘッター/フッターでは出来なそうです。 素人ながらに検索しましたら、 部数を印刷するVBAは見つかりました。 http://okwave.jp/qa/q2909328.html このマクロではそのまま印刷が始まってしまいますが、 印刷が始まる前に、用紙の設定等をしたいのです。 よろしくお願い致します!

  • 印刷時に自動で連番を振りたい(1頁に2か所)

    Excel2013使用です。 ※私はマクロの記録は出来ますが、VBAに関しては無知です。 【質問内容】 A4用紙に帳票を2枚作っています。(同じ物) 印刷時、帳票に連番を自動で振りたいです。 連番を振りたいセルは「D1」と「D16」です。 つまり、1枚目の紙には「1」「2」      2枚目の紙には「3」「4」 …と印刷されるようにしたいです。 (因みに、最後のページ数は都度変わります) ネットで見つけたVBAを利用して Sub Sample() Dim i As Long, myCnt As Long myCnt = Application.InputBox("印刷部数は?") On Error Resume Next Select Case myCnt Case False MsgBox "キャンセルされました" Case Else For i = 1 To myCnt * 2 Step 2 Range("D1") = i Range("D16") = i + 1 ActiveSheet.PrintPreview '<<--プレビュー画面が不要ならこの行を削除。 'ActiveSheet.PrintOut '<<--直接印刷するなら「'」を消去。 Next i End Select End Sub を実行してみましたが、上手く行きません。 (出てきたウィンドウに部数を入力しても、その通り印刷されません。 例えば「2部」と入力して、印刷画面のプロパティでは部数を指定せずに 印刷すると、最初の1頁だけが印刷されます。 試に印刷画面で2部にすると、今度は同じ紙(連番1と2)が2部印刷される だけです) どこを改良したらよいでしょうか…?

  • エクセル文書に連番ページ番号をつける。

    同じ名前のファイルで数ページ表を作成した後フッターにページ数を入れると全て同じページ番号になる。連番にするにはどうすれば出来ますか教えてください。

  • 一部ごとの連番印刷の方法を教えて下さい。

    一部ごとの連番印刷の方法を教えて下さい。 エクセル2000を使用しています。 ひとつのシートでA4サイズ12ページで1部となる書類を作成しました。 印刷は製本の週刊誌-左へ開くを指定して、A3サイズで行います。 この12ページで1部となる書類を300部作成するのですが、最後のページにナンバーを振って、 例えば0001~0300まで、一部こどに連番処理するにはどうしたら良いでしょうか。 印刷はパソコンからダイレクトにプリンターに接続しています。 マクロなどは使い方が分かりませんので、比較的簡単に出来る方法がありましたら教えてください。 よろしくお願い致しますm(__)m

  • Excelで連番(ナンバリング)印刷

    ExcelでWordの差し込み印刷のような感じで1ページだけ基本となるシートを作り、1セルを連番印刷したいのですができますか? 例えば、1シート(ページ)を作った上で、ページ指定か何かで50~100と印刷を掛けたら指定した場所(セル)のところが印刷する毎に50~100と変わって印刷するといった感じで。 宝くじみたいな感じで、番号枠のところだけ変わる感じです。 どなたか助言をお願いいたします。

  • excelマクロでセル値をフッターに設定&印刷

    改ページごとに(異なる)セル値をフッターにセットし、フォントサイズを32に設定したい。 A列の全てのセルに「品名」が入力されている表があります。 下の表のイメージですが、1行目を印刷タイトルとし、1ページ目は2~3行まで、2ページ目は4行のみ、3ページ目は5~6行まで・・・というように品名が変わるごとに改ページが既に設定されています。 B列の印刷枚数も品名ごとに枚数が決まっており数値が入力されています。      A     B   1  品名  印刷枚数   2  あ     2   3  あ    2   4  い    3   5  う     1   6  う     1 この表は数百行(数十ページ)続いているのですが、各ページに該当する品名をそれぞれフッター(左)に設定し、フォントサイズを32にし、更に各ページに該当する印刷枚数分だけまとめて印刷するマクロを作りたいです。 アドバイスのほど宜しくお願いします。

  • エクセルのフッターについて。

    エクセルで作成したシート(1枚)を印刷部数で5枚にして印刷するとします。この5枚印刷物に、フッターで連番を印字する事は可能なのでしょうか?その他の方法で、同じシートを複数枚印刷した時に、連番を入れる方法はあるでしょうか? 連番は、フッターみたいに、出来るだけ用紙の端にしたいのです。

  • エクセルの印刷について

    MS office97を使用しています。 エクセルの印刷について 教えて下さい。 「シート2」表を作成しています。 「シート1」の「A1」の入力されている数字が 1 であれば 「シート2」の表を1部印刷 「シート1」の「A1」の入力されている数字が 2 であれば 「シート2」の表を2部印刷 と云うように、指定された通りに 印字出来る マクロなどは 組めないのでしょうか???? 出来るのであれば 教えて下さい。

  • エクセルの表を複数枚印刷したときに連番をつけたい

    エクセルの1枚の表を100枚印刷し、その表のシート内(AW3)に連番を打ちたいのですが、なにか簡単な方法はありますか? 今までは印刷を100枚して、ナンバーリング(ハンコ)で連番を打っていましたが、ちょっと面倒なんです。 マクロを使ったことのない初心者ですが、何かよい方法はありませんか?よろしくお願いいたします。

  • 至急なんです~(>_<)!エクセル差込印刷(連番とんでる編)

    過去の質問で差込印刷などの要領はわかったのですが、同じような質問がないのでこちらから質問させていただきます。 sheet1に元データ sheet2が帳票用(印刷用)となってます。 sheet1のA列に連番が入ってますが、 こちらはA1=1、A2=空欄、A3=2、A4=3 などとランダムな行にに連番が入ってます。 B列に会員番号が入ってます。 なのでA列の連番の1.2.3.4.5.6のすぐ右横のセルB列(会員番号)をsheet2のA1セルに入れて連続印刷していきたいのです。 2500人ほどの会員への手紙を明日中に発送しなくちゃいけなくて困ってます。 ちなみに「sheet2」は「A1」のセルにさえ会員番号が入れば出来上がるようになってます。 どうかわかる方がいましたらお力添え宜しくお願いいたします。

専門家に質問してみよう