お仕事Tipsトップ >> Word:マクロの使い方と登録方法

このエントリーをはてなブックマークに追加

■Word:マクロの使い方と登録方法
■Wordの「マクロ」とは

 Excelのマクロは業務効率化には不可欠の存在ですが、Wordとパワーポイントのマクロはほとんど使われていないようです。Word / パワポのマクロも、Excelと同じVBA (Visual Basic for Applications)というプログラミング言語で記述します。このため、ExcelでVBAをいじったことがある人なら、少し勉強すれば、Wordやパワポでも処理の自動化が楽しむことができます。


 ここではExcelのマクロをご存じの方のために、Wordマクロの基本について説明してみます。

 

 下のサンプルコードは、WebページをコピーしてWordに貼り付けたとき、不要なリンクや文字の書式を一括解除するマクロです。何ページもの文書を手作業で解除するのは大変ですが、この数行のコードでどんな大きな文書でも一発で処理することができます。

 ▼ 全てのリンクを解除し、標準書式に戻すマクロ(文頭に ' のある行は説明文)

Option Explicit '必ず書くおまじない

 

' Sub ×××( )  〜 End Sub の間が一つのマクロ(サブルーチン)です。

Sub リンク解除()

Dim aField As Field

'文書内のハイパーリンクを解除

For Each aField In ActiveDocument.Fields

aField.Unlink

Next

'文書全体の書式をクリア(標準書式に戻す)

Selection.WholeStory

Selection.ClearFormatting

End Sub

 

一発で
変換!
→→→→

 

 自分でWordのマクロをプログラミングしてみたい方は、下記の入門書やサイトを参考にしてください。
  残念ながら、Wordマクロの入門書は、国内でも海外でもほとんど出ていません。VBAが初めての人は、遠回りでも情報が多いExcelでマクロに慣れてからWordに挑戦するほうがいいかもしれません。(私もそうでした(^_^;)


  【入門書】  

最速攻略 Word マクロ / VBA徹底入門
〔Word 2013/2010/2007対応版〕

土屋 和人/技術評論社  Amazonで詳細確認
 
 2013年刊行の最新の入門書で、Word 2013まで対応しています。著者は長く自サイトでWordマクロを解説しており、私も参考にさせていただきました。本書はその解説を全面改訂して書籍化したものです。よく練り込まれ初心者から中級者まで使える解説書として、これからのWordマクロ入門の定番になりそうです。

Wordのマクロ実践サンプル集
[Word2010/2007/2003/2002対応]

西上原 裕明/技術評論社   Amazonで詳細確認
 
 国内のWordマクロの入門書の草分け的存在です。VBAの文法、VB Editorの使い方から情報の調べ方まで、初心者がつまずきそうな所はきっちり押さえてあります。ある程度分かっている人にも、リボンのカスタマイズなどのTipsは参考になると思います。著者は他にもWord解説書を多数書いており併せて読むとWordへの理解が深まります。

 

  【解説サイト】

■マクロの動かし方

 まずは、登録済みのマクロの動かし方です。
  最初に、ショートカットキーでの起動を覚えましょう。簡単なうえ、WordでもExcelでも、また、どのバージョンでも同じ操作が使えるからです。

  1. Wordでショートカットキー  Alt  F8  を押すと、下図のマクロ実行ダイアログが開きます。

    ※ Office 2003以前は、 メニューから、[ツール]-[マクロ]-[マクロ]でも開けます。
    ※ Office 2007以後は「開発」タブから[マクロ]でも開けます 。  
    (注) 開発タブは標準では非表示です。以下により、常時表示に設定できます。
    ・2010の場合…[ファイル]タブ―[Wordオプション]でオプション画面を開き、[リボンのユーザ設定]
      で開発タブにチェックを入れる。
    ・ 2007の場合…[Officeボタン]−[Wordオプション]でオプション画面を開き、[基本設定]
     で開発タブにチェックを入れる。
     
  2. マクロ実行ダイアログから、実行するマクロ名を選んで、[実行]を押します。
    このとき、呼び出すマクロの保存先を選択することができます。普通は標準の「作業中のすべての文書とテンプレート」で問題ありませんが、大量のマクロを登録している場合などは、保存先を選択することで対象マクロを絞り込むことができます。

  3. 処理する文書が大きい場合は、作業に若干時間がかかる場合があります。
     
  4. マクロを強制終了したい場合は、慌てないで[ Ctrl ] + [ Break ] キーを押します。
     
  5. ボタンやメニューに登録して実行:
     頻繁に使うマクロは、ツールバーなどにボタンとして設定しておくと、ワンタッチで起動できて便利です。
      Office 2010からは、右図のようにリボンにもボタンを登録できるようになりました。登録の方法は、後で説明します。

  6. 登録したマクロがうまく動かないときの対処法は こちら

 

■Wordマクロコードの登録方法 (全文書の共用マクロにする)

 マクロを登録する場所は、共有マクロにする場合と、個別文書マクロにする場合の2通りがあります。

  共用マクロとして登録すると、パソコンの全文書でそのマクロが使えるようになり便利です。ただし、影響がお使いのパソコンのWord全体に及びます。このため、登録するマクロコードに不安がある場合は、安全確認のため個別文書に登録してワクチンソフトでチェックや動作テストを行ってから、共用マクロとして登録することをお勧めします。

 共用マクロの登録で、簡単なのは「(1) Normal.dotに登録する方法」です。慣れてきてフル活用したいときは「(2) テンプレートのアドイン化」も試してみてください。
 

 (1) Normal.dotに共用マクロを登録する方法

 Normal.dotとは、Wordが全文書で共用する情報を保管している特別なファイルです。ここにマクロを登録することで、そのパソコンのWordではどの文書でもそのマクロを使うことができるようになります。(Normal.dotについて詳しくはこちら

  1. 新たに 直接共用マクロを登録する場合は、適当な文書か新規文書でWordを立ち上げます。
      ※ 個別文書に添付していたマクロを共用マクロに変えたい場合は、そのマクロが添付
        されたWord文書を開きます。
     
  2.   Alt  F11  を押すと、別画面で下記3のように、VBE (Visual Basic Editor) という、マクロ編集ツールが起動します。(Office 2000〜2010共通)
     
    ※ Word 2003以前は、メニューで、[ツール]-[マクロ]-[Visual Basic Editor]からも開けます。
    ※ Word 2007以後は「開発」タブから[Visual Basic Editor]からも開けます。
    (注) 開発タブは標準では非表示です。以下により、常時表示に設定できます。
    ・2010の場合…[ファイル]タブ―[オプション]でWordオプションを開き、[リボンのユーザ設定]で
      開発タブにチェックを入れる。
    ・ 2007の場合…[Officeボタン]−[Wordのオプション]でWordオプションを開き、[基本設定]
     で開発タブにチェックを入れる。
     
  3. VBEの左側のプロジェクト欄の最上位に、Normalというプロジェクトがありますので、その下の「標準モジュール」の中の「Module1」をクリックして編集画面を表示します。
     ※ もし、Normalの中に標準モジュールがない場合は、Normalを右クリックし表示されるメニュー
        から[挿入]⇒[標準モジュール]をクリックして追加します。
     
  4.  使いたいマクロのコードを編集画面に入力するか、またはコピー・貼り付けします。
     個別文書ファイルに登録して使っていたマクロを共有マクロにする場合は、Normalの下にある Project(ファイル名)の標準モジュール内のModuleXの編集画面を開き、 [編集] - [すべて選択] - [コピー] して、NormalのModule1を開いて貼り付けます。
      なお、ModuleXをマウスでドラッグしてコピーすることもできます。(上図の赤線の流れ)
  5. 上書き保存します。(メニューからは[ファイル]-[Normalを上書き保存])
    以上で、あなたのパソコンで、Wordの全ての文書から共用マクロとして使えます。

  6.  1つの標準モジュールには、複数のマクロを登録できますが、多くなってきたら標準モジュールをさらに「挿入」で追加して、分けておいたほうが管理しやすいでしょう。

 

 (2) 少し上級のマクロ共用化 ― テンプレートのアドイン化

 

 Normal.dotへのマクロ登録は手軽ですが、セキュリティや壊れやすいという問題があります。業務などでマクロを頻繁に使う場合は、マクロ専用テンプレートファイルを作り、アドイン化する方法がお勧めです。多数のマクロを自前のテンプレートで管理することが可能です。 (テンプレートとアドインとは何かについてはこちらを参照

 

 ○手順 

  1. 空白の文書にVB Editorで標準モジュールを作ってそこにマクロを登録します。必要があれば、後述するボタン化なども済ませておきます。
      このファイルにmyTemplateなど任意の名前を付けて保存します。
     ポイントは、
    ・「テンプレート形式」で保存する。
    ・決められた保存フォルダに保存する。
    ということです。拡張子と保存場所は、2003以前と2007以降は違っているので注意してください。以上でアドイン化の準備は完了です。
    【マクロ登録時のファイルの種類】
    ・2003以前… *.dot (テンプレート)
    ・2007以降… *.dotm (マクロ有効テンプレート)
    【アドイン化する場合の保存先】
    ・Windows XP … C:\Documents and Settings\<ユーザー名>\Application Data\Microsoft
                 \Word\STARTUP
    ・Windows Vista/7 … C:\ユーザー\<ユーザー名>\AppData\Microsoft\Word\STARTUP
     
  2. いったん全てのWordを終了。 Wordを再起動するとテンプレートが自動的に読み込まれている(つまりアドイン化している)はずですので、適当な文書を開きテンプレートに保存したマクロが使えることを確認してください。
     
  3. アドインの再編集は、使用中にはできないので、一時アドインを解除して行います。
    ・2003以前 …メニューから[ツール] - [テンプレートとアドイン] を開き、チェックを外し[OK]。
    ・2007以降 … Wordオプションから、[アドイン] - 管理(A)で「Wordアドイン」を選択し「設定」。[テンプレートとアドイン]が開くので、チェックを外し、[OK]。
  4. テンプレート形式ファイルを編集するには、Wordで[ファイル]-「開く」から、先ほどのテンプレートファイルを指定して開きます。
  5. 編集し終わったら上書きし、全てのWordを閉じます。Wordを再起動すると、編集されたテンプレート(アドイン)が再び読み込まれます。

 ○個別文書に登録し、ウイルスと作動チェックを行う方法 

 そのマクロコードに不安がある場合は、まず個別文書ファイルに登録してワクチンソフトでチェックと、動作確認を行ってから共用マクロとして登録することをお勧めします。

  1. 目的の文書ファイルか、新規文書を開きます。
     
  2. Wordで、  Alt  F11  を押すと、別画面で下図のように、VBE (Visual Basic Editor) という、マクロ編集ツールが起動します。(Office 2000〜2010共通)
     
  3. Visual Basic Editorの左側のペインで、「Project(文書名)」を右クリックし、表示されたメニューから、[ 挿入 ] - [ 標準モジュール ] を選択します。
  4. 標準モジュールができたら、その中のModule1をクリックします。(右図)
  5. 使いたいマクロのコードを、右側の編集画面に入力します。
    ネットでコードを見つけた場合は、ブラウザ上でコピーして編集画面に貼り付けます。
     
  6. マクロを動かす前に!
    ネットからコピーしたコードには、ウイルスが潜んでいるかもしれません。不安な場合は、マクロはすぐに動かさず、いったん保存 し、Wordで開く前にそのファイルをワクチンソフトでチェックしてから利用しましょう。
    なお、2007以降は、「マクロ有効文書(*.docm)」として保存します。

  7. 個別文書ファイルに登録したマクロは、その文書でしか使えません。他の文書でもそのマクロを使いたい場合は、文書の共用マクロにするには を参照してください。

  8. なお、改良などで新しいマクロを同じ名前で登録する場合は、前のコードをVisual Basic Editorの編集画面で消去してから、新しいコードを貼り付けてください。
マクロが動かないとき

 エラーが出て動かない。そんなときは、以下の点を確認してみてください。

ボタン一発で起動できるようにするには

 メニューやツールバーに起動ボタンを登録することができます。右図は、Word 2010で、クイックアクセスツールバーに(・_・)マークでマクロを登録した例です。

 登録の方法や場所は、Wordのバージョンによって異なりますので、分けて説明します。

 

 以下の作業を行うときは、前もって上記のマクロコードの登録方法(全文書の共用マクロ)の手順で、マクロ本体を共用マクロとして登録しておいてください
 個別文書添付のマクロをボタン化した場合は、他の文書からボタンは見えますがマクロは動きません。

    【Word 2007-2010】
  1. 右上の図のように、クイックアクセスツールバーに登録してみましょう。

  2. まずユーザー設定ダイアログを表示させますが、バージョンで方法が異なります。
    2010の場合 … クイックアクセスツールバーを右クリックして出たメニューから、「クイックアクセスツールバーのユーザー設定」を選びます。(右図)
    2007の場合 … Wordの画面左上にあるOfficeボタンを押し、「Wordのオプション」−「ユーザー設定」を選びます。
     
  3. ユーザー設定画面で、「コマンドの選択」で「マクロ」を選びます。(以下は2007/2010同じ)
  4. すでに登録済みのマクロが表示されるので、ボタン化したいマクロを選び、「追加」を押すと、右側に表示されます。
  5. 「変更」をクリックすると、「ボタンの変更」画面が表示されるので、好きなボタンの画像を選択し、表示名名称を短く変更します。[OK] - [OK] で登録は終了です。
  6. Word 2010でリボンに登録  
      2010では、リボンへもボタンを登録できます。
     リボン上で右クリックして出るメニューから、「リボンのユーザー設定」を選んでください。それ以降の手順は、上記のクイックアクセスツールバーへの登録の手順とほぼ同じです。
     一点だけ注意しなければならないのは、どこかのタブに、必ず「ユーザー設定のグループ」を作って、その中に追加するといいうことです。下図の@、A、Bの手順で登録します。
    【Word 2000-2003】
  1. 右図のようにツールバーにボタンを登録してみましょう。

  2. メニューから[ツール]―[ユーザー設定]で、ユーザー設定ダイアログを表示します。…下図の@

  3. 「分類」欄で「マクロ」を選ぶと、右のコマンド欄に登録済みのマクロ名が表示されます。

  4. 目的のマクロをクリックしたまま、ツールバーの好みの場所へドラックすれば、ひとまず登録完了です。…A

  5. 長いマクロ名がみっともないので、編集します。
    ユーザー設定ダイアログを表示したまま、ツールバーに登録したマクロをクリックすると、「編集したボタンの編集」ボタンが現れるので、クリックします。…B
  6. 表示された編集メニューで、名前を短く編集します…C

  7. 「ボタンイメージの編集」にカーソルを乗せると、使えるボタンが表示されるのでそのうち一つを選択します…D、E 。 これで登録終了です。
■Wordのマクロは標準では共用ファイルに保存される
 

 Excelのマクロに慣れた人は、Wordのマクロの保存には意外ににとまどいます。

 Excelでは、 2003の「*.xls」形式も 2007以降の「*.xlsm」形式も、マクロはファイルと一体として保存するのが標準設定で、保存先はあまり意識されません。

 一方、Wordマクロは、パソコン単位で共用マクロとして保存するのが標準設定です。

 Visual Basic Editorを開いてみてください。下図のように「プロジェクト」の上部に必ず「Normal」があります。この本体は「Normal.dot」という独立したファイルで、文書ファイルとは別に、Wordがパソコン単位で1個だけ作る共用ファイル(標準テンプレート)です。Normal.dotは、マクロのほか標準書式など共通で使う情報を保持しています。

 ここにマクロを保存すれば、新規文書でもすぐにマクロを使うことができます。
 しかし、ウイルスやバグ入りのマクロが登録されてしまうと、パソコン全体に影響が及んでしまいます。また、ユーザーが誤って自らNormal.dotにウイルス入りコードを書き込んだ場合、ワクチンソフトではチェックできません。

 そのため、ネットから拾ってきたマクロのコードは、まず個別ファイルの標準モジュールに保存してチェックすることをお勧めします(上図では「マイ漢数字変換」)。マクロウイルスは「ファイルをWordで開いたとき」に活動を開始するので、個別文書に保存し、ファイルを開く前にワクチンソフトでチェックすることで危険が回避できるわけです。

 個別文書にマクロを登録すれば、メールに添付して送付することもできます。なお、Word2007以降は、マクロ添付の有無を明確化するため、個別文書にマクロを添付する場合「Wordマクロ有効文書」(*.docm)として保存する仕様になりました。

 

■テンプレートとアドインについて

 

 「テンプレート」とは、Wordで文書作成のひな形となるファイルです。マクロはもちろん、定型句、スタイル、ツールバー、リボンのカスタマイズなど、様々なものを登録できます。

 テンプレートを文書に添付すると、設定してあるマクロやスタイルがその文書に対して適用され、使えるようになります。

 テンプレートは、通常は右図のように個別文書に添付します。

 右図で分かるように、実は、Normal.dotは、システムが自動的に用意してくれる特別なテンプレートなのです。

 

 さて、自作したテンプレートは、個別文書に添付するだけでなく、パソコン全体で常に共用することが可能です。この共用化したテンプレートのことを「アドイン」といいます。

 アドインは、複数のマクロを安全に管理したい場合に便利です。また、アドインは単なるファイルなのでバックアップを取ったり、他の人に送ってあげることも可能です。
 

右の図でも分かるように、Normal.dotはシステムが標準で用意してくれている特別なアドインなのです。ただし、Normal.dotは普通のアドインと違ってセキュリティ上コピーすることはできません。
 

 

■テンプレートの作り方

 テンプレートの作り方は超簡単です。空白文書に書式設定やマクロを登録をした後、保存するときに「テンプレート形式」で保存するだけです。拡張子は2003以前が「 *.dot」、2007以降はマクロ付が「 *.dotmx」、それ以外が「 *.dotx」 となっています。
 テンプレートをアドイン化するには一手間必要です。
→アドイン化する方法はこちら

Wordのセキュリティ・レベル
    【Word 2003 以前の場合】
  1. 2003以前のWordやExcelで自作のマクロを使う場合は、Word等のセキュリティレベルを「中」以下にする必要があります。「高」ではフリーウェアのマクロが実行できません。
  2. Wordのメニューから、[ツール]-[マクロ]-[セキュリティ]で、オプションダイアログを開きます。
  3. セキュリティのタグからセキュリティ・ダイアログを開き「中」を選びます。
  4. 改めてマクロの設定された文書を読み込むと、セキュリティ警告の表示が出ますので[マクロを有効にする]を選びます。
  5. セキュリティを「低」にすると警告表示は出なくなりますが危険ですのでお勧めしません。

▼Word 2003のセキュリティ画面  

    【Word 2007 / 2010 の場合】
  1. 2007 からはセキュリティの基準が変わりました。確認してみましょう。
    2007 では左上の「Officeボタン」、2010ではメニューの[ファイル]ボタンを押します。そこから[オプション]-[セキュリティセンター]で、セキュリティダイアログを開きます。
  2. セキュリティセンターの設定が、「警告を発してすべてのマクロを無効にする」になっていることを確認してください。これが標準ですので、変更しないことをお勧めします
  3. これでは一切のマクロが実行できないように思われますが、実はこの設定のままでも、自分でNormal.dotに作成/コピーしたマクロは実行することができます。
     下記の警告バーが一度だけ表示されますが、「コンテンツの有効化」を選択すると、その後は警告表示は出なくなります。

     参考
      ・Office 2007:ドキュメントのマクロを有効または無効にする (Microsoft社)
      ・Office 2010:ドキュメントのマクロを有効または無効にする (Microsoft社)
     以上のことから、コードを張り付けて利用する場合は、コードの出所と内容は十分にチェックする必要があります。(自分でウイルスを作ることになりかねないわけですからね。)

▼Word 2010のセキュリティセンターの画面  

■マクロウィルスに注意!

 上記にも書きましたが、Excel、Wordのマクロ機能を悪用した「マクロウィルス」には十分注意が必要です。ネットからダウンロードしたWord文書は、開く前に必ずワクチンソフト等でチェックしましょう。
 一方、本稿のようにコードをコピーする場合も、以下の手順で必ず確認します。

  1. コードにおかしな記述がないかチェックする。
    機能上必要なさそうなコードがある場合、特に「Auto_Open」というマクロコードが含まれている場合は注意。必要以上にサイズが大きい場合も要注意です。
  2. 不安がある場合は、個別文書の標準モジュールに登録し、マクロを動かさず、いったん保存して、ワクチンソフト等でチェックをかける。
  3. あやしいと思った時点で破棄。組織内の場合は情報管理課へ即連絡する。
  4. 共用ファイル化するのは、安全を確認してから。

 組織のセキュリティポリシーによっては、外部から入手したマクロの使用について、あらかじめ情報管理課の承認が必要だったり、禁止されていることもありますので、確認しておきましょう。

 

参考

●●●