VBAで複数の選択範囲を1ページに印字する方法

このQ&Aのポイント
  • EXCEL2010でVBAを使用して業務用のマクロを作成しています。複数の選択範囲を1ページに印字する方法を教えてください。
  • 現在、EXCEL2010でVBAを使用して業務用のマクロを作成しています。複数の選択範囲を1ページに印字する方法がわかりません。教えていただけますか?
  • EXCEL2010でVBAを使用して複数の選択範囲を1ページに印字したいです。解決方法を教えてください。
回答を見る
  • ベストアンサー

VBAにて、複数の選択範囲を1ページに印字したい

○開発環境○ OS:Windows7 EXCELバージョン:2010 お世話になります。 現在、EXCEL2010でVBAを使用して業務用のマクロを作成しております。 表題の通り、複数の選択範囲を1ページに印刷する必要があるのですが、 解決方法が分からず困っております。 最初は下記のような記述で印刷を試みたのですが、選択範囲ごとに改ページされてしまいます。  Worksheets("Sheet1").PageSetup.PrintArea = "A4:F10,A34:F37,A54:F57"  Worksheets("Sheet1").PrintPreview また、PrintAreaを続けて指定すればいいと紹介されているページを拝見し、下記のような記述も 試みましたが、最後の範囲だけしか印刷されませんでした。(バージョンが違うため?)  Worksheets("Sheet1").PageSetup.PrintArea = "A4:F10"  Worksheets("Sheet1").PageSetup.PrintArea = "A34:F37"  Worksheets("Sheet1").PageSetup.PrintArea = "A54:F57"  Worksheets("Sheet1").PrintPreview EXCEL2010では、複数の選択範囲を1ページに印刷することは不可能なのでしょうか? 博識な方いらっしゃいましたら、ご教授いただければと思います。 よろしくお願い致します。

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

  • ベストアンサー
  • eden3616
  • ベストアンサー率65% (267/405)
回答No.1

>最初は下記のような記述で印刷を試みたのですが、選択範囲ごとに改ページされてしまいます。 印刷範囲ごとで改ページされるので不可能かと。 >また、PrintAreaを続けて指定すればいいと紹介されているページを拝見し、下記のような記述も >試みましたが、最後の範囲だけしか印刷されませんでした。(バージョンが違うため?) PageSetup.PrintAreaは印刷範囲をその範囲で作成します。 以前に設定されていた印刷範囲は解除されます。 以下の方法で代用できませんか? (1)カメラ機能を使う (2)不要な行・列を非表示またはアウトライン化で除外する (3)プリンタの集約印刷機能等を使う

vm0337
質問者

お礼

ご回答ありがとうございました! ご回答いただいたうちの(2)にあります、不要な行の非表示で実現することができました。 印字範囲を指定するのではなく、印字しない部分を非表示にする、という発想が出てきませんでした。 私の頭が硬すぎるのでしょうね・・・ 何はともあれ、実現することができてホッとしております。 本当にありがとうございました!

