none
Document.PrintOut メソッドのPagesについて RRS feed

  • 質問

  • 現在Wordの文書をページを指定して印刷するアプリケーションを作っているのですが、タイトルの箇所がどうしてもうまくいきません。

    MSDNのDocument.PrintOut メソッドのページを参考にし以下のコードを実行したのですが、2ページ目のみの印刷ではなく全ページ印刷されてしまいました。

                Dim wrdApp As Word.Application
                Dim wrdDoc As Word.Document
                wrdApp = CreateObject("Word.Application")
                OpenFileDialog.ShowDialog()           '2ページ以上のファイルを選択
                wrdDoc = wrdApp.Documents.Open(OpenFileDialog.FileName)
                wrdDoc.PrintOut(Pages:="2")
    

    どのようにすれば2ページ目のみの印刷ができるのでしょうか?

    2014年6月27日 8:22

回答

すべての返信

  • Document.PrintOut メソッドの引数を見た感じ、Pages引数を指定する場合Range引数にwdPrintRangeOfPagesを指定する必要があるのではないでしょうか。
    • 回答としてマーク DavitMills 2014年11月21日 6:00
    2014年6月27日 8:27
  • wrdDoc.PrintOut(Range:=Word.WdPrintOutRange.wdPrintRangeOfPages, Pages:="2")

    と、変更したところ今度は印刷自体が行われなくなりました。

    例外等は発生せずプリンターのジョブ一覧に一瞬表示され、印刷が行われないまま消えています。

    2014年6月27日 9:03
  • かなり間は空いてしまいましたが、解決しました。

    原因としては開いていたファイルが改ページとして1ページごとにセクションで区切っていたため、Pagesに"2"を設定した状態だと印刷する範囲が無いものとして判断されていました。

    wrdDoc.PrintOut(Range:=Word.WdPrintOutRange.wdPrintRangeOfPages, Pages:="s2")
    Pagesの指定を"2"ではなく"s2"としたところ期待した通り2ページ目のみの印刷が行われました。

    実際のWordでページ指定をして印刷する時に入力する内容をそのまま入力する必要があるようです。

    遅くなりましたが、Hongliang様回答ありがとうございました。

    2014年11月21日 5:59