ExcelマクロやVBA、聞いたことはあるけど何ですか?
仕事が楽になるというのは聞いたことがあるけど・・・
どうやって勉強すればいいのか?
経理畑の人間である私が、なぜ、そんなことを書くのか。それは私は20代前半時はIT業界に身を置いてきたプログラマーだからです。プログラマーは当然ながら様々プログラミング言語に触れます。その中でVBAも扱ったことがあります。その経験があるので、VBAを組みマクロを作成することができるのです。今回は、元プログラマーの私がマクロについて書いていく。
マクロとは
クリックすること、セルを赤いセルにすること、セルに罫線を付すことなどの操作を「命令」として記載したもの事をいいます。その呼び出せる機能をVBA(Visual Basic for Applications)というプログラミング言語で書いていきます。Microsoft社の製品である「Office」、その中にはExcelやAccessやPowerPointがあり、それらのアプリケーションにはVBAが搭載されています。マクロは、それらのプログラミング言語で書かれた命令の塊の事で、VBAはマクロを作るためのプログラミング言語と考えてOKです。
マクロのメリット、できること
アプリケーション内(Excel等)で行う操作は全てマクロで自動化することができます。具体的を上げると、仕訳10,000件を会計システム(SAP等)から出力したCSVから勘定科目毎に、そこからさらに消費税コード別に集計する。ボタンを押したら、売上や仕入れの科目で大きい順に集計することも即座にできます。
アプリケーション内と、上で書いているが、アプリケーション内で、ウェブから情報を取得する命令も用意されているので、あるウェブサイトから抽出したデータを直接セルに転記することもできる。それらを用いて分析することもできます。(スクレイピングという)
私が作成したマクロに、消費税申告書の還付明細の情報を自動で作成するマクロを作ったことがあります。課税売上、輸出免税売上、仕入を大きい順に整列し、ランキング形式に、それらの会社名と住所も取得するマクロを作成したことがあります。さすがに帳簿には輸出に係る「税関情報」は書いてないので、それは調べる必要がありますが、それを除いても還付明細の作成時間は短くなりました。書いてきたことはマクロでできる一部の事で、他にたくさんできることはあります。仕事でかなり重宝しますので覚えておけば損しません。
他の経理担当者と差別化できます。
職務経歴書にマクロを作成したことを記載して他の経理担当者と差別化することができます。なぜなら経理の求人に応募するのは経理の実務経験者ばかりなのですから、担当した経理の業種、実務経験で書類選考が行われますから、その中に、希少なマクロ作成経験者もアピールできれば市場価値が上がります。経理という数字や、会計システムから出力したデータをExcelに取り込んで編集するという作業をしている経理担当者は山のようにします。
転職サイトに職務経歴書を登録し、求人に応募するとライバルは同じ経理実務経験者です。
そうなると経理の実務経験以外に差別できる武器があると強いですね。
その1つとしてExcelスキルというものがあります。関数も組み合わせ使用できるのもの強いですが、
マクロを作成できるというものアピールポイントになります。
マクロの勉強サイト(無料)を利用する
エクセル全開VBAというサイト・・・古さが漂うウェブサイトですがお勧めです。更新がとまっていますが。エクセルファイルのサンプルをダウンロードができるので、実際に触って、「マクロがどんなものか?」を理解するのは良サイトです。
無料サイトもいいですが、職場によってはセキュリティがガチガチに厳しい職場とウェブサイトの閲覧に制限がありVBAを調べることができない不便な職場もあります。その場合は本を購入することになるが、私が購入したのは「かんたんプログラミング Excel VBA?」通称「簡プロ」という本だったような気がします。(今は廃版かも?)
マクロのデメリット
滅茶苦茶便利なマクロですが、当然デメリットもあります。それは作成したマクロがブラックボックスとなってしまうことです。マクロの作成した後、放っておいてもOKということはなくて、当然メンテナンスが必要です。ということは、マクロ作成者が異動や退職でいなくなってしまった状態で、Excel等のupdateがあったりしてマクロが動かなくってしまう事があります。
そのようなことが起きてしまったら業務に支障が出ます。また誰かが「シート」名を変更したり、ファイルを削除してしまうとマクロが動作しない事故が起きます。そのため、マクロをどうするか?というルールも決めておいた方が良いですね。私は、そういう煩わしいことが嫌なので、自分の仕事を効率的に行うためだけにマクロを作成しています。
このことを考えると、マクロを本格的に職場に導入するのではなく、あくまで個人技としてマクロを用いて業務効率の向上、残業時間削減を目指した方が良いですね。職場があなたに依存すると、これまでの業務+マクロのメンテナンス業務が追加されます。おまけに、やることが増えるのに給料が上がらないというデメリット付きです。
親切心でマクロ作成して効率化を図ったら
マクロのメンテナンス業務が追加されるのは辛いですね。
普段の業務で忙しいのに、そんなことまでやるのは無理。
VBAは習得しやすいか?
現実を叩きつけて申し訳ございませんが、マクロを作成するためのプログラミング言語であるVBAは、簡単に覚えることはできません。私もプログラミングは専門学校できっちり、プログラミング言語を勉強してきた土台があるので、VBAが容易に理解でき、命令を組むことができるのです。本気で学習すると1日6時間勉強して2か月、3か月時間がかかります。
5chのプログラミングのスレでは「簡単」というイメージがありますが、プログラマーにとっては「簡単」なだけでプログラミング未経験者の経理が一から学習するなら「簡単ではない」です。プログラマーは専門学校や大学でプログラミング言語(Visual BasicやC言語等)を学習している人が大多数だから「新たな言語」を覚えるのは手間ではないのです。