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

    Wordマクロで文字数を取得する方法をまとめてみました。

    「蛍光ペンでマークした部分の文字数をカウントするWordマクロ」で蛍光…

  2. Office関連

    ヘッドレス ChromeとSeleniumBasicでWebページ全体のスクリーンショットを撮る方法…

    先日、ヘッドレス ChromeでWebページ全体のスクリーンショットを…

  3. Office関連

    Office 365 unified APIをJavaScriptだけで呼び出す

    Microsoftの松崎さんのブログに下記の記事がありました。…

  4. Office関連

    ページ番号を取得するWordマクロ

    Wordマクロで選択位置のページ番号を取得する場合、簡単なのはSele…

  5. Office関連

    ランダムな文字列を生成するVBAマクロ

    文字数を指定して0-9,A-Zまでのランダムな文字列を生成するマクロで…

  6. Office関連

    選択中の図形の書式設定を一括変更するPowerPointマクロ

    PowerPointで複数の図形の書式を一つずつ変更するのが面倒だった…

コメント

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

  1. 2013年 8月 11日

Time limit is exhausted. Please reload CAPTCHA.

最近の記事

アーカイブ

RapidSSL_SEAL-90x50
PAGE TOP