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」のようなレガシー機能が今でも活用できるのはなかなか面白いですね。

[Office 2013]ファイルパスワードのエスクローキー機能前のページ

[Office用アプリ]野良アプリのススメ次のページ

関連記事

  1. Office関連

    Excel Services JavaScript APIを試してみました(1)

    前回の記事で紹介した「ExcelMashup.com」、このサイトによ…

  2. Office関連

    CDOを使ってGmail送信を行うVBAマクロ(UTF-8対応版)

    2年ほど前にCDOを使ってGmail送信を行うVBAマクロについて記事…

  3. Office関連

    [リボン・カスタマイズ]グループの表示・非表示をトグルボタンで切り替える。

    数年前に書いた記事に下記コメントをいただきました。Excelに…

  4. Office関連

    Office文書をパスワード付きPDFに変換するVBAマクロ

    4年ほど前に書いた、下記記事のマクロがWordでも使えるか?との質問を…

コメント

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

  1. 2013年 8月 11日

Time limit is exhausted. Please reload CAPTCHA.

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

Translate

最近の記事

アーカイブ

PAGE TOP