「お昼の放送」の思い出

ExcelVBAで、Oracleからデータを取得してブックを閉じるVBAを作成しています。
行いたい事は、このVBAが正常終了したか異常終了したかを判定したいのですが、ブックからの戻り値の返し方がわかりません。

ExcelVBA側
-------
Function Auto_Open()
Application.Visible = False
Application.ScreenUpdating = False

ret = RunExec() 'Oracleからデータ取得
If (ret <> True) Then
Auto_Open = False
Else
Auto_Open = True
End If

ActiveWorkbook.Saved = True
Application.DisplayAlerts = False
ThisWorkbook.Application.Quit

End Function
-------

このVBAをコマンドプロンプトから起動しても、正常時も失敗時も%ERRORLEVEL%が0になります。

ブックを閉じるときに戻り値を返す事はできないのでしょうか。

A 回答 (2件)

私も興味が有って、探してみました。


環境変数を取得することはできるようですが、設定は出来ないようです。

http://homepage1.nifty.com/rucio/main/technique/ …

で、この様なテクニックを見つけました。
参考までに。
http://www.kit.co.jp/vbit/QAndA02.htm#VBのアプリケーションの戻り値
    • good
    • 0
この回答へのお礼

返事が遅くなりましたが、アドバイスありがとうございました。
色々試しましたが、ご回答の通りできませんでした。
結局のところ、処理が成功したらファイルを出力して、それを戻り値の代わりに使うという方法を取りました。

お礼日時:2012/08/02 17:07

別のやり方としては、VBScript を使用する方法もあります。


Excel VBA の処理を VBScript に移植できれば(ちょっと面倒だとは思いますが)、
WScript.Quit()
で戻り値をセットすることが可能です。
    • good
    • 0
この回答へのお礼

返事が遅くなりましたが、アドバイスありがとうございました。
今回はExcelシートを使う必要がありVBScriptのみでは実現できなかったので、そちらの方法は使えませんでした。

お礼日時:2012/08/02 17:06

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

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


おすすめ情報