はじめに
Excel の VBA マクロを作成・活用して、業務を効率化したいと考える人は多いかと思います。ただ、話を聞いていると以下のようなことを言われることが多くありました。
- マクロを使ってみたいけど、マクロで何ができるのかわからない
- マクロを作ってみたいけど、どうやって勉強したらよいかわからない
- マクロについて調べてみたけど、自分のやりたいことについて説明しているサイトが見つからない
Web上には VBA マクロについて解説しているサイトはたくさんありますが、確かに、一つ一つの要素機能についての記述方法や使い方のみを説明したサイトばかりで、勉強の進め方や、作業をマクロ化する際の考え方などについて説明しているサイトはほとんどありません。
このような状況では、全くのマクロ初心者にとっては勉強が難しく、モチベーションも保つのも難しそうです。
そこで、VBA マクロについて勉強するための学習ロードマップを作ることにしました。
以下では何をどのような順で勉強したらよいのかについて筆者の経験をもとに説明します。
Excel VBA マクロ学習ロードマップ
①マクロ有効ブックの作成方法と VB エディタについて知る
エクセルでマクロを使用する場合、原則的にはエクセルファイルをマクロ有効ブック(.xlsm)として保存する必要があります。
また、マクロを作成する際は、エクセルブックにて VB エディタを表示して、エクセルブックに対して標準モジュールを追加してからコード(命令文)を記述します。
そのため、これらの操作方法について知る必要があります。
②VBA の基礎について学ぶ
VB エディタ上でコードを書く際の基礎である仕組みについて把握します。
具体的には以下のような内容を最初に把握してください。
- マクロの処理は
Sub
からEnd Sub
までで一つの塊であることFunction ~ End Function
というパターンもありますが、最初は Sub だけで OK です
- 一行につき一つの処理を表すこと
- 上の行から下の行へ向かって順に処理が進むこと
- コード内に全角文字があるとエラーになること
- 文字列として全角文字を使用する場合は除きます
- マクロの実行方法
③VBA の基本的な機能について学ぶ
Web 上によくある入門サイトでは、VBA の基本的な機能について説明されています。
それらの基本的な機能を確認し、できれば実際に自分でコードを書いて実行してください。
そして、VBA の基本機能としてどんなことができるのかを把握してください。
情報源は、VBA 入門サイトや、入門書などで良いかと思います。
具体的には以下の様な機能です。
- 四則演算
- 変数
- 繰り返し処理(for 文)
- 条件分岐(if 文)
- エクセルシートのセルについて
- 値の取得
- 値の設定
- 値のコピー・ペースト
- 関数(プロシージャ)
- Sub
- Function
④マクロ化したい作業の処理手順を考える練習をする
これは最も重要なステップと言っても過言ではありません。
VBA の基本的な機能を把握しただけではマクロを作成することはできません。
マクロを作成するためにはマクロ化したい作業を VBA の処理に置き換える必要があります。
そのためには、手動で実施している作業を最初から 1 ステップずつ、VBA の処理でいうとどのような処理に該当するのかを考えて、コード化していきます。
恐らく、マクロ初心者にとってはこの作業が最も難しく感じるのではないかと思います。
ですが、これをやった分だけマクロ作成ができるようになります。
なぜなら処理手順がイメージできればマクロの半分は出来上がったようなものだからです。
⑤人が作成したマクロのコードを読む
これは上の④と並行して実施しても良い内容ですが、人が作ったマクロのコードを読み、そのマクロで何をやろうとしているのかを考えることはとても勉強になります。
とはいっても、人が作ったマクロを見る機会はあまりないと思うので、代わりに入門サイトなどにあるマクロ例を読むという方法でも良いかと思います。
⑥オリジナルのツールを作ってみる
こんなツールがあったら便利そうだな、というツールのアイディアがあれば実際にそれを作ってみてください。
ツール作成の中でつまづくことがあると思いますが、Web 検索して調べて問題解決しながら一つのツールを作成することは、マクロ作成能力の飛躍的な向上につながります。
マクロを作ることは処理手順を考えることである
マクロを実行すると、基本的な機能(上の③で記載したような機能)を組み合わせて構築された一連の処理が実行され、全体として何らかの結果が出力されます。
よって、基本的な機能をどのように組み合わせて使用するか、が重要になります。
言い換えると、どのような処理手順にするかを考えることが重要ということです。
目的を達成するような処理手順が構築できればマクロは作成できたも同然です。
VBA の使ったことのないような機能を使用する必要がある場合もありますが、大抵のことは Web で検索すれば情報が見つかります。