1

私は今朝、Excel で作成したツールの作業をするように呼ばれました。このツールはレポートを生成し、それを PDF に出力します。彼らが私に電話した問題は、あるユーザーの PDF の行間がずれていたことです。問題の原因を突き止めるのにしばらく時間がかかりました。DPIでした。フォントの表示に問題があるユーザーは、Windows のフォントを 150% に増やしており、何らかの理由で Excel から pdf へのエクスポートが異なる場合があります。

問題が何であるかはわかっていますが、ユーザーに DPI を変更して (ユーザーにログオフを強制する)、再度ログインし、Excel を開いてマクロを実行し、最後に DPI を元に戻すように依頼することは合理的な解決策ではありません。解決策を見つけるのを手伝ってくれるグルがそこにいることを願っています. プログラムの実行中に一時的に DPI を変更するために VBA コードを追加してもかまいませんが、それを行う方法や可能かどうかはわかりません。

ありがとう

より明確にするために、そのWindows 7と私が話している側面は、解像度を変更する場合、「テキストやその他のアイテムを大きくまたは小さくする」かどうかを尋ねるリンクがあることです. スライダーがデフォルトの 100% から 150% に変更されました。

4

1 に答える 1

1

この問題を克服する簡単な方法は思いつきません。ファイルを開いて PDF にエクスポートするためだけに内部的に Excel を使用する OLE アプリケーション (C#、VB.NET、C++ など) を作成することもできます。次に、システム上に新しいユーザーを作成し、コマンドrunasを使用してバッチ ファイルからこのアプリケーションを起動できます。再び Excel に戻り、 Shellコマンドを使用してバッチ ファイルを起動できます。
ワークフローは次のようになります。

1- VBA と Shell 関数を使用して、現在のファイルをパラメーターとして Excel からバッチ ファイルを呼び出します。
2- バッチ ファイルは、runas を使用してカスタム アプリケーション MyAppExportToPDF を呼び出し、現在の Excel ファイルをパラメーターとして渡します。
3- MyAppExportToPDF は、OLE を使用して Excel の新しいインスタンスを開き、ファイルをロードして、PDF にエクスポートします。

MyAppExportToPDF は別のユーザーで実行されるため、新しい Excel インスタンスもそのユーザーで実行する必要があります。このユーザーの下の DPI 設定は、必要なものである必要があります。

免責事項: これは未検証のアイデアです。

于 2013-03-06T15:38:02.417 に答える