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関連

    手軽に参照設定するためのVBAアドイン

    thom氏のブログで面白い記事がありました。・VBA 参照…

  2. Office関連

    ノートを削除するPowerPointマクロ

    下記のコードは「Remove Notes Pages in Power…

  3. Office関連

    MicrosoftのDictateアドインを試してみました。

    Microsoftがハンズフリー入力をサポートするOffice用(Wo…

  4. Office関連

    VBE用のCOMアドインをメモ帳で作ってみる。

    “Officeアプリケーション用のCOMアドインをVisual Stu…

コメント

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

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

Time limit is exhausted. Please reload CAPTCHA.

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

Translate

最近の記事

アーカイブ

PAGE TOP