人に聞けない痔の悩み、これでスッキリ >>

お世話になります。

VBScriptよりWordを開いて印刷を行うプログラムを作成しているのですが、
「印刷中です。Wordを終了すると印刷待ちのすべてのジョブがキャンセルされます。Wordを終了しますか?」
が表示されてしまいます。
印刷命令を発行してファイルを閉じる際に表示されていると思いますが、このアラートを表示しない方法はあるのでしょうか?
どなたかご存知でしたらお教え下さい。

宜しくお願い致します。

実行環境
OS   Win2000
Office 2000
プログラム(一部抜粋)
Set objWord = CreateObject("Word.Application")
objWord.Documents.Open(ファイルパス)
Set objWordDoc = objWord.ActiveDocument
objWordDoc.PrintOut
objWordDoc.Close

このQ&Aに関連する最新のQ&A

A 回答 (1件)

試してはいませんが、


PrintOutメソッドのBackgroundパラメータの値をFalseにしてみてはいかがでしょうか?
フォアグラウンドで実行すればPrintOutメソッドの処理が終わるまで次の処理に移らないと思いますのでアラートも表示されないのではないでしょうか?

参考URL:http://msdn.microsoft.com/library/ja/default.asp …
    • good
    • 0

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QVBSでExcelファイル印刷時のプリンタ指定

VBSでExcelファイルを印刷する際、場合によってはプリンタを変えて印刷したいのですが、プリンタの指定をどのようにコーディングすれば良いのか分かりません。

印刷時のソースは下記のとおりです。

Set Excel = CreateObject("Excel.Application")
Set objWkBk = Excel.Workbooks.Open("C:\Test.xls", , False)

Excel.ActiveWindow.SelectedSheets.PrintOut()

Excel.DisplayAlerts = False
Excel.quit()
objWkBk.close
Set objWkBk = Nothing
Set Excel = Nothing


上記コーディングに下記(1)~(4)を追加または、修正して試してみましたが、エラーとなってしまいます。

(1)Application.ActivePrinter = "\\NAS0013W\Kyocera LS-6700SKX2"
(2)Excel.ActivePrinter = "\\NAS0013W\Kyocera LS-6700SKX2"
(3)Excel.ActiveWindow.SelectedSheets.PrintOut("\\NAS0013W\Kyocera LS-6700SKX2")
(4)Excel.ActiveWindow.SelectedSheets.PrintOut(ActivePrinter = "\\NAS0013W\Kyocera LS-6700SKX2")

そもそも、vbsからはプリンタの指定はできないのでしょうか?

ご教授いただきたく、よろしくお願いいたします。

VBSでExcelファイルを印刷する際、場合によってはプリンタを変えて印刷したいのですが、プリンタの指定をどのようにコーディングすれば良いのか分かりません。

印刷時のソースは下記のとおりです。

Set Excel = CreateObject("Excel.Application")
Set objWkBk = Excel.Workbooks.Open("C:\Test.xls", , False)

Excel.ActiveWindow.SelectedSheets.PrintOut()

Excel.DisplayAlerts = False
Excel.quit()
objWkBk.close
Set objWkBk = Nothing
Set Excel = Nothing


上記コーディングに下記(1)~(4)を追加また...続きを読む

Aベストアンサー

プリンターを切り替えるには手作業でプリンターを変更します。
その後イミディエイトウィンドウで
?application.activeprinter + Enter
で PDFCreator on Ne00: みたいのが返ってきますので
これを指定します。
excel.activeprinter = "PDFCreator on Ne00:" のように。

または変更は印刷時に行うようにして
excel.ActiveWindow.SelectedSheets.PrintOut activeprinter:="PDFCreator"
とすると ポート指定部分は無くても機能するようですね。

QVBscriptでPDFファイルを直接印刷できるようにするためには?

Windows2000 or WIndowsXP
IIS5.0
ASP(言語はVBscrptを使用)

