ITサポーターTsuchida

ABOUT VBA(VBAの利用)

ExcelVBAのアドバンテージ

コンピュータで動作するものは、すべてプログラムが組まれて動作しています。プログラムはプログラム言語によって記述されていて、プログラム言語がわかれば誰でも作成できます。

ただし、JAVAや.NETなどはコンパイル(機械語に変換)を必要とするプログラムは、作成するための開発環境が必要になります。開発環境が必要なプログラム言語は、専門の会社に依頼するしかありません。

Webサイトを作成する場合に、HTMLを作成するDreamWeaverがあれば可能です。ページに動きをつけることのできるJavascriptもHTMLと同様に作成できます。Webサーバで処理をするとなると、PHPというプログラム言語を使います。PHPを使うには、WebサーバのApacheの設定が必要になります。Webサイトを運営する場合は、これらの知識が必要となり、初心者にはハードルが高いです。

PHPソースのイメージ

プログラム開発は、プログラムの知識のほかに開発環境の理解は欠かせません。ところが、Microsoft Officeにある、VBAという言語だけは、Microsoft Officeがインストールされていれば、すぐに動作するのです。非常に手軽にプログラムが作成できて、意外に高度なことができます。ExcelやAccessなどすでにPCにインストールされているアプリケーションを使うことで、コストをかけずに業務の時間短縮ができるようになります。

ExcelVBAソースのイメージ

ExcelとAccessのVBAの使い分け

Accessはデータベースでデータを管理するためのアプリケーションなので、複数でのデータ入力とデータ入力時のエラーチェックを行うときに使います。入力時のエラーチェックはAccessでフォームを作って、テキストボックスやコマンドボタンにVBAを割り当てます。

Excelはデータの加工を得意としているため、既存データを加工したい形に編集するように、ExcelのVBAに割り当てておいて、必要に応じて実行します。

データの入力と管理ならAccessで行い、データの取込や加工はExcelのVBAで行うことが正しい使い分けです。その際に自動化できるものをAccessとExcelのVBAでプログラミングします。

関数とVBAの違い

Excelに慣れてくるとすべてを関数で行いたくなります。データ量が少ない間では関数は便利ですが、データ量が増えるにしたがって関数を挿入するのが面倒になったり、関数を間違えてしまうこともあります。またデータ量が多くなればなるほど関数で処理が重くなります。

一方VBAはプログラムなので、あらかじめプログラムで組んだ動作のとおりに、自動で処理してくれます。関数と違って計算結果のみセルに入っているため、データ量が多くなっても処理は軽いままです。

関数は手作業を楽にするための道具ではありますが、関数を使っても手作業はなくなりません。例えば、月締めでデータを編集するときに関数を使っている場合、データに漏れがあって追加データがあると最悪作り直しになります。ところが、VBAでは追加データがあっても、再度VBAを実行するだけで済みます。作業効率の観点から関数よりもVBAの方が有用です。

誰でもプログラムは組めるの?

プログラムは誰にでも組めるかというとそれはノーです。プログラムを組むには知識のほかにセンスが必要になります。知識だけあってもセンスがないとプログラムを組みことはできません。

一般的に、60%の人はプログラムを組む適性がないと言われています。私も新人教育で教えたことがあるのですが、適性のない人に教えるのは非常に大変です。スポーツの才能がないのにプロ選手を目指すのが困難と同じです。

プログラムを組む適性があるかどうかは、割と簡単に判断ができます。それは、ExcelのIF関数が自由に使いこなせるかどうかです。IF関数が理解できない人は適性が高くないので、プログラムを組まないほうが賢明です。