• 締切済み

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