|
七瀬さん、当質問箱主宰者の谷です。
まじめなお悩みなので、まじめにお答えします。
>ある書籍によると『ExcelVBAは、元来Excelの定型作業を自動化するために
>生まれた言語であるが、現在では個人ユーザーはもとより企業内ディベロッパー
>までもがExcelVBAを【Windowsの主要な開発言語】と位置付けて、こぞって
>開発業務に取り入れています。高く評価される理由は【ActiveXコントロール】と
>【関数】にあります。』と、記述されています。
これはある側面から見ると正しく、別の側面から見ると間違っています。
ある側面とは何か。それは、現場(開発現場ではなく、利用者の現場)においてExcelの使用頻度が大変多く、Excelで仕事をするという条件下において ExcelVBA は非常に重要だ、という点です。
そもそもExcelVBAは、上にも記されているとおり「Excelの定型作業を自動化するために生まれた言語」であり、それ以上でもそれ以下でもありません。Excelの処理を自動化する以外のことはまったくできない、とお考えください。この質問箱を訪れるVBAプロフェッショナルの方々が様々な仕事にExcelVBAを利用されていますが、それはどこまでいっても「Excelというプラットフォーム上で色々な仕事をする」という大前提に基づいています。AccessVBAも同様です。つまりVBAは、どうがんばってもExcelやAccessの外に出ることはできないのです。
色々なデータ処理をExcelで行っているような現場、または大規模データベースから抽出したデータをExcelで処理しているような現場、もっと言ってしまえば「Excelがとっても重要な現場」では、ExcelVBAの重要度も非常にあがるでしょう。(Excelで複雑なことをしていない人ならVBAは重要ではないかもしれませんが)
逆に、業務においてExcelがそんなに重要ではない場合は、VBAもあまり(というか全然)重要視されません。また、システム開発においてもVBAは重要視されないでしょう。
VBAはどうしても、利用現場の人が現在抱えている問題を解決する、という目的で利用するというニーズが強く、VBAでシステム開発の仕事を受注する、というニーズはあまりありません(全然ないわけではないけど)。
>職安にて求人情報を閲覧していると『プログラマー募集、C++、VB、VC、JAVAのいずれ
>かの言語が扱える人』
世間一般にVBAは「プログラミング言語」と認識されている様子はあまりなく、どこまでいっても「しょせんExcelを自動化するマクロ言語でしょ」止まりです。
(実際、Excel+VBAに無限の可能性があるということは、ここに集まっている多くの方が実証されていますが)
上記のような求人の場合は、暗に「C++、VB、VC、Java で開発経験のある人」という意味がこめられています。七瀬さんでなくても、たとえば「COBOLしか知りません」という人なら書類選考で落ちていたでしょう。
>『VBAかぁ、せめてVBくらいなら何とかなるけどなぁ』との返事でした。
>冒頭に書きました『ExcelVBAはWindowsの主要な開発言語として高く評価されている』
VBは「アプリケーションを開発するための言語」です。ゲームや会計システムや計測機器制御システムなどを開発するための言語です。
VBAは「Excelを制御するための言語」です。どんなに便利なことができても、Excelの外に出ることはできず、Excelが使用されないのであれば登場の余地はまったくありません。逆にVBでExcelを制御することは(できるけど)大変難しい。
プログラミング言語の優劣の問題ではありません。目的、趣旨、めざすものが違うのです。
ExcelVBAプログラマの世間の位置付けは「Excelをとってもよく知っている人」です。
実際はどうか、ということは別にしてね。私はVBAは無限の可能性があると思っています。Excelにできないことはない、とも思っています。でも、ExcelVBAはExcelの外に出ることはできない。それだけは、事実なのです。
がんばってください。
|
|