• 締切済み

VBの将来性について

エクセルスキルを向上させようと思い立っています。 そこで白羽の矢を立てるのがVBEです。 しかし、ネット情報をあさると、新しい言語(例えばpythonなど)が広まる中、VBAの存在感は薄れているようです。 エクセルでpythonが使えるようになるという記事も有りました。 このような状況下の中、今、VBを学ぶことは将来的に(飯の種になるかどうかという視点で)有用でしょうか? ご意見お待ちしております。

noname#247876
noname#247876

みんなの回答

  • o_chi_chi
  • ベストアンサー率45% (131/287)
回答No.5

書店にてEXCE VBA関連を見てみると山のように出版されています。 つまり関連本を出せるほどに極めれば十分飯の種になるのでは? それはどの言語についてもどの分野についても言えることですが。

noname#247876
質問者

お礼

ご回答ありがとうございました

  • dottimiti
  • ベストアンサー率12% (285/2363)
回答No.4

VBAというかエクセルx別の何か で、飯の種を創る感じでいけばしばらくは仕事なくならないんじゃないかと思います。 別の何かとは、経理とか分析などです。 毎週60分かけている手間のかかるエクセル作業が短縮できないかな? 2時間(120分)かけてマクロを組んで、15分の作業に短縮できました。 マクロを組むために使った120分は節約できた45分から逆算するに3週でもとがとれます。 という感じの説明を上司にし続けて、確かに良いものであると言わせ続けることができるといいんじゃないでしょうか。

noname#247876
質問者

お礼

ご回答ありがとうございました

  • unokwave
  • ベストアンサー率58% (966/1654)
回答No.3

私もコンピュータ関連技術は完全独学ですが、どうやら独学は(個人の指向性とジャンル組み合わせに)向き不向きがあるそうで、無理して独学を貫くのはお勧めしません。 VB/VBAの将来性ですが、pythonをOfficeアプリがサポートしたからと言って10年でVBAが消えることはあり得ないでしょう。 理由はVBA習得者という存在がMicrosoftにとって大きな財産だからです。 AI(プログラムジェネレータ)に取って代わられるという要素もありますから、出番が減っていくことは確実でしょうが、Execlだけで終わらない、Office以外の外部プログラムとの連携が必要で非定型的処理については総合的合理化から零れるでしょうから、VBAはすぐには無くなりはしません。 有用性は、VBAだけで終わるのかどうか次第です。 コンピュータ言語のスキルが上がると、他のコンピュータ言語の習得も早くなります。 例えば私がVB/VBAの基礎習得に要した時間はそれぞれ一日足らずでしたが、それはWindowsの内部をアセンブリ言語やC/C++やC#を通じて知っていて、言語の要素もコンピュータ言語がどのようにCPUに処理されるかが具体的に頭の中にイメージできるので、いちいち説明されなくても要素毎に幾つかの例を見るだけでわかるからです。 そのような具体的イメージが浮かぶまで徹底的に深く広く学習する入口としてのVBA学習であれば、確実に有用です。

noname#247876
質問者

お礼

ご回答ありがとうございました

回答No.2

Q、今、VBを学ぶことは将来的に有用でしょうか? A、その答えは、ここで解釈を巡らしても出ません。  最も確実なのは、「有用にするには、我は如何にエクセルを極めるのか?」という問題意識を持って実践を積み重ねることです。  私は、エクセルに関しては触ったことも操作したこともない完全な門外漢です。でも、エクセルのVBEぐらいは使えます。そこで、ちょいとエクセルを Access のフロントエンドとして利用する簡単な一例を書いてみました。  添付図では、C2に入力した顧客の[読み]を手掛かりにC4~C8にデータベースの顧客台帳から該当する顧客の[名前][住所]等を表示しています。  仕掛けは、次のようです。 B3=DBSelect("C:\顧客管理.mdb", "SELECT * FROM 顧客台帳 WHERE 読み='" & C2 & "'") C4=CutStr(B3,";",2) C5=CutStr(B3,";",3) C6=CutStr(B3,";",4) C7=CutStr(B3,";",5) C8=CutStr(B3,";",6)  このように、エクセルも Access や MySQL のフロントエンドとして利用できる水準まで極めれば、全く、その利用形態は違ってくると思いますよ。もちろん、データベースシステムの設計とSQL文の習得は必須です。クライアントサーバーシステムの構築技術も極めれば鬼に金棒です。 【ともかく、思ったことはやってみる】  私は、IT業界とは縁もゆかりもない田舎の工場勤務で一生を終えた一介の工員。ですから、プログラム言語の学習も完全な一人独学。まず、手始めに《Fortaran演習》の全課題を3ヶ月で卒業。次に、BasicとC言語。で、UNIXのクライアントサーバーシステムと工場と支店間の受発注オンラインシステムを開発。Windows 時代になってからは、UNIXのクライアントサーバーシステムを SQL Server+Access に置き換えることに追われました。また、各営業所の販売管理システムの開発も同時並行で行いました。全てが、たった一人での作業でした。そうして、60歳定年と同時に完全リタイア。が、WEBシステムの構築技術を習得したくて職業訓練を受講。5か月の苦闘の末に、HTML+CSS+JavaScript+MySQL+AJax+JavaでなーんとかWEBシステムの開発に成功。  これが、私の30数年に及ぶ独習のスケッチです。OSもCPM⇒MS-DOS⇒UNIX⇒Windowsと目まぐるしく変わっています。プログラム言語も、Fortran⇒BASIC⇒C⇒VB6.0⇒VBC⇒VBA⇒Javaと変遷しています。頭の悪い私ですから、5年単位で新言語と格闘してきました。帰宅したら自室に籠って3時間の独学。これを約一年やって、その後の4年で新しいシステムを開発する。この繰り返しです。  何をどのように学ぶのか?それを迷っている暇はありませんよ。先ずは、思ったことはやってみることです。エクセルのピボットテーブルに限界を感じたら、データベースシステムの設計とSQL文の習得に精出せばいいだけです。Access に限界を感じたら SQL Server などの本格的なデータベースへ。そういう学習が可能なステージに身に置くには、目の前のエクセルを極めると決めたら、極めることです。そうして、「ウン、君なら、もっとできるだろう。やってみたまえ!」という評価を勝ち取ることです。で、その後は、「必要は独習の母」となりますよ。 >「ウン、君なら、もっとできる。やってみたまえ!」という評価を勝ち取る!  この初手のハードルを跳び越えないと、質問者は永遠に単なるエクセルのヘビーユーザー止まりでしょう。色々と迷って足踏みするよりも、思ったことはやってみることです。 以上。

