プロが教えるわが家の防犯対策術!

どうもこんにちは。

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

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

A 回答 (2件)

こんばんは。



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

http://support.microsoft.com/default.aspx?scid=k …

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

'--------------------------------------------------
' 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 として保存して、オプションにファイル名を指定して実行してみて下さい。
デフォルトのプリンターに出力される、、、はずです。
    • good
    • 1
この回答へのお礼

回答ありがとうございます。

VBSを使用すればできるのですね。
このコードを参考にスクリプトを作成しました。

ありがとうございました。

お礼日時:2007/02/08 11:34
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

VBSで印刷用のスクリプトを書くことにしました。

お礼日時:2007/02/08 11:35

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

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