• 締切済み

WORDのVBAで印刷プレビューの制御方法

excelからVBAでWORDを起動させ、エクセルデータをWORDの宛て名ファイルに差込み、印刷プレビューまでさせています。 EXCELでは、印刷プレビューの次の行のコマンドはプレビューを閉じないと実行されませんが、WORDでは実行されてしまいます。 今やりたいのは、WORDの宛名ファイルを印刷したあと、WORD自体は保存しないで終了し、EXCELだけ起動した状態にするということです。    ActiveDocument.PrintPreview ActiveDocument.Close = False と記述しただけでは、印刷できないまま、WORDが終了してしまいます。 何かよい方法があるでしょうか?

みんなの回答

  • yohsshi
  • ベストアンサー率55% (369/665)
回答No.2

Dim i As Integer For i = 1 To 2 If i= 1 Then ActiveDocument.PrintPreview i=InputBox("印刷する場合は1をしない場合は2を入力","確認") Else ActiveDocument.PrintOut End if Next i 確認していないので動かないかもしれません。 駄目だったら、プレビューのマクロと印刷のマクロの2パターンを書くしかないかもしれません。

toyotamahime
質問者

お礼

回答ありがとうございます。 IF文を使った分岐を参考にさせていただき解決しました。 ActiveDocument.PrintPreview の後にINPUTBOXだとプレビュー表示後、「2ページ目だけ印刷したい」のような細かい設定ができないため、フォームをShowModal=:falseで介在させることで課題をクリアすることができました。 ありがとうございます。

  • yohsshi
  • ベストアンサー率55% (369/665)
回答No.1

印刷したいならば PrintPreview ではなく PrintOut を使用すれば良いのではないでしょうか

toyotamahime
質問者

補足

回答ありがとうございます。 印刷するまえに内容を確認したいので、あえてPrintPreview にしています。 印刷しないという選択肢もあるので。 ということで引き続きよろしくお願いいたします。

