毎日同じ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に出してもらいましたが、基本的な考え方は、私の業務経験がもとになっています。