こんにちは。
これから、いくつかの記事に分けて、マイクロソフト社のオフィスのマクロの作り方を説明していきます。
IT業務をやっていて、業務効率化をするには、プログラミングが一番です。
オフィスでワードやエクセルを使っていたら、マクロを知っていたら日々行なっている業務を効率化する機会がいっぱい出てくると思います。
例えば、
- 毎日同じエクセルファイルに日報を入力して同じ作業を繰り返してたり、
- 沢山のワードファイルに同じ変更を繰り返したり。
もしそれが、作業をルール化できるような手順が決まっていれば、マクロを作ることによってパソコンに自動でやらせることができます。
使い方を学ぶ前に、まずはマクロの概略について説明したいと思います。
マクロとは
マクロの語源は、ミクロ・マクロのマクロと同じく「おおきなもの」
マクロというのは、処理をまとめて実行するためのプログラムです。
マクロ、ミクロの世界、マクロ経済、などのマクロと同語源で、もともとは「おおきな」を意味する言葉です。
アプリケーションで特定の動作を繰り返し行なったり、動作を組み合わせて行なったりする機能がついてるものがあり、動作を組み合わせることを「マクロを組む」という言い方で表現して、複数の動作をまとめて記録したものを「マクロ」と読びます。
たとえば、テキスト文章を入力するテキストエディタというアプリケーションにもマクロがついているものが多くあり、
「10行ごとに、空行を入力する」
だとか、
「文章の中の語尾を、ですます調に変換する」
なんてまとまった操作をマクロで実現できたりします。
その場合、「10行ごとに空白を入力するマクロ」を一回作っておけば、いろんなテキスト文書に対してマクロを実行すると、一瞬で作業を終わらせることができます。
マイクロソフトのオフィス製品にもそんな作業の自動化の機能がついています。そしてやっぱり操作をまとめたものを「マクロ」と呼びます。
ワードやエクセルでできることは、ほぼ全部マクロで組んで一気に作業をすることができる、つまり自動化することができます。
マクロを表現する手段
マクロを表現するのに、マイクロソフトのオフィスでは、VBAというプログラム言語を使用します。
これは、Visual Basic for Applications の略語で、アプリケーション用のVBというものです。
後ほど、例をあげますが、プログラミング言語の一つです。
マイクロソフトの作ったプログラミング言語に Visual Basic というものがあり、それのオフィス版といったものになってます。
マクロで何ができるの?
では、マクロでできることのイメージをもってもらうため、オフィス製品うち、ワードでマクロを使って、文章に対して次の4つの整形してみましょう。
- 「僕」を「私」に変換
- 「だ。」を「です。」に変換
- 「だけど」を「ですが」に変換
- 「いない」を「いません」に変換
文書の文体を変更するマクロですね。
マクロを実行すると、下図の変換前文書で示した文書が変換後文書の用になります。
変換されたところは赤字になるように、マクロで書式変更もやってます。
変換前文書
変換後文書
上記4つを変換するだけで、かなり文章から受ける雰囲気が変わりますね。
マクロを使うことで、この様な変換を一気に行うことができます。
他の文書にだって一瞬で変換することができるんですよ。
マクロコードは?
この作業をマクロで表現すると、以下のような感じです。ワードのマクロはVBA(Visual Basic for Aplicationというプログラム言語)で表現されています。以下のマクロもVBAです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
Sub conv_word() Dim cnv_dic As Object Set cnv_dic = CreateObject("Scripting.Dictionary") '変換語句を追加 cnv_dic.Add "僕", "私" cnv_dic.Add "だ。", "です。" cnv_dic.Add "だけど", "ですが" cnv_dic.Add "いない", "いません" Dim cnv_keys() As Variant cnv_keys = cnv_dic.Keys Dim cnv_key For Each cnv_key In cnv_keys Selection.Find.ClearFormatting Selection.Find.Replacement.ClearFormatting Selection.Find.Replacement.Font.Color = wdColorRed '赤色 With Selection.Find .Text = cnv_key '変換前語句 .Replacement.Text = cnv_dic(cnv_key) '変換後語句 .Forward = True .Wrap = wdFindContinue .Format = True .MatchCase = False .MatchWholeWord = False .MatchByte = False .MatchAllWordForms = False .MatchSoundsLike = False .MatchWildcards = False .MatchFuzzy = False End With Selection.Find.Execute Replace:=wdReplaceAll Next cnv_key End Sub |
これから説明していきますので、今は、細かいコード(マクロの中の命令)の意味が分からなくても構いません。
雰囲気だけ味わってください。
このように作業をマクロで表現しておくと、一つのマクロを実行するだけで、違うワード文書も一気に変換することができるんです。
実行例
いくつかのワード文書に上のマクロを実行してみました。結果は下の通り・・・
変換前
変換後
毎回手作業でやっていたら、その都度、作業時間がかかってしまいますよね。
1回きりなら、自分で一つづつ変換していけばいいのですが、沢山Wordファイルがある時、同じ作業をまとめて一気にやってくれるマクロがとってもお役立ちです。
また、作業をマクロにしておくことで、作業のうち実行し忘れがなくなりますし、しばらく作業しない間に作業を忘れてしまって思い出すのに時間をかけてしまったってことも防ぐことができます。
また、上の見てもらえると、「大正解だった。」と「だった→でした」のほうが良いなって思いますよね。
そんなとき、先程のマクロコードの5行目からの「変換語句」に要素を追加するだけで、下図のようにドンドン改善していくこともできるんです。
1 2 3 4 5 6 |
'変換語句を追加 cnv_dic.Add "僕", "私" cnv_dic.Add "だ。", "です。" cnv_dic.Add "だけど", "ですが" cnv_dic.Add "いない", "いません" cnv_dic.Add "だった", "でした" |
このとき、変換後の文書は以下のようになります。
変換後
変換前
変換後
マクロの便利さが伝わりましたか?
あなたが今までマクロを使ったことがなかったとしても、上記のようなマクロが理解できて自由に使えるように、別記事で解説していきますので楽しみにしておいてくださいね。
まとめ
マクロを使うことで、マイクロソフトのオフィスを使ったルール化できるような定型作業を自動化することができます。
- マクロとは大きな(命令)を意味する言葉で、作業をまとめた命令書のようなものです。
- マクロを使うことで、繰り返しや単純作業の積み重ねを一気に実行することができます。
- オフィス製品はマクロを表現するのに、VBAというプログラム言語を使います。
- マクロにすることで、繰り返し作業をするときに、2回目以降一瞬で作業できます。
マクロにすることで、作業のし忘れを防ぐことができます。
また、マクロにすることで、作業を改善していくことができます。
ぜひ、マクロを使って、業務の効率を良くしていきましょう。
コメント