印刷ツールをクリックすると、Wordはドキュメントのコピーを1部自動的に印刷します。これは、[印刷]ダイアログボックスで以前に印刷することを選択した部数に関係なく行われます。これは、印刷ツールに固有の面白い動作ではありません。実際、[印刷]ダイアログボックスを再表示するたびに、[部数]設定が常に1にリセットされていることに注意してください。

Wordは常にこの領域で短期記憶喪失に苦しんでいるようです。部数の設定は単に「永続的」ではなく、印刷するたびに設定する必要があります。これは、特に同じ数の部数を一貫して印刷したい場合は、面倒な場合があります。

解決策に取り組むには2つの方法があります。まず、現在選択されているプリンターを使用して、特定の部数を印刷するマクロを作成できます。これは、一定数の部数を一貫して印刷している場合に最適なアプローチです。たとえば、次のマクロは、現在のドキュメントの4つのコピーを印刷します。

Sub PrintFour()

ActiveDocument.PrintOut Copies:=4 End Sub

このマクロを新しいツールバーボタンまたはショートカットキーに割り当てると、クリックまたはキーの組み合わせだけで、必要な部数が印刷されます。

2番目のソリューションはより複雑ですが、長期的にはより柔軟になる可能性があります。このソリューションでは、カスタムドキュメントプロパティを使用して、ドキュメントごとに、最後に印刷された部数を維持します。この設定は、印刷する部数として使用されるため、各ドキュメントに永続的な部数が提供されます。次の2つのマクロを使用する必要があります:

Public Sub FilePrint()

Dim bExists As Boolean     Dim MyPrint As Dialog

' ensure our doc variable exists     bExists = False     For Each varItem In ActiveDocument.CustomDocumentProperties         If varItem.Name = "Copies" Then             bExists = True             Exit For         End If     Next varItem          ' initialize document variable if doesn't exist     If Not bExists Then         ActiveDocument.CustomDocumentProperties.Add _           Name:="Copies", LinkToContent:=False, _           Type:=msoPropertyTypeNumber, Value:=1     End If

Set MyPrint = Dialogs(wdDialogFilePrint)

With MyPrint         .NumCopies = ActiveDocument.CustomDocumentProperties("Copies")

.Show     End With

ActiveDocument.CustomDocumentProperties("Copies") = _       MyPrint.NumCopies

Set MyPrint = Nothing End Sub
Public Sub FilePrintDefault()

Dim bExists As Boolean

' ensure our doc variable exists     bExists = False     For Each varItem In ActiveDocument.CustomDocumentProperties         If varItem.Name = "Copies" Then             bExists = True             Exit For         End If     Next varItem

' initialize document variable if doesn't exist     If Not bExists Then         ActiveDocument.CustomDocumentProperties.Add _           Name:="Copies", LinkToContent:=False, _           Type:=msoPropertyTypeNumber, Value:=1     End If

ActiveDocument.PrintOut Copies:= _       CInt(ActiveDocument.CustomDocumentProperties("Copies"))

End Sub

これらのマクロには、FilePrintおよびFilePrintDefaultという特別な名前があります。これらは、[印刷]ダイアログボックス(FilePrint)を表示し、ツールバーの[印刷]ツールを使用してアクティブなドキュメント(FilePrintDefault)を印刷する内部Wordコマンドに割り当てられた名前です。

これらのマクロを表示されている名前で使用すると、基本的に内部のWordコマンドが置き換えられます。

新しいFilePrintマクロの場合、ドキュメントのプロパティがチェックされ、Copiesという名前のマクロがあるかどうかが確認されます。存在しない場合は、その名前のドキュメントプロパティが作成され、値1に設定されます。

次に、[印刷]ダイアログボックスが表示され、カスタムドキュメントプロパティに基づいて[部数]の値が設定されます。ユーザーは、必要に応じて[コピー数]設定を変更できます。ダイアログボックスを閉じると(印刷するかどうかに関係なく)、[コピー数]設定が何であれ[コピー数]ドキュメントプロパティが更新されます。

一方、FilePrintDefaultマクロは、Copiesドキュメントプロパティが存在することを確認するだけで、その値に基づいて印刷する部数を設定します。プロパティが存在しない場合は、作成されて値1に設定されます。

注:

このページ(または_WordTips_サイトの他のページ)で説明されているマクロの使用方法を知りたい場合は、役立つ情報を含む特別なページを用意しました。

_WordTips_は、費用効果の高いMicrosoftWordトレーニングのソースです。

(Microsoft Wordは、世界で最も人気のあるワードプロセッシングソフトウェアです。)このヒント(1313)は、Microsoft Word 97、2000、2002、および2003に適用されます。Wordのリボンインターフェイス(Word 2007)用のこのヒントのバージョンを見つけることができます。以降)ここ: