- ベストアンサー
vbスクリプトからexcelのVBAを起動したい。
vbスクリプトからexcelのVBAを起動したいので、初心者ながら下記のようにコーディングしましたが、excelのVBA;main()が実行できません。 <excelのVBA;main()は単独では正常に起動します。> vbスクリプトからexcelのVBAの起動の方法を教えて下さい。 そのスクリプトをタスク(元旦)に起動したいです。 <vbスクリプト コーディング> dim exlApp On Error Resume Next set exlApp = createobject("Excel.Application") exlApp.visible = true exlApp.Workbooks.Open "C:\年賀状.xls" exlApp.run "Main" If Err Then WScript.Quit End IF If Not(exlApp Is Nothing) Then exlApp.Quit set exlApp = nothing End If
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
冒頭の『On Error Resume Next』をコメントアウトして どこでどのようなエラーが出ているのか確認しましょう On Errorなどのトラップはデバッグが仕上がってから有効にするか ある命令だけスキップしたい場所へOn ErrorResume Next と On Error Goto 0 をセットで使ってデバッグしましょう または On Error Goto ラベル として エラートラップルーチンを仕込んでおいて Err.Numberなどで スキップしてもいいエラーなのかを適切に判断し スキップする場合は Resume Next でとっらぷされた次の命令に返します 予定外のエラーなら MsgBoxやWScript.Echoなどでエラー表示をさせましょう
その他の回答 (3)
- pkh4989
- ベストアンサー率62% (162/260)
どれでも関係ないと思います。 以下のように変更してみてください。 例えば、EXCEL の起動するブック名「年賀状.xls」、実行するモジュール名「Sub Main()」 の場合、 dim exlApp dim exlBook set exlApp = WScript.CreateObject("Excel.Application") set exlBook = exlApp.Workbooks.Open ("C:\年賀状.xls",,True) exlApp.run "年賀状.xls!Main"
- pkh4989
- ベストアンサー率62% (162/260)
以下のようにブック名を付けてください。 exlApp.Run "年賀状.xls!Main"
お礼
ありがとうございます。 やはり開きません。 エクセルの年賀状.xlsのMainは、FUNCTION,PUBLIC SUB,SUB どれでもいいのでしょうか。
- redfox63
- ベストアンサー率71% (1325/1856)
モジュール名つきで指示しましょう 標準モジュールなら exlApp.Run "Module1.Main" ワークシートのPublic Subプロシージャなら exlApp.Run "Sheet1.Main" といった具合で ・・・
お礼
ありがとうございます。 一瞬、エクセルが開いて閉じて終了します。ブックは開いてないようです。
お礼
デバッグする。 基本ですね。 ありがとうございました。 『On Error Resume Next』をコメントアウトしてみると、 "年賀状.xlsがありません。"と出ました。"年賀状.xls"が何か不正な文字だったのか?一度、名称を換えもう一度"年賀状.xls"に書き直すと 出来ました。