先週お世話になっている税理士さんとお話している際、「小林さんはどうやってExcelのマクロを使えるようになったのですか?」と聞かれることがありました。
自分自身マクロをまだまだきちんと使うことができていないと思っているのですが、経験上事務作業の自動化レベルであれば、「変数の考え方」と「条件分岐」、「繰り返し処理」の3つをマスターできれば、ひと通りの事はできるようになるような気がします。
Excelの場合、普段手作業で行っている作業をマクロにすることは「マクロの記録」機能で、自動的に行うことが出来ます。
ただマクロ記録でできないのは、前提条件が変わった場合にそれをExcelに判断してもらって、変更後の条件にしたがって処理を行うことです。
そういった場合、「変数の考え方」と「条件分岐」と「繰り返し処理」の3つを組み合わせれば、大方の作業は自動化することができます。
まずは変数。
変数とは文字通り、ケース・バイ・ケースで変わる数値がある場合、Excelにこの数値を記憶させ、その後の作業に利用する場合に使います。
例えば定形の加工を行うデータが、ある時には10行あり、ある時には30行あるといった場合。
変数としてこの行の数をExcelに記憶させると、10行のデータの場合には10行分だけ加工を行い、30行のデータの場合には30行分だけ同じ作業を行うという判断をExcelに任せることが出来ます。
次は条件分岐。
「もしAがBだったら、Cという処理、BでなかったらDという処理をしてください」とExcelに指示する場合の方法です。
VBAでは「If~then~else」と英語ぽく書くことになります。
最後は繰り返し処理。
「Aという作業をX回繰り返してください」とExcelに指示することですが、最初に説明した変数と組み合わせることで、前提条件が変わっても繰り返す回数をExcelに判断させることができます。
VBAでは「For Next」や「Do While」といった、やはり英語のような命令を書くことになります。
なんて偉そうなことを書いてしまいましたが、私のExcelの知識は実務上の必要性から場当たり的に身につけたものなので、ムダやムラが多いスマートからは程遠いものになってしまっています。
やっぱり人に聞かれた時はきちんと教えることができるよう、体系的に勉強すべきなのかなあ・・・。
というわけで、今日はVBAの教科書を買ってみました。
ベーシックということで基本中の基本の教科書なのですが、それでも知らなかったことが結構ありますね・・・。