Excelの標準機能とVBA

みなさんはExcelをどんなふうに使っていますか?
入力が主ですか?
計算式を活用して便利ツールを作っていますか?
VBAまでやっていますか?
私は、Excelの標準機能はほぼ完ぺきに使いこなしていますが、VBAに関しては、やっとプロフェッショナル的に触り始めたばかりです。
このように私は標準機能とVBAというあたかも2つの使い方がExcelにあるような解説をしていますが、その意味についてお話します。

処理と制御

パソコンができることは、処理と制御の2つに分かれると思っています。
処理は一つ一つの仕事を処理してくれること。例を挙げれば一枚の請求書を作成する、ということです。
制御は繰り返しと分岐です。
繰り返しは、その名の通り何度も同じ処理を繰り返すことです。請求書を請求先の分、請求書作成の処理をします。
分岐は、例えば請求内容が1件もない場合には請求書を印刷しないというように、何かがどうだったら処理を、する、しない、他の処理にするという分かれ道のことです。
Excelの標準機能は処理をします。
そしてVBAは制御をする、というのが私の認識です。

一枚一枚の請求書シートはExcelのリボンにある機能と標準関数で作り、その処理を繰り返して全請求先の分を作成するのがVBAです。

マクロの記録

Excelにはマクロの記録という機能があって、手作業を記録してVBAコードを作成してくれるものです。
VBAに近いように見えるのですが、この機能単体では繰り返しも分岐もできないので、制御ではなく、処理なのです。
繰り返しや分岐は手作業で記録できません。

実際に請求書ツールを作成するときに考える処理と制御

請求書を作成するツールを作成する時は、はじめに元データとなる販売記録一覧から、請求書にまとめる請求データを抜き出しいろいろな関数を使って1枚の請求書を作成します。

まずは、必要な計算式をすべて作成しておきます。

ここまでで、必要な操作をマニュアルに沿って実行すれば請求書が出来上がるようになりました。
これが効率化の第一段階。手作業よりは数倍速くなります。

次に、必要なフィルターや並べ替えなどの標準機能での操作をマクロに記録します。
ここまでで1枚1枚の請求書を、記録したマクロを呼び出せば作れるようになっています。
これが第二段階。ここが時短できる割合としては一番大きなインパクトがあります。

そして、VBAでマクロを繰り返し読みだすものを作成。
こうなるとワンボタンですべての請求書が出来上がるようにあります。
これが第四段階。

さらにスケジュールに従って、月初に人間がクリックしなくてもいつの間にか請求書が出来上がるように自動化すること。それにより全く請求書を作成するという作業を仕事の中で意識しなくてよくなります。
これが最終形であり、これが理想です。
このスケジュール設定は、スケジュールソフトやRPAで行いますが、VBAでもできなくはないです。

まとめ

このような順番でExcelで何かのツールを作る時は考えていきます。
私の中ではExcelの標準機能と標準関数までの機能でできるものがレベル1、マクロの記録が必要なものがレベル2、VBAが必要なものはレベル3、そしてすべてVBAで作るものがレベル4です。レベル4はExcelである必要がないテキストファイルの配列処理とかではない限りめったに扱いません。
確かにExcel関数や機能を使ったものよりも、フルにVBAで使った方が管理は1か所でできるので楽なのですが、作成の手間、動作確認の手間を考えると標準機能で骨格を作ってそれの制御をVBAで作っていくとした方が私は得意です。
ということで、私の中ではExcel標準機能、マクロの記録、VBAと全く別物という感覚でいます。

コメント

タイトルとURLをコピーしました