Microsoft Office Outlook 用の VBA プロジェクトがあり、NetOffice を使用して Outlook アドインとして書き直したいと考えています。
転送したいVBAコードの一部を次に示します。
Dim objNS As Outlook.NameSpace
Set objNS = Application.GetNamespace("MAPI")
Set m_colCalendarItems = objNS.GetDefaultFolder(olFolderCalendar).Items
Application
実行中の Outlook アプリケーションを表します。
NetOffice のそれぞれのコードは次のようになります。
Outlook.Application objApp = Outlook.Application.GetActiveInstance();
Outlook._NameSpace objNS = (Outlook._NameSpace)objApp.GetNamespace("MAPI");
m_colCalendarItems = (Outlook.Items)objNS.GetDefaultFolder(OlDefaultFolders.olFolderCalendar).Items;
かなり多くのキャスト、確かにこれはより適切に処理できます。objApp
しかし、主な問題は、最初の行 ( is null )で実行中のアプリケーションへの参照を取得できないことです。このコードはAddin_OnStartupComplete
ルーチンにありますが。
これをより適切に設定する方法に関するヒントはありますか?