noname#247876
質問者

お礼

ご回答ありがとうございました

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

質問はピント外れの面があるように思う。 VBAは、A(Application)がついているように、エクセル、ワード、アクセス、パワーポイント(いわゆるMSのオフィスソフト)など、マイクロソフトのアプリ(エクセルなど)と不即不離の関係のもので、エクセルを処理する場合は、最もふさわしいスクリプトでしょう。それらのアプリをプログラム・コードでいじくるように作られている。 勿論エクセルなどのアプリを離れて処理できる課題もあるが。 これらVBAは、ベースの文法はVBで言うとバージョン6.0(2000年ごろ以前)をベースにしており、別にVisualBasicというのがあり、Java並みに、クラスやオブジェクト指向を徹底している。 VBAは既存オフィスソフトのユーザーの一部には、支持されていると思うが、それで、おいそれと打ち切ると思えないが、MSがメンテを、いつ打ち切るかわからない。 >エクセルでpythonが使えるようになる、はエクセルが人気があるため、それを使えるような、ソフト、コマンドなどがpythonで作られたというだけで、結びつく必然性はない。 現状では、エクセルVBAのWEB上の記事は多いので、学習して、中級になって以後での独学の勉強はやりやすい。 >飯の種になるかどうか むつかしいですね。A就職先が、またB課題を依頼してきた先が、どういう希望かによるので。就職してみないとわからない面が多い。ソフト会社では、依頼を受ける先や要求が多様で、改善や仕様追加は使用言語が依頼先で決まっている場合が多い。また業務内容で、最適な言語やソフトを選ぶことは行われるし。 ただし1つの言語に通ずると、他の言語の学習は、やや易しいと思う(ベースで大いに役立つ)。  みな先輩は、何かベース(Javaなど)は持っていて、課題に向き合ったその場で勉強して、しのいでいるのでは。 >エクセルスキルを向上させようと思い立っています。 それより、通信や、WEBやAIやセキュリティや画像処理などいう、学ぶ中心課題を絞り、学べるスクールを探し、学資をためることを考える方が大切だろう。  それとも、丁稚から始めさせてくれるソフト会社があれば、そこに入って、実地に教えてもらいつつ学ぶとか。  「まずエクセル」という発想は、一部・一面しか見てなくて、素人っぽい。 Excel、エクセルVBAができます、では就職の売りにはならないでしょう。建前上は、出来て当たり前という時代だから。  

noname#247876
質問者

お礼

ご回答ありがとうございました

