- 締切済み
VBAからのVB.NETかC#
本日エクセルVBAエキスパートのスタンダードを取得いたしました。 仕事で半年ほどVBAをチョコチョコ使う機会があったので、 最初のうちはWEBで調べてコードを切り張りして 簡単なツールを作っておりました。 それで9月のはじめに折角だし資格を取ろうと思い 現在に至っております。 転職を考えており、もう少しプログラムを勉強しようと思っています。 次はVB.NETかC#をと考えているんですが、 どちらがいいでしょうか。 個人的な目標としてはWINDOWSのPC上でGUIで動く ヤフオクの出品ツールが作れるぐらいを考えています。 それでご相談なのですが、VBとVB.NETはかなり違うとのことですが VBAを学んでいるとC#に比べVB.NETは多少は習得し易いでしょうか。 VBAが習得の上で何のアドバンテージにもならないのであれば、 人気のC#にしようかと思っています。 ちなみに今の職場にいる限りVBA以外のプログラムをする機会はありません。 恐れ入りますが回答をお願いいたします。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- WindFaller
- ベストアンサー率57% (465/803)
こんにちは。 >本日エクセルVBAエキスパートのスタンダードを取得いたしました。 高い受験料を払って、せっかく取得したのに、水をさすようで恐縮なのですが、試験で資格はとれても、システム自体の設計の経験もないようですと、少し弱い気がします。資格としては、前は、スタンダードの上にプロフェショナルという資格もありましたが、廃止されてしまいました。 #2の方が言うとおりで、C#でもなければ、VB.Net でもなく、お勧めは「C/C++」ですね。 ただし、いきなりですと、挫折することも多いと思います。 ある有名な方(インストラクターではない)で、Office のVBAのプログラミングで、月に何百万の稼いでいる人はいても、VBAのみでなく、Officeのプログラミングのベテランさんは、CやJavaの経験者が多いのです。ちなみに、その方は、まったく別な職業でも生活できるはずですが、特に、Excelがお好きなようです。結構、こういう業界には、そういうExcel好きの方も多いようです。 他に、『Excelでお仕事!』の井上さんのように、特別な業務で覚えたものを、プログラミングに投影しているようで、一般の人の学ぶ経路とはまったく違う人もいるようです。むろん、彼のコードの内容は、今では古くなってしまいましたが、他の著名な方たちのように、VBAにどっぷりとハマってしまい、独特のテクニックから抜け出せない人もいます。 VB.Net が良いのか悪いのかというよりも、#1の方の「初心者向け」というのは極論で、オブジェクト指向にはなっています。VB.Net もC#も、その裏の.NET Frameworkがあるわけです。しかし、VB系の悲哀というのか、VBの開発者のC.シモン氏がMSを辞めたこともあって、MS側の過去のものに対する扱いは、結構むごいような気がします。開発チームとしては、VB系は現存していますが、C#側のほうが、後発な上に、他のメジャーな言語を参考にしているせいか、テクニック的にも機能的にも上になってしまっていると思います。 >VBAを学んでいるとC#に比べVB.NETは多少は習得し易いでしょうか。 VBAを習っていても、VB.Net ということですと、個人的には、どうかなって思います。 旧Visual Basicからというならば、習得しやすいとは言えます。 しかしVB.Net は、VBAというよりか、旧Visual Basicと大幅に違う所がありますね。旧Visual Basicを使っていた方なら、入りやすい部分も多いのですが、思わぬところで、その違いに戸惑ってしまいます。
- High_Score
- ベストアンサー率25% (45/176)
転職先はプログラマですか?ならばCがいいと思います。普通の企業でちょっと便利な処理を思ってる程度ならVBAで十分です。どこでもエクセルはありますから。しかしマクロ屋になってもたかが知れてます。現職でも本来業務の効率アップのためにVBAをしてる筈です。転職先も本来業務は何をするのか考えて決めるべきです。 最新版エクセルはアプリケーション用にJava scriptを用意してるそうですね。詳細は知りませんが、そっちから攻める方法もあるでしょう。
- めとろいと(@naktak)
- ベストアンサー率36% (785/2139)
> VBAが習得の上で何のアドバンテージにもならないのであれば、 VBAでクラスを使ったことありますか?UI制御は? 無いようであれば、『プログラミング脳が多少身に付いている』程度に考えておいた方がいいでしょう。 1から作るのであれば、是非ともC#を学んでいただき、正しいオブジェクト指向プログラミングを してもらいたいですね。 (VB.NETは初心者向けなので、一部気にしなくてもできてしまう部分があるので) C#のしきいが高いようなら、VB.NETでもいいでしょう。 VBAで培った命令群も多少使えます。Left()、Mid()とか。 (C#でも設定次第で使えますし、個人的にはいくつかの理由であまりおすすめしたくありませんが) http://msdn.microsoft.com/ja-jp/library/microsoft.visualbasic(v=vs.110).aspx http://msdn.microsoft.com/ja-jp/library/32s6akha(v=vs.120).aspx