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

    フッターにページ番号と総ページ数を挿入するWordマクロ

    以前書いた、フッターに「ページ番号 / 総ページ数」を挿入するWord…

  2. Office関連

    日本語の文法上の誤りを列挙して修正候補をコメントとして追加するWordマクロ

    前回の記事の関連で、今度は日本語の文法上の誤りを列挙して修正候補をコメ…

  3. Office関連

    [Office]「タッチ」タブの正体!?

    最近下記のようにOfficeのリボンにある「タッチ」タブについての質問…

  4. Office関連

    テキストボックスの中にある表を操作するWordマクロ

    Yahoo!知恵袋で、「Wordマクロでテキストボックスの中にある表の…

コメント

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

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

Time limit is exhausted. Please reload CAPTCHA.

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

Translate

最近の記事

アーカイブ

PAGE TOP