VBA(Excel)

Excel VBA初級者がスキルアップさせるための手順ガイド

「Excel VBAの初級レベルを習得したけれど、本当に中級以上のレベルを学ぶメリットがあるのか迷っています。また、学ぶなら何を目標にすればばいいのかな?」

今回は、VBAの中級レベルを学ぼうか迷っている人に向けて書きました。

ちなみに、以下のスキルを持っている人をここではExcel VBA初級者としています。

  • プログラミングの基本(分岐や繰り返し、変数)を習得している
  • ワークシートやセルの操作ができる

Excel VBA初級者でもマクロを使った自動化は可能ですが、VBAのスキルを上げるとマクロの品質が確実に向上します。
初級者レベルの人に比べ、中級者以上のスキルを持つ人が作ったマクロはムダが少なく修正しやすいものに仕上がります。

ほとんどのExcel VBAの教本やセミナーは初級者レベルであり、中級者以上のスキルは独学や実務経験で培っていくものとされています。

本記事では、スキルアップすべき理由から学習内容と手段までをまとめました。
中級者以上へスキルアップするために、何を学んだらいいか分からない」という人には、本記事を読むことで今後の方向性が見えてくるでしょう。

Excel VBA初級者がスキルアップすべき3つの理由

一般的にプログラミングに挑戦する人のうち、9割程度の人が挫折すると言われています。
独学だけでExcel VBAの初級レベルを習得できた人は、それだけでも十分にスゴイことです。

しかし、実務で使えるマクロを作り続けるためには、VBAレベルを初級者レベルから更に向上しなければいけません。

初級者レベルから進化すべき理由は以下の3つです。

理由1-少ない行数で多くの処理が可能

初級者と中級者の方の一番の違いは、同じ動きでもコード文の行数が変わってくるということです。

初級者レベルの知識のみでプログラムを書くと、どうしてもコード文が長くなりがちです。
また、仕様の変更などでプログラムを修正しないといけないとき、修正箇所を探すのが大変です。

中級レベル以上の人が書いたコードは、シンプルで修正もしやすくなります。

理由2-Accessなど他のアプリや他言語に展開できる

Excel VBAを得た知識はそのまま他のアプリ展開できます。

Officeアプリの中で、 Excelと同じくらいVBAをよく使うのがAccessです。
ExcelとAccessは最高に相性がよく、連携させてデータ処理を行うと更に便利です。

また、Excel VBAを触った経験は他言語にも活かされます。
特にGoogleスプレッドシートで使われているGASはスムーズに習得できるでしょう。
他にもVB.NETPythonなどもExcel VBAの経験が活きる言語です。

理由3-AIツールと連携させて効率をさらにアップできる

Chat GPTなどのようなAIツールも出回っています。

プログラミングの知識が無くても、AIから答えを得られればいいんじゃないか』と考える人もいるのではないでしょうか?

しかし、高レベルのプログラミングの知識を持っている人の方が、AIからムダの無い回答を得ることができます。

チャットAIは相手のレベルに合わせて答えを返すツールです。
当然プログラミングの知識がない人がコードを書くように指令を出したとしても、返ってくるのはそれなりの答えです。
たまにまぐれ当たりもあるかもしれませんが、プログラミングの知識を持っている人の方が精度の高い答えを得ることができるのは明らかです。

自分でゼロからコードを書かなくて済むので、プログラミングのレベルが高い人はチャットAIツールを利用することで、更に効率を上げられるのです。

Excel VBA初級者がスキルアップで目指すべき6つのステップ

では、Excel VBA の中級者以上を目指す人がマスターしておきたいテクニックを6つに絞って紹介します。
ほかにも有効なテクニックもありますが、あくまでも独断と偏見に基づいて選びましたのでご了承ください。

ステップ1-配列を思い通りに使いこなす

プログラミングの基本を習得した人にとって、次の壁となるのは「配列」の活用です。

ほとんどのセミナーでは、配列もカリキュラムに盛り込まれているのですが、初級レベルの人が実務で配列を思い通りに活用するのは正直言って難しいです。
もし配列に慣れていなければ、特に配列を意識して使うのをおすすめします。

配列を思い通りに操れるようになれば、以前よりスッキリとした読みやすいコード文を書けるようになっているはずです。
当ブログでも配列の解説をしていますので、よかったらどうぞご覧ください。

さらに高度なレベルに挑戦する場合、連想配列(辞書)を使うことでデータを一括で処理できます。

ステップ2-プロシージャ間の連携

プロシージャ間の連携もVBA中級以上にスキル向上したい人にはおすすめです。
一つのプロシージャに全処理を盛り込むと、コード量が単純に膨れあがります。

他の処理でも共通で使えそうな箇所だけを抜き出し、プロシージャを分割させることで使い回すことが可能になります。
シンプルにプロシージャを分けるだけでも効果ありますが、引数の使用を覚えればさらに便利です。
引数を使用することで、情報をプロシージャ間で受け渡すことができます。
これにより、処理できる範囲も広がります。

当ブログでも、プロシージャの分割についての記事を書いています。

ステップ3-Excel関数を自作する

Excel VBAを使ってExcel関数を自作することもできます。

