- PR -

Javaを使ってExcelを印刷

投稿者投稿内容
かつのり
ぬし
会議室デビュー日: 2004/03/18
投稿数: 2015
お住まい・勤務地: 札幌
投稿日時: 2008-11-12 13:28
set excel = GetObject("c:\aaa.xls")
excel.PrintPreview

どういうオブジェクトでどういう操作ができるのかについては、
Excelでマクロの記録を行えば、大体わかるかとおもいます。
PicKel
会議室デビュー日: 2008/11/10
投稿数: 6
投稿日時: 2008-11-12 18:30
preview.vbsを作成しました。

コード:

Dim excel
On Error Resume Next
Set excel = GetObject(, "Excel.Application")
If Err.Number <> 0 Then
Set excel = CreateObject("Excel.Application")
End If
excel.Visible = True
excel.Workbooks.Open "C:\Documents and Settings\〜.xls"
set excel = GetObject("C:\Documents and Settings\〜.xls")
excel.PrintPreview



おかげさまで無事印刷プレビューを拝むことができました。
感動しました。ありがとうございます。

あとはjava.lang.Runtimeで起動させるだけ、と思ったのですが、
またはまりました。IOExceptionが出て動かすことができません。

コード:

try {
Process theProcess = Runtime.getRuntime().exec("preview.vbs");
} catch (IOException e) {
e.printStackTrace();
}



http://javafaq.jp/S103.html

上記のページを読んでexec()の引数はファイルパスの代わりにコマンドを
書くのだとはわかったのですが、肝心の解決法がよく理解できません。
システムコマンドとはDOSコマンドのことでしょうか?

何度も質問してしまい申し訳ありません。
よろしくお願いいたします。



[ メッセージ編集済み 編集者: PicKel 編集日時 2008-11-12 18:31 ]
かつのり
ぬし
会議室デビュー日: 2004/03/18
投稿数: 2015
お住まい・勤務地: 札幌
投稿日時: 2008-11-12 21:17
単に開くだけでいいなら、折角Desktop#print()をやってみたのですから、
Desktop#open()を使ってみましょうよ。

とはいえ、きちんとファイル名等の引数を含めたコマンドとして実行する場合、
CSCRIPT.EXEやWSCRIPT.EXEを経由して実行する必要があるかと思います。
.vbsファイルは直接プロセスを作成できる実行ファイルではないです。
単にファイルの関連付けで実行されているだけに過ぎません。

コード:
Runtime.getRuntime().exec(new String[]{"CSCRIPT.exe","c:\\test.vbs"});


という感じにする必要があります。
PicKel
会議室デビュー日: 2008/11/10
投稿数: 6
投稿日時: 2008-11-14 14:18
確かに動きました。
CSCRIPT.EXEなどを使うのですね。
勉強になりました。

もう少し自己解決できるよう努力したいと
思います。
本当にありがとうございました。
また機会がありましたら、よろしくお願い
いたします。

スキルアップ/キャリアアップ(JOB@IT)