Office関連

[Outlook VBA]最小化起動時にApplication.Startupイベントが発生しない。

Outlook起動時、すべてのアドインが読み込まれた後に発生するApplicationオブジェクトのStartupイベントですが、VBAフォーラムに「Outlook を最小化して起動するとVBAのApplication_Startupイベントが呼ばれません」との質問がありました。

下記のような簡単なコードでテストしたところ、

'ThisOutlookSession
Option Explicit

Private Sub Application_Startup()
  MsgBox "Application_Startup", vbSystemModal
End Sub

通常のウィンドウサイズでOutlookを起動した場合は問題なくメッセージボックスが表示されましたが、最小化状態でOutlookを起動した場合には、たしかにStartupイベントは発生せず、メッセージボックスも表示されませんでした。

'ThisOutlookSession
Option Explicit

Private Sub Application_Startup()
  Application.ActiveExplorer.WindowState = olMinimized
End Sub

のように、通常のウィンドウサイズで起動しておいて、Startupイベント処理内でウィンドウを最小化させれば一応は対応できるのですが、VBAフォーラムの質問のように、“OSのスタートアップ時だけ最小化起動し、それ以外は通常ウィンドウで起動したい”という場合には使えません。

そこで考えたのがOutlookのautorunスイッチを使う方法です。

'ThisOutlookSession
Option Explicit

Private Sub Application_Startup()
  MsgBox "Application_Startup", vbSystemModal
End Sub

Private Sub MinimizeWindow()
  Application.ActiveExplorer.WindowState = olMinimized
End Sub

上記のようにコードを設定しておいて、スタートアップに置くショートカットファイルのリンク先を「“C:\Program Files\Microsoft Office\Office14\OUTLOOK.EXE” /autorun Project1.ThisOutlookSession.MinimizeWindow」(OUTLOOK.EXEの場所は環境によって異なります)のようにすれば、スタートアップ時のみautorunスイッチが働いて、ウィンドウを最小化するMinimizeWindowプロシージャが実行されるようになります。

OneNote + Google Apps Scriptで定期的にWebサイトのキャプチャーを撮る方法前のページ

UIAutomationClient参照時にDLL読み込みエラーが発生した時の対処法次のページ

関連記事

  1. Office関連

    Microsoft Graph SDK for PHPを使ったAPIの呼び出しサンプル

    知らない間に(恐らくBuild 2017のタイミングに合わせて)Mic…

  2. Office関連

    Gmail APIを使ってメール送信するVBAマクロ(3)

    前回、前々回とGmail APIを扱ってきましたが、今回は前々回の記事…

  3. Office関連

    関数一覧(Excel 2010)

    関数の挿入ダイアログから抽出したExcel 2010の関数情報をリスト…

  4. Office関連

    「もし宇宙人が地球レポートをまとめたら」動画公開

    PLAY! Office第三弾、「もし宇宙人が地球レポートをまとめたら…

  5. Office関連

    Office 365 APIをVBAから呼び出す(3)

    前々回の記事でOffice 365とAzure ADの紐づけを、前回の…

  6. Office アドイン

    [Office用アプリ]Office ストアのURLリスト

    Microsoft Office StoreのURLをリスト化しました…

コメント

  1. この記事へのコメントはありません。

  1. この記事へのトラックバックはありません。

Time limit is exhausted. Please reload CAPTCHA.

※本ページはプロモーションが含まれています。

Translate

最近の記事

アーカイブ

PAGE TOP