関連するQ&A

  • VB.Netを買おうと思うのですが?

    おはようございます。 VB.Netの購入を考えているのですが、 金額も20000円のものから300000円までと いろいろありますよね。 私のスキルレベルはエクセルVBAを少しかじった 程度です。 どんなものを購入したらよいでしょうか? ライセンスなどもあるのでしょうか? 複数のPCにインストールなどできるのしょうか? 宜しくお願い致します。

  • VBプログラムをEXCEL VBAに移植する方法について教えてください

    こんばんは。私はVBA初心者です。 ”良くVBとVBAは同様な言語”と伺いますが、実際にVBプログラムのソースを VBAにコピーしてもエラーが出て使用できません。 私がいまいちVBとVBAの明確な違いがわかっていないからだと思いますが、頭がもやもやです。 VBはHP上からVB2005を入手しました。 そもそもVBとVBAの相違点は何が違いますか? HPを見ているとVBAでもVB同様にシステムも組めると記載されているため EXCEL上で動作するVBAで、簡単なシステムを組みたいと思ってます。 どうすればVBプログラムをEXCEL VBAに簡単に移植できますか? 作業手順、移植する際に注意する点等、アドバイスを教えてください。 また参考になるHPや本をご紹介くださいませ。

  • VB.NETからVBAマクロ(引数)を呼び出す方法

      VB.NETから参照型引数付きのFunctionのVBAマクロを呼び出す方法 Excel2003のVBEの標準モジュールModule1にあるFunctionのマクロtest(引数)をVB.NETから呼び出して、引数に設定した値をVBA側で加工して、加工された値をVB.NETで取り出したいのですが、VB.NET側でどのように記述してよいのかがよく分かりません。 具体的には、以下のVBAをVB.NETから呼び出すにはどのように記述すればよいのでしょうか。できましたらそのままVB.NETのConsoleApplicationのModule1のSub Main()の中にコピーペーストして動くコードと参照設定を教えていただけると助かります。 ---Excel2003のVBA(C:\test\Book1.xls)---------- Function test(ByRef data As Long) As Long  If data = 0 Then   test = 0   data = 0  Else   test = 1   data = 100 / data  End If End Function ---------------------------------------------- よろしくお願いします(WindowsXP,VisualStudio2010,Excel2003VBE)  

  • なぜコンピューターをよく知った人はVB嫌いなんですか

    ネットでプログラマーの嫌いな言語でよくVisual Basicを嫌いな言語にあげている人をよく見ます。そしてそういう人の好きな言語にC,C++,Lispなどをあげています。Excel VBAはよくお世話になるので 個人的にVBはすごく役に立ってくれています。なので嫌いという 感情はありません。というかそこまで言語は知らなかったりします。 VBが嫌いな人って何か理由があるんでしょうか?文法が嫌いとか、 マイクロソフトが嫌いとかそんな理由で嫌いな人が多いのでしょうか?

  • VBA経験者がVB2005を使えますか?

    今までExcel2000のVBAを使って簡単なプログラムを作っていました。今度本格的にVBでプログラムを組みたいのですが、Excel2000のVBAとVB2005はまったく違うものなのでしょうか?(言語の書式など) やりたいことはネット上からデータ(数値や文字列など)を収集して計算することです。株情報などのデータを収集して最適な結果を導き出すもので、今まではExcelで手動で入力していたものを自動化したいと思っています。 また、この場合はVisualStudioではなくてVisualBasicだけを購入すればいいのでしょうか? よろしくお願いします。

  • おすすめのプログラミング言語を教えて下さい

    昨日、プログラミング言語について質問させて頂きました。その結果、basic、Ruby, JavaScript, Python, Perl, PHP、C,C#,を勧められました。 しかしどれから勉強すればいいかわからず、また質問しようという考えにたどり着きました。 この中の言語ではどれがお勧めでしょうか? また、basicはVB、VBAなどがあり、どれのことを指しているのかが理解出来ないのでそのあたりも教えてくださると嬉しいです。

  • VBはどのくらいで習得するものでしょうか

    某化石言語を使ってましたが、仕事でVBをはじめて三ヶ月、やっとの思いで基本がわかって、データベースに接続できて、FTP、ActiveXを使う、テキストの加工・VBAはそこそこ、ができました。WindowsAPI、クラスモジュール、帳票印刷システムなどはまったくわかりません。 これって物覚えが遅い方でしょうか、毎日怒られてます。これから何を練習し、作れば技術が向上するんでしょう。 取り合えず、今依頼されたプログラムの半分はおれにはできないと投げ返していますし、いつクビになるか心配で、質問させてもらいました。 お願いいたします。

  • EXCEL VBAの言語仕様について

    はじめまして。 質問があります。 EXCEL VBAを学習しているものなのですが、VBAの言語仕様は VB6.0をベースにしている言語なのか、それともVB.NET系統の言語を ベースにしているものなのかそれとも、それ以外なのかがわかりません。どなたか知っている方がおられたらご教授お願いします。

  • プログラム言語の勉強

    どの言語に慣れておくと便利(ほかの言語を触る際に入りやすい)ですか? 自分の中ではVC++を学べばVBは簡単なイメージを持っています。 VBから入ったのでVC++の型に厳密なのが難しく感じます。 最近Pythonがはやりですが、主流になっていくでしょうか?

  • DAO3.6とACCESSの関係

    OS:WindowsXP, Windows7 開発言語:VB6、Excel VBA ACCESSがインストールされていない環境で VB6やExcel VBAでDAO3.6を使った開発は可能ですか? また、 ACCESSがインストールされていない環境に VB6やExcel VBAでDAO3.6を使ったプログラムは配布可能ですか? ご存知の方がいたら教えて下さい。宜しくお願いします。

専門家に質問してみよう