• ベストアンサー

エクセル Excel VBA 条件つき印刷

こんばんわ。 Excel VBAの設定について,質問です。 Officeのバージョンは,2007です。 例えば… セルA1の番号を,印刷設定された番号を最初として, 数字を変更しながら,印刷設定された枚数分印刷する。 といった設定はどの様にするのでしょうか? 色々試してみたのですが,うまくいかなくて… 印刷設定 2~5 だった場合… セルA1を2→3→4→5と変更しながら 合計4枚印刷したい。 どうぞ,よろしくお願いします。

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

  • ベストアンサー
  • tsubuyuki
  • ベストアンサー率45% (699/1545)
回答No.1

どこでどのように「2~5」を指定するか?ですね。 いわゆる印刷部数での指定は難しいと思いますよ。 ごくごく簡単にやるとしたら、「○」~「●」を指定するセルを作ってしまうか、 インプットボックスを2回使って指定するか、 ユーザーフォームを作るか・・・ で、For ○ to ● で繰り返し印刷するのが一番簡単かと思います。 例えば、印刷範囲を2行目以降に・・つまり > セルA1を2→3→4→5と変更しながら これをA2セルとして、それ以降を印刷範囲に設定、 B1セルに「開始番号」を、E1セルに「終了番号」を入力するようにし、 以下のようなコードを。 Sub Test()     For i = Range("B1").Value To Range("E1").Value         Range("A2").Value = i         ActiveWindow.SelectedSheets.PrintOut Copies:=1     Next i End Sub まぁ、単純に考えるのが多分一番早いですよ。

305fc
質問者

お礼

さっそく,ありがとうございます。 Forで試していたのですが,なかなかうまくいかなったんですが もう少し,いただいた内容を参考に考えてみたいと思います!

その他の回答 (1)

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

こんばんは! 一例です。 シートモジュールにしていますので、 画面左下の操作したいSheet見出し上で右クリック → コードの表示 → VBE画面に ↓のコードをコピー&ペーストしてマクロを実行してみてください。 Sub 印刷() Dim i As Long, k As Long, cnt As Long k = Application.InputBox("印刷枚数を入力してください。") If Range("A1") <> "" And IsNumeric(Range("A1")) Then Do Until cnt = k ActiveSheet.PrintOut cnt = cnt + 1 Range("A1") = Range("A1") + 1 Loop Else MsgBox "A1セルが、未入力か不正なデータです。", vbOKOnly Range("A1").Select End If End Sub こんな感じではどうでしょうか?m(_ _)m

305fc
質問者

お礼

ご回答ありがとうございます。 なるほど…勉強になります。 参考にさせて頂きたいと思います!

関連するQ&A