Toggle FullScreen
More Info

VBAでドキュワークスファイルをコマンドラインから印刷する

今回のスクリプトはわずか9行!!!

今まで提示してきたドキュワークス関係のスクリプトはAPIを使ったもので、宣言部が長かったり、ポインタを考慮したりと、ちょっとヘビーでした。それが楽しかったりもするのですが。

今回は、APIを使わず、スクリプトも実体はわずか9行!!!

即効性ありです。


会社でドキュワークスを使っていると、たくさんのドキュワークスファイルを一括して印刷したいことがあります。
エクスプローラからファイルを複数選択して右クリック→印刷って手もありますが、ここはもっとスマートにいきたい。

前回までのアノテーションシリーズでやったように、毎回特定の箇所をマスキングして、印刷って時に印刷作業だけ手動ってのはね。

やるからにはとことん全自動にしたいところ。


さて、XDWAPI仕様書に印刷関係の、XDWAPIではそんな関数は見当たりません。
なので、コマンドラインから印刷する方向で・・・

しかし、DocuWorks Viewerのコマンドを探してみたものの、見当たらず。

何とかならないかな。



基礎資料

動作確認環境

WindowsXP

Excel 2002 SP3

Fuji Xerox DocuWorks Viewer Version 6.2

参考資料

DocuWorksTM Development Tool Kit 6.2.5 リリースノート
(http://www.fujixerox.co.jp/download/soft/DocuWorks/pop/dwsdk625/Readme.html)
DocuWorks 6以前のSDKは(http://www.fujixerox.co.jp/download/soft/DocuWorks/download.html)からダウンロード。
DocuWorks 7のSDKは(http://www.fujixerox.co.jp/product/software/DocuWorks/download.html)からダウンロード。

サンプルスクリプト

Sub PrintOut_XDW()
Option Explicit
'==========================================
'コマンドラインからDocuWorksファイルを印刷する
'Written by tokidokidokin
'/sp コマンドで、通常使うプリンタに出力
'/spt コマンドで、指定したプリンタに出力
'==========================================
Const PrinterName As String = """Happy部99A"""
Const DriverName As String = """AA ApeosPort-Ⅲ 9999"""
Const PortName As String = """IP_99.99.99.99:"""

Dim Filename As String

    Filename = "D:\test001.xdw"
    Filename = Chr(34) & Filename & Chr(34)

Dim myShell As Object
    Set myShell = CreateObject("WScript.Shell")

' 「通常使うプリンタ」に出力
     myShell.Run ("Dwviewer.exe /sp " & Filename)
' プリンタを指定して出力
'     myShell.Run ("Dwviewer.exe /spt " & Filename & " " & PrinterName & " " & DriverName & " " & PortName)

End Sub



ヒントはDocuWorks API(XDWAPI)仕様書にあり

どこかにDocuWorks Viewerのコマンドないかなーと探していたのですが、手がかりになったのが、XDWAPIの仕様書。

「8.11.3 DocuWorks Viewerのコマンドラインを利用した印刷」には、DocuWorks Viewerの/sp、/spt コマンドを使って印刷できることが、さりげなく示唆されています。

引数はよく分からないものの、とりあえずやってみるか、とスクリプトを書いてみたら、案外あっさり動きました。

どうやら /sp コマンドで「通常使うプリンタ」として設定されたプリンタに出力し、/spt コマンドで指定したプリンタに出力するようです。
どちらも、ファイル選択のダイアログボックスからファイルを複数選択して印刷するときに、威力を発揮します。

あとは、サンプルスクリプトを利用状況にあわせてユーザー定義関数にするだけですね。


オフィシャルな資料を参照したわけでなく、あくまでTRY AND ERRORの結果ですので、思わぬ結果を引き起こすかもしれませんが、自己責任で試してみてください。

(どこかに公式資料があったら、ご連絡ください<(_ _)>)

スクリプトから操作する習慣がついていると、コマンドラインから使ったほうが何かと便利なこともあります。






FUJI XEROXさん、DocuWorks Viewerのコマンド、公開してくれないかなー。



Twitter from tokidokidokin
アーカイブ
Portfolio Categories
  • カテゴリーなし
Portfolio Tags