Microsoft 製品に組み込まれている Visual Basic の実装。
ActiveWorkbook.ExportAsFixedFormat
問題がなければ
Bookでなく当該sheetを使ってみてください。
ActiveSheet.ExportAsFixedFormat
このブラウザーはサポートされなくなりました。
Microsoft Edge にアップグレードすると、最新の機能、セキュリティ更新プログラム、およびテクニカル サポートを利用できます。
マクロを使用して、以下の操作を自動化しようと考えています。
この操作をマクロの記録を利用して保存して使用しています。
動作確認のため、手動で操作してPDFを作成した場合と、保存したマクロを利用してPDFドキュメントを作成した場合に出来上がったファイルを比較したところ、見た目には変わりませんが、マクロを使用して出来たファイルの方が、数十KB程度大きくなっていました。
手動で作成したファイル自身も数十KBしかなく、容量だけで見ると1.5倍近くになっています。
今後このマクロを拡張して数百のファイルを一括でPDFにする方法を検討したいと考えており、この容量の差は看過出来ないと思い、原因を調査しています。
なお、記録されたマクロの中身は以下のようになっています。
Sub Macro1()
'
' Macro1 Macro
'
'
ChDir "C:\Users\XXXX\Desktop"
ActiveWorkbook.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"C:\Users\XXXX\Desktop\result.pdf", Quality:=xlQualityStandard, _
IncludeDocProperties:=False, IgnorePrintAreas:=False, OpenAfterPublish:= _
False
End Sub
ExportAsFixedFormat を調べてみたところ、以下のドキュメントが該当したものの、「アクセシビリティ用のドキュメント構造タグ(M)」に該当するようなパラメータが無く、記録した操作が再現できない原因になっているのではと想定しています。
マクロの記録で保存できていない操作を追加出来ないかご存知の方いらっしゃいましたらご教授いただけますでしょうか。
Microsoft 製品に組み込まれている Visual Basic の実装。
ロックされた質問。 この質問は、Microsoft サポート コミュニティから移行されました。 役に立つかどうかに投票することはできますが、コメントの追加、質問への返信やフォローはできません。
ActiveWorkbook.ExportAsFixedFormat
問題がなければ
Bookでなく当該sheetを使ってみてください。
ActiveSheet.ExportAsFixedFormat
ご回答ありがとうございます。
提示頂いた内容試してみましたが、PDFで保存するダイアログボックスで選択できる最適化の項目を「標準」にするか「最小サイズ」にするかの違いのようですね。
PDF 形式で保存する のページを見てみると、画像レベルの品質を落としてまでサイズを小さくすることを優先するように見受けられますね。
実際いくつか試してみましたが、文字が細かい表のようなものだと折り返しの位置が変わったりして、違いとして見えてくるようです。
確認した中で大きな違いとしては最適化が「標準」だと10ページでおさまるシートが、「最小サイズ」だと折り返しの関係で文字の行数が増えて11ページになるという事象がありました。
折り返しの扱いが変わる顕著な例としてはアルファベットの文字列の場合で、文章中に「ABC-DEF-GHI」みたいな並びの記号を入れていたのですがこの文字列が折り返しにかかった場合、
最適化が「標準」の場合、「ABC-DEF-」までを表示し、「GHI」を次の行に表示する
最適化が「最小サイズ」の場合「ABC-DEF-GHI」全てを折り返された次の行に表示する
のような違いが出てきて、元々2行に収まる予定だったセルが3行になるようなケースが積み重なってページ数の違いにまで発展していました。
とはいえ、最適化の項目を「最小サイズ」にすると、オプションを表示したときに「アクセシビリティ用のドキュメント構造タグ(M)」のチェックが外れているので、恐らくドキュメント構造タグに該当する項目は取り除かれていると思われます。
目標としては、最適化の項目は「標準」のままオプションの「アクセシビリティ用のドキュメント構造タグ(M)」のチェックを外した状態のPDFを作成することですので、他に代替案が無さそうであれば頂いた内容で置き換えたいと思いますがもうしばらく模索してみたいと思います。
よくわからないのですがこれかも?
実際に手動の場合とファイルサイズを比べてみてください。
Quality:=xlQualityStandard
大きな表の場合だとファイルサイズが何倍も違ってきます。
↓
Quality:=xlQualityMinimum
PC上での見た目の画質は変わらないようです。
1シートだけの book を使って試してみましたが、結果は同じでした。
ActiveWorkbook.ExportAsFixedFormat を使用した場合と、ActiveSheet.ExportAsFixedFormat を使用した場合のPDFファイルの容量も同じに見えるので、結果に違いは無さそうです。
最終的にはブック全体に対応させることも考えているため、ChDir 行の後に以下の1文を追加して試した結果も同様でした。
Sheets.select
ActiveWorkbook を使用した場合と、ActiveSheetを使用した場合の違いはどこかにまとまっているものありますでしょうか。
簡単に探してみましたが見つけられなかったため、ぜひ教えていただければと思います。