Excel でシートに異なる印刷品質を使用する場合の予期しない動作

現象

Microsoft Excel で複数のワークシートを印刷すると、複数の印刷ジョブが生成される場合があります。 これにより、次の動作が発生する可能性があります。

  • ファイルに印刷する場合は、一部のシートのみがファイルに印刷されます。残りのシートはプリンターに印刷されます。

  • ファイルに印刷する場合は、出力ファイルの名前を複数回入力するように求められる場合があります。

    その結果、複数の出力ファイルが生成されます。 各ファイルには、完全な印刷出力の一部が含まれています。

  • Microsoft Visual Basic for Applications マクロを使用してシートを印刷する場合、出力ファイルの名前に対する要求が複数あるため、マクロが失敗する可能性があります。

  • 頻繁に使用されるネットワーク プリンターに印刷する場合、印刷ジョブが他のユーザーの印刷ジョブと混在している可能性があります。

原因

この動作は、異なる印刷品質設定を使用してワークシートを印刷する場合に発生します。 Microsoft Excel で複数のワークシートを印刷する場合、印刷品質設定の変更ごとに、その印刷品質設定を使用して新しい印刷ジョブが作成されます。

注:

この動作は、以前のバージョンの Microsoft Excel で同じワークシートを印刷する場合には発生しません。

回避策

この動作を回避するには、印刷するすべてのワークシートで同じ印刷品質設定が使用されていることを確認します。 これを手動で行うか、Visual Basic マクロを使用して印刷品質を変更できます。

Microsoft は、例示のみを目的としてプログラミング例を提供しており、明示または黙示にかかわらず、いかなる責任も負わないものとします。 これには、市販性または特定の目的との適合性についての黙示の保証も含まれますが、これに限定はされません。 この記事は、説明されているプログラミング言語、手順を作成およびデバッグするために使用されているツールに読者が精通していることを前提にしています。 Microsoft サポート エンジニアは、特定のプロシージャの機能を説明するのに役立ちますが、これらの例を変更して、特定の要件を満たすために追加の機能を提供したり、プロシージャを構築したりすることはできません。次の Visual Basic マクロを使用すると、ブック内のすべてのワークシートで同じ印刷品質設定が使用されます。

   Sub SetPrintQuality()

For Each xSheet In ActiveWorkbook.Sheets
           xSheet.PageSetup.PrintQuality = 600
       Next xSheet

End Sub

このマクロは、プリンターが 1 インチあたり 600 ドット (dpi) で印刷できることを前提としています。 プリンターがこの解像度で印刷できない場合は、マクロの 3 行目の値をプリンターの適切な値 (150、300、600、1200 など) に変更します。

このマクロを実行すると、すべてのワークシートで同じ印刷品質設定が使用され、動作が発生しなくなります。

状態

この動作は仕様です。

詳細

次の手順は、動作を示しています。

  1. シート 1、シート 2、シート 3 などの 3 つのワークシートを含む新しいブックを作成します。

  2. 各ワークシートで、次の値を入力します。

    Sheet1:

    A1: Sheet1 - 300 DPI

    Sheet2:

    A1: Sheet2 - 600 DPI

    Sheet3:

    A1: Sheet3 - 300 DPI

  3. [シート 1] をクリックします。 [ ファイル ] メニューの [ ページ設定] をクリックし、[ ページ ] タブをクリックします。[ 印刷品質 ] ボックスの一覧で、[300 dpi] をクリックし、[OK] をクリック します

  4. Sheet2 と Sheet3 に対して手順 3 を繰り返し、[ 印刷品質 ] をそれぞれ "600 dpi" と "300 dpi" に設定します。

    各ワークシートでは、その前にあるワークシートとは異なる印刷品質が使用されることに注意してください。

  5. シート 1 のシート タブを右クリックします。 ショートカット メニューの [ すべてのシートを選択] をクリックします。

  6. [ファイル] メニューの [印刷] をクリックします。 [印刷] ダイアログ ボックスの [プリンター] セクションで、[ファイルに印刷] チェック ボックスをクリックして選択します。 次に、[OK] をクリックします。

次の動作が発生する可能性があります。

  • FILE: ポートに接続されているプリンター ドライバーを使用している場合は、[ファイルに印刷] ダイアログ ボックスが 3 回表示されます。
  • LPT1:、LPT2:、またはプリンターに接続されているその他のポートに接続されているプリンター ドライバーを使用している場合は、Sheet1 の [ファイルに印刷] ダイアログ ボックスが 1 回だけ表示されます。 他のワークシートはプリンターに印刷されます。
  • Visual Basic マクロを使用してワークシートを印刷すると、[ファイルに印刷] ダイアログ ボックスが複数回表示されることがあります。 SendKeys メソッドを使用して出力ファイルの名前を [ファイルに印刷] ダイアログ ボックスに送信している場合、ダイアログ ボックスが複数回表示されるとマクロが失敗する可能性があります。

Sheet3 の印刷品質を 600 dpi に変更すると、2 つの印刷ジョブが生成されます。1 つは 300 dpi (Sheet1)、1 つは 600 dpi (Sheet2 および Sheet3) です。 Sheet1 の印刷品質を 600 dpi に変更すると、2 つの印刷ジョブが生成されます。1 つは 600 dpi (Sheet1 と Sheet2)、1 つは 300 dpi (Sheet3) です。