Google(Gmail、連絡先、カレンダー)からMS ExchangeおよびOutlookに切り替えた後、ほとんどすべてのカレンダー「連絡先の誕生日とイベント」がありません。カレンダーでは、同じ名前のイベントがアドレス帳から自動的に作成されました。 連絡先を編集するときに誕生日レコードを作成する標準のOutlook機能は、私には向いていませんでした。 通常、生年月日と記念日の新しい連絡先は、ActiveSyncプロトコルを介してExchangeに接続されたアカウントの携帯電話で作成されます。 このデータ入力方法では、カレンダーにエントリは作成されません。
そのため、VBAスクリプトが記述されました(インターネット上で見つかった単一の無料ソリューションが私の機能に合っていなかったため)。これは次のことを行います。
-アドレス帳のすべての連絡先の誕生日と記念日を再保存します(したがって、メインカレンダーのネイティブOutlook機能を使用して、連絡先の誕生日と記念日に関するエントリが作成されます)。
-そのようなイベントに関するすべてのレコードを標準カレンダーからユーザーが指定したものに移動します(すでにレコードでオーバーロードされているメインカレンダーを詰まらせないように)。
-次のように、連絡先「Store as」のレコードを修正します(ご存じのとおり、iOSとAndroidはMicrosoft Exchangeアカウントのこのフィールドでは正しく動作しません):フィールド「Name」または「Last name」に値が含まれる場合、「Store as」が値を取得します「名姓」、そうでない場合は「組織」(これは、「ピザ配信」などの「名」ではなく、「組織」フィールドにサービスおよびすべての種類のオフィスの名前を保存する場合に特に便利です)。
このようなアルゴリズムが機能するためには、追加のソフトウェアをインストールする必要はありません。
必要な作業は、2つのアクションだけです。未署名のマクロの実行を有効にし、Outlookのクリップボード(CTRL-C、CTRL-V)を介してスクリプト自体をコピーします。
署名されていないマクロを有効にするには、
1. Outlookで、[ファイル]-> [設定]-> [セキュリティセンター]-> [セキュリティセンターの設定]に移動します。

2.マクロオプション->「すべてのマクロの通知」を選択します。

次の手順は、スクリプト自体(マクロ)をOutlookに挿入することです。
これを行うには、OutlookでALT-F11を押します-Microsoft Visual Basic for Applicationsエディターに入ります-> [プロジェクト]セクションで、[ThisOutlookSession]を選択します。

そして、開いたウィンドウで、スクリプトを貼り付けます:
Sub olRobot()
保存し、エディターを閉じてOutlookに戻ります。
残っているのは、このスクリプトを実行することだけです。 これを行うには、ALT-F8を押し、「ThisOutlookSession.olRobot」を選択して、「実行」ボタンをクリックします。

スクリプトのプロセスで、ダイアログボックスが開き、誕生日と連絡先の記念日のエントリを配置するカレンダーを指定するように求められます。


経験豊富なユーザーは、スクリプトの本文で主要な情報を取得するさまざまな方法に注意してください。
メインカレンダーにそのようなイベントに関する誤ったエントリがあった場合-このスクリプトをもう一度実行すると、それらが修正されます。
ALT-F8を押して開始し、カレンダーをキャンディーのように見せます。
お楽しみください!