[下に更新]VBAマクロ印刷ループ
私は生産用シートの印刷マクロを作成しようとしています。
実際のプリントアウトを除いてすべてが素晴らしいです。 .Zoom = 50の代わりに.Zoom = Falseを使用すると、プリントアウトはプリントアウトシート上で非常に小さくなります。私がズーム= 50を使用する場合、これらの幅の広い余白を左右に取得します。私はそれが何らかの形で実際のprintarea行を処理しないと思うが、他のコマンドラインはうまく動作するように見えるので、何の手がかりもない。私はかなりのprintarea、fitTopagesxxにコードをストリップしようとしましたが、同じ問題がありました。
コードを複数回書き直してみましたが、エラープロンプトが表示されたり、Web上の他のコードと同じ結果が表示されたりしました。
Sub PrintJob()
Dim ws As Worksheet
Dim i As Long
Set ws = Sheets("Filtered_List")
For i = 2 To ws.Cells(Rows.Count, "F").End(xlUp).Row
If ws.Cells(i, "F").Value = 0 Then Exit For
With Sheets("Print_Page")
.Range("C8").Value = ws.Cells(i, "F").Value
Worksheets("Print_Page").PageSetup.PrintArea = "$C$2:$L$60"
Worksheets("Print_Page").PageSetup.Orientation = xlPortrait
Worksheets("Print_Page").PageSetup.Zoom = 50
Worksheets("Print_Page").PageSetup.FitToPagesWide = 1
Worksheets("Print_Page").PageSetup.FitToPagesTall = False
Worksheets("Print_Page").PageSetup.LeftMargin = Application.InchesToPoints(0)
Worksheets("Print_Page").PageSetup.RightMargin = Application.InchesToPoints(0)
Worksheets("Print_Page").PageSetup.TopMargin = Application.InchesToPoints(0)
Worksheets("Print_Page").PageSetup.BottomMargin = Application.InchesToPoints(0)
Worksheets("Print_Page").PageSetup.HeaderMargin = Application.InchesToPoints(0)
Worksheets("Print_Page").PageSetup.FooterMargin = Application.InchesToPoints(0)
.PrintOut
End With
Next i
End Sub
[更新:]私はここでいくつかの助けの後で、シート固有のエラーであることを知った後、問題を理解しました。基本的には、印刷タイトルのフィールドが空である必要があり、それを行うことのコードは、このいずれかになります。
Sub PrintJob()
Dim ws As Worksheet
Dim i As Long
Set ws = Sheets("Filtered_List")
For i = 2 To ws.Cells(Rows.Count, "F").End(xlUp).Row
If ws.Cells(i, "F").Value = 0 Then Exit For
With Worksheets("Print_Page")
.Range("C8").Value = ws.Cells(i, "F").Value
With .PageSetup
.PrintArea = "$C$2:$L$60"
.Orientation = xlPortrait
.Zoom = False
.FitToPagesWide = 1
.FitToPagesTall = False
.LeftMargin = Application.InchesToPoints(0)
.RightMargin = Application.InchesToPoints(0)
.TopMargin = Application.InchesToPoints(0)
.BottomMargin = Application.InchesToPoints(0)
.HeaderMargin = Application.InchesToPoints(0)
.FooterMargin = Application.InchesToPoints(0)
.PrintTitleRows = ""
.PrintTitleColumns = ""
.LeftHeader = ""
.CenterHeader = ""
.RightHeader = ""
.LeftFooter = ""
.CenterFooter = ""
.RightFooter = ""
.LeftMargin = Application.InchesToPoints(0)
.RightMargin = Application.InchesToPoints(0)
.TopMargin = Application.InchesToPoints(0)
.BottomMargin = Application.InchesToPoints(0)
.HeaderMargin = Application.InchesToPoints(0)
.FooterMargin = Application.InchesToPoints(0)
.PrintHeadings = False
.CenterHorizontally = True
.CenterVertically = False
.PaperSize = xlPaperLetter
End With
.PrintPreview
End With
Next i
End Sub
希望:
.PrintTitleRows = ""
.PrintTitleColumns = ""
は、私はもっとNoldor130884から使用クリーンアップコードを数行を追加しましたそれは誰かに頭痛のビットを保存します。
私は奇妙なそこの何が、例えば起こっていないことを確認するために、[ページ設定]ダイアログボックスの[値を通じてチェックしますヘッダーとフッターで – Joffan
uiを使ってexcelやマクロ/ vba領域から直接何かを印刷しても、それは完璧に見えます。かなりイライラする。 – FatTwin
確かに非常に奇妙です。私はIgnorePrintAreas:= Falseを追加すると助けになるとは思わない?...また、PageSetup値を設定するためにWithオブジェクトを使用しないで、おそらく同じ方法で.PrintOutを試してみます。すなわち、Worksheets( "Print_Page")を持っています。PrintOut – Joffan