例えばワークシート関数を4つほど組み合わせて、一つの関数として表現することができます。
4つのワークシート関数を組み合わせてそのままセルに入力すると、もちろん冗長で見にくい数式になってしまいますよね。

きっと皆さんもウンザリした経験があるのではないでしょうか。

VBAでExcel関数を自作してしまえば、シンプルな数式に変身させることができます。 これにより、メンテナンス性が大幅に向上します。

さきほど紹介したFunctionプロシージャの記事に関数の使い方に触れているので、参考になると思います。

ステップ4-ファイルの操作

VBAでファイルやフォルダの複製、削除、情報の取得なども行えます。

ファイルのバックアップやフォルダの容量を取得するなど、Excelアプリの機能とは別の機能が使えるようになります。

ステップ5-モダンExcelの自動化

パワークエリやパワーピボットで知られる、モダンExcelもVBAを使って自動作成することもできます。

パワーピボットのダッシュボードを完成させるまで、以下の手順をふまないといけません。

  1. 表のテーブル化
  2. クエリの接続
  3. ピボットテーブル・ピボットグラフの作成
  4. スライサーの追加

手作業で作るのは以外と手間がかかります

ダッシュボードを作るのに満足してしまい、データを眺めるという大事なことがおざなりになってしまいかねません。

ダッシュモード作成までが全て自動化されれば、データ分析に多く時間を割くことができるので、経営上のメリットはとても大きいです。

ステップ6-クラスモジュールで部品化

クラスモジュールは、VBAの中でも最上位と言ってもいいくらいのハイレベルなテクニックです。

Javaなどのような他言語でもよく「オブジェクト指向」という言葉がよく使われます。
オブジェクト指向はプログラム自体を部品化してしまい、他でも簡単に使いまわせるのが大きな特徴です。

VBAのクラスモジュールもオブジェクト指向と似た動きをします。

VBAの経験を持つ人の中には、クラスモジュールに挑戦したけど、難しすぎて挫折した人も多いのではないでしょうか?

Excel VBAで中級以上のスキルを身に付ける4つの手段

では、中級レベル以上のVBAテクニックを学ぶための手段を4つ紹介していきます。
いずれの方法についても長所と短所が兼ね備えており、使う人の相性で大きくかわってきますので、いろいろ試してみることをおすすめします。

手段1-情報発信サイトやYouTube動画で学習

この方法は最もメジャーな方法です
。当ブログも含め、いろいろなメディアでVBAについての情報を発信しています。

おすすめサイトとYouTubeチャンネルを厳選して紹介しておきます。

おすすめサイトは以下の3つです。

  • Office Tanaka:Excelのレジェンドでもある田中亨さんのサイト
  • Excelの神髄:VBA100本ノックでおなじみのサイト
  • いつも隣にITの仕事:リスキリングについての情報発信をしているタカハシノリアキさんのサイト

おすすめYouTubeチャンネルは以下の2つです。

  • わちょんのゆっくりIT:VBA 100本ノックの解説やChatGPTの使い方を発信ト
  • 業務効率化のちゃんりょう【作品配布】:VBAの初心者から上級者まで幅広く情報を提供

ただし、動画は目的の情報を見つけるまでに探すのに時間がとられ、かえって学習効率が下がってしまうことも多いです。

しかし、気軽に画面を開いて閲覧できるメリットは大きいです。

手段2-書籍で学習

専門の書籍を使って学習するのも効果的です。

以下に脱初心者を図りたい人へのおすすめ本を紹介していますので、よかったらご覧ください。

手段3-Microsoft公式サイトを活用

Microsoft公式サイトもコーディング中にはこまめに見るようにしましょう。

独自の仕様でマクロを作ろうとした場合、全てを答えてくれるサイトやYouTube動画はありません。
そんな時に役立つのがMicrosoft公式サイトです。

VBEのヘルプボタンからも開けますし、メソッド名やプロパティ名で検索すれば欲しい情報はすぐに見つかるでしょう。
使い方に慣れてしまえば、マクロ作りの大きなサポートとなるのは間違いありません。

手段4-AIツールを活用

Chat-GPTなどのようなチャットAIツールをうまく活用するのもおすすめです。

しかし、チャットAIは質問者のレベルに合わせて回答してくれるので、プログラミング用語に詳しい人の方が圧倒的に有利です。
AIを使って業務効率を加速度的に上げてくれますが、質問者の知識レベル以上の答えまで返してくれるのは稀です。

まとめ

今回は、Excel VBAの中級レベル以上の学習を進めるためのロードマップを紹介しました。

AIの時代だからVBAなどのプログラミングを学ぶ必要はない」と考えている人も少なくありません。

AIからレベルの高い回答を得るためには、自分自身のレベルも向上させる必要があります。
多くの人が触っているExcelを利用し、VBAを学習することは、プログラミングの基礎を学ぶうえでも役立ちます。

積極的にスキルを磨いていくことで、実務の効率改善にすぐにつなげられます。

ぼく自身もまだまだですが、ともに頑張ってVBAのスキルをアップさせていきましょう。

スポンサードリンク

スポンサードリンク

-VBA(Excel)