- ベストアンサー
ぴったり印刷するエクセルVBAをつくるには
用紙サイズやマージンを指定して、1ページに最大倍率で印刷する方法はないでしょうか?(自動的に) 以前「QNo.2677602 ExcelVBA、印刷ページを事前に知るには 」で教えていただいた i = Application.ExecuteExcel4Macro("GET.DOCUMENT(50)") を利用して次の動作をするVBAマクロを作りました。 PageSetupでZoomに100を指定し、1ページに収まるかどうか調べる。 1ページ内の時は1ページを越えるまでZoomを+1し越えたら-1する。 1ページ以上の時は1ページになるまでZoomを-1する。 これで上手くいくと思ったら、動くことは動くのですが、結果は大き過ぎたり小さすぎたりして、後で手作業で調整しなければなりません。 実行速度も非常に遅いです。 うまくやる方法はないものでしょうか? よろしくお願い申し上げます。
- みんなの回答 (2)
- 専門家の回答
関連するQ&A
- VBAの印刷について
VBAでの質問です。 ある処理を施したあとにページ設定をして印刷するプログラムを作成しているのですが、なぜか同じものが2枚出力されてしまいます。 1枚だけ指定して印刷するにはどのようにコードを書けば良いかどなたか教えて下さい。お願いします。 With ActiveSheet.PageSetup 'ページ詳細設定 .PaperSize = xlPaperA4 .Zoom = False .FitToPagesTall = 1 .FitToPagesWide = 1 End With 'ActiveSheet.PrintOut Worksheets(sheetname5).PrintOut ActiveWorkbook.SaveAs Filename:=takiicode & "_" & Format(today, "yyyymmdd") & ".xls" '保存) Workbooks(takiicode & "_" & Format(today, "yyyymmdd") & ".xls").Close SaveChanges:=True '終了
- 締切済み
- オフィス系ソフト
- 複数シートを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
- 締切済み
- その他(プログラミング・開発)
- VBAでヘッダーにページ設定
ブック内のシートA・B・Cを除いて、ページ数をヘッダーに表示するというマクロです。 後からシートを挿入しても、このマクロでページを再設定できます。 印刷時にシートを1枚ずつ選択して印刷すると正しくページ数が表示されますが 複数のシートを選択して印刷をすると、ページ数がおかしくなります。 複数シート選択時に正しいページ数で印刷できるようにするには どのような設定が必要でしょうか。 ご教授よろしくお願い致します。 Dim ページ数 As Integer Dim 総ページ数 As Integer Dim sht As Worksheet 総ページ = 0 For Each sht In Worksheets sht.Select 総ページ = 総ページ + Application.ExecuteExcel4Macro("get.document(50)") Next ページ数 = 0 '各シートの印刷ページ数 For Each sht In Worksheets If sht.Name <> "A" And sht.Name <> "B" And sht.Name <> "C" Then sht.Select sht.PageSetup.RightHeader = "&""MS Pゴシック""&8&P+" + CStr(ページ数) + "/" + CStr(総ページ) ページ数 = ページ数 + Application.ExecuteExcel4Macro("get.document(50)") End If Next
- ベストアンサー
- Visual Basic
- 印刷範囲を設定する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エクセルにて印刷
こんにちわ。教えてください。VBAでActiveXコントロールをクリック したのち、印刷のプレビューを表示したら、MegBoxメッセージを表示 させ ”はい””いいえ”を選択したいのですがうまくいきません。 ちなみに下記のプログラムです。 Private Sub 印刷_Click() ActiveWindow.SelectedSheets.PrintPreview Dim ans As Integer ans = MsgBox("印刷しますか?", vbInformation + vbYesNo, "確 認") Select Case ans Case vbYes Application.ActivePrinter = "Canon iR C3080/C3580 LIPSLX on Ne05:" ExecuteExcel4Macro "PRINT(2,1,1,1,,,,,,,,2,,,TRUE,,FALSE)" Case vbNo MsgBox "故障履歴印刷をキャンセルします。" End Select End Sub 以上なんですがプレビュー後に”印刷しますが”が聞いてきません。 どうすればいいですか?
- 締切済み
- オフィス系ソフト
- 【Excel VBA】印刷について
Excel2003を使用しています。 不要ページをスキップして印刷するマクロを作成し、特定のBookでのみ使用しているのですが、このBookを印刷するときはカラー印刷を指定したいので、この印刷マクロの中でカラー印刷を指定できたらと思っているのですが、このようなことは可能でしょうか?可能であれば、どのように記述すればいいでしょうか? ページ設定のマクロの記録をとったところ、下記のように(不要と思われる設定は削除しました)記述されていました。 [BlackAndWhite = False]という部分がカラー印刷に関するコード?かと思い、追加してみたのですが、カラー印刷されませんでした。 With ActiveSheet.PageSetup .PaperSize = xlPaperA4 .FirstPageNumber = xlAutomatic .Order = xlDownThenOver .BlackAndWhite = False .Zoom = 98 .PrintErrors = xlPrintErrorsDisplayed End With よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- Exsel2000ページ設定(VBA)について
このごろ度々お世話になっております。 エクセルでのページ設定で、"ワークシートを何ページに収めて印刷"するか設定できると思うのですがそれを指定してしまうと、他で指定した余白設定とかは無視されてしまうのでしょうか? VBAで 'ページ設定 Set SENTAKU = Workbooks(3).Sheets(1) With SENTAKU.PageSetup .Orientation = xlLandscape .Zoom = False .FitToPagesWide = 1 .TopMargin = 55 .BottomMargin = 15 .RightMargin = 0 .PrintTitleRows = "$2:$5" End With としたら、見事にMarginが無視されてました。 右の余白「0」は捨てられないのですが、セルの幅が増えても今のデータを横1枚で収めたいと考えてます。 (左の余白は少しぐらい減ってもいいが、どちらかというとZoomを変更して横1枚に収めたい。ちなみに縦は何ページでも可) PageSetupでそのような設定ができないのなら横がはみ出したら、違うページ設定みないなのをIf文で書くことは可能なのでしょうか? (横がはみ出したらAの設定(Zoomの縮小率が少し多い)、1枚で収まったらBの設定のような) よろしくお願いいたします。
- ベストアンサー
- オフィス系ソフト
- 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.シートに印刷ボタン作成して、印刷はできるのですが、印刷する前にプリンターの設定を変更する方法は無いのですか。
- ベストアンサー
- オフィス系ソフト
- Excel2010 VBAにて印刷設定の取得
Excel2010 VBAにてマクロを作成しております。 Excel2010のメインウィンドウの「ファイル」タブ→「印刷」の 画面におきまして、[設定]欄にて設定したページ指定(印刷開始ページ及び 印刷終了ページ)は取得できるのでしょうか? Workbook_BeforePrintプロシージャにて取得しようと思っているのですが、 ActiveSheet.PageSetupのメンバやThisWorkbookのメンバを見たところ、 印刷の開始ページ及び終了ページの設定が見つかりませんでした。 印刷のページ指定の設定箇所をご存知の方がいらっしゃいましたら 教えて頂きたく宜しくお願い致します。
- ベストアンサー
- その他MS Office製品
- VBAでZoomプロパティで値の取得方法を教えてください
Win XP エクセル2003でVBAを使用しています。1ペ-ジに収めて印刷したい為 PageSetupで .Zoom=False .FitToPagesWide=1 .FitToPagesTall=1 . 余白の指定は、オ-ル0 の指定をしていますが「拡大/縮小」倍率が用紙サイズより常に小さく指定されます。できれば指定用紙サイズ一杯に印刷したいのです。その為に倍率の値が取得できれば得た値を何割か増やして印刷したいのですが。
- 締切済み
- Visual Basic
- ジョブ履歴を削除できるかどうかについて調査しました。
- EPSON社製品のインクジェットプリンター(複合機)PX-M7080FXを使用している場合、ジョブ履歴は削除可能です。
- ジョブ/状態→ジョブ状態→履歴からジョブ履歴を削除することができます。
お礼
回答ありがとうございます。 ちょっと無理なお願いをしてしまったようです。 用途としては設計文書をエクセルで作っており、各シート毎に各1ページの異なったフォームになっています。 常に印刷前に調整しなければならず、簡素化しようとしていました。 全て自動化するのは無理なようですので、全シートのプレビューを出すなどの半自動でやろうと考えています。