関連するQ&A

  • エクセルVBA印刷範囲指定とヘッダーフッター

    1か月のうちの前期と後期のシートがそれぞれあり、前期シートを範囲指定して領収書の一部を印刷したいのですがなぜか、前に作ったヘッダーとフッターが前期だけ印刷されてしまいます。 どこに隠れているのか謎なのです。前に悩みながら作ったシートがどこかに隠れているのでしょうか? また、同じ様式のシートなのですが前期は80%にしなくてもなぜか一枚に収まります。 不思議でなりません・・・全部消したはずなのですが Sub 印刷範囲設定領収書前期() With Worksheets("領収前期") .PageSetup.PrintArea = "G1:BB91" .PrintPreview End With End Sub Sub 印刷範囲設定領収書後期() With Worksheets("領収後期") .PageSetup.Zoom = 80 .PageSetup.PrintArea = "G1:BB91" .PrintPreview End With End Sub

  • 複数シートをVBAで印刷

    エクセル2010VBAを使って仕事の効率化を勉強中です。 歳入日計表のシート31日分を作り、歳入月計表として合計をまとめていますが 日々印刷範囲を決めて一日分のシート印刷するのをVBA処理したいのですが できません。 1日分はこんな感じでできるのですが・・・ 31日分をどのように処理すれば日々印刷可能になるのでしょうか? お願いいたします! Sub 日計表印刷設定() With Worksheets("1") .PageSetup.PrintArea = "A2:G71" .PageSetup.LeftMargin = 55 .PageSetup.TopMargin = 40 .PageSetup.Zoom = 80 .PrintPreview End With End Sub

  • 2ページ目以降の行タイトルを3行目にしたいのですが

    1ページ目は普通に印刷して、2ページ目以降の行タイトルを3行目にもって行きたいのですが、どの様にしたらいいか教えて下さい。 宜しくお願いします。 With Worksheets("Sheet1") .PageSetup.PrintTileRows = "$A3:$P3" .PageSetup.Orientation = xlLandscape .PageSetup.PrintArea = Range("A1",Range("P65536").End(xlUp)).Address .PrintPreview End With

  • エクセル2007(VBA)で選択セルを1枚に印刷する方法

    表題のとうりなのですが・・・ VBAで例えば("A1:K2")という範囲と("A125:K244")という範囲を 1枚のA4紙に印刷したいのですが・・・ With Worksheets("A") .PageSetup.PrintArea = "A1:K2,A125:K244" .PrintPreview End With とすると A1:K2の範囲とA125:K244の範囲が1枚ずつ2枚にわかれて印刷されてしまいます。 始めたばかりの素人で大変困っております。 ご教授お願いいたします。

  • VBAの範囲印刷設定を修正したいのですが

    VBAの初心者です。詳しく教えてください。 1.下記のVBAでシートを非表示にしたときに実行時エラー1004が出るのですが  どうしたらよいのですか。 ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー Sub printappointedrange() Worksheets("シート1").Activate Range("A1:AB42").Select 'セル範囲の選択 With ActiveSheet .PageSetup.PrintArea = Selection.Address '印刷範囲の指定 .PrintOut '印刷 .PageSetup.PrintArea = False '印刷範囲のクリア End With End sub ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー 2.シートに印刷ボタン作成して、印刷はできるのですが、印刷する前にプリンターの設定を変更する方法は無いのですか。

  • 印刷範囲を設定するvbaコード

    エクセルシートの印刷範囲を設定するvbaコードで Sub Macro1() With ActiveSheet.PageSetup .PrintArea = "$A$1:$c$10" End With End Sub としてるのですが、 "$A$1:$c$10"の部分を Range(Cells(1, 1), Cells(10,3)) 形式でやりたいのですが、 うまくできません。 Sub Macro1() With ActiveSheet.PageSetup .PrintArea = Range(Cells(1, 1), Cells(10,3)) End With End Sub としても、全部が印刷範囲として選択されてしまいます。 というか、印刷範囲が設定されません。

  • EXCELの印刷範囲の変更について

    印刷範囲を変更しようと思い、 改ページプレビューにてドラッグしているのですが、 ・上範囲の設定線 ・左範囲の設定線 ・右範囲の設定線 ・複数ページの仕切り範囲の設定線 はドラッグで変更できますが、 一番下の範囲の設定線だけ選択できず変更できません。 VBAプログラムを組み込んでいるためかと思い、 該当Sheet.PageSetup.PrintArea = "" の記述を追記して初期化をはかりましたが 結果は同じです。 御存知の方いましたらご教授ください。

  • EXCELで複数のシートを同時に印刷範囲の設定する

    質問No.4133551、boodori2000さん 2008-06-27 17:26:01のずいぶん以前のご質問の続きで、もしわ けありません。大変悩んでおりまして、何卒教えて頂きたくよろしくお願いいたします。    end-uさんの以下のご返答は理解させて頂きました、大変ありがとうございました。 Sub try2()   Dim ws As Worksheet      For Each ws In Worksheets     ws.PageSetup.PrintArea = "$A$1:$B$2"   Next End Sub 上記マクロを使用させて頂き、全てのシートの印刷範囲設定ができました。ありがとうございます! しかし、改ページ設定2ページ/シート(青い破線)をするため下記の文言を追加致しましたが、エラーが出てしまい ます。コンマの使い方がおかしいとのエラーがでます。、何がなんだか、、、1日かかっても解決できず悩んでおります。 何卒、どなたか、ご教授頂きたく Sub try2()   Dim ws As Worksheet      For Each ws In Worksheets     ws.PageSetup.PrintArea = "$A$1:$G$35","$A$37:$G$70"   Next End Sub 補足 "$A$1:$G$35"← 1ページ目の範囲 "$A$37:$G$70" ←2ページ目の範囲 どなたか、ご教授の程を何卒よろしくお願い致します。

  • Excelマクロで印刷範囲の指定をしたい

    Excelで一覧表を作成し、 『印刷A3』と『印刷A4』というボタンを作り、 それぞれ印刷範囲が異なるようにマクロを組みたいと思い、『印刷A3』の場合は下記のマクロで問題ありませんでした。 【印刷A3】 ------------------------------------------------- Sub 印刷A3_Click() Worksheets(7).PageSetup.PrintArea = _ Range("A6").CurrentRegion.Address With Worksheets(7).PageSetup .Orientation = xlLandscape .PaperSize = xlPaperA3 .Zoom = 63 End With Worksheets(7).PrintOut Preview:=True End Sub ------------------------------------------------- セルA6以降の入力されているセルを選択できるのですが、『印刷A4』の場合は、列の範囲を23列までとし、23列目以降は印刷範囲外としたいです。 (列は最大で33列まであります) 行は『印刷A3』と同じように、入力されている全てのセルを範囲としたいです。 マクロ初心者のため、教えていただけると助かります。 よろしくお願い致します。

  • エクセルの範囲指定マクロ

    エクセル2002のマクロで印刷範囲指定を例えば ActiveSheet.PageSetup.PrintArea = "A1:E60" と指定した時に、"A1:E60"の”1”と”60”を変数にする事はできますか。

専門家に質問してみよう