PB 電子会議室

コメント

発言No. 更新日 題名(クリックすると発言内容と関連するコメントが表示されます)
20535 03/11/05 11:36:19 PB7.0: EXCEL操作でのエラー処理について(OLE) By mamente2002

カテゴリ:スクリプトの記述
日付:2003年11月05日 11:36 発信者:mamente2002
題名:PB7.0: EXCEL操作でのエラー処理について(OLE)


今、OLEを使用したEXCEL操作スクリプトを記述しています。
悩んでいるのは、オブジェクトのメソッド実行後のエラー処理の仕方です。

以下に、今作成中のコードを記述しました。例えばその中の文においてでSaveAs
とかに存在しないパスのファイル名を指示した場合
実行時エラーとして、アプリケーションオブジェクトのsystem_errorイベントが
トリガされてしまい、SaveAsを呼び出した後に流れません。errorオブジェクトを使用すれば
system_errorイベントスクリプトで処理できそうですが、SaveAsの成功・非成功
はSaveAsを呼び出した側で処理したと考えております。

VB、VBAとかであれば

On Error Resume Next

objBook.SaveAs(\"c:\\test.xls\")

if err.number <> 0 then
   msgbox \"エラー\"
   exit sub
end if

のイメージです。
どんな事でも構いませんので、ご存知であればご教示宜しくお願いします。


///PBコード
OleObject ExcelObject
OleObject objBook

ExcelObject = CREATE OLeObject
ret_cd = ExcelObject.ConnectToNewObject(\"Excel.Application\")

if(ret_cd < 0)then
MessageBox(\"test\",\"NO\")
return
end if

objBook = ExcelObject.Workbooks.Add()
ExcelObject.Visible = false

objBook.Worksheets(1).Range(\"A\" + string(i)).Value = Right(\"00000\" +String(i),5)
objBook.Worksheets(1).Range(\"A\" + string(i)).NumberFormatLocal = \"@\"
objBook.Worksheets(1).Range(\"A\" + string(i)).Borders(7).LineStyle = 1
objBook.Worksheets(1).Range(\"A\" + string(i)).Borders(8).LineStyle = 1
objBook.Worksheets(1).Range(\"A\" + string(i)).Borders(9).LineStyle = 1
objBook.Worksheets(1).Range(\"A\" + string(i)).Borders(10).LineStyle = 1

objBook.SaveAs(\"C:\\TEMPL\\Q.XLS\")

※ここでエラー処理を行いたいです。

ExcelObject.Quit()

SetNull(objBook)
SetNull(ExcelObject)

DESTROY ExcelObject

GarbageCollect()



付加情報:

PowerBuilder Version (記載なし)

Client SoftWare

OS Windows98
DBMS (記載なし)
Browser InternetExplorer5.X

Server SoftWare

OS Solaris
DBMS Oracle 8.0
WebServer (記載なし)

PowerSpaceの運営は、パワーフューチャー株式会社が行っております。
Copyright © 2013 Power Future Co., Ltd.