Visio 2003 SP2 以降で [印刷部数] に複数部数を指定しても 1 部しか印刷されない

Office 2003 のサポートは終了しました

マイクロソフトでは、2014 年 4 月 8 日に Office 2003 のサポートを終了しました。この変更は、ソフトウェアの更新プログラムおよびセキュリティ オプションに影響しています。 この変更の意味および保護された状態を維持する方法について説明します。

現象
Microsoft Office Visio 2003 で 1 ページのみの図形ファイルを複数の部数を指定して印刷を行っているにも関わらず、1 部しか出力されません。この問題は、Visio 2003 Service Pack 2 または Visio 2003 Service Pack 3 をインストールした環境で発生します。
原因
Visio 2003 で指定した部数の情報がプリンタ ドライバに適切に設定されないために発生します。

内部的には、Visio 2003 で印刷時に使用する DEVMODE 構造体の dmCopies 値が印刷ダイアログで指定した部数の値に更新されないことにより発生します。DEVMODE 構造体は、Windows 上で動作するアプリケーションから印刷を行う際に一般的に使用する構造体で、用紙サイズや用紙の向きや部数などを設定します。dmCopies メンバは、部数を保持するメンバです。

Visio 2003 で印刷する場合、不適切に印刷デバイス コンテキストの状態 (GDI オブジェクトなどの内部情報) をResetDC 関数にて上書きすることがあります。この結果として、dmCopies 値に 1 がセットされ、印刷部数が 1 ページとして出力されます。
回避策
この問題を回避するには、次のいずれかの方法で操作します。
  • Visio 2003 で印刷する際に [現在のページ] をクリックし、印刷部数を入力します。
  • Visio 2003 で印刷する際に [プロパティ] ボタンをクリックし、いったんプリンタのプロパティを表示してから印刷部数を入力します。
状況
マイクロソフトでは、この問題をこの資料の対象製品として記載されているマイクロソフト製品の問題として認識しています。
詳細
Visio 2003 で印刷する際に [現在のページ] をクリックすると印刷部数の値が ResetDC 関数にて上書きされないため、指定した部数にて印刷することが可能です。プリンタのプロパティを表示した場合は StartDoc 関数の直後に ResetDC 関数は呼び出されず、dmCopies 値に指定した部数がセットされたままとなるため、複数部の印刷が可能となります。

問題の再現手順

  1. プリンタを通常使うプリンタに設定し、プリンタのプロパティで [ソートする [1 部ごと]] チェック ボックスをオンにします。
  2. Visio 2003 で 1 ページのみの図形ファイルを開きます。
  3. [ファイル] メニューの [印刷] をクリックし、[印刷部数] の [部数] を 2 部に変更します。
  4. [OK] または [印刷] をクリックし、印刷を開始します。

結果

1 部のみ出力され、2 部目は印刷されません。
속성

문서 ID: 956640 - 마지막 검토: 10/04/2010 00:46:00 - 수정: 1.2

Microsoft Office Visio 2003 Service Pack 3

  • kbharmony kbprint kbexpertiseinter kbtshoot kbnofix kbbug KB956640
피드백