[...]はじめに最初に以下を参照してください。VBAサンプル/3)関数:PDFを特定のフォーマットに変換する上記で解決出来ない時に、コレ以降を参考にしてください。当記事の内容はかなり古いです。「印刷の問題点を解決」又はサンプル「印刷設定の変更と復元」を御覧ください。当記事はこうゆうやり方も過去に有りました、程度の内容で公開を続けます。質問で「PDFファイルをPDF/X-1a:2001形式に出来ないか」をよく頂くのでサンプルを作成する事にします。処理のポイントテスト調査して以下のポイントが判った。ダイレクトにPDF/X-1a:2001形式へのPDF変換はOS環境が設定されてないと出来ない。PDF」でしかも以下の画面の設定になっていれば、OLEの印刷メソッドで簡単に出来る。上記2の状態は期待出来ないのが普通と考えられる。レジストリに保存されている事が判った。逆の元に戻す方法もレジストリで出来る事が判った。コマンドで出来る事が判った。上記のポイントを踏まえて処理VBAロジックを作成すればいい。※事前にプリンタを設定しておく。※レジストリ操作で行う。処理概要の手順レジストリの値をバックアップします。OS上でのデフォルトプリンタを取得します。PDF」に変更します。PDFファイルをPDF/X-1a:2001形式で出力する為に関連するレジストリの値を変更します。PDF」のレジストリの値を元に戻します。PDF」から元に戻します。処理中はAcrobatアプリケーションを他で使用しない。トラブル回避と処理速度の為です。他のアプリケーションを稼動させない。印刷処理はデフォルトプリンタが変更されるので、何らかの影響を受けるかもしれない。CPUとハードディスクへのアクセスが集中する可能性が有る。将来的には確実な処理を考えると、WindowsAPIを使う事が望ましい。当サンプルのテスト環境を以下に示す。環境が少しでも変われば、当サンプルは変更しなければならない箇所が出てくるので注意して欲しい。6.0(+SP5)が動作する関連DLLのインストール※拒否する方がいますが、やり方次第でトラブルは起きません。CPUを酷使する為、出来るだけ高速処理が可能なCPU搭載パソコンを準備する。事前準備PDFファイルをPDF/X-1a:2001形式で出力する時の詳細な仕様を事前に再確認する。PDFファイルをPDF/X-1a:2001形式で出力する為のレジストリ設定する為のREGファイルを作成する。注意:AcrobatがUpdate等によりバージョンが変わるたびに作り直す必要があります。VBAスクリプトで処理を行う。※当バージョンには無い。サンプルは必要なソフト以外は無い、ピュアなWindows環境でテストする。1PDF当たりの処理内容と処理時間等をログファイルで出力する。※当バージョンには無い。Excelシート上に表示する。汎用性を持たせる為にサブルーチン形式を極力取るようにする。処理時間に影響する部分はしない。機能:PDFファイルをPDF/X-1a:2001に変換する。同時にPDFファイルを1頁単位に連番付与で分割する。備考:ソースで★箇所は環境により変更が必要。"処理は完了しました。'PDFファイルの全頁印刷してPDF/X-1a:2001に変換する。認識出来ない場合がある。この処理でタイミングを調整する。インポート機能を使って処理する。アプリケーションを利用する。将来的には専用DLLソフトを作成して、ダイレクトに変更出来るように計画しています。PDFファイルをPDF/X-1a:2001形式に変換するのは非常にCPUを食う。処理時間が掛かる為に、進捗状況や結果を表示する為の何らかのロジックを入れる必要がある。ファイルサイズにも、当サンプルは応用可能です。別のやり方で出来るのであればコメントを頂けると有り難いです。Acrobatアプリケーション以外のソフトを使う。メソッドの第一引数で「0」を使うので、最適化はされません。注意点ダウンロードファイルに含まれる以下のファイルはOS毎に作り直す必要があります。PDF-X変更-解除.reg.txtPDF-X変更-設定.reg.txt理由はパソコン単位にSID(ユーザー識別番号)が異なるからです。上記のファイルではそのSIDを使っています。WindowsAPIにより取得は可能です。コメントをキャンセルメールアドレスが公開されることはありません。*サイト上に表示された文字を入力してください。出来るだけ早く返答する様には心がけています。遅くなる時もありますのでご了承ください。Pluginコメントをする時は出来れば以下もお願いします。バージョンコメントにサンプルコードを入れるとエラーになる場合が有ります。タグを入れてください。コメントデータの処理方法の詳細はこちらをご覧ください。