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プロシージャが実行されるようになります。

コメント

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

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

Time limit is exhausted. Please reload CAPTCHA.

おすすめ記事

アーカイブ

RapidSSL_SEAL-90x50
PAGE TOP