毎日同じExcel作業の繰り返しで、時間を取られていませんか?
VBAを覚えれば、そうした作業を自動化できます。
この回では、VBAの経験者から聞いた話、始めるときの5つの手順、そして手を出す前に知っておきたい4つの心得を紹介します。
Excelの作業を効率化したい方は、ぜひ読んで下さい!
ExcelVBAとは
ExcelVBAは、Microsoft Office製品の機能を拡張するためのプログラミング言語です。
VBAとは「Visual Basic for Applications」の略称です。
覚えると、Excelの作業を自動で動かすツールが作れます。
たとえば、定期的に集計しているグラフも、データの計算からグラフ作成まで、すべて自動化できます。
Excelで仕事をしている方は、効率化に取り組んでいる方も多いです。
でも、VBAまで学んでいる方は、あまり多くありません。
経験者に聞いた、VBAの話
以前の職場に、VBAを2年ほどやっていたAさんがいました。
話を聞いたときの会話を、紹介します。
Aさん:「ExcelVBAは、Excelがひと通り使える方なら、誰にでもできますよ!」
私:「本当ですか?前にちょっとやったんですが、難しくてやめちゃったんです」
Aさん:「それはもったいない!今の仕事で必要なツールを作って、実務経験を積むといいですよ」
私:「たしかに!お給料をもらいながら腕を磨けるわけですね!」
Aさん:「VBAはそれほど難しくないのに、やる人が少ない穴場なんですよ」
実際には、もっといろいろ話しましたが、業務の機密に関わる内容もあるので、ここまでにしておきます。
要するに、ExcelVBAは、手作業でやっていた作業を自動にして、時間を縮めて、ヒューマンエラーも減らせる、最高の言語なんです。
業務を効率化する5つの手順
1つ目は、基礎を学ぶことです。
文法や構文が分かれば、自分でプログラムを書けるようになります。
おすすめはYouTubeです。
本でもいいのですが、動画のほうが、手順がはっきり分かります。
2つ目は、自動化する業務を考えることです。
たとえば、Excelのデータを自動で集計してグラフにする、定型の書類を自動で作る、などです。
普段の作業を箇条書きにして、自動にできる部分を探してみましょう。
ただし、売上や品質保証に関わる重要なデータや、お客様に渡す書類は、すべてを自動化しないで下さい。
手作業でやるか、出す前に人の目でしっかりチェックします。
私の過去の仕事でも、お客様に出す書類は、必ず手作業と自動化の結果を突き合わせて、間違いがないか確認していました。
どこまで自動にするかは、会社や人によって判断が分かれるので、臨機応変にどうぞ。
3つ目は、コードを書くステップです。
最初は分からないことだらけなので、分からないことはChatGPTに聞きましょう。
ネットで調べる手もありますが、見つけたコードをコピペしても、動かないことが多いのです。
賛否はあるでしょうが、私は、ChatGPTに質問して、その答えをもとに書く方法のほうが効果的だと感じています。
ネット検索でもChatGPTでも、最終的にコードを書くのは自分です。
だったら、時間を縮められるほうがいいと思いませんか?
4つ目は、実行することです。
書いたら動かして、自動になっているか確かめます。
エラーが出たら、エラーの内容と直し方を、ChatGPTに聞きましょう。
5つ目は、デバッグすることです。
慣れてきたら、エラーが出たときに、その原因を自分で調べていきます。
デバッグとは、プログラムのミス(バグ)を見つけて修正する作業です。
これができないと、書きっぱなしで、直せない人になってしまいます。
ただ、中級者以上の手順なので、慣れるまでは気にしなくて大丈夫。
出してもらったコードでエラーが出たら、放置せずにChatGPTに聞いて下さい。
VBAを入れるメリット
- 作業時間を縮められる
- ヒューマンエラーを減らせる
- 複雑な作業も自動にできる
大量のデータのコピーや転記は、VBAの得意分野です。
人間がやると、どうしても間違えますが、VBAは命令に忠実に動くので、人間より正確です。
複雑な作業も、プロセスをふまえて組めば自動にできます。
時間が限られた作業には、特におすすめです。
でも、その前に4つの心得
便利さが分かると、「これからは何でもVBAで自動化しよう!」
と思う方もいるかもしれません。
でも、その考えは、とても危険です。
人間が手作業でやったり、チェックしたりしなければいけない場面も、あるからです。
自分の仕事に使う前に、次の4つを知っておいて下さい。
どれも、仕事でVBAを使い始めてから、チームの方々に教わった大切なことです。
1つ目は、少しずつ自動にすることです。
いきなり全部をやろうとすると失敗します。
VBAにもできないことがあるからです。
他の言語と比べて高度な処理は苦手で、セル数やシート数の上限を超えるデータは扱えず、大量データの高速処理も得意ではありません(遅くなります)。
仕事によっては、Accessなど別のソフトのほうが効率的です。
おすすめは、人間が手入力している転記・コピペ・データ抽出から、少しずつ自動にすることです。
2つ目は、フォーマットが変わったら、改修とテストをすることです。
VBAは、シートやセルに対して処理するので、行・列・セルが追加・削除されると、コードの改修が必要です。
直したら、何度かテストして、問題がなければ、ようやく使えるレベル。
フォーマットが頻繁に変わるシートは要注意です。
3つ目は、手作業でもできるようにしておくことです。
「急にVBAがエラーになったので、今日の仕事はできません」では困ります。
とくに、売上など会社の業績に関わるものや、客先へ出すものは、VBAの結果とは別に、人の手でダブルチェックして下さい。
VBAが正しく動いていても、使う人が操作を間違えたら意味がありません。
4つ目は、一括処理を多用しないことです。
ボタンひとつで一括処理できるのが、VBAの便利なところ。
でも、一括ばかりだと、エラーが出たとき、原因が分からなくなります。
プロセスごとに処理するほうが安心です。
一括にするなら、コード内に処理の内容をコメントで書いておきましょう。
処理の中身を、人に理解してもらう
何も知らない方が「このボタンを押せば全部自動でできるよ」と教えられたら、どうなるでしょう。
たぶん「押すだけでいいんだ」と思って、中身を理解しようとしなくなります。
それでは、仕事を覚えたことになりません。
ツールを使ってもらうにしても、まずは、どう処理しているかを説明して、理解してもらう必要があります。
ソースコードはChatGPTに出してもらいましたが、基本的な考え方は、私の業務経験がもとになっています。