VBAの難しさを調べる前に知っておくべきこと
VBAの難しさを調べる前に、そもそもVBAとは何か、VBAでは何ができるのか、逆にVBAでは何ができないのかといったことを知っておいた方が良いでしょう。VBAの特徴を知ることで、習得すべきかどうかの判断に役立つはずです。またVBAとマクロは同じものとして考えられることがありますが、厳密には違いがあります。
関連記事:VBAは転職で有利になる?需要と将来性、関連資格や学習方法を解説
VBAとは
VBAはVisual Basic for Applicationsの略です。マイクロソフトオフィスのアプリケーションで使用できるプログラミング言語で、具体的にはExcel、Word、PowerPointなどでVBAを使用できます。VB(Visual Basic)とは名前が似ていますが、VBAは特定のアプリケーションに特化したVBと考えると良いでしょう。VBAの土台はVBなので、言語仕様としては類似しています。
VBAでできること
VBAでできることは、データの自動集計、メールの一斉送信、マイクロソフトオフィスアプリケーション間の連携などです。アプリケーション内での事務処理や、そこから派生した処理ができると考えると良いでしょう。
VBAではできないこと
逆にVBAでできないこととしては、膨大なデータ処理、マイクロソフトオフィス以外のアプリケーションとの連携、本格的なアプリケーション開発などです。VBAは主に簡易的な事務処理の自動化のためのプログラミング言語なので、その範囲を超えた高機能な処理は難しいということです。
VBAとマクロの違い
VBAはプログラミング言語で、マクロは機能です。たとえばVBAによって機能のまとまりを作ったら、それがマクロということです。言い換えると、VBAはマクロを作るためのプログラミング言語ということです。マクロはVBAでなくても作成可能で、たとえばExcelなどには「マクロの記録」という機能があります。ボタンを押してExcelで操作をしたら、その操作が記録されて次回から自動実行できる仕組みです。
VBAが難しく感じる理由
VBAは他のプログラミング言語と比較すると、初心者でも学習しやすいと言われることが多いです。実際慣れればVBAは扱いやすいと考えられますが、他のプログラミング言語経験者であってもVBAの独特のコードに苦戦する可能性はあります。では具体的にどのようなポイントで難しく感じるのか、いくつか挙げていきます。
Excelの複雑なオブジェクトモデル
ExcelのVBAでは、オブジェクトを指定し、そのオブジェクトに対して処理を記述する仕組みになっています。具体的には「Excel.Application」「Workbook」「Sheets」「Styles (Style)」「Names (Name)」といったオブジェクトがあります。オブジェクトは階層になっていて、どの階層に対してどの処理が実行され、また各オブジェクトの処理の優先順位も意識する必要があります。CSSを扱ったことのある人は、CSSでの指定と似ているように感じるかもしれません。
エラーメッセージの解読と対処
VBAにエラーがあると、マクロエラーメッセージが表示されます。そしてこのエラーメッセージがそこまでわかりやすくはなく、解読と対処に手間がかかるという意見もあります。これについては他のプログラミング言語でも同じようなことが起こりますが、VBAのエラーメッセージ解読、対処の方がスムーズに進まない人もいるでしょう。
VBAの古さと最新技術とのギャップ
VBAは古くからあるプログラミング言語で、バージョンアップはされているもののたとえばWebやゲームプログラミングのように最新技術が導入されていくわけではありません。あくまでも事務処理の範囲で機能がマイナーチェンジされているような印象でしょう。また文法や処理速度も昔からそれほど変わっていないため、新しいプログラミング言語に慣れている人にとっては扱いにくさを感じる原因になります。
VBAはどれくらい難しい?
VBAの難易度は人によって感じ方が異なるはずですが、たとえばほかのプログラミング言語と比較すればだいたい同じような意見になるでしょう。また必要な学習時間やVBAの資格取得の難易度についても紹介します。難易度は人によって感じ方が異なりどうしても主観が入りやすいものなので、あくまでも参考とお考えください。
ほかの言語と比較したVBAの難易度
VBAはHTML/CSSに比べると難しいですが、その他の言語と比較すると易しいという位置づけでしょう。HTML/CSSとは違ってVBAにもロジックなどはありますが、他のプログラミング言語のように複雑な構造にはなりにくいです。用途が事務処理なので、単純処理のループや単純な条件分岐を作り、後は各オブジェクトに対しての処理を記述していく、といった形になります。
習得に必要な学習期間
VBAの習得に必要な学習時間はこれまでのプログラミング経験やその他の学習経験によって大幅に変わってくるでしょう。具体的な時間についてはいろいろなことが言われていて、200時間程度という意見もあれば、1000時間程度という意見もあります。期間としては1日の学習時間にもよりますが、数か月から1年半程度と考えられます。
これまでの経験や勉強の得手不得手にくわえ、どのくらいのレベルを目指すのか、どのような処理を目的に学習するのかなどによっても学習時間は変わってくるはずです。
VBAの資格取得の難易度
VBAの有名資格として、VBAエキスパートが挙げられます。VBAエキスパートはExcel VBAベーシック、Excel VBAスタンダード、Access VBAベーシック、Access VBAスタンダードの4種類に分けられますが、いずれも合格率は50%前後程度です。
そのため、プログラミング言語系資格の中ではVBAエキスパートの難易度は低いと言えるでしょう。ただしマイクロソフトオフィススペシャリストと比較するとプログラミングスキルを問われる内容なので難易度は高いです。
VBAを効率的に学習する際のおすすめ手順
VBAを効率的に学習する際のおすすめ手順を紹介します。必ずしも以下に紹介する流れで学習しなければならないわけではありませんが、特に学習の流れが決まっていないのであれば以下の手順で進めるのがおすすめです。基本的なこと、簡単なことから始めると挫折しにくく、着実にステップアップしていけるでしょう。
Excel VBAで最初に覚えるべき4つの基本操作を学ぶ
まずはExcel VBAで最初に覚えるべき4つの基本操作を学んでください。具体的には、マクロの記録と実行、VBAエディタの開き方、セルや範囲の操作、条件分岐です。いずれも基本的なことなので、基本通りやってみればすぐにマスターできるはずです。
マクロの記録と実行
まずはマクロの記録と実行を試してみてください。「マクロの記録」ボタンを押して操作し、「記録終了」ボタンを押すと自動的にマクロが記録されます。そして記録されたマクロは「実行」ボタンを押すと実行できます。操作の内容はなんでも良いので、とりあえず試してみてください。記録したマクロのコードを見ることもできますが、この段階ではコードを見てもよくわからない可能性が高いです。
VBAエディタの開き方
VBAエディタは、「Alt+F11キー」を押すか、開発タブからマクロ名をクリックして編集画面を開きます。この段階ではどのように編集すれば処理を変更できるかよくわからないと思うので、とりあえずVBAエディタを開いてみるだけで良いでしょう。
セルや範囲の操作
VBAはオブジェクトを指定して処理を作っていくということでした。この方法を学ぶ際、まずは最小のオブジェクトを指定するとわかりやすいでしょう。具体的にはセルを指定すると良いです。RangeやCellsの使い方からマスターし、簡単な処理を実行して変化を確認するのがおすすめです。
条件分岐
条件分岐の使い方はVBAも他のプログラミング言語と同じです。具体的にはIFやElseを使用します。条件分岐の書き方を把握し、たとえば上のRangeやCellsと組み合わせて処理を実行し、条件によって処理が変わることなどを確認すると良いです。
簡単なVBAを構築してみる
上記の内容を組み合わせて、簡単なVBAを構築してみてください。VBAはゼロから記述しても、マクロの記録の後にエディタから編集して書き換える方法で試してみても良いです。この段階ではとにかくVBAを構築して動かしてみる体験をすることが重要になります。実体験があればその後の本格的な学習で頭に残りやすいからです。
VBAが難しいと感じている方のよくある質問
VBAが難しいと感じている方のよくある質問と回答を紹介します。VBAはプログラミング言語の中では比較的易しいですが、プログラミング言語なのでプログラミング経験のない人にとっては難しく感じられるかもしれません。またVBAならではの考え方、書き方も複数あるのでその点でつまずく人もいるかもしれません。まずはVBAの概要を把握してください。
Q1. VBAの挫折率はどのくらいですか?
VBAを含むプログラミング学習の挫折率は9割程度とされています。明確な統計が存在するわけではないので正確なところは不明ですが、VBAも多くの人が挫折していることは知ったうえで、根気強く取り組んでください。
Q2. VBAの勉強時間はどのくらいで身につきますか?
VBAの勉強時間は、求めるスキルレベル、学習能力、プログラミング経験などによって変わってくるでしょう。200時間という意見もあれば、1000時間という意見もあります。またVBA関連の資格取得は70時間ほどの勉強で可能なので、これをVBAの勉強時間と考える人もいるでしょう。
Q3. VBAの難易度はどのくらいですか?
VBAの難易度は、プログラミング言語全般の中では易しめと言えます。HTML/CSSと比較するとVBAの方が難易度は高いですが、その他の言語よりはVBAの方が易しいという位置づけです。ただし感じ方は人によって異なるので、あくまでも参考です。
まとめ
VBAはマイクロソフトオフィス製品で事務作業を自動化する際などに利便性が高いです。VBAが扱えると、手作業で行っていたものを自動化できるかもしれません。逆に言えば、VBAができないことで時間や労力を無駄にし続けているケースも多々あります。
VBAの難易度はHTML/CSSよりは難しいが、その他のプログラミング言語と比較すると易しいといった程度です。ただしたとえばWeb系の言語に慣れている人がVBAを初めて触ると、考え方の違いから混乱する可能性もあります。
VBAを習得するにはまずは基本を学習し、あとは実際にコードを書いて実行して結果を確かめる作業を繰り返すと良いでしょう。
ITエンジニアの転職ならレバテックキャリア
レバテックキャリアはIT・Web業界のエンジニア職を専門とする転職エージェントです。最新の技術情報や業界動向に精通しており、現状は転職のご意思がない場合でも、ご相談いただければ客観的な市場価値や市場動向をお伝えし、あなたの「選択肢」を広げるお手伝いをいたします。
「将来に向けた漠然とした不安がある」「特定のエンジニア職に興味がある」など、ご自身のキャリアに何らかの悩みを抱えている方は、ぜひ無料のオンライン個別相談会にお申し込みください。業界知識が豊富なキャリアアドバイザーが、一対一でさまざまなご質問に対応させていただきます。
「個別相談会」に申し込む
転職支援サービスに申し込む
※転職活動を強制することはございません。
レバテックキャリアのサービスについて