今あるボタンを押すと、PDFファイルを作成し、
そのできたファイルへのリンクを画面に表示
するようにしています。
そのリンクをクリックするとAcrobatReaderに
よってプレビューが開かれ、そこで印刷ボタンを
押すと印刷できるという仕組みになっています。

これからはそうではなくて、あるボタンを押すと
PDFファイルを作成し、データをプリンタに送って?
印刷できるようにしたいと考えています。

(1)そんなことは技術的に可能でしょうか?
(2)また、印刷する際にどのプリンタから出力される
かをプログラムで指定することはできますでしょうか?
指定しなければ、通常使うプリンタから出る?
(3)印刷する際に、印刷設定ダイアログ(プリンタ選択画面)を出現させることは可能でしょうか?

大変困っています。どなたかヒントだけでも
(できればサンプルコードも)よいので
教えて下さいませんでしょうか?

よろしくお願いします。

Windows2000 or WIndowsXP
IIS5.0
ASP(言語はVBscrptを使用)

今あるボタンを押すと、PDFファイルを作成し、
そのできたファイルへのリンクを画面に表示
するようにしています。
そのリンクをクリックするとAcrobatReaderに
よってプレビューが開かれ、そこで印刷ボタンを
押すと印刷できるという仕組みになっています。

これからはそうではなくて、あるボタンを押すと
PDFファイルを作成し、データをプリンタに送って?
印刷できるようにしたいと考えています。

(1)そんなことは技術的に...続きを読む

Aベストアンサー

サーバー(IIS)側からプリンタに出力するのであれば
可能と思われます。
一番簡単なのはAcrobatReaderのコマンドラインを使用
する方法です。
イメージでいえば
1.クライアントから印刷指示
2.サーバー側でPDF作成
3.サーバー側でAcrobatReaderのコマンドラインに
  2.のPDFを渡し印刷する

AcrobatReaderのコマンドラインには印刷指定やプリンタ
指定などがあるのやりたいことはできると思います。
但し、サーバーが参加しているネットワーク上のプリンタ
のみが対象になりますが・・・

AcrobatReaderのコマンドラインについては
1.http://www.adobe.co.jp/partners/main.htmlへアクセス
2.「ASNディベロッパープログラム FAQ 」をクリック
3.文書番号3821の「Acrobat 6.0 SDK : Acrobat Developer FAQ 日本語版」をクリック
4.DeveloperFAQ.pdfを開く
5.一番下の「Windows 上のコマンドラインからAcrobat およびAdobe Reader を使用」を選択
で参照してください。

どうしてもクライアントで行いたい場合は
ActiveX等を作成する必要がありますが、証明書を
申請したりしないとセキュリティ上難しいので
お勧めできません。

お役に立てれば幸いです。

サーバー(IIS)側からプリンタに出力するのであれば
可能と思われます。
一番簡単なのはAcrobatReaderのコマンドラインを使用
する方法です。
イメージでいえば
1.クライアントから印刷指示
2.サーバー側でPDF作成
3.サーバー側でAcrobatReaderのコマンドラインに
  2.のPDFを渡し印刷する

AcrobatReaderのコマンドラインには印刷指定やプリンタ
指定などがあるのやりたいことはできると思います。
但し、サーバーが参加しているネットワーク上のプリンタ
のみが対象になりますが・・・
...続きを読む

Qコマンドプロンプトで印刷実行

コマンドプロンプトでテキストファイルを印刷したいのですが、正常に動作しません。
記述は下記の通りです。
直結してあるレーザープリンタを、LPT1ポートで接続しています。
print /d:LPT1: TEST.TXT
実行したところ、プリンタの動作音が一瞬鳴るのですが、紙は出力されません。
どうかよろしくお願いします。

Aベストアンサー

ノートパッドを使ってこんなのはどうでしょうか。

   notepad.exe /pt "TEST.TXT" "LPT1"

下記のページに載っていました。

参考URL:http://www.fpcu.jp/dosvcmd/bbs/log/print/4-1354.html

QPDFファイルを開かずに印刷したい

