
エクセルのVBAのコードの書き方がなかなか理解できません。
基本的な書き方は分かったのですが、どうも自分でゼロから作ることができないんです。
本記事ではこのような疑問にお答えしていきます。

こんにちはロンピーです。
VBA歴15年以上。
会社員で現場でエクセル作業の効率化を行っています。
部下にVBAを教えることも増えてきました。
そこで気が付いたこと。
基本が分かった後に、じゃあ各自でコードを書いてみましょうとなった瞬間にみんなの手がまったく動かなくなる!
説明を聞いている段階では、分かった気になるようですが、実際に自分でコードを書くとなると何から手を付けていいのか分からなくなるみたいです。
そんな経験から、どのような手順でVBAの記述を考えたらいいかを考えました。
その内容を本記事に書き残すことで同じ悩みを持つ方の手助けになればと思います。
遅くなりましたが、結論。
これから記述する手順でVBAのコードを組み立てていく。
書き方の手順が分かれば、逆の手順で考えれば、他人が書いたVBAコードを読むことも苦ではなくなる。
他人のVBAコードは慣れないと読みにくく感じることもありますが、長いコードにもまったくビビる必要はありません。
目次
VBAの書き方手順
VBAの書き方については8つの手順をふむことで、構成を組み立てやすくなります。
1.何がしたいか最終目的を考え、紙に書き出す。
まず、何が目的でVBAを書くのか書きだしましょう。
おすすめは、紙に書き出すことです。
いきなりパソコンで思いついたまま書き始めると、頭が整理できておらずどんどん目的の方向がずれてきます。
ブックを開きたい。表のこの範囲の値を他のシートに貼り付けたいなど、VBAを書く最終目的をはっきりさせましょう。
2.最終目的に到達するまでの流れを想像できる範囲で紙に書き出す。
最終目的に達成するまでの道のり(設計図)を思いつく範囲で細かく流れを書き出してみましょう
。
例えば、
この範囲のセルをダブルクリックする⇒ダブルクリックされたセルの値を変数で取得する⇒変数を取得したファイル名のブックを開く
といったように、まず設計図をつくることが重要です。
設計図さえつくることが出来れば、やりたいことのVBAコードを知らなくても、ググることで簡単に解決できます。
ググるときは、「VBA ブックの開き方」 「VBA セルの値を変数で取得」といったように「VBA」の後に何がしたいかを入力して下さい。
今の時代、これだけで大体のことは調べられます。
3.なかなか想像だけでは完成することは難しいので、コードを実際書いてみる。
ただ、想像だけで設計図を書くのも限界があります。
あまり考えすぎて、100点のVBAコードをイメージできるまで考えていても時間がもったいないです。
どうせ考えに考えても、実際VBAコードを書き始めると問題はでますし。
ある程度設計図が完成すれば、VBAコードをどんどん書きましょう!
考えるのも大切。
でも考えすぎるのもいかがなものか。
しっかり考え、手を動かしましょう。
4.コードを動かす。
ある程度VBAコードが書ければ、実際にステップインで一つずつコードを動かしましょう。
実際の動きを確認することで、イメージしきれなかった設計図や思わぬ動きをすることがあります。
5.もちろんデバックがでる。
VBAコードを動かすことで、当たり前のようにデバック(エラー)が出ます。
問題ないです。
誰だってデバックは出ます。
ここで大切なのは挫折してあきらめてしまうことです。
6.デバックの理由を改善する。
デバックが出るのは問題ないと先程お伝えしました。
デバックが出たらなぜ、なぜを繰り返して改善しましょう。
ここでもやはりググる力が大切です。
いろんな角度から問題点を洗い出しましょう。
7.トライ&エラーを繰り返すと、コードは結局長くなる。
すべてが設計図通りにうまくいけばいいですが、デバックの改修などを行うと、どうしても初めに予定していたよりVBAコードが長くなることがあります。
また、すっきり単純なVBAコードの方がもちろん見やすいですが、マクロを使用する人はどのようなVBAコードが書かれているかなんて知りません。
VBAを作成した人の意図に反した行動をとることもあります。
決して短くすっきりしたVBAコードがいいという訳ではなく、使う人が操作しやすく間違いを起こしにくく設計することが、作成者には求められます。
なので、VBAコードは長くなることは必然的に起こるのです。
8.とりあえず目的の動きが達成できれば、全体の流れで省けるところがないか確認する。
①~⑦の手順で作成し、マクロが完成したら、必ずもう一度全体の流れを見返しましょう。
トライ&エラーを繰りかえしているうちに、回りくどい内容になっていたり、省けそうな内容があれば修正していきましょう。
このように、ひとつのマクロを作成するにも、かなり設計図を組み立てる能力は必要になってきます。
でも、誰でも初めからすらすら書けないし、目的は単純でもいざ動かくとVBAコードは長くなるものです。
よって、下準備の設計図はしっかり考える。
矛盾するけれど考えすぎず手を動かしてVBAコードを書く。
VBAコードが長くなっても量にビビらない。
これが、僕の結論です。
VBAの読み方手順
VBAの書き方に触れました。
反対に、VBAを読むときに注意するべきポイントは何でしょうか?
これは、書き方をふまえ、逆の手順を追っていきましょう。
1.VBAコードの量の多さにビビらない。
他人が書いたVBAコードを見た瞬間、「わぁ、読む気しない。。。」となった方も多いのではないですか。
これは誰もが感じたことがあると思います。
それでも、書き方の手順が分かっていれば大丈夫。
VBAコードは長くなるものといいましたね。
まず、心構えとしてどんなに長くてもビビらないと心得ておきましょう。
2.実際にコードを動かす。
他人の書いたVBAコードは動かしてみましょう。
この場合も、ステップインで一つずつ確認しながら行います。
どうしてもVBAコードだけ読んでも、イメージが湧きにくいです。
しかし、実際に動かすとエクセル画面はステップインごとに変わっていくので、どのような動きをしているのか一目で理解できます。
ここでの注意点は、VBAコードの中にはファイルを保存するなど、テストで動かしては困る内容もあります。
そういったものについては、あらかじめメモ化やブレイクポイントをつけるなどの対応をお願いします。
3.全体の大枠をつかむ。
実際にVBAコードを動かすことで、この内容のかたまりは何をしようとしているのか。といった目的が分かるようになります。
目的のポイントを紙などに書き出して、それをつなげることで全体的に何がしたいマクロなのかが解読できるようになります。
4. 大枠をどんどん分解していく。
全体の流れが分かれば、あとは各ポイントを分解しながらひとつひとつのVBAコードを理解していきましょう。
ここまでできれば、これから長いVBAコードにであっても恐れることなく、落ち着いて対応できること間違いないだと思います。
まとめ
どうでしょう?
少しは書き方読み方のイメージは出来ましたか。
決してVBAは1日2日で体得できるものではありません。
しかし、頑張って損するものではないと信じています。
事実、僕はVBAに出会い幸せだったなと本気で思っています。
一緒に頑張りましょう。