• ベストアンサー

エクセルのPDF化で勝手にサイズが変わる!

Excelではページレイアウトで選んだ用紙のサイズがPDF化した時のページサイズになると思っておりました。ところが会社のMicosoft365で作成したファイルで用紙のサイズをA4横で拡大縮小は1×1に合わせて印刷と設定したファイルをMicrosoft Print to PDFでPDF化すると余白が変わってしまうのです。 なぜかと思い文書のプロパティを見るとページサイズが279.4×215.9mm ページ数1 になっていました! A4サイズなら297×210mm ページ数1 のはずなのにPDFはレターサイズに勝手に変わっています。そのため余白が変わってしまったようです。 もとのエクセルファイルを自宅のエクセル2019で同じくMicrosoft Print to PDFでPDF化してみましたがこちらは正しくページサイズが297×210mm ページ数1 となりました。 なぜこうなるのか見当がつきませんので修正もできず困っています。 どなたかお助けください。

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

  • ベストアンサー
  • kkkkkm
  • ベストアンサー率66% (1719/2589)
回答No.5

> VBAでユーザーの端末のMicrosof Print to PDFの用紙設定を取得することは可能でしょうか? 色々調べてみましたが、利用できる用紙一覧を取得するという方法はありましたが、プリンタ(Microsof Print to PDF)側で現在設定されている用紙の種類を取得するという方法は見つかりませんでした。 VBAではなくPowerShellのコマンドでプリンタ側の用紙設定を変更するというのが見つかったのですが、実行するとプリンターによってエラーになったり変更できなかったりで何か使えない感じでした。うまくいけばVBAから実行できるなと思ったのですが残念です。 他の言語で実行ファイルを作りそれをVBAで操作するという方法もあるかもしれませんが、開発環境(無料のVisual Studioなど)をインストールしたりとか面倒かもしれません。

emaxemax
質問者

お礼

ありがとうございます。VBAでプリンターの設定を変更することは難しそうなので、事前にMicrosof Print to PDFの用紙設定がA4でないことを取得できればメッセージを出して手動でプリンターの用紙をA4に変更してもらおうと考えたのですが、無理でしたか。残念!

その他の回答 (5)

  • kkkkkm
  • ベストアンサー率66% (1719/2589)
回答No.6

ちょっと気になったサイト(用紙番号を返す)があったのでそれを実行してA3の番号を返して実行したらPDFがA3になったので 試しにA3指定で Worksheets("Sheet1").PageSetup.PaperSize = xlPaperA3 としたら 元がレターでもできたPDFはちゃんとA3になるのですが、A4で指定したらレターのままでなんか変な感じです。恐るべしMicrosoft Print to PDFなのかもしれません。

emaxemax
質問者

お礼

何度も、そしていつもありがとうございました。

Powered by GRATICA
  • hiro_1116
  • ベストアンサー率30% (2555/8267)
回答No.4

No.2です。お礼を拝見しました。 問題が解決されたとのこと。何よりです。 お礼欄に書かれている追加質問 >VBAでユーザーの端末のMicrosof Print to PDFの用紙設定を取得することは可能でしょうか? これは、適切なカテゴリーで新規の質問として投稿される方が回答を得やすいように思います。

emaxemax
質問者

お礼

ありがとうございました。

回答No.3

OFFICE製品(ワードやエクセル)のページサイズは「デフォルトのプリンタ」に影響されます。 デフォルトのプリンターとは「通常使うプリンタ」の事です。 パソコンが変更されると「通常使うプリンタ」も違ってしまうので、会社で作ったエクセルと、自宅で作ったエクセルでは「実ページサイズ」が異なる事になります。 これの所為で、どのパソコンでブックを作成したかの違いで、余白が大きくなったり、1ページに収まっていたモノが2ページになってしまったりします。 ページレイアウトが狂う直接の原因は「印刷するプリンタを変更したから」です。 プリンタを変更すると「実ページサイズ」も変わってしまうので、余白が大きくなったり、1ページに収まらずに2ページ目にハミだします。 これを防ぐには、会社のパソコンや自宅のパソコンの「通常使うプリンタ」を「Microsoft Print to PDF」に設定しておいて、プリンタを変更する作業を絶対にしない、という方法しかありません。 しかし「プリンタを変更する作業を絶対にしない」は不可能ですし、会社のパソコンの「通常使うプリンタ」を勝手に変更すると、パソコンの管理部門から怒られたり、普通にプリンタに印刷している他の社員から苦情が出ると思われるので、勝手に通常使うプリンタを変更してはいけません。 そういう訳で「エクセルブックやワード文書で、デフォルトのプリンタからMicrosoft Print to PDFにプリンタを変更した場合は、プリンタ変更後に、開いているブックや文書のページレイアウトを、その都度、毎回、修正してから印刷(変換)する必要がある」という事になります。 なお、Microsoft Print to PDFにプリンタを変更した場合に限らず、印刷したいプリンタを通常使うプリンタ以外の機種に変更した場合も、実ページサイズが変わってしまうので、都度、ページレイアウトの確認が必要です。 面倒だと思いますが、これは「Office製品共通の仕様」なので、プリンタ変更に起因するレイアウト崩れを防ぐ方法はありません。

emaxemax
質問者

お礼

ありがとうございます。プリンターの設定で見てみたところ、会社の端末でわたしのMicrosof Print to PDFの用紙設定がレターになっていました!A4版に設定して解決しました。 ただ、ほかのユーザーの端末のMicrosof Print to PDFの用紙設定がどうなっているのかはわかりません。VBAでユーザーの端末のMicrosof Print to PDFの用紙設定を取得することは可能でしょうか?

  • hiro_1116
  • ベストアンサー率30% (2555/8267)
回答No.2

Microsoft Print to PDFの印刷(出力)サイズがレターサイズになっているのではないですか?

emaxemax
質問者

お礼

ありがとうございます。プリンターの設定で見てみたところ、会社の端末でわたしのMicrosof Print to PDFの用紙設定がレターになっていました!A4版に設定して解決しました。 ただ、ほかのユーザーの端末のMicrosof Print to PDFの用紙設定がどうなっているのかはわかりません。VBAでユーザーの端末のMicrosof Print to PDFの用紙設定を取得することは可能でしょうか?

  • kkkkkm
  • ベストアンサー率66% (1719/2589)
回答No.1

エクセルの用紙設定よりプリンタ自体の基本的な用紙設定が採用されるのでプリンターそのものの設定がレターになっているのだと思います。

emaxemax
質問者

お礼

ありがとうございます。プリンターの設定で見てみたところ、会社の端末でわたしのMicrosof Print to PDFの用紙設定がレターになっていました!A4版に設定して解決しました。 ただ、ほかのユーザーの端末のMicrosof Print to PDFの用紙設定がどうなっているのかはわかりません。VBAでユーザーの端末のMicrosof Print to PDFの用紙設定を取得することは可能でしょうか?

関連するQ&A