- ベストアンサー
VBを覚え始めるタイミング
VBを覚え始めるタイミング 私は今、事務職でExcelをよく使います。 そろそろVBを覚えたいと思っています。 ところが、Excelの上級レベルの関数やフィルタ、ピボットテーブルなど、まだ完全にExcelをマスターしていません。 どの程度、Excelを扱えるようになったら、VBを学習すると良いでしょうか? 宜しくお願いします。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
事務に必要な概念や用語が、身近になる年代(高校生以後か)であれば、いつでもよいのでは。たとえば、一例で、平均とか関数とか変数とか並べ替えとか。 また仕事上で必要になった時期が潮時でしょう。 実際のニーズが満たされる満足感や、時期が決まった切迫感やメリット感がないと、安きに流れてしまう。 それと、エクセルの操作や機能における、パターンを整理しておくべきでしょう。それが途中までできれば、まずVBAの解説書を1冊読んでみることでしょう。自分が興味を持てますか。 周りにVBAなどの指導者がいないと、習得に非常に時間がかかるとか、出来る分野が偏ると思う。 数十年前の小生の経験では、文系の人が多かった職場のせいもあり、システム部経験者以外は、パソコンでのプログラムを始めた人は出なかった。 今とは時代の雰囲気や、状況(WEB活用時代)要求されるスキルのニーズが変わっているが。 ある種の人は中学生ぐらいから自分で情報を探して、進んだニーズのプログラムを組み始めるようだ。 逆に言うなら、いつからが適当か、なんて聞いているようなタイプの人は、向かないのかもしれないと想像する。 また自分で仕事の範囲内で、スモールなシステムを作っても、上司やその上にとってはあまり認めてもらえない場合が多いかも。 本来システムはシステム業者に頼むべきでしょう。 ここに質問する人は、自分で何とか派でしょうが、会社全体では 功罪あると思う。 == またエクセルはコンピュター利用処理のごく一部でしかない。 またエクセルからコンピュター利用を学び始めた人は、むしろ 必要な学習を経てないかもしれない。 現在では、エクセルVBA程度ではどうにもならないニーズばかりではないか。 == 現在では、ソフトは作る時代ではなく、出来上がったものを うまく使う時代でしょう。 上記2点をくれぐれも忘れないように忠告したい。
その他の回答 (4)
- bardfish
- ベストアンサー率28% (5029/17766)
>の程度、Excelを扱えるようになったら、VBを学習すると良いでしょうか? 関係ありません。 私は現在.netのVisual Basicを使用しています。 Excel VBAも使えますがシートとデータをやり取りする関数が使いにくすぎてできれば使いたくありません。 同じことだったらAccessやSQLServerのデータベースを使ってSQLでデータの抽出、ソート、テーブルの結合をやったほうがソースコードの可読性が高いしデータの取扱もすごく楽で色々と便利です。 VBA(Visual Basic for Application)を覚えたのはAccess VBAが最初です。その前はVisual Basicを使って開発していました。 データベースはOracleとSQLServer。 Excel VBAは覚えたつもりはないけどVBとAccess VBAの派生なのでExcel固有の命令を知っていれば勉強しなくても問題なし。 Visual Basicの.net版はすごく使いやすくなっていました。最後に使ったVisualBasic6よりも遥かに。 今はPerl(パール)やpython(パイソン)という言語も併用していたりします。 使用している開発環境もMicrosoft VisualCodeというもので、プラグイン次第でPerlもpythonもJavaScriptもPHPも同じVisualCode上で開発できて便利です。最近では導入の手間がだいぶ軽減されましたが、日本語での丁寧な解説はまだまだ少ないので四苦八苦しながらの手探り状態ですが、Visual Studioと使い勝手がほぼ同じ開発環境というのはありがたいです。 因みに…Visual BasicはVisual Basic2015、Visual Basic2017のExpressエディションというものがフリーでダウンロードして使用することが可能です。 Desktop版というものなら従来のWindowsソフトの開発も可能です。 SQLServerにもExpress版という無料で使用できるものもがあります。 勉強するためならCore i5、RAM 8GBでHDDは500GB以上あれば1台で完結できます。 因みに、VB.netでExcelのワークシートを操作できますよ。 SQLServerにデータを蓄積し、VB.netで取り出して加工したデータをExcelシートに貼り付けて印刷する。 というような使い方をしていたりします。 VBだけでは印刷が弱いですからね。 ということで、個人的な意見ですがExcel VBAは覚えなくてもいいです。代わりはいくらでもあります。むしろExcel VBAってバージョンが変わったりするとエラーが出るようになったりしませんか? Accessではそういう事があったのでローカルデータベースエンジンとしてAccessを利用するだけでメインとなる処理はVB.netで作り込んでます。AccessをインストールしなくてもランタイムというAccessがなくてもmdb/accdbを使えるものが無料でリリースされていますからね。 ちょっと苦労しましたけど…
お礼
ご回答ありがとうございます。 VBAにもいろいろな種類があるんですね。 Accessはよく知りませんが、 そこにもVBAがあるとは知りませんでした。VBの学習はそろそろやろうと思いますが、まずは派生している言語の経緯から調べてみます。 詳しい情報ありがとうございました。
- kon555
- ベストアンサー率51% (1842/3559)
ExcelVBA、いわゆる「マクロ」の事だと理解して回答します。 個人的な目安としては『if関数を苦労せず使えるようになったあたり』がVBAに手を出すタイミングかなと思っています。 勿論、それ以前に覚えて悪いことはないのですが、マクロというのは人間がやっている作業を代替させたり、何度も繰り返したりする事で効率化を達成するものです。 マクロでやれる作業の大半は人間でも行える作業で、人間がどうやっても出来ない作業はマクロでも出来ないものです(一部例外あり)。 つまり『この作業はエクセルでどんな風に対応すればいいか』がフワフワしたまま手を出しても、効率的な学習が難しいんです。 例えばですが、シートの中から特定の語句を探す場合、検索と置換機能を使いますよね? この機能を知らなければ、1セル1セル確認するしかありません。 マクロでも完全に同じで、Excel自体の『検索』という機能を知らないまま手を出すと、対象セルの全てを探すようなマクロを組みがちです。 またVBAでとても便利な条件分岐という考え方はif関数と完全に一緒なので、この考え方がスムーズに行えるかどうか、というのも大きいですね。 上記のような理由から、私が人にExcel周りを指導する際にはif関数を目安に考えるようにしていますし、おおむねスムーズに理解してもらえています。
お礼
ありがとうございます。 今はIF関数を問題なく使えますし、 確かにこれが複雑化したらどう処理するんだろうと、思いました。 目的があればVBを組むのは挫折しないで自己完結できそうですね。 ありがとうございました。
- hiodraiu
- ベストアンサー率15% (451/2846)
必要だと思ったら、必要な分だけ覚えれば良いと思います。 それを繰り返していけば、必要な知識は身につくと思います。
お礼
ありがとうございます。 必要になったとき、手を出してみたいと思います。
VBAのことですよね? VBとVBAは似てるところがあるんですが、別物なので検索するときにご注意ください。 いつから学ぶかということですが、今からでも良いです。 例えば普段Excelを扱う中で同じ事を繰り返している作業はないでしょうか? 他にも毎日データは違うけど、打ち込む場所とか処理の仕方は一緒という作業。 もしあったら「これって自動でできないの?」と思いませんか? 結局、ExcelのVBAってExcelでできることを、もっと早く、できれば自動で、というのを目的に組むものですから、そういったことが少しでもあれば、VBAを使うことを考えた方が良いですね。 っていうか、ほんの些細な段階からの方が、VBAの書き方も簡単なのでいい練習になると思いますよ。 ちなみにExcelを使いこなせる必要はありません。 ワシも「ピボット?何それ?」という段階で始めましたから(笑) 同じ事を繰り返す作業が特になければ、例えば入力したデータが間違いが無いかチェックするものを書いてみるとか、いろいろ使えると便利という場面があります。 ただ、まったくVBAに触れたことがない状態だとイメージが沸かないと思いますから、入門書とか読んで軽く触れるのをお奨めします。 ネット上でVBA入門みたいなサイトがあるのでそちらを利用するのも手ですが、小難しく説明してるところも多いので、最初は本の方が良いと思います。 お奨めなのはFOM出版の「よくわかる」シリーズですかね。 Excelで基礎編、応用編、マクロ/VBA編と3冊あるはずですが、応用編の後半で軽く触れて、マクロ/VBA編で基礎を学ぶといった形が良いですね。 基本的な部分はExcelのバージョンが変わっても同じなので、わざわざ購入しなくても図書館とかで借りるのもありだと思います。 そこまで進んだら、後はやりたいことが見つかる度に、ネットで検索するという形で良いと思いますよ。
お礼
大変ご丁寧なアドバイス、ご回答ありがとうございます。 私のVBの定義は回答者様の中にあったExcelVBA(マクロ)になります。 まだ他の方の回答を拝読している最中で申し訳ありません。とても参考になりました。すごく私の事務職に役立つスキルだと思います。FOM出版のシリーズ探してみます。ありがとうございました。
お礼
ご回答、ご忠告ありがとうございます。 私も学生時代にC言語やっていたので、 内容が理解できました。 実務ではシステム部担当でないと、 勝手なことをしてと怒られます。 また、一から自分でなんとかやろうとするのは、効率が悪いというのもわかります。プログラミング言語を学ぶのはセンスが問われることもあるとおもいます。 と言いながら質問したのは、 Excelを10年以上やっていながらVBの世界を少しは知りたいと思ったからです。 現実的なご回答ありがとうございました。