幾つものPDFファイルを印刷したいのですが、
できればAdobeReaderを起動させずに印刷したいです。

ファイルのアイコン上で右クリック→印刷でも可能ですが、
数が多くなると、この作業も大変です。
そこでVisualBasic2008ExpressEditionを使って、
簡単なシステムを作りたいと考えています。

しかし、PDFを開かずに印刷する方法が、どうしてもわかりません。
ネット検索、教えてgoo内の検索でもヒットせず途方に暮れています。
参考になるホームページや書籍がありましたら教えてください。
「こんな手法があるよ」というものでも構いません。

宜しくお願いします。

Aベストアンサー

PDFを開く際にACRORD32.exeに対して以下のコマンドラインを指定してください。

ACRORD32.EXE /s /l /p /h [PDFのパス]

コマンドラインの解説は参照URLを。

参考URL:http://scripting.cocolog-nifty.com/blog/2007/07/adobe_reader_81_e41e.html

QVBSでプリンターの用紙サイズを変更したい。

VBSでプリンターの用紙サイズを変更したいのですが、
Win32_PrinterConfigurationで現在のサイズの取得までは
出来たのですが、変更ができません。

出来れば用紙の種類も変更したいと思います。
よろしくお願いします。

Aベストアンサー

No1の疑問を、よく飲み込んでから、

http://technet.microsoft.com/ja-jp/subscriptions/system.drawing.printing.pagesettings.papersize

をみるとヒントがあるかと思います。既定値は、論理プリンターごとに決まっています。逆に言えば、設定した用紙サイズごとに論理プリンターを作成すれば済む話です(スクリプトで印刷したい論理プリンターを選ぶだけ<-A3と言う論理プリンターを作成し、デフォルトをA3に設定、WScriptオブジェクトでそれに印刷を実行)。

これがもっとも単純な解決方法で、次にアクティブに論理プリンターを作成したり、削除したりすればいいだけです。

どのレベルで行うかは、あなたの力次第です。

QプロンプトでExcelのファイルを印刷したい

どうもこんにちは。

Excelのファイルを印刷する際、普段はExcelを起動して印刷するか、エクスプローラでファイルを右クリックして印刷を実行しています。
複数のxlsファイルを順番に印刷したいのですが、プロンプトでコマンドを入力して印刷する方法はないのでしょうか。

OSはWindowsXPを使用しています。
プリンタはパソコンと直接つながっているわけでなく、LAN経由でつながってます。

Aベストアンサー

こんばんは。

残念ながら、起動オプションには印刷が見当たりませんでした。

http://support.microsoft.com/default.aspx?scid=kb;ja;291288

それで、下のようなものを作ってみました。

'--------------------------------------------------
' Usage : XlsPrint.VBS file

Option Explicit
Dim fso
Dim wShell
Dim Path
Dim File
Dim Shell
Dim I

