Office関連

Wordの自動実行マクロ

たまたま使用する機会があったのでメモ書き程度に情報を残しておきます。

Wordの開発者用リファレンス > 概念 > 自動実行マクロ でも紹介されているように、Wordには下記5つの自動実行マクロが用意されています。

マクロ名 マクロが実行されるとき
AutoExec Word を起動するとき、または全文書対象のテンプレートを読み込むとき
AutoNew 文書を新しく作成するとき
AutoOpen 既存の文書を開くとき
AutoClose 作業中の文書を閉じるとき
AutoExit Word を終了するとき、または全文書対象のテンプレートの読み込みを解除するとき

自動実行マクロより

イベントを使用して Microsoft Word を制御する」によると上記マクロの一部はDocumentオブジェクトのイベントに置き換えられたレガシー機能になるわけですが、Auto Macros(Word 2013 developer reference)にも記載されているように、最新版のWord 2013でもサポートされています。

文書を開いたとき、あるいは閉じたとき等、任意のタイミングでマクロを実行したい場合は上記マクロがあることを覚えておくと良いですね。
そしてもう一つ覚えておきたいのが自動実行マクロの抑制方法で、自動実行マクロにも書いてある通りですが、

・マクロが実行されるタイミングでShiftキーを押す。
・マクロが実行される前にWordBasicオブジェクトの「DisableAutoMacros」ステートメントを実行する。

※ 例えばAutoCloseマクロが設定された文書を閉じる際に下記のようなコードを実行するとAutoCloseマクロが実行されなくなります。

Public Sub Sample()
  Application.WordBasic.DisableAutoMacros 1 '「1」は省略可
  ActiveDocument.Close
End Sub

※ 再度マクロを実行できるようにしたい場合は「WordBasic.DisableAutoMacros 0」を実行するか、Wordを再起動する必要があります。

といった方法で自動実行マクロが実行されないようになります。
DisableAutoMacros」のようなレガシー機能が今でも活用できるのはなかなか面白いですね。

関連記事

  1. アイコン一覧

    Office 2013 アイコン一覧(S)

    ・Office 2013 アイコン一覧 NUM…

  2. Office関連

    [Office 2013]コントロール日英比較表

    日本語版と英語版のOffice 2013でコントロール(コマンド)名や…

  3. Office関連

    指定したセル範囲をUTF-8やEUC-JP等のテキストファイルとして出力するExcelアドイン

    以前この記事で、指定したセル範囲をUTF-8やEUC-JP等のテキスト…

  4. Office関連

    「Excel VBAの神様 ボクの人生を変えてくれた人」(大村あつし著)レビュー

    ※ 下記レビューはあくまでも個人的な感想です。2015年9…

  5. Office関連

    【2017年7月版】ポータブル デバイスからファイルをコピーするVBAマクロ

    4年ほど前に、PCに接続したスマートフォン等のWindows ポータブ…

  6. Office関連

    VBAから扱えるDLLをC#で書いてみる。

    以前書いた記事でSharpDevelopを使ってExcel用のCOMア…

コメント

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

  1. 2013年 8月 11日

Time limit is exhausted. Please reload CAPTCHA.

最近の記事

アーカイブ

RapidSSL_SEAL-90x50
PAGE TOP