Visual Basicを学習したら、Excel VBAやAccess VBAに役立ちますか?

回答の条件
  • 1人1回まで
  • 登録:
  • 終了:2015/08/16 12:24:46
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:language_and_engineering No.2

回答回数170ベストアンサー獲得回数63

ポイント60pt

役立つというより,むしろ腹が立つと思いますよ。

「せっかくVBを勉強したのに,VBAは昔風の書き方しかできない。学んだ知識が役立たない」
と,歯がゆい思いをするはずです。

昔のVB,つまりVB6を今でも仕事で使っているような人であれば,
VBAやVBSは同じようにすらすら書けます。
 VB6→VBA
 VBA→VB6
はすんなり移行できるということです。

しかし,VB6は新規参入できる技術ではありません。
いまVBを学び始めるとしたら,間違いなくVB.NET一択です。

VB.NETはC#.NETと同じく,マイクロソフト社の .NET Framework 上で動作します。
そして,VB6とVB.NETはまったく別言語というほどのギャップがあります。
 VB6→VB.NET :同じ系列の言語とはいえ難しい
 VB.NET→VB6 :そのような逆行をする人はいない
 VB.NETとC#.NET :共通のフレームワーク上で動くので互いに変換可能

なおかつ,VBの生産性の悪さ,言語としての使いづらさ,利用者層のリテラシの低さは
IT業界では,大きな問題として認知されています。

これは正直に言いますが,VBを積極的に学ぼうとしないほうがよいです。
今から .NET 系の言語を学ぶのであればVB.NETではなくC#を誰もが勧めるはずです。

詳しくは下記の記事を参照。
 「C#.NETとVB.NETを比較すると,VB.NETはオワコンで未来が無く,技術者としてしっかりできない」
 http://d.hatena.ne.jp/TipsMemo+computer-technology/20140517/p1

そういうわけで,公平に言って,どんな理由であれ
今から新しくVBを学ぶべきではありません。
数年以内に悲しい結果になります。

一方,今からVBAを単独で学ぶのは構いません。
VBAはVBとの関連でとらえるのではなく
VBAだけで閉じた独立した世界だとみなしましょう。

そして,できればVBAを使わず,COMのオートメーションを経由して別言語からExcelやAccessを自動操作しましょう。
そうすればVBAを使う必要も無くせるので,VBとは完全に決別です。
その場合でも,先にVBAを経験しておけば,他の言語からのオートメーションを組みやすくなります。

ネットワーク管理のためにVBSを学ぶのは構いませんが,できればVBSよりもPowershellに力を割くほうがよいでしょう。
そうすればVB6時代の負の遺産に引きずられず,.NETを使えます。
 
結論として,
「昔はYesだったが,現在までの10年間でいうと,否定的な回答をせざるをえない。」
というアンサーになります。

その他の回答1件)

id:segavvy No.1

回答回数12ベストアンサー獲得回数5

ポイント40pt

Visual Basicには、「Microsoft Visual Basic」と「Microsoft Visual Basic.NET」の2種類があります。このどちらを勉強されるのかで変わります。

前者であればVBAと互換がありますので、役立つと思います。
後者の場合はおなじBasicでもVBAとはほぼ違う言語になりますので、直接は役立たないと思います。

両者の違いは、ウィキペディアなどで検索してみてください。

(余談ですが、前者はもう古い言語で、オブジェクト指向という設計方法や、マルチスレッドという並列化技術に完全には対応していませんし、Webアプリケーションの開発にも不向きです。もし今後、VBA以外でのプログラミングも考えられているのであれば、後者を学習することも、いろいろ役立つかと思います。)

id:language_and_engineering No.2

回答回数170ベストアンサー獲得回数63ここでベストアンサー

ポイント60pt

役立つというより,むしろ腹が立つと思いますよ。

「せっかくVBを勉強したのに,VBAは昔風の書き方しかできない。学んだ知識が役立たない」
と,歯がゆい思いをするはずです。

昔のVB,つまりVB6を今でも仕事で使っているような人であれば,
VBAやVBSは同じようにすらすら書けます。
 VB6→VBA
 VBA→VB6
はすんなり移行できるということです。

しかし,VB6は新規参入できる技術ではありません。
いまVBを学び始めるとしたら,間違いなくVB.NET一択です。

VB.NETはC#.NETと同じく,マイクロソフト社の .NET Framework 上で動作します。
そして,VB6とVB.NETはまったく別言語というほどのギャップがあります。
 VB6→VB.NET :同じ系列の言語とはいえ難しい
 VB.NET→VB6 :そのような逆行をする人はいない
 VB.NETとC#.NET :共通のフレームワーク上で動くので互いに変換可能

なおかつ,VBの生産性の悪さ,言語としての使いづらさ,利用者層のリテラシの低さは
IT業界では,大きな問題として認知されています。

これは正直に言いますが,VBを積極的に学ぼうとしないほうがよいです。
今から .NET 系の言語を学ぶのであればVB.NETではなくC#を誰もが勧めるはずです。

詳しくは下記の記事を参照。
 「C#.NETとVB.NETを比較すると,VB.NETはオワコンで未来が無く,技術者としてしっかりできない」
 http://d.hatena.ne.jp/TipsMemo+computer-technology/20140517/p1

そういうわけで,公平に言って,どんな理由であれ
今から新しくVBを学ぶべきではありません。
数年以内に悲しい結果になります。

一方,今からVBAを単独で学ぶのは構いません。
VBAはVBとの関連でとらえるのではなく
VBAだけで閉じた独立した世界だとみなしましょう。

そして,できればVBAを使わず,COMのオートメーションを経由して別言語からExcelやAccessを自動操作しましょう。
そうすればVBAを使う必要も無くせるので,VBとは完全に決別です。
その場合でも,先にVBAを経験しておけば,他の言語からのオートメーションを組みやすくなります。

ネットワーク管理のためにVBSを学ぶのは構いませんが,できればVBSよりもPowershellに力を割くほうがよいでしょう。
そうすればVB6時代の負の遺産に引きずられず,.NETを使えます。
 
結論として,
「昔はYesだったが,現在までの10年間でいうと,否定的な回答をせざるをえない。」
というアンサーになります。

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません