• ベストアンサー

エクセルで印刷するシートを条件を指定し自動で印刷したいのですが?

エクセルで印刷するシートを条件を指定し自動で印刷したいのですが? 具体的に言いますと、『複数あるシートのA25のセルの合計が0以下なら印刷しない、0以上なら印刷する』 といったものをマクロで記述しようと思い試行錯誤、似た質問も捜してはいるのですが、全くなド素人なもので応用が利きません。良きアドバイスお願い致します。

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

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.1

Sub prt1() Dim sh As Worksheet For Each sh In Worksheets 'MsgBox sh.Name If sh.Range("a25") > 0 Then MsgBox sh.Name 'Range("a1:h30").PrintOut End If Next End Sub 上記Msgboxの前のコメントを外し、旨くプログラムルートを通っているか確認してから、コメント化し、PrintOutのコメントを外してください。 Range("a1:h30")は、本番での印刷する範囲に変えてください。 PageSetupも入れられます。ファイル-ページ設定をしてマクロの記録を取って修正して、上記の前段階に貼りつけてください。

siekana
質問者

お礼

ありがとうございました。ほとんど利用させていただきました。今後ともよろしくお願い致します。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.2

>A25のセルの合計が0以下なら印刷しない、0以上なら印刷する 『0』の場合の処理が不明なので、『0以上なら印刷としています』 最初に、全シートのA25セルの合計を計算して、その値で印刷するかどうか決めています。 各シートの印刷書式等は設定済みとしています。回答はプレビューモードです。 メッセージが不要な場合は『'**』の付いた4行を削除して下さい。 標準モジュールに貼り付けます。 Sub WsPrint()   Dim ws As Worksheet '// ワークシート   Dim Total_A25 As Double '// A25セルの合計を格納する変数   '// 各シートのA25セルの合計を計算する   For Each ws In Worksheets     Total_A25 = Total_A25 + ws.Range("A25")   Next   '// A25セルの合計に従って、印刷するか判断する   If Total_A25 >= 0 Then     If MsgBox("A25セルの合計が0以上です。印刷します。", vbOKCancel, "確認") = vbOK Then '**       For Each ws In Worksheets         ws.PrintPreview   '// この行はプレビュー         'ws.PrintOut    '// この行は印刷       Next     End If '**   Else '**     MsgBox "A25セルの合計が0以上ではありません。印刷はしません。" '**   End If End Sub なお、上は、『複数あるシート』をワークシートすべてとしています。 選択したワークシートを対象とする場合は、2行ある下の内容を書き換えます。 For Each ws In Worksheets   ↓ For Each ws In ThisWorkbook.Windows(1).SelectedSheets

siekana
質問者

お礼

ありがとうございました。大変参考になりました。 今後ともよろしくお願い致します。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • エクセルで印刷範囲を自動で指定し、印刷するマクロ

    エクセルの表の中から、ある特定の文字が入っている セルを探し、そのセルから「下に3、右に2」の範囲 (文字が入っているセルは含まない)を自動的に範囲 指定して印刷するマクロをつくりたいのですが、どうすればよいでしょうか? たとえば、「○」が入力されているセルが A2だとすればA3からC5を自動的に範囲指定して印刷 するようにしたいのです。 どうぞよろしくお願いします。

  • 複数ワークシートの同一印刷範囲指定(エクセル)

    エクセルでのマクロについての質問です。例えば同一ブック内に、シート1で作成した「○○請求書」をコピーしてシート1と全く同じ内容の99個のワークシートを作成しました。このとき、シート1からシート100まで一部の範囲だけ(例えばセルA3からH50)を同時に印刷範囲指定するにはどのようなマクロを作成すればよいのでしょうか、マクロの参考書等も見て自分なりにチャレンジしてはみたのですがうまくいきません。(印刷範囲まで指定したシートをコピーすればよかったのかもしれませんが・・・)

  • エクセルで指定したセルがある条件になると指定したマクロが起動

    エクセルで指定したセルがある条件になると指定したマクロが起動 エクセルでシート1のセルB5の値が、文字の種類に限らず、 5ケタ以上になったら指定したマクロを起動させるように 出来ますでしょうか?

  • 複数のエクセルブックの中のシート指定して一括印刷

    複数のエクセルブックの中のシート指定して一括印刷 複数のエクセルブック(400枚)がある中で、シートが1~4あります。 そのエクセルブックの中のシート1とシート3だけを印刷していきたいのですが、 400回エクセルを開いてシート指定しないと印刷できないでしょうか? できれば、全ブックのシート指定をして、一括での印刷は可能でしょうか? 良きアドバイス等がありましたら教えて頂けたらと思います。 宜しくお願い致します。

  • Excel 範囲指定印刷するマクロ(初心者)

    複数のセルをドラッグし、コマンドボタンを押すと範囲指定されたセルが印刷範囲の設定となり、印刷するマクロを組みたいのですがどのような記述になりますか?Print_Areaを使うことまではわかるのですが・・なお範囲指定するセルの行列番号は固定ではなく、指定する範囲が随時異なるものとします。 初心者ですいませんがお願いします。

  • エクセルマクロで条件のシートを印刷する方法

    エクセルマクロで条件のシートを印刷する方法を教えてください 初め、目的のシートを作成する為の条件がセルに入力しているシート(以降:条件シート)があり マクロで条件シートから情報を吸い上げて情報に沿ったシート(以降:結果シート)を複数作成します。 ここでは条件シートが複数存在しています。 結果シートを作成する為の条件と作成するシート数はその都度違います。 結果シートを作成する際は前回に作った結果シートを全て削除してから作っています。 条件シートのシート名に「●」を入力しておいて、「●」が含まれていないシートを削除するようにしています。 ここで質問になりますが、作成した全ての結果シートだけを印刷する方法を教えていただけないでしょうか 方法としては「●」が含まれていないシートを全て印刷するという命令にしたいのですが。 ご教授お願いいたします エクセル2003を使用しています。

  • エクセルマクロ 印刷「105~110」などの自動連続印刷の仕方

    エクセルです。今、Vlookup関数で別のシートから呼び出して表示しています。例えば、シート1のA4に「101」と入力するとシート2を参照してデータをもってくるようになってます。 そして、102、103~と打つことによって変化していきます。 また、 101~131まで、一気に自動印刷するマクロはできました。 同様に、 201~231まで、一気に印刷するマクロはできました。 そこで、教えて欲しいのです。 105~110など途中のところを連続印刷するためのマクロはどのようになりますか。 もちろん、105~110などと打つセルをつくる必要はあると思いますが・・・。お願いしますm(_)m

  • Excelのフッター

    Excelのフッターに、指定した別シートの複数セルを印刷することは出来ますか? マクロで一つのセルを入れる事は出来たのですが、同じやり方で複数セルを指定しても、一つのセルしか印刷されません。 項目の分類をフッターに入れたいのですが、数が多くてどうしても一つのセルではキレイに表示されないのです。 あまり難しい事は判らないのですが、どうぞよろしくお願いします。

  • エクセルで複数のシートの1枚目だけを印刷するには

    あるエクセルのファイルに50ほどのシートがあり、 各シートには2枚の印刷範囲があります。 複数のシートの1枚目だけを印刷したいのですが、 複数のシートを選択して、印刷メニューの印刷範囲のページ指定で 1枚目だけを指定すると、先頭のシートの1枚目しか印刷されません。 何か方法はありますでしょうか?? どなたかわかる方がおりましたら教えてください。 よろしくお願いします。

  • エクセルマクロで条件に当てはまるシートの名前

    何日も試行錯誤しましたが、わからないので教えてください。 あるファイルがあります。 そのファイルには数十枚のほぼ同じ形のデータが入ったワークシートがあります。 それぞれのワークシートには、ある範囲(例 A5:D10)にデータが入っていたりいなかったりです。 そこで、その範囲にデータが無ければ、別のブックの例えば「リスト」というシートに一覧にして、そのシートの名前を書き出したいのです。 それをマクロで記述するやりかたがどうやってもうまく行きません。 どうかお教えください。

専門家に質問してみよう