
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の主たる目的なので、そうすると、プログラム言語としての使用範囲が限られます。ただ、学ぶ言語としては、結果が早く分かるし、かなり明確な目的を持って使えますから、実用度は高いと言えます。ただ、いつまでも、アプリケーションの枠組みからは越えることが出来ないわけです。
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 は手が出ませんでした。
No.5
- 回答日時:
(1)VBAの代表的なものは、エクセルVBAでしょう。
これはエクセルの処理と本来、不即不離のものです(オブジェクトというプログラム群がエクセル処理のものが集っている)。それ以外の処理を望んでも無いものねだりなんです。そして一般社会の業務は、データ処理にしてもエクセルでは不十分です。もともとそういう層をターゲットにしたソフトではない。
しかしEUCなどで、一般でも使えるように降りてゆくべき社会のニーズもある。その場合エクセルやエクセルユーザー層も、プロも無視できない。
しかし、プロがメインで使うには向かない。
AccessVBAになると、ある会社ではプロもそれを使ってシステムにしている(実例有り)かもしれないが、他社の業務では、そうでないから、プロとしては、十分でないことになる。オラクルなどと比べるとやはり弱い面があるわけです。
そして他の業務などはぜんぜん役に立たないわけです。
(2)大体の傾向として、素人から勉強して、VBAまでならやれる状態になるコースをとると思うが、その場合、そこから先がプロとしては不安である場合がほとんどとおもう。
エクセルというもののコンピュター処理での必要知識は偏っていること。一例で通信、画像処理関係。
それ以外に必要とする難しい言語や仕組みアルゴリズムや利用するソフトがいっぱいである。
新しい会社の仕事を請け負ったら、業務知識+必要コンピュタ知識
など沢山勉強せねばならず、さらに日進月歩でご苦労なことだ。
そういうことをプロは知っているから、採用側は今後(一から)相当鍛えなおし、勉強してもらわないと使い物にならない、とう思いになるのではないか。それなら養成する会社は、ド素人と余り変わらないと思い、既経験者を採用側は不安になるのでは。
VBAも、.NETの時代になって同系統が進歩してしまったから、学び直しになるので、なおさら採用側はVBでの開発が多くても、今後相当鍛えなおし、勉強してもらわないと、と言う状態になったのではないでしょうか。
No.3
- 回答日時:
一言で言えば、とっても使いにくい。
プログラマーから見ると、たいしたこともできない癖に、システムに依存しすぎて汎用性が無い・・に尽きるでしょう。
自分(あるいは会社という狭い世界)の使用しているシステムに依存する部分が多い。officeのバージョンがちょっと違うだけで動かない。都度、そのマシンに何かを追加しないと動かない。
「vbaでプログラムを組めてもプログラマーにはなれない」ではなくて、VBAの知識があまり役に立たないということでしょう。
VBAでも相当のことはできます。ゲームでさえ作れる。
猫とエクセル ( http://www.geocities.co.jp/SiliconValley-Cuperti … )
エクセルExcel大事典 マクロVBAワークシート関数入門応用使い方講座 ( http://home.att.ne.jp/zeta/gen/excel/ )
「vbaは一流のプログラミング言語ではない」
汎用性に乏しい・・これが一番の理由でしょうね。たとえばjavaならどんなマシンでもそのまま使えるといっても良い。
コードが読みにくい・・Pascalなら誰が書いてもほとんど同じでメンテナンスしやすい。
Perlなら文字処理が楽で、好きなように日常会話に近い・・
「それはvbaの需要がないからですか?」
・・これは意外とある。社内でのみ使用するものなら、これに勝るものは無いかも。VBAが自由に扱えれば就職には事欠かない。
「それとも他の言語に比べると簡単だからですか?」
慣れたらどれだって簡単。まあ、あまり複雑なことはできないかも。
No.2
- 回答日時:
正確にはVBAはプログラミング言語ではありません。
マクロ言語です。もともとはマクロ然とした文法でしたが、MSの方針により、途中からVBと同じ文法がとられるようになりました。プログラミング言語というと、一般にはコンパイルしてEXEファイルを作成できるものをいいます。VBAのようにアプリケーションの中だけで動作するものはマクロ言語です。
質問のようなことは聞いたことがないのですが、逆にいえば、VBAすらできない人はプログラマーにはなれないでしょう。
エクセルを使いこなしている人のうちのかなりの数の人がマクロを使用しています。このサイトを見ても、マクロについての質問がけっこうありますし、答える人もたくさんいます。需要がないことはありません。
一時期、BASICは構造化プログラミングが難しく、ほかの言語より一段下に見られた時期もありましたが、今はかなり構造化の手法が取り入れられ、先輩(後輩?)言語にさほど見劣りしないところまで成長しました。
ただ、C言語(これは後輩)などと比べると、生成された実行ファイルが低速であることは否めません。ですので、本格的な実用アプリ製作には向かないのも事実で、もっぱら日曜プログラマーに使われています。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBAで鬼車/鬼雲を使えるようになるコードが知りたい 3 2022/05/10 18:14
- その他(Microsoft Office) Excel、PowerPoint、Word中級レベル 3 2023/06/20 18:09
- IT・エンジニアリング 現在地元密着sierで働いています。 フリーランスエンジニアになるためにはどのような選択を取るのが良 3 2023/05/30 12:41
- Visual Basic(VBA) VBA言語プログラミング 1 2022/11/19 17:16
- その他(言語学・言語) VBA、C言語、英語。 それぞれの習得時間ってどれくらいですか? 1 2023/03/30 20:55
- IT・エンジニアリング 現在地元密着sierで働いています。 フリーランスエンジニアになるためにはどのような選択を取るのが良 1 2023/05/30 18:52
- Visual Basic(VBA) WordのVBAについて 5 2023/01/11 14:38
- Excel(エクセル) エクセルでcsvファイルを開いてVBAを使いたい 7 2022/04/28 11:12
- その他(プログラミング・Web制作) 大学一年でVBAのプログラミングを勉強しているものです。来週の情報の授業で以下の問題のプログラムを勉 4 2023/01/19 16:15
- Excel(エクセル) ランダムで四択の問題を作る場合にvbaで何を学べばいいでしょうか。 1 2022/04/14 16:45
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
プログラムからアイコンファイ...
-
C言語とhtmlの違いを どな...
-
プログラミングについてです。 ...
-
UNITY Float型の接尾辞fって
-
スプレッドシートの作成
-
GCCでグラフィック
-
プログラミング言語の取得方法
-
C言語、C+、C++、C#の違い
-
言語のことで。
-
プログラム言語別用途
-
COBOLでのNOT = の AND条件
-
EXCELの表示について
-
ホームページを作成する際に良...
-
VBScript
-
プログラムに書かれる"%"記号の...
-
初心者におススメのプログラミ...
-
Bassic98 For Windows 4.1の組...
-
チューリング完全とは何か?
-
プログラミング言語は何種類で...
-
C言語の参考書
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
C言語、C+、C++、C#の違い
-
プログラムからアイコンファイ...
-
C言語とhtmlの違いを どな...
-
COBOLでのNOT = の AND条件
-
プログラムに書かれる"%"記号の...
-
UNITY Float型の接尾辞fって
-
C++における継続行
-
COBOLで文字タイプを数字...
-
UWSCはどのプログラミング言語?
-
Excel VBAで文字化けする (英語...
-
VBScriptで引数を省略したい場合
-
vbaとc言語の関連性について
-
VCとVC++
-
TO_CHARで小数点以下がある場合...
-
パスカルケースの由来。
-
VBSでDim、Private、Publicの違い
-
C++ ってなんて読む?
-
C for Linuxでの設定ファイル読...
-
VBSとWSHは読み方が違うだけで...
-
VB.NETからC言語への乗...
おすすめ情報