最初のプログラミング言語に悩んだらExcel VBA プログラミング

本頁では、Excel VBA プログラミングが初学者が最初に学ぶプログラム言語であることについて説明したい。

一点注意戴きたいのは、本頁で記述する内容はVBAプログラミングに関するものであり、マクロではないこと。

もうすこし丁寧に説明すると、VBAプログラミングはコードを入力してプログラムを作るというクラシックな手法であるが、マクロはノーコードで表計算シート状に関数や計算機能を埋め込む事である。

本頁で触れるのは、あくまでコードを書いてプログラム作業を行うVBAプログラミングの事。この点をご銘記のうえ読み進めて戴きたい。

以下、すべて『理屈コネ太郎』の管見による独断と偏見に満ちた私見である旨をご銘記のうえ読み進めていただきたい。

Excelは殆どのWindows PCに実装されているとても素晴らしいソフトウエアだ。世の中では素晴らしいものが正当に評価されない事は多いが、Excelもそうした例のひとつ。Excelはその核心的素晴らしさに相応しい評価を得ているとは思えない。

Excel VBAは、プログラム言語を独学するのにに最適なのだ。

理由は、ほぼ全てのWindowsPCにデフォで実装されているので、すでにWindowsPCが手元にある人にとってはは環境構築に手間いらずで出費もゼロ。(筆者注、Windows11くらいから課金されているらしい)

そして少数ではあるが優れた独学向けテキストがある事。

さらに、Excel VBAでは、オブジェクティブ指向などの、現代のシステム開発に欠かせない重要な概念も利用できるようになっている。

この3点がExcel VBAが、プログラム言語のコード入力によるプログラミングを独学するのに最適な理由である。

しかし、『理屈コネ太郎』がExcel VBAを推す理由はそれだけではない。実は、多くの人があまり気付いていない核心的な有用性がExcel VBAにはある。

以下、出来るだけ詳しく解説する。

Excelは、表計算やマクロ機能による事務作業効率化機能が広く知られている。

これらの機能のおかげで、世界中のホワイトカラーはタスクの氾濫の中で辛うじて溺死しないで生きながらえているのではなかろうか。

書店には、Excelの表計算やマクロ機能についての解説本が数多く並べられている。それだけ需要があるのだろう。そして実際に便利なのだ。多くのユーザーはExcel を事務処理ソフトとしてを認識してしまう。

換言すれば、多くの人は辿りつけてもせいぜいマクロ機能まで、殆どの人はExcel VBAに辿りつけずに終わってしまう。

Excel の核心的機能はVBAには備わっているというのに残念なことだ。

Excel VBAではユーザーがコードを入力してを使って自分の目的にあった計算処理を実行するためのプログラムを書くことが出来るのだ。

この機能を使えば、ifやwhileを重層的に含むウンザリするほど煩雑で膨大な計算処理を指一本の操作で何度でも繰り返し試行して記録する事ができる。

このVBA上でのプログラム機能こそが、Excelのソフトウェアとしての核心的の強みだと私などは思っている。

似た様な事はマクロでもやってやれない事はないかもしれない。しかし、マクロでは試行は基本的には一回きり。

幾度も同じ試行を繰り返すのは、その試行回数に比例して手間も増える。何千・何万の多回数試行を処理するなら、マクロ対Excel VBAでは後者の方が圧倒的に手間を省く事ができる。

Excel VBAはExcel画面の何か所かをクリックするだけで、すぐに開発環境が出現する。冗長な開発環境構築の手間が不要である事の素晴らしさは、Javaをプログラミング学習の最初の言語として選び、そして挫折した人には感涙ものだ。

Excel VBA最大の欠点は、Webサービスやシステム開発のためのツールが(たぶん)全く実装されていない事だろう。

だから、プロのSIerやWebエンジニアはExcel VBAなどには大きな興味は抱かない。多人数が使用する社会的インフラシステムやWebサービスを職業として構築するのが彼らの仕事だから。

しかし、確率論的計算やある種のシミュレーション、例えばマルコフ連鎖的(酔歩的)な挙動を示す確率過程を実験的に試行するには、しかも自動的に短時間で幾万回と繰り返し、結果を記録して、更にその記録を統計的に分析するには、これほど手軽で便利なツールは他に見当たらない。それを知らない人にはちょっとその便利さを想像すら出来ないほどExcel VBAプログラミングはベラボウにパワフルな機能なのだ。

故に、確率論的色彩ある科学や実務の領域では、Excel VBAを駆使して様々なシナリオをシミュレートするスキルは、非常に強力な武器になる。実際にこの機能を活用して自身の専門領域で成果を挙げている人は多くはないが、少なからずいる。

Excel VBAプログラミングは習得してしまえば特段難しいスキルではないが、その機能を知らなかったり、知っていても具体的な方法を知らない人が、他の手段で同様の計算処理を行う事は、通常のPC環境ではほぼ不可能だと思う。

繰り返すが、Excel VBAプログラミングは習得してしまえば特段難しいスキルではない。だから、このスキルを習得しないでいる事は、とてつもなく勿体ない事なのだ。

Excel VBAプログラミングは実生活にも当然の如く役に立つ。何故なら、実生活は様々な不確実状況下での意思決定の連続だからだ。

例えば我々庶民の間で長きにわたり論争となっている自宅の『購入』VS『賃貸』問題などは、現代人にはとても身近であるが、万人に当てはまる解答はみつけ出せない。その理由は、個々の人々が異なる将来ビジョンや変動する制約条件下で生活しているからだろう

もし、自分の選好(例えば将来ビジョンとか)や制約条件(例えば所得や金利の変動や扶養家族の増減とか)を確率変数として扱う事に慣れた人なら、モンテカルロ法やリアルオプション法などで色々なシナリオをシミュレートして『購入』VS『賃貸』論争に自分なりの決着を付けられる知れない。

普通、人生における様々な決断は、最終的には勘や信条・信念によって下されるものかも知れない。

『理屈コネ太郎』も多くの場合、最終的には勘や信念・信条を優先して多くの決定を下してきた。

しかし想像しえる様々な選択肢を、想定しうる限りの多様な蓋然性を織り込んでシナリオを確率論的に試行することは、意思決定プロセスに一定程度の定量的根拠を与える事になると思う。これにより、多少なりともより良い決断が下せるようになるかも知れない。

世界を運命論的にではなく確率論的に捉えている人には、Excel VBA プログラミングは強力な意思決定の補助輪になってくれるだろう。

そしてなにより、直面するひとつの問題を、想像しえる限りの選択肢と蓋然性を時間軸に沿ってシナリオとして捉えなおす作業が、問題の俯瞰と整理に極めて有効だと思う。

これほど素晴らしいExcel VBAプログラミング機能が、表計算やマクロ機能の便利さ程には評価されていないのが、私には大変に不思議である。

今回は以上。

当サイト内の他のコンテンツにご興味あれば下記よりどうぞ。。
人生のヒント一覧表! 人生はスイスイスイ!』へは”ココ”をクリック
当サイト内コンテンツのページ』へは”ココ”をクリック

 

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です