質問: vbaのプロかどうかの基準 クラスモジュールを使いこなせていたら プロと思っていいですか? (プロかどうかの判断は人それぞれですが、、、)
回答: こんにちは。 私は、プロとは名乗れるものではありませんが、いくつか見聞きしてきたものがあります。そして、いくつかの論点から語れるとは思います。軽々にプロが何である、とは言うつもりもありませんし、あくまでも、私見ですから、議論や中傷はお断りします。 まず、資料からです。 「本」を出してお金を得ている人なら、一応はプロとは言えるとは思うのですが、ある著者の内容は、まったくmicrosoft 側が示す基準には外れていて、私の目からは、それがプロだとは言いがたいものもありました。技術的に、プロレベルの書籍は、軒並み売れていません。読者側の批判もつよいようです。だから、1年程度で絶版になってしまいます。そういう事情から、あえて資料から言わせていただくと、残念ながら、英語の書籍を求めるしかないと思います。どう考えても、プロフェッショナルな資料は、もう日本語では手に入りそうにありません。特に、wordやoutlook は、条件的には不可欠なのに、vbaの資料は入手するのが困難です。たとえば、オライリーの書籍などは、内容的には難しくありませんが、興味深いです。なぜなら、視点が違うからです。 余談ですが、すべてがプロ仕様の内容とは言いませんが、出版社の九天社の倒産は、惜しいことをしました。また、アスキーのmicrosoft office の書籍と、日経bpの同書籍では、大学と小学校ぐらいの差があるように思います。 次に、ソフトウェアです。 以前のdeveloper、visual studio tools for office, 現在のvs2008pro が使いこなせることが条件になってくると思います。つまり、商用の証明機関 (ca) のデジタル証明書をつけるには、現在ではこうしたもので、comやactive x で作るものが主流になっていると思うのです。むろん、現行のoffice添付のアドインが、すべてそうだとは言いませんし、実際に、accessでは、このようなことは言えないし、excelにおいても、それで、プロの製作のものだということではありません。ただ、以前、microsoft サポートで、わたし的な理解ですが、「vbaの作成者は、著作権保護を言うなら、プロジェクトのロックのセキュリティを期待してはいけない、コンパイラでdllにすべきである」と書いてあった覚えがあります。vbaで作成したものと、コンパイラでビルトしたものは、趣向が違うので、そうしたツールが絶対的ではありませんが。 次に技術。 プロフェッショナルな技術的な基準というものは、あるとは言いにくいですが、プロジェクトaのある方が、その基準のようなものを出しました。現在、vbaエキスパート・プロフェッショナルの試験の基準にもなっているわけですから、その資格や内容に問題はないと思います。ところが、その方が直接は言ってはいないのですが、vb6, vb.net, html, vbs,asp, c++, c の他の言語の知識を背景にして、vbaを使いこなすということのようです。ここの掲示板でも、それに該当する人物はいますが、クラスがどうこうというような、レベルとは違うと思うのです。たとえば、クラスというか、オブジェクト指向にしても、vbaから上り詰めていくことは不可能に近いわけで、c言語などからの概念から、派生してきたものだ、と考えるわけです。だから、私個人、vbaからは、技術として到達するものには限界があると思います。 一般的なプロとしての作業。 一般的に、プロの場合は、カスタマにヒアリングをして、その要望の概要をつかみます。結果的に相手の要望に満たないものを作ったら、いくら技術があってもプロとはいえません。しかし、製作する側は、その仕事をすべて知っているわけではないので、どの部分にポイントがあるかを見出さなければなりません。カスタマはプログラマではないので、肝心なことを曖昧な言い方をしたり、また、会社側が、表に出来ないような部分を、vbaで盛り込まなくてはならないというのは、特別なヒアリング技術が必要かもしれません。その仕事を理解しているのがベストですが、必ずしもそうとはいえません。それで、期限を区切られるというのですから、楽な仕事とは言えません。 また、私の感覚ですが、レイアウト的な才能が必要のような気がします。excel、access や wordでも、プロの作ったものが垢抜けているなと思う点は、そこに違いがあるようです。以前、愕然とさせられたことがありました。技術論とは違った部分が存在するようです。それこそはプログラムの技術だけの問題ではないので、経験的な差なのかもしれません。 私が教わったことは、ユーザーが遭遇しうるすべてのエラーに、プログラムとして対処するということでした。他にも、プロのコードは美しいものだとか言っていましたが、私には、分からないです。美的感覚よりも、機能的なものだと思っています。この場合は、個々の技術とは関係のないものが含まれていると思うのです。 もうひとつ、vbaとは直接関係がないかもしれませんが、私が知っているプロは、コーディングのスピードがまるで違うということです。私などは、まるで和英辞典を引きながら英文を書いているようなものです。それに、インテリセンスやヘルプでつづりを調べてしもうことがあります。そういう機能のおかげで、曲がりなりにも格好はつくのです。私は、もう年齢的にも才能も届かないのですが、世の中には、まるで同時通訳のレベルで、猛烈なスピードでコーディングをしている人たちがいるのです。とうてい、私などには敵わないです。