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

    ExcelとPowerPointに自動保存機能が追加されました。

    Excel 2016を使っていて、ふと気が付いたのが画面左上にある「自…

  2. Office関連

    モヤさまのショウ君にいろいろ喋らせるVBAマクロ(2)

    前回に引き続き、HOYAサービス株式会社様が公開されている「Voice…

  3. Office関連

    Office 2013 アイコン一覧(K,L)

    ・Office 2013 アイコン一覧 NUM…

  4. Office関連

    SharpDevelopでExcel用COMアドインを作成する方法

    「SharpDevelopのインストールと日本語化」で紹介しているSh…

コメント

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

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

Time limit is exhausted. Please reload CAPTCHA.

最近の記事

アーカイブ

RapidSSL_SEAL-90x50
PAGE TOP