Set fso=CreateObject("Scripting.FileSystemObject")
Set wShell=CreateObject("WScript.Shell")
Path=wShell.RegRead("HKLM\Software\Microsoft\Windows\CurrentVersion\App Paths\excel.exe\")
Path=Replace(Path,"""","")
Path=wShell.ExpandEnvironmentStrings(Path)
RegWrite "HKCR\*\shell\XlsPrint\command\",""""&Path&""""
RegWrite "HKCR\*\shell\XlsPrint\extended",""
RegWrite "HKCR\*\shell\XlsPrint\ddeexec\","[open(""%1"")][print()][quit()]"
RegWrite "HKCR\*\shell\XlsPrint\ddeexec\application\","Excel"
RegWrite "HKCR\*\shell\XlsPrint\ddeexec\topic\","system"
Set Shell=CreateObject("Shell.Application")

For I=0 To WScript.Arguments.Count()-1
Set File=fso.GetFile(WScript.Arguments.Item(I))
Shell.ShellExecute File.Path,0,,"XlsPrint"
WScript.Sleep 1000
Next
WScript.Quit


Sub RegWrite(Key,Value)
If Not RegRead(Key)=Value Then wShell.RegWrite Key,Value,"REG_SZ"
End Sub


Function RegRead(Key)
On Error Resume Next
RegRead=vbNullChar
RegRead=wShell.RegRead(Key)
End Function
'--------------------------------------------------

'---- から始まって '---- で終わる行までを XlsPrint.VBS として保存して、オプションにファイル名を指定して実行してみて下さい。
デフォルトのプリンターに出力される、、、はずです。

こんばんは。

残念ながら、起動オプションには印刷が見当たりませんでした。

http://support.microsoft.com/default.aspx?scid=kb;ja;291288

それで、下のようなものを作ってみました。

'--------------------------------------------------
' Usage : XlsPrint.VBS file

Option Explicit
Dim fso
Dim wShell
Dim Path
Dim File
Dim Shell
Dim I

Set fso=CreateObject("Scripting.FileSystemObject")
Set wShell=CreateObject("WScript.Shell")
Path=wShell.RegRead("HKLM\Software\M...続きを読む

QExcelやWordの特定のファイルを印刷するときのみ、通常使うプリン

ExcelやWordの特定のファイルを印刷するときのみ、通常使うプリンタとは別のプリンタで印刷したいです。
普通なら印刷の直前で、プリンタを切り替えますが、これが面倒。
こんなことってできますか?
2000.2003,2007どれでお答えいただいても結構です。

Aベストアンサー

Excelの話です。

特定のファイルを『特定の端末で』印刷する時の設定だけなら、
その特定ファイルのThisWorkbookモジュールというものに Workbook_BeforePrint というイベントプロシージャを設定すれば良いです。
一例ですが

'ThisWorkbook Module
Option Explicit

Private aPrinter As String

Private Sub Workbook_BeforePrint(Cancel As Boolean)
  Const pPrinter = "EPSON LP-S0000 on Ne01:" '印刷したいプリンタ
  Dim x As Long
  
  With Application
    aPrinter = .ActivePrinter
    On Error GoTo errHndler
    .ActivePrinter = pPrinter
    .OnTime Now, "ThisWorkbook.defPrintset"
  End With
  Exit Sub
errHndler:
  x = MsgBox(pPrinter & "に切替できませんでした。" _
         & vbLf & "キャンセルしますか?", vbYesNo)
  If x = vbYes Then Cancel = True
End Sub

Private Sub defPrintset()
  Application.ActivePrinter = aPrinter
End Sub

こんな感じ。
Application.ActivePrinterを印刷(プレビュー)の前後で自動的に切り替える方法です。


でもネットワーク環境での複数端末からの利用に対応させるなら、ちょっと面倒です。
"EPSON LP-S0000 on Ne01:" のポート番号「Ne01:」が端末ごとに違います。
この場合、現実的なのは『このファイルを印刷する時はこのボタンから』、とシート上にボタンを置いて

Sub test()
  Dim aPrinter As String
  
  aPrinter = Application.ActivePrinter
  ActiveWindow.SelectedSheets.PrintOut ActivePrinter:="EPSON LP-S0000"
  Application.ActivePrinter = aPrinter
End Sub

こんなマクロをボタンに登録して使うほうが現実的でしょう。
(PrintOutメソッド時の引数 ActivePrinter にはポート番号不要)



Wordも詳しくないのであまりわからないですが、ボタン方式なら
Sub test2()
  Dim aPrinter As String
  
  aPrinter = ActivePrinter
  ActivePrinter = "EPSON LP-S0000"
  ActiveDocument.PrintOut
  ActivePrinter = aPrinter
End Sub
こうかな。(WordのActivePrinter切替はポート番号不要みたい)

Excelの話です。

特定のファイルを『特定の端末で』印刷する時の設定だけなら、
その特定ファイルのThisWorkbookモジュールというものに Workbook_BeforePrint というイベントプロシージャを設定すれば良いです。
一例ですが

'ThisWorkbook Module
Option Explicit

Private aPrinter As String

Private Sub Workbook_BeforePrint(Cancel As Boolean)
  Const pPrinter = "EPSON LP-S0000 on Ne01:" '印刷したいプリンタ
  Dim x As Long
  
  With Application
    aPrinter = .A...続きを読む

Qフォルダ内のエクセル文書をすべて印刷したいデス

1つのフォルダに ファイルが100個くらいあり それぞれ 1~3シートのBookになています。
すべてのシートを印刷したいのですが 毎回 ファイルを開いてシートを選択しないとできません。

一括で処理する方法をご存知の方 教えて頂けないでしょうか。
(>_<)よろしくお願いしますぅぅ

Aベストアンサー

>まだ使い方が分かりません。。

エクセルを開いて、[Alt] + [F11] でマクロを編集する画面(VBE)が現れます。
その画面で、[挿入] - [標準モジュール] を選択すると、マクロを記述する画面が現れます。

そこに、Sub ~ End Sub までの行をコピーして貼り付けてください。

一行目の「Sub test()」の "test" の文字は任意に書き換えできます。「一括印刷」などの解りやすい名前にしても良いでしょう。

「Fol = "C:\Tmp"」の "" の内側には、ファイルが入っているフォルダのフルパスを書き込んでください。

実行するには、マクロ文中にカーソルを置いて、VBEの[|>](横向き三角ボタン)をクリックすれば実行できます。
若しくは、エクセルの画面で [Alt] + [F8] で実行するマクロを選択する画面が現れます。

まずは、適当なフォルダを作成し、印刷対象ファイルを数個置いて、そのフォルダを対象にして実行テストをして見てください。

参考URL:http://t_shun.at.infoseek.co.jp/My_Page/Excel-VBA/vba_page03.htm

>まだ使い方が分かりません。。

エクセルを開いて、[Alt] + [F11] でマクロを編集する画面(VBE)が現れます。
その画面で、[挿入] - [標準モジュール] を選択すると、マクロを記述する画面が現れます。

そこに、Sub ~ End Sub までの行をコピーして貼り付けてください。

一行目の「Sub test()」の "test" の文字は任意に書き換えできます。「一括印刷」などの解りやすい名前にしても良いでしょう。

「Fol = "C:\Tmp"」の "" の内側には、ファイルが入っているフォルダのフルパスを書き込んで...続きを読む

Q印刷マクロ【エクセル】エクセルからワードを印刷する

タイトルの件、質問します。

下記の条件で、エクセルを開き、下記の3つの書面を
印刷する、マクロはできますか??

●エクセルブック【Sheet1】【Sheet2】
●ワード【文書1】
※ワードは開いていません。閉じたまま。
※ワードとエクセルブックは同じフォルダ内にあります。

ご存知の方、いらっしゃいましたら、宜しくお願いいたします!!

Aベストアンサー

マクロはエクセル側に書くんですね?
エクセルから開いていないワードを開き、印刷してワードは終了させればいいのですね?
エクセルのSheet1、Sheet2もPrintするんですね?

一例です。

Sub Word_Print()
  Dim wd As Object
  Set wd = CreateObject("Word.application")
  wd.Visible = True
  wd.documents.Open Filename:=ThisWorkbook.Path & "\文書1.doc"
  wd.ActiveDocument.PrintOut Background:=False
  wd.Quit
  Set wd = Nothing
  Sheets(Array("Sheet1", "Sheet2")).PrintOut
End Sub

Q複数のExcelをバッチファイルのように印刷

複数のフォルダに入っているExcelを順番にpdfに印刷していきたいのですが、何か良い方法ありますでしょうか?有償ソフトでもかまいませんので、方法ご存知の方、お教えください。
スクリプトでもマクロでも何でも良いです。

Aベストアンサー

下記URLのページの過去ログにマクロの回答がありました。

「フォルダ内のエクセル文書をすべて印刷したいデス」
http://oshiete.goo.ne.jp/qa/1517036.html


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング