\r\n\r\n
Microsoft Wordで繰り返される作業にうんざりしていませんか?プログラムには強力な自動化ツールが組み込まれており、これらの作業に煩わされることはありません。マクロの話です。この機能はマイクロソフトのvisualbasicforapplicati***(VBA)に依存していますが、コーディングという考え方が大きな利便性をもたらす場合でも、利用することは可能です。
ボタンをクリックすると、Wordがあなたの操作を記録し、いつでも再生できるマクロを生成します。もし、あなたが冒険好きなら、より高度な自動化のためにマクロを簡単に修正することができます。
ここでは、簡単な例ですが、Wordの検索と置換機能を自動化する方法を紹介します。
この例では、あなたは「アンティーク歯科医療機器保存協会」の尊敬すべき会長です。歴史的な入れ歯などに関するWord文書が何十枚もあり、そのすべてに学会名が目立つように記載されていますね。突然、理事会で「歯科骨董品保存連盟」に改称することが決議された。あとは、ドキュメントを簡単に更新する方法が必要です。
新規の白紙文書から始めることも、既存の文書を開くこともできますが、まだ開いていない場合は、「開発者」タブを有効にする必要があります。
File> Options> Customize Ribbonに進みます。右側の「メインタブ」で、「開発者」にチェックを入れます。OKを選択し、終了します。
では、マクロを作成してみましょう。
それでは、作品をご覧ください。アソシエーションの名前を含むドキュメントを開きます。Developer > Macros」をクリックします。ChangeSocietyNameをダブルクリックすると、Wordは自動的に検索と置換を実行します。
ヒント:マクロを記録する際に、記録したくない動作を行う必要がある場合があります。例えば、「検索と置換」ダイアログボックスにテキストを手入力する代わりに、コピー&ペーストで入力したい場合があります。問題ありません。Developer> "Pause Recording "をクリックし、テキストをコピー&ペーストして、Developer> "Continue Recording "をクリックするだけです。"録音を続ける "です。その後、上記のマクロの記録を終了することができます。
ここではMicrosoft Wordに焦点を当てていますが、Excelの生産性を向上させるためにマクロを使用することもできます。そして、Microsoft OneNoteには、時間を節約するマクロがたくさんあります。
これから、新しいワードマクロを掘り下げていきます。開発者」> 「マクロ」を開きますが、マクロをダブルクリックするのではなく、選択して「編集」をクリックしてください。VBAアプリケーションを構築するための自己完結型の環境であるvisualbasic editorが起動します。
難しそうに見えるかもしれませんが、メニューやほとんどのパネルは無視しても大丈夫です。その代わり、コードの入っているウィンドウに注目します。ご覧のように、Wordは検索と置換を実行するマクロを書いたところです。
Sub ChangeSocietyName()'' ChangeSocietyName Macro' Rename Society for the Preservation of Antique Dental Appliances' Selection.Find.ClearFormatting Selection.Find.Replacement.ClearFormatting With Selection.Find .Text = "Society for the Preservation of Antique Dental Appliances" .Replacement.Text = "Dental Antiques Preservation League" .Forward = True .Wrap = wdFindContinue .Format = False .MatchCase = False .MatchWholeWord = False .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False End With Selection.Find.Execute Replace:=wdReplaceAllEnd Subここで、何が起こっているのかを説明しましょう。
1行目の「sub」は「サブルーチン」の略で、単独で、または大規模なVBAアプリケーションの一部として実行できる小さなプログラムのことです。一重引用符で囲まれた行は、コメントとして使用されます。逆カンマは、これらの行にあるステートメントを無視するようにVBAに指示します。
次に、コードの核心部分、つまり検索と置換の操作を行うコードに入ります。ご覧のように、「検索と置換」ダイアログボックスの各オプションの値を指定しており、逆カンマの中のテキストや置換テキストも指定できます。この選択見つける。コマンドは、「すべて置き換え」ボタンをクリックしたのと同じ意味になります。
マクロを使うには、コードをいじる必要はなく、見る必要もない。しかし、もっと深く掘り下げれば、この機能から多くのことを得ることができるのです。例えば、マクロの記録中にスペルミスをしたとします。録り直すのではなく、ビジュアルベーシックに入って修正すればいいのです。
また、マクロを微調整して、より便利なものにすることもできます。Wordは、手動またはマクロで検索と置換を実行すると、検索と置換のテキストを記憶します。次に「検索と置換」ダイアログボックスを開くと、次のように表示されます。
これらの値をクリアすることで、きれいなダイアログボックスを得ることができます。2つ目のマクロを使いますが、今回はvisualbasicで直接行います。
このような結果になるはずです。
Sub ClearFindReplace()'' ClearFindReplace Macro' Clear Text from Find and Replace dialog' Selection.Find.ClearFormatting Selection.Find.Replacement.ClearFormatting With Selection.Find .Text = "" .Replacement.Text = "" .Forward = True .Wrap = wdFindContinue .Format = False .MatchCase = False .MatchWholeWord = False .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False End With Selection.Find.Execute Replace:=wdReplaceAllEnd Subここで、ChangeSocietyNameマクロに戻ります。検索と置換のコードの下、End Subの前に、ClearFindReplaceと入力します(最後の括弧を除きます)。
そうです、今作成したコードをすべて入力する必要はなく、マクロの名前だけを入力すればいいのです。
Sub ChangeSocietyName()'' ChangeSocietyName Macro' Rename Society for the Preservation of Antique Dental Appliances' Selection.Find.ClearFormatting Selection.Find.Replacement.ClearFormatting With Selection.Find .Text = "Society for the Preservation of Antique Dental Appliances" .Replacement.Text = "Dental Antiques Preservation League" .Forward = True .Wrap = wdFindContinue .Format = False .MatchCase = False .MatchWholeWord = False .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False End With Selection.Find.Execute Replace:=wdReplaceAll ClearFindReplace End SubWordがChangeSocietyNameを実行すると、まず元の検索と置換の関数が実行されます。そして、ClearFindReplaceを2つ目のマクロを実行するコマンドとして解釈します。
このように、Wordのマクロ記録機能は、数え切れないほどの時間を節約するのに役立ちます。また、Visualbasicエディター上で、マクロの調整、マクロの埋め込み、複数のマクロを1つずつ実行するサブルーチンの作成が可能で、ほとんどすべての操作を自動化することができます。
VBAは高度なプログラミング言語なので、変数、ループ、条件文などを使って、サブルーチンをより大きなアプリケーションに統合することができます。WordでVBAの基本を学んだら、microsoftexcelやAccessでマクロを作成できるようになります。
さらに上を目指すには、VBAの規約やビジュアルベーシックエディタについて、例えばコードの整理の仕方やバグの対処法などを知る必要がありますが、ここで紹介した簡単な関数にこだわるだけでも、かなりの生産性を確保することが可能です。