問題タブ [outlook-2016]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
vbscript - Windows 10 (64 ビット) システム トレイに自動的に最小化された Outlook 2016 (64 ビット) を起動します - アクティブなエクスプローラー オブジェクトが見つかりません
ブート/ログオン時の Outlook 2016 の自動起動に問題があります。これは、Windows システム トレイに最小化された Outlook を起動することを目的としています。これにより、Windows 10 の起動時に呼び出されるとメールがメール アカウントによって収集されます (NB . この場合はすべての POP.) プログラムはシステム トレイに常駐し、ユーザーが要求するまで非表示のままです。
以下の .vbs スクリプトは必要に応じて機能しますが、多くの場合、2 つの望ましくない問題が発生します。
システム トレイの Outlook アイコンには、「別のプログラムが Outlook を使用しています。プログラムを切断して Outlook を終了するには、Outlook アイコンをクリックし、[今すぐ終了] をクリックしてください」というメッセージとともに「歯車」オーバーレイが表示されます。
[Outlook を開く] コンテキスト メニュー (トレイの Outlook アイコンを右クリック) 項目から Outlook を開こうとすると、「アクティブなエクスプローラー オブジェクトが見つかりません」というメッセージが表示されるダイアログ ボックスが表示されます。応答で [OK] オプションをクリックすると、Outlook が起動します (ただし、問題 1 - コグ オーバーレイ) は残ります。
デスクトップから Outlook を通常どおり起動した場合は、どちらの問題も発生しないため、.vbs スクリプトが原因であると思われます。過去に、このスクリプトをスタートアップ メニューのショートカットと hkcu の「実行」レジストリ エントリの両方として正常に使用しました (以下も参照してください: https://superuser.com/questions/467809/start-outlook-automatically-in-tray )。 .
正しい機能を達成するために、誰かが原因を提案したり、代わりに適切なコードリビジョンを提案したりできますか? 重要な場合、Windows 10 は 64 ビット Pro であり、インストールされている Office (Outlook を含む) のバージョンも 64 ビットです。
これは、.vbs スクリプトによって呼び出されるコードです。
オプション明示
週末にこの問題に何時間も費やした結果、問題を解決し、すべてが意図したとおりに機能していると思いました。
同様のコード サンプルを使用して、新しいスクリプトをコンパイルし (以下を参照)、スタートアップ フォルダーのショートカットとして、また HKCU レジストリの「実行」ブランチへのエントリとして適用しました。
さて本題!64 ビット Office スイートの一部として Outlook 2016 64 ビットがインストールされた 2 つの別々の Windows 10 Pro (どちらも 64 ビット アーキテクチャ) システムでスクリプトをテストすると、一方のシステムではスクリプトが問題なく実行され、もう一方のシステムでは次のランタイムが表示されることがわかりました。エラー:
スクリプト: D:\Neil's Files\Neil's Filing Cabinet\Neil's Emails\Start Outlook Minimized to Tray\Start Outlook 2016 Minimized To Tray.vbs
行: 11 文字: 5 エラー: ActiveX コンポーネントはオブジェクトを作成できません: 'GetObject' コード: 800A01AD ソース: Microsoft VBScript ランタイム エラー
以下の改訂されたスクリプトにはパス参照が含まれていないため(これらは Outlook.exe に関するコードによって直接処理されるため)、ショートカットの配置またはレジストリ文字列のデータ要素としてのいずれかの形式が使用されます。
ただし、システムにはいくつかの違いがあります。比較のために、ここで関連性があると思われるものを要約します。
システム 1: (問題のシステム) は X58 Asus P6T7、Intel i720 成熟した PC で、多くのプログラムがインストールされています。具体的には、Outlook 2016 には同じ 12 個のアドインがインストールされていますが、さらに起動時に起動する 2 つの関連プログラム、4team のエンタープライズ エディションがあります。 Sync2 for Microsoft Outlook および安全な PST バックアップ。さまざまなアドインを使用した Outlook スタートアップと同様に、起動時間はかなり長くなります (許容範囲内です)。
システム 2: 現在の世代の Asus X99-Deluxe、i7 5930 の新しいビルドの PC で、MS Office、Adobe CC、およびいくつかのユーティリティを保存して、まだほとんどインストールされていません。
システム 1 の場合、Outlook は意図したとおりに自動起動しますが、スプラッシュ画面のロード中 (アドインのロード中) に実行時エラーが表示されますが、Outlook は引き続き完全に開きますが、最小化に失敗します.....
これは、障害のあるコードがウィンドウをアクティブにするセクションであることを示唆していますが、上記のエラーメッセージは「ActiveX コンポーネントはオブジェクトを作成できません: 'GetObject'」を参照しており、代わりにコード行「Set OLObj = GetObject( "","Outlook.Application")"??
うまくいけば、誰かが同様のセットアップでコードをテストし、レポートを返すことができますか? または、何が起こっているのか、どうすれば解決できるのかを教えてください。もちろん、提案されたコードの改善も歓迎します!
** クイック アップデート ** HP Elitebook 8440P ラップトップでテスト済み - Office 64 ビット + 同じ 12 個の Outlook アドオンを搭載した Windows 10 Pro 64 ビット - 意図したとおりに機能します.....
** さらなる更新 ** 2 台目の HP Elitebook 8440P ラップトップでテスト - Office 64 ビット + 同じ 12 個の Outlook アドオンを搭載した Windows 10 Pro 64 ビット - 上記のランタイム エラーが再び発生しました.......なぜこれらの結果が発生?? 誰か考えはありますか???
以下のコードは、同じ Outlook 自動開始条件を求めている他のユーザーのために、「現状のまま」提供されています。システム 2 でのテストは、それが機能することを示しているので、未解決の問題が解決されるまで、他の人が同様の成功を収めることを願っています。
注: Outlook 起動ウィンドウのサイズ (自動最小化の前の 10 秒間の一時停止中) を調整して、個人の好みを反映するには、次のコード行の数値を変更します。
WshShell.Run "OUTLOOK.EXE"、3、false
ウィンドウ サイズを最大化するには、値を 3 に変更します ウィンドウ サイズを元に戻すには、値を 2 に変更します
Microsoft の "The Scripting Guys" フォーラムの jrv に感謝します。彼は親切にも以下の改訂 (簡略化) コードを提供してくれました。元のコードと同じように、以前と同じ 2 つのシステムで問題なく動作し、他の 2 つのシステムでもう一度エラーが発生したことを報告できます...非常に困惑しています!!
実行時エラー:
スクリプト: D:\Neil's Files\Neil's Filing Cabinet\Neil's Emails\Start Outlook Minimized to Tray\Start Outlook 2016 Minimized To Tray.vbs
行: 3 文字: 5 エラー: ActiveX コンポーネントはオブジェクトを作成できません: 'Outlook.Application' コード: 800A01AD ソース: Microsoft VBScript ランタイム エラー
改訂されたコード:
vba - Outlook 2016 ルールの「スクリプトとして実行」機能を置き換える方法は?
「スクリプトとして実行」オプションがシステムで削除されたため、無効になっている Outlook の「スクリプト」モジュールが多数あります。
アクティブなプロジェクトの「スクリプトとして実行」ファイル処理の例:
次の NewMailItem 検出コードを試してみましたが、間違ったフォルダーにデータをスクランブルしており、1 回の試用版を公開したときに誤って一部を削除または上書きしてしまいました (すべての安全性とエラー処理コードが配置されていませんでした)。これは、 https ://www.slipstick.com/developer/processing-incoming-e-mails-with-macros/ からの未調整の生コードです。
デバッグスクリプトで「エコーアウト」するのではなく、それに基づいて行動する(別のルーチンを呼び出す)必要があるだけです。