関連するQ&A

  • ブラウザ上でEXCELの印刷プレビューをする方法は?

    通常、エクセルで「印刷プレビュー」をする場合、ツールバーの「印刷プレビュー」を選択するか、VBAマクロで"ActiveSheet.PrintPreview"を組み込んでも行うことができますが、ブラウザ上で開いたエクセルの印刷プレビューを行う方法を教えて下さい。

  • エクセルVBAでワード文書印刷(2)

    先日、こちらで、VBAを記述したエクセルのブックと同一フォルダーにおいておいたABC.DOCをプリントし、ABC.DOCを閉じる方法を教えていただき、Excel2003でためしたら、下記でうまくいきました。(その際、回答者のchie65536さん、手が滑ってポイントをつけず締め切ってしまいました、申し訳ございません。) ところが今、会社のExcel2000でやったところ、「印刷中です。Wordを終了すると印刷待ちのすべてのジョブがキャンセルされます。」と出てしまいます。 ABC.DOCをプリントしおわったら、ABC.DOCを閉じ、ワードを終了するようにしたいのです。 ためしに、wd.Quitの代わりに、wd.ActiveDocument.Close とすれば印刷はされましたが、ワードが終了しません。 wd.ActiveDocument.Close のあとに wd.Quitを入れると、「印刷中です。Wordを終了すると・・・・」が出てしまいます。 どうなおせばよいのでしょうか? Sub Word_Print() Dim wd As Object Set wd = CreateObject("Word.application") wd.Visible = True wd.documents.Open Filename:=ThisWorkbook.Path & "\ABC.doc" wd.ActiveDocument.PrintOut wd.Quit Set wd = Nothing End Sub よろしくお願いいたします。

  • 【Excel2007】印刷プレビューかどうかを判断したい

    Excel2007を使用しています。 マクロで印刷プレビューかどうかを判断したいのですが、 どのようにプログラムしたら良いでしょうか? Wordであれば、以下のようにプログラムすれば判断できると思います。 If Application.PrintPreview = False Then Call MsgBox("印刷プレビューでありません。") End If 同じことをExcelでやりたいのですが もし方法をご存知でしたら教えてください。 よろしくお願い致します。

  • マクロで呼び出したプレビュー画面から印刷できない

    マクロで呼び出したプレビュー画面から印刷できない エクセル2010です。 下記のマクロで呼び出したプレビュー画面から印刷できません。 Sub test()   ActiveSheet.PrintPreview End Sub で呼び出したプレビュー画面から、印刷するために一番左上の「印刷」をクリックすると 実行時エラー1004 WorksheetクラスのPrintPreviewメソッドが失敗しました。 となってしまいます。 何がわるいのでしょうか?別のパソコンのエクセル2016では問題なく印刷できます。 頭をかかえています。

  • Word2000の差込印刷を繰り返し行う方法について

    VB6で計算したデータをAccess2000に入れ、そのデータをWord2000の差込印刷機能を利用して出力したいのですが、1回目は上手くいくのですが続けて2回目を実行すると実行時エラー’462’【リモートサーバーがないか、使用できる状態ではありません。】と表示されます。 With ActiveDocument.MailMerge '差込印刷の行でエラーが表示されます。 コードの抜粋は以下の通りです。 ---ここまででデータを書き込みます。--- Set wdApp = New Word.Application Set wdDoc = wdApp.Documents wdDoc.Open FileName~---ここでWordファイルを開きます。--- With ActiveDocument.MailMerge '差込印刷 .Destination = wdSendToNewDocument .MailAsAttachment = False .MailAddressFieldName = "" .MailSubject = "" .SuppressBlankLines = False With .DataSource .FirstRecord = wdDefaultFirstRecord .LastRecord = wdDefaultLastRecord End With .Execute Pause:=True End With Windows(wdfile).Activate ActiveWindow.Close ~SaveAs FileName~'番号を付けて保存を行います。 wdDoc.Close 'Wordを終了させます。 wdApp.Quit Set wdApp = Nothing Set wdDoc = Nothing 長々と書いて申し訳ございませんが、よろしくお願いいたします。

  • 複数ブックの印刷プレビューの方法を教えてください。

    VB6.0にてエクセルのブックを2つ作成し、 最後にそのBook1とBook2を同時に印刷プレビューで表示させたいのですが Book1.Worksheets.PrintPreview Book2.Worksheets.PrintPreview にするとBook1の印刷プレビューを閉じないと Book2の印刷プレビューが表示されません。 Book1とBook2を同時にプレビュー表示させる方法を どなたかご存知でしたら教えてください。 よろしくお願いします。

  • Web上のエクセルのVBA操作について

    OSはWin2000、エクセルも2000です。 社内のイントラネット上にエクセルのBOOKを置いてあります。 ダウンロードせずにダブルクリックでイントラ上で開いたこのBOOKに対するVBA操作で、以下の3つを試しましたが、すべてエラーになり、プレビューすることができません。 どう直せばよいのでしょうか? Sub test() ActiveSheet.PrintPreview End Sub Sub test2() ThisWorkbook.ActiveSheet.PrintPreview End Sub Sub test3() x = ThisWorkbook.ActiveSheet.Name ThisWorkbook.Sheets(x).PrintPreview End Sub また Sub 終了() ActiveWorkbook.Close (False) End Sub もまったく働きません。 どうやったら終了できますか?

  • ラベル印刷のプレビューを見たいのですが

    windows2000を使用しています。 エクセルで作成した住所のリストをワードの「はがきと差込印刷」を使い宛名シールにしています。 通常の文章であればプレビューでリストが全部で何枚の用紙になるか、実際にどのように印刷されるのかは「ファイル」から「印刷プレビュー」で見れるのですが、 この場合は一番初めのページしか見ることができません。 ワードの画面の右端上部に「ラベルのプレビュー」というのがあるのですが、次のページを表示させると、単にエクセルのリストがひとつずつずれたものがでてしまいます。 実際に印刷される画面を表示させるにはどうしたら良いのでしょうか。わかりにくい文章ですみませんが教えてください。よろしくお願いします。

  • 印刷プレビュー

    ワード2000を使っています. ファイルメニューから印刷プレビューをかけると,ブラウザでプレビューされてしまいます. ツールバーのボタンから実行すると普通なんですが, どうしてなんでしょうか?

  • Word VBAで2003はOKだが2007だとエラー

    Wordの2003 で作成したVBAがあるのですが、Word2007の実行するとエラーになってしまいます。 記述-------------------------------------------------- Private Sub Document_Open() Dim macName As String macName = ActiveDocument.Name ~ 処理 ~ Windows(macName).Close saveChanges:=False End Sub ------------------------------------------------------ 上記の Windows(macName).Close saveChanges:=False の部分で、 「実行時エラー 5941  指定されたコレクションのメンバは存在しません。」 のエラーが出てしまします。 以前にも、Office2007 になってからエラーになる記述があって修正したりしたのですが、上記の場合の修正方法がわかりません。 (検索したのですがそれらしい修正方法を見つけられませんでした。) 対処方法がわかりましたら教えて下さい。 宜しくお願いします。

専門家に質問してみよう