アクティブな Excel スプレッドシートを開いた状態でマクロをスタンドアロン ファイルとして実行する

アクティブな Excel スプレッドシートを開いた状態でマクロをスタンドアロン ファイルとして実行する

現在、スプレッドシートをダウンロードするマクロがあります更新: 自動的に開きます (保存されません) --当社のカスタム内部 Web インターフェイスから。スプレッドシート名は毎回変わります。現在の使用方法は、VBA エディターを開き、マクロを新しいモジュールにコピーしてから、マクロを実行することです。

次のような手順を実行するスタンドアロン ファイルを作成したいと思います。ワークブックを開いて、ファイルをダブルクリックします。

use open workbook私の考えでは、問題のワークブックを開くことしかできず、スタンドアロン ファイル コードは(非常に一般的)のようなものになると思います。

vbs について読みましたが、マクロを .txt から vbs に変更しただけで、明らかにまだ動作しません。誰か正しい方向を示してもらえませんか?

答え1

これを機能させることはできましたが、Office で「VBA プロジェクトを信頼する」設定を有効にする必要があり、安全ではないと思われるため、この方法は使用しませんでした。

https://security.stackexchange.com/questions/205803/is-it-safe-enable-trust-access-to-the-vba-object-model-microsoft-office/205814#205814

ただし、動作は次のようになります。

Dim  xlApp, xlBook

Set xlApp = getObject( , "Excel.Application")
Set xlBook = xlApp.ActiveWorkbook

xlBook.VBProject.VBComponents.Import "\\PATH\Module1.bas"
xlApp.Run "Sub_Name"
'objExcel.ActiveWorkbook.Close


xlApp.Application.Quit
WScript.Echo "Finished."
WScript.Quit

私が最終的にやったことは、カスタム「OfficeUI」を --> 経由で配布することでした。https://www.freesoftwareservers.com/display/FREES/Distributing+Macro+via+Add-In+-+Customized+Ribbon+-+Via+Batch

何らかの理由で、Web インターフェイスのリンクから Excel をロードするときに、XLSTART と Personal.xlsb の両方のファイルがロードされませんでした。ただし、OfficeUI のカスタム リボンはロードされました。Excel は「マクロ」について警告しませんでしたが、起動時にロードされなかったため、AddIn.xlam を XLSTART に配置しました。ただし、OfficeUI は file!Sub を直接呼び出すため、問題にはなりません。

関連情報