@troglodytes525 (A H)

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

VBA pdf作成時の用紙サイズについて

マクロでpdfのエクスポートをしています。

シートはA4+98%の設定です。

構文は、以下のみです。

Sheets("DB").Range("A72:J107").ExportAsFixedFormat Type:=xlTypePDF _
, Filename:=ThisWorkbook.path & "\DB-02-鑑.pdf" _
, OpenAfterPublish:=False

ところが、つい最近から、できたファイルが 303.1×214.3 という不思議なサイズになっています。

日々の修正の中で、どこで何を触ったかわからないというお恥ずかしい状況ではありますが、A4のpdfを出力する方法がありましたら、ご教授頂きたく存じます。

0 likes

2Answer

Excelには、マクロ記録機能があります。「PDF印刷」してみたら、以下の記録が作成されます。このなかには、ページサイズxlPaperA4の指定があります。参考になればと思います。

Sub Macro1()
'
' Macro1 Macro
'
    ActiveSheet.PageSetup.PrintArea = ""
    Application.PrintCommunication = False
    With ActiveSheet.PageSetup
        .LeftHeader = ""
        .CenterHeader = ""
        .RightHeader = ""
        .LeftFooter = ""
        .CenterFooter = ""
        .RightFooter = ""
        .LeftMargin = Application.InchesToPoints(0.7)
        .RightMargin = Application.InchesToPoints(0.7)
        .TopMargin = Application.InchesToPoints(0.75)
        .BottomMargin = Application.InchesToPoints(0.75)
        .HeaderMargin = Application.InchesToPoints(0.3)
        .FooterMargin = Application.InchesToPoints(0.3)
        .PrintHeadings = False
        .PrintGridlines = False
        .PrintComments = xlPrintNoComments
        .PrintQuality = 600
        .CenterHorizontally = False
        .CenterVertically = False
        .Orientation = xlPortrait
        .Draft = False
        .PaperSize = xlPaperA4
        .FirstPageNumber = xlAutomatic
        .Order = xlDownThenOver
        .BlackAndWhite = False
        .Zoom = 100
        .PrintErrors = xlPrintErrorsDisplayed
        .OddAndEvenPagesHeaderFooter = False
        .DifferentFirstPageHeaderFooter = False
        .ScaleWithDocHeaderFooter = True
        .AlignMarginsHeaderFooter = True
        .EvenPage.LeftHeader.Text = ""
        .EvenPage.CenterHeader.Text = ""
        .EvenPage.RightHeader.Text = ""
        .EvenPage.LeftFooter.Text = ""
        .EvenPage.CenterFooter.Text = ""
        .EvenPage.RightFooter.Text = ""
        .FirstPage.LeftHeader.Text = ""
        .FirstPage.CenterHeader.Text = ""
        .FirstPage.RightHeader.Text = ""
        .FirstPage.LeftFooter.Text = ""
        .FirstPage.CenterFooter.Text = ""
        .FirstPage.RightFooter.Text = ""
    End With
    Application.PrintCommunication = True
    ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
        IgnorePrintAreas:=False
End Sub
1Like

Comments

  1. @troglodytes525

    Questioner

    @changkejun さん
    コメントありがとうございます。

    印刷はかけていないので、確認してみます。

  • 「303.1×214.3 という不思議なサイズ」←どのように確認されたのでしょうか?
  • 印刷範囲は"A72:J107"になっているのでしょうか?
  • 通常使うプリンター(デフォルトプリンター)が以前と変わっていませんか?
0Like

Comments

  1. @troglodytes525

    Questioner

    @nak435 さん、コメントありがとうございます。

    サイズは、できたpdfファイルを開き、プロパティから確認しました。

    印刷範囲はA~Jで、そのうちの一部をエクスポートしています。

    デフォルトプリンターは変わっていません。
    AcrobatDistilerの設定も変えていません。。。

  2. サイズは、できたpdfファイルを開き、プロパティから確認しました。

    自分の環境だと、Acrobat Readerで開いて、文書のプロパティを確認しても、
    少数以下のサイズは出てきません。開くアプリの差ですかね?

    • そのPDFを(実際のサイズで)印刷すると、A4 2ページに出力されるのでしょうか?

    • サイズ比を逆計算して、96%にするとどうなりますか?

  3. @troglodytes525

    Questioner

    普通に印刷すると、A41枚で出ます。
    95%に設定してエクスポートすると、312.7×221.0 というサイズになりました。

  4. 95%に設定してエクスポートすると、312.7×221.0 というサイズになりました。

    98%よりサイズが大きくなるとは、想定の真逆でした。

    普通に印刷すると、A41枚で出ます。

    A4一枚で出力されるならば、実質の影響は無いということですかね。

  5. @troglodytes525

    Questioner

    Microsoft XPS Document Writerをデフォルトにしたら直りました…。

Your answer might help someone💌