• ベストアンサー
  • 暇なときにでも

vbaがプログラマとして人気のない理由

よく、vbaでプログラムを組めてもプログラマーにはなれない、や vbaは一流のプログラミング言語ではない、 と言われますが それはvbaの需要がないからですか? それとも他の言語に比べると簡単だからですか?

共感・応援の気持ちを伝えよう!

  • 回答数6
  • 閲覧数8908
  • ありがとう数9

質問者が選んだベストアンサー

  • ベストアンサー
  • 回答No.4
  • Wendy02
  • ベストアンサー率57% (3570/6232)

こんばんは。 >vbaは一流のプログラミング言語ではない、と言われますが 私自身は、聞いたことはありません。昔のMicrosoft のパンフで、VBは、お遊びだなんていう書き方を読んだことがありますから、それと同じか、それ以下というべきなのでしょうか? 最初にいえるのは、Office というシステムに依存して、VBAに割り当てられたメモリは極端に少ないのです。ひとつのプロシージャで数千行ということは出来ません。 でも、VBAは、非常に需要は高いです。VBAをなくしますと言ったら、世界中のOffice ユーザーから非難轟々とでます。事実、それがあったので、VBAをなくすプランは、頓挫してしまいました。 現行のVBAでは、本格的なオブジェクト指向でプログラミングが出来ないだけで、全うなプログラム言語であるのは間違いありません。しかし、Office のアプリケーションに依存していますので、そのオブジェクトに依存してしまいます。WordとExcelの違い、Outlook とそれら二つとは、ほとんど共通性がありません。 Office VBAにもプロの世界がありますが、ほとんど知られていない世界です。Office VBAを専門に扱う人は、VB/C# などを使いこなせるはずです。また、ASP, WScript なども使いこなします。ふつうは、Office VBAの専門にしている人は、ひとつの会社で、構築した知識はあっても、普通は、独立したプログラマとしては、特殊すぎて存在しえないものだと思うのです。 Mougで掲示板に書いている、ある方のように、Office VBAの開発で、一件、数百万円も稼ぐそうですが、なかなか、そのような仕事をキープし続けるのは無理だと思います。むろん、Office VBAの開発と言ってはいても、Visual Basic for Application というだけのものではなく、様々な周辺知識がないと維持できないわけです。 Office VBAやその周辺を扱う技術というのは、入門レベルの底辺の人がものすごく広いということです。ところが、その入門レベルから、次のステップが限りなくレベルが高いし、次のステップに進むための橋渡しになるものがありません。それに、上級レベルまで覚えても、こんどは活かせる場所がほとんどありません。特に、Excelは、記録マクロ程度でも、VBAを使いこなせると宣言する人もいますから、全体的なレベルを押し下げていることには違いはありません。Access とは、ずいぶん印象が違います。Office VBAでも、ものすごく高度なことは出来ますが、そうしたものが、独立して存在しているわけではないのです。 最後に、あくまでも、アプリケーションを操作するのが、VBAの主たる目的なので、そうすると、プログラム言語としての使用範囲が限られます。ただ、学ぶ言語としては、結果が早く分かるし、かなり明確な目的を持って使えますから、実用度は高いと言えます。ただ、いつまでも、アプリケーションの枠組みからは越えることが出来ないわけです。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

お詳しいですね!デメリット・メリットを教えて頂きありがとうございます。

その他の回答 (5)

  • 回答No.6
  • Wendy02
  • ベストアンサー率57% (3570/6232)

こんにちは。 最初に、前回の発言の元はWikiPedia の日本語版の内容の間違いが発端で、それがキーワードとして触発された内容でした。 決して、特定の方のレスには関係がありません。私の不用意な言葉で、不愉快に思われた方には、お詫び申し上げます。 少し補足させていただきますが、この質問は、Yes/No や白・黒をはっきりとさせるようなことは難しいのではないでしょうか?単に、機能論だけでは治まらないからです。 他のC++ /VB.Netなど、単独でアプリケーションとして作られる言語と、プログラム言語として、VBAを考えること自体が間違いかもしれません。たとえば、TextStream 系の言語、また、JavaScript やVBScript は、コンパイル(Perlは可能)が出来ないだけではなく、非常に周りの環境に影響されやすい言語です。その点では、VBAは、ある程度の言語としての共有性や安定性は保たれているように思います。プログラム言語としての開発環境も整えられていると思います。 >vbaは一流のプログラミング言語ではない、と言われますが 前回、否定しましたが、VBAは、プログラミング言語として、自由に使える部分が制約されています。にもかかわらず、驚くべきレベルでExcel VBAなどを使える人も中にはいます。しかし、VBAは、アプリケーションの一部でしか過ぎません。すでにアプリケーションが成立しているから、構築していく部分や、使用される対象や範囲が違ってきます。 言い換えれば、大抵のことはアプリケーション側でまかなえるので、VBAは、本格的なプログラミングを要求されません。それに安住してしまう人がほとんどだと思います。それ以上に、技術を上げようと考える人は、本当に少ないようですし、VBAからでは、先に進めるための情報の入手手段がないように思います。いずれにしても、C++やJava があるなら、VBAのままの知識ではたりませんから、どういう手段だとしても、別途学ばなくてはなりません。もし、問題があるというなら、Microsoft 側のプログラミング言語の一覧パンフで書いているように、VBAではなくて、VB6そのものだと思います。 ただ、個人的な経験から言うと、VBAを一通り学んでいなかったら、自学学習では、VB6やVB.Net は手が出ませんでした。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

難しい問題なのですね。 ありがとうございます。

  • 回答No.5
  • imogasi
  • ベストアンサー率27% (4635/16588)

(1)VBAの代表的なものは、エクセルVBAでしょう。これはエクセルの処理と本来、不即不離のものです(オブジェクトというプログラム群がエクセル処理のものが集っている)。それ以外の処理を望んでも無いものねだりなんです。 そして一般社会の業務は、データ処理にしてもエクセルでは不十分です。もともとそういう層をターゲットにしたソフトではない。 しかしEUCなどで、一般でも使えるように降りてゆくべき社会のニーズもある。その場合エクセルやエクセルユーザー層も、プロも無視できない。 しかし、プロがメインで使うには向かない。 AccessVBAになると、ある会社ではプロもそれを使ってシステムにしている(実例有り)かもしれないが、他社の業務では、そうでないから、プロとしては、十分でないことになる。オラクルなどと比べるとやはり弱い面があるわけです。 そして他の業務などはぜんぜん役に立たないわけです。 (2)大体の傾向として、素人から勉強して、VBAまでならやれる状態になるコースをとると思うが、その場合、そこから先がプロとしては不安である場合がほとんどとおもう。 エクセルというもののコンピュター処理での必要知識は偏っていること。一例で通信、画像処理関係。 それ以外に必要とする難しい言語や仕組みアルゴリズムや利用するソフトがいっぱいである。 新しい会社の仕事を請け負ったら、業務知識+必要コンピュタ知識 など沢山勉強せねばならず、さらに日進月歩でご苦労なことだ。 そういうことをプロは知っているから、採用側は今後(一から)相当鍛えなおし、勉強してもらわないと使い物にならない、とう思いになるのではないか。それなら養成する会社は、ド素人と余り変わらないと思い、既経験者を採用側は不安になるのでは。 VBAも、.NETの時代になって同系統が進歩してしまったから、学び直しになるので、なおさら採用側はVBでの開発が多くても、今後相当鍛えなおし、勉強してもらわないと、と言う状態になったのではないでしょうか。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

大変参考になりました。ありがとうございます。

  • 回答No.3

一言で言えば、とっても使いにくい。 プログラマーから見ると、たいしたこともできない癖に、システムに依存しすぎて汎用性が無い・・に尽きるでしょう。  自分(あるいは会社という狭い世界)の使用しているシステムに依存する部分が多い。officeのバージョンがちょっと違うだけで動かない。都度、そのマシンに何かを追加しないと動かない。 「vbaでプログラムを組めてもプログラマーにはなれない」ではなくて、VBAの知識があまり役に立たないということでしょう。  VBAでも相当のことはできます。ゲームでさえ作れる。 猫とエクセル ( http://www.geocities.co.jp/SiliconValley-Cupertino/8748/ )  エクセルExcel大事典 マクロVBAワークシート関数入門応用使い方講座 ( http://home.att.ne.jp/zeta/gen/excel/ ) 「vbaは一流のプログラミング言語ではない」  汎用性に乏しい・・これが一番の理由でしょうね。たとえばjavaならどんなマシンでもそのまま使えるといっても良い。  コードが読みにくい・・Pascalなら誰が書いてもほとんど同じでメンテナンスしやすい。  Perlなら文字処理が楽で、好きなように日常会話に近い・・ 「それはvbaの需要がないからですか?」 ・・これは意外とある。社内でのみ使用するものなら、これに勝るものは無いかも。VBAが自由に扱えれば就職には事欠かない。 「それとも他の言語に比べると簡単だからですか?」  慣れたらどれだって簡単。まあ、あまり複雑なことはできないかも。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

確かにそういう意味ではvbaは不便ですね。 ありがとうございます。

  • 回答No.2
noname#99913
noname#99913

正確にはVBAはプログラミング言語ではありません。マクロ言語です。もともとはマクロ然とした文法でしたが、MSの方針により、途中からVBと同じ文法がとられるようになりました。 プログラミング言語というと、一般にはコンパイルしてEXEファイルを作成できるものをいいます。VBAのようにアプリケーションの中だけで動作するものはマクロ言語です。 質問のようなことは聞いたことがないのですが、逆にいえば、VBAすらできない人はプログラマーにはなれないでしょう。 エクセルを使いこなしている人のうちのかなりの数の人がマクロを使用しています。このサイトを見ても、マクロについての質問がけっこうありますし、答える人もたくさんいます。需要がないことはありません。 一時期、BASICは構造化プログラミングが難しく、ほかの言語より一段下に見られた時期もありましたが、今はかなり構造化の手法が取り入れられ、先輩(後輩?)言語にさほど見劣りしないところまで成長しました。 ただ、C言語(これは後輩)などと比べると、生成された実行ファイルが低速であることは否めません。ですので、本格的な実用アプリ製作には向かないのも事実で、もっぱら日曜プログラマーに使われています。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

vbaはマクロ言語なのですね。 ありがとうございます。

  • 回答No.1
  • x1va
  • ベストアンサー率26% (802/3006)

基本的にはMicrosoft Officeで簡単な作業を自動化するためのもので、本格的なソフトウェアを作るためのものではありません。 例えるなら日曜大工程度の簡単なものを作るには良いけれど、本職の大工が家を建てるには不足するような感じでしょうか。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

とてもよくわかりました。 ありがとうございます。

関連するQ&A

  • Excel VBA を使うプログラマー

    おはようございます。 私は今現在20代でフリーターをやっております。 タイトルにあるとおり、ExcelのVBA言語を使ったプログラマー又は仕事につきたいと考えております。 Excelはある程度使えるものの、実務経験などはありません。 ExcelのVBA言語を使用するプログラマーになるには、どうすれば良いでいしょうか? 以下、私がプログラマーになるために今後考えていることです。 ・MOSのExcelとExcel VBAの資格を取得する。 ・VBA言語の講座を受け、技術を高める。 みなさんの知恵をお貸しください。お返事待っております。

  • Webプログラマーになるためには・・・

    こんにちは!もうすぐ高校1年になる男子です! 僕は将来Webプログラマーになりたいと思っています。そこで、今から少しずつプログラミング言語を学びたいと思っています。(書籍を使って)&(まったくの素人です) でも、何の言語から学んでいいか分かりません。またWebプログラマーになるためには、どのような言語が必要になるのかも分かりません。そこらへんを教えてください! お願いします!

  • なぜvbaは馬鹿にされるのでしょうか?

    なぜプログラマーにvbaは馬鹿にされるのでしょうか? 「Vbaはプログラミング言語とすら言わない。簡単すぎる」 と言われるくらいですが、 なぜ-そんなに馬鹿にされるのでしょうか? 私はvbaを勉強していますが、難しく感じます。

  • JAVAプログラマーは人手不足?覚えるならやはりJAVAが良い?

    Webデザインをやっていましたが、プログラミングもやらなくてはならなくなりました。 いったいどのプログラミング言語が良いのか考えておりますが、JAVAが人手不足だとスクールから聞きました。ホントのホントか?と聞いても間違いないと言われます。 スクールは売上上げたいだけかも知れないので話半分に聞いていますが、本当にJAVAプログラマは需要が多く人手不足なんでしょうか? 「確かにそうだが、実はハイレベルプログラマしか需要は無い」のが現実とかじゃないでしょうか。 生活の為にツブシをきくようにするのが第一優先なので、プログラミングが嫌でも何でもただただやるだけなんですが、どうせ好きでないことをやるのだからせめて需要が多くツブシがきく言語が良いわけですが、やはり言語としてはJAVAが良いでしょうか? 例え中小企業に多い共用レンタルサーバでPHPやCGIを操ろうとしても、JAVAがわかっていれば楽である、とも聞きますが。 宜しくお願い申し上げます。

  • プログラマーで覚えるべきものを教えて

    プログラマーのプの字も知らないのですがプログラムの勉強をしようと思っています、結構やる気はあります そこで 1 プログラマーに必須なもの 2 今、もしくはこれから需要が高いというもの 幾つでも構いませんので教えていただきたいです、また学習していく順序やコツなども良ければ教えてください

  • Excel VBAを今から勉強するのは

    もう20年近く前からVBAのことが気になりつつ、 使いこなせれば便利だろうなぁとか思いつつ、今に至っております。 IT業界のことをほとんど全くわかっていないのですが、 今時VBAを勉強したところで役に立つシーンはないですか? それとも多少なりとも飯のタネになりますか? 趣味と実益を兼ねてプログラミング言語を勉強するとしたら他に何かおすすめの言語はありますか? 年齢的にはもう中年ですので、プログラマーとしてやっていこうという野望を抱いているわけではないですが、趣味以上に突っ込んでやれたら面白そうだなと思っています。 プログラミング経験は全くの"0”ではなく、MSXのBASICで遊んだ経験はあります。

  • プログラマーの方へ質問です。

    プログラマーの方へ質問です。 現在扱えるプログラム言語はいくつありますか? できれば、言語名も教えてください。

  • めんどくさがり屋はプログラマに向いてないですか?

    私はプログラムの初心者です。 と言っても今の所vbaしか勉強していません。 そして自分はめんどくさがり屋です。 逆にめんどくさがり屋だから、 単純作業やルーチンワークをプログラム化して楽しています。 だけど長ったらしいコードを見ると、 やる気がなくなります。 でも嫌々読んでいます。 でもそうやっていて、一連のプログラムが完成した時は嬉しいです。 また、仕事中以外の家に帰った時や休日でもVBAの本を読んだり、 寝る間を惜しんで家でプログラムを組んだりしてしまいます。 短いコードや、やる気がある時は、無我夢中になります。 こんな自分はプログラマに向いてないでしょうか? プログラマの皆さんはどんな性格をしていますか? どんなにめんどくさい作業や長いコードでも めんどくさがらずに楽しく作業しているのでしょうか?

  • VBAの仕事

    こんにちは、お世話になります。 現在プログラマーを志望している者です。 私はエクセルやアクセスのVBAが面白く、他の言語よりこれらを使った仕事がしたいと思っています。ただC言語やJAVAのプログラマーと比べると、何か種類が(職種が?)違うような感じがします(私的にですが・・・) エクセルやアクセスVBA使用するプログラマーも、やはり普通のプログラマーの環境だと考えて大丈夫でしょうか? よろしくお願いします。 あとエクセル・アクセスVBAを使用されてる方がいましたら、どんな仕事内容かを教えていただけるとありがたいです。

  •  プログラマー職はどういうものか

      こんにちは。 自分は、ソフトウェアを作成する会社で働きたいので就職活動をしている者です。 派遣でもいいのでプログラマーとして活躍したいと考えています。 そこで質問なんですが、プログラマーとして働く場合最低どれくらいのスキルが必要 になるんでしょうか? 言語が複数使えないとだめとかプログラムが組めるならだい たいこのぐらいできなきゃだめという感じで教えていただければ助かります。