私は最初にOutlookにマクロを書いており、いくつかのExcel機能が必要です。だから、私はツール>参照に移動し、 "Microsoft Excel 15.0オブジェクトライブラリ"を選択し、直接のウィンドウでそれをテストします。以下は、私はすぐに窓に書いたものです:Outlook VBAでExcel関数を呼び出すときに時間がかかるのはなぜですか?
? WorksheetFunction.Weekday(Now(), 2)
あり、それは答えを表示するためのいくつかの観察可能なものの、最小限の遅れが(ちょうど0.2S以下であってもよい)であるが、私は同じことをしようとした場合、このケースではありません優れた私はこれがマクロをあまり傷つけないと認めなければならないが、私は好奇心が強い。なぜOutlookはワークシート関数オブジェクトを遅くしましたか?ライブラリを間違った方法で追加していますか?
更新:非修飾参照を防ぐ約 、WorksheetFunction
オブジェクトのExcel Application
オブジェクトのメンバーである
Dim oExcel As Excel.Application
Set oExcel = CreateObject("Excel.Application")
'main body here
oExcel.Quit
Set oExcel = Nothing
そのような非修飾リファレンスを使用すると、Excelタスクがバックグラウンドで実行されている可能性があります。 – Rory
コードが正規化されていない参照である理由は何ですか? – betapig
WorksheetFunctionオブジェクトとApplicationオブジェクトは両方ともグローバルのメンバーです。つまり、自動的に自分自身を作成します。変数への参照を割り当てないと、完了したらアプリケーションを破棄する信頼できる方法がありません。 – ThunderFrame