Excell マクロを実行する VBSscript をまとめようとしています。このフォーラムの他のスレッドのスクリプトと、Web 上の他の場所にあるスクリプトをいくつか使用しました。
このフォーラムは、同様の質問を持つ他のユーザーにとって最も役立つフォーラムであることがわかりました。ここにいる専門家は、まさに専門家です。
私は脚本を書くのが初めてです。私の経験は、試行錯誤の過程でサンプル スクリプトをカット アンド ペーストすることに限られています。この特定のスクリプトでは、VBSscript から Excel マクロを実行するための正しい組み合わせが見つからないようです。
ここに私が現在実行しているコードがあります:
Set xlObj = CreateObject("Excel.application")
xlObj.Workbooks.Open "C:\Documents and settings\user\Desktop\Excel_macro_email.xls"
xlObj.Run "macro_email" 'name of macro
xlObj.ActiveWorkbook.Saved = True
xlObj.ActiveWindow.Close
xlObj.Quit
XLnow OnScript Editor を使用してスクリプトをコンパイル/デバッグしていますが、エディターには問題がありません。.vbs ファイルをダブルクリックすると、cmd ウィンドウがほんの 1 秒間ポップアップし、そこにいくつかの出力があることがわかりますが、閉じるのが速すぎて読み取ることができません。(結果をファイルに出力する方法も調査しましたが、道が進んでいます。これで頭がいっぱいになるかもしれません。
このスクリプトの修正を手伝ってくれる人はいますか? あなたが助けてコードを提案できる場合は、コードをスクリプトに配置する場所も含めてください。または、完全なスクリプトに含めることもできます。ここで見つけた提案をどうするかは、どのコードを使用するかという問題とほぼ同じくらい重要です。
ご協力いただきありがとうございます。専門知識がなくて申し訳ありません。最後に、少しの助けを借りて、私は経験によって学びます。
これは、以下に提案されているように、サブが追加されたスクリプトの更新です。
Sub OpenAndRun (Excel_macro_email)
Set xlObj = CreateObject("Excel.Application")
xlObj.Workbooks.Open "C:\Documents and Settings\user\Desktop\Excel_macro_email.xls"
xlObj.Run "Excel_macro_email.xls,macro_email"
xlObj.ActiveWorkbook.Saved = True
xlObj.ActiveWindow.Close
xlObj.Quit
End Sub
まだマクロを実行できません。cmd ウィンドウは以前と同じように一時的に開きますが、さようならが点滅しても出力が表示されません。
助言がありますか?
これは、この問題の解決策を投稿することです」
ご返信ありがとうございます。
このスクリプトの非公開バージョンを試しました。最新バージョンでは、おそらく役立つ「Sub」行と「End Sub」を追加しました。最終的な解決策は、Excel ファイルのファイル拡張子が .xls ではなく .xlsm であることを発見したときでした。その「m」(マクロが有効になっていると思います)を追加すると、最新バージョンのスクリプトが機能し始めました。
彼女は作業バージョンです:
Option Explicit
Dim xlApp, xlBook
Set xlApp = CreateObject("Excel.Application")
'~~> Change Path here
Set xlBook = xlApp.Workbooks.Open("C:\Users\Thomas\Desktop\Excel_macro_email.xlsm", 0, True)
xlApp.Run "macro_email"
xlBook.Close
xlApp.Quit
Set xlBook = Nothing
Set xlApp = Nothing
WScript.Echo "Finished."
WScript.Quit
これが同じ問題を抱えている他の人に役立つことを願っています。助けてくれてありがとう。