• ベストアンサー

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

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

  • kuhffd
  • お礼率97% (246/252)

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

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

こんばんは。 >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の主たる目的なので、そうすると、プログラム言語としての使用範囲が限られます。ただ、学ぶ言語としては、結果が早く分かるし、かなり明確な目的を持って使えますから、実用度は高いと言えます。ただ、いつまでも、アプリケーションの枠組みからは越えることが出来ないわけです。

kuhffd
質問者

お礼

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

その他の回答 (5)

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

こんにちは。 最初に、前回の発言の元は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 は手が出ませんでした。

kuhffd
質問者

お礼

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

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

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

kuhffd
質問者

お礼

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

  • ORUKA1951
  • ベストアンサー率45% (5062/11036)
回答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が自由に扱えれば就職には事欠かない。 「それとも他の言語に比べると簡単だからですか?」  慣れたらどれだって簡単。まあ、あまり複雑なことはできないかも。

kuhffd
質問者

お礼

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

noname#99913
noname#99913
回答No.2

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

kuhffd
質問者

お礼

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

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

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

kuhffd
質問者

お礼

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

関連するQ&A

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

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

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

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

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

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

  • ゲームプログラマーになるには

    現在大学生で、将来ゲームプログラマーになることを意識しています。 プログラミング言語は現在学習中で、 Javaに関しては簡単なマルチスレッドのプログラムが書ける程度ですが、 現在売り出されているゲームプログラミングに関する本はほとんどVisualC++とDirectX用に書かれているようなので、 最近C++を勉強し始めました。 入門書の内容はどれもそれほど難しくないのですが、ゲームプログラミングの本を読むととても難しく、すぐに手は出せない感じがします。 そこで質問なのですが、 ・今後ゲームクリエイターを目指していくにはどの言語を取得するのがよいでしょうか。 ・ゲームプログラミングの本がわかるようになるくらいの、入門書の次に読むレベルの本でよいものはあるでしょうか。 ・その他、ゲームプログラマーになるためのアドバイスなどあったらお聞かせください。

  • プログラマーに関してお尋ねします。

    すみません、先程プログラマーに関して質問をしたのですが、またお聞きしたい事があった為質問させて頂きます。 以前、プログラミングを教えているパソコン教室の説明会に行った時の事なんですが、一つの言語をマスターしていると他の言語も自然と頭に入るので、プログラマーになりたいなら最低一つ言語をマスターして下さいと言われました。 例えばJAVA経験者を募集している企業に「私はVBをマスターしているのですが、いかがですか?」という風に聞いてみても良いと…。 実際、言語の名前は違っても、皆似たようなものなのでしょうか? 以前、WEBプログラミングを少し習った事はあるのですが、複数言語を習いましたが全ての言語が全く違ったものに私には思えました。 実際はどんな感じなのでしょうか?

  • プログラマーは主に何を作っているのでしょうか?

    全くのプログラミング未経験でわからないのですが、社会人でプログラマーの人たちは主に何を作っているのでしょうか。また作るものによって使われる言語は違ってくるのでしょうか?詳しい方教えてください。

  • プログラマーになるなら、

    プログラマーになるなら、 「趣味は?」と聞かれたら 「プログラミングです!」と答えられるくらいプログラムを組むのが好きじゃないとなれないですか?

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

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

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

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

  • 働きながらプログラマーになるには

    SEやテスト・評価の仕事をしています。 プログラミングの知識は以前はなかったのですが、仕事で要求仕様書や画面遷移書、テストケース書類を日々見ると同時に、プログラマーがCCで入れてくるメールの内容を見ていたため(CやJava)、コンパイル、ビルド、などの仕組みを覚えていきました。 仕事でExcelのVBAは簡単なものは覚えていき、自分もなにか言語をもっと理解できるようになりたいと、スクールでJavaを身につけましたが、仕事はあいかわらず開発進行やテスト・評価をやっています。 この仕事とは別に、何年かかかってもよいのでJavaかVBAでの開発の仕事を受託でできるようになりたいのですが、ビギナーではプログラミングの仕事にありつける可能性は少ないとおもいます。新卒を企業がOJTからプログラマーに育てるコースに乗った方もいるようですが、新卒ではもうないので、それは望めません。 質問ですが、プログラミングをスクールや趣味からはじめて自分の仕事にもっていくには、どのような方法があるでしょうか。 もちろんコツコツいろいろプログラミング・スキルを身に続けるのは当然です。 JavaはSilver資格を受けたら実務経験ないのに受かってしまいました。

専門家に質問してみよう