前回私のおすすめの勉強方法と、実際に私がどう習得していったかをお伝えしたのですが、今回は勉強のためにVBAを書くという実践をするうえでのポイントなどを書いていこうと思います。
ここを抑えておくといいよ!ここは気にしない方が心が折れずに続けられるよ!
などのちょっとしたアドバイスです。
コードを書く能力じゃなくて検索能力が必須!
さて、VBAを書こうと思ったときに私がまずやることが分解と検索です。分解については後で述べるとして、まずは検索について。
勉強し始めの頃は頭の中にはコードは全く入っていません。
セルの値をコピペするにも、半角スペースを全角に変更するにも、とにかく何をするにつけても検索をして見つかったコードをまるっとコピペして使います。
なので、勉強初期の頃に必要なのは検索力です。
検索力とは言っても難しいことは無く、半角スペースを全角に置き換えたければ「VBA 置換」など、「調べたいこと」+「VBA」で調べたら大体出てきます。
とにかく最初はひたすら検索してコピペを繰り返します。検索したら出てくるんだから、覚える必要なんて全然ないです。そのうち自然と頭に入ってきますから。
置換するにはReplaceを使うんだった気がするな~、みたいなボヤっとした記憶ですが。
ちなみに頭に入ってくるとは言え、Replaceの後って何書くんだっけ?っていうとこまでは完全に覚えられないので、結局毎回検索してます^^;
もう一つの必要能力、「分解」について
さて、先ほど説明を飛ばした分解についてです。
分解って何?というと、やりたい作業を細かいタスクに分けることです。
例えば請求書の自動作成をしたい場合。最終目標である請求書の自動作成をするにはどういうタスクが必要でしょうか?
- 請求書を作成する会社を調べて
- その会社の会社名を請求書のテンプレートにコピペして
- 請求したい金額を請求書のテンプレートにコピペして
- できた請求書をPDFにして
- PDFの名前を会社名に置き換える
ざっくりこんな感じですね。
1個目の「請求書を作成する会社を調べる」なら、今月の請求金額が0円じゃない会社をピックアップすればいいので、「条件にあてはまるかチェック VBA」と調べることができます。
タスクに分解することで検索ができるようになるんですね。
ちなみに請求書の作成など、みんなが知りたそうなものについては「請求書作成 VBA」で探せば出てきますが^^;
とはいえいつも汎用的なものを作りたいわけではないと思うので、検索をかけれるようなサイズまで分解することは必要です。
1行ずつ実行しながら解読をする
コピペしてきたコード、ただ読んでるだけだと何が書いてあるのかイメージするのが難しかったりします。理解力があったり、解説がわかりやすければ解読できることもあるんですけどね。
それにしても解説を読むだけで理解するのは難しいかなと思ってます。私の理解力の問題かもしれないですけど…。
というわけで、まだ勉強し始めの人にオススメなのが1行ずつ実行しながら何が起きているかを見ることです。
1行ずつ実行すると、変数にどういう文字や数字が入っているかとかを見れるので、理解がしやすいです。
ここの行の数字をチェックをしてるのか。
このセルの値をコピペしてるのか。
とかを1個ずつ見ながらの方が解像度が格段に上がります。
エラーが出たときの対処法:エラーメッセージで検索
コピペしてきたコードがなぜか自分の環境では動かない
自分が使いたい内容にちょっと手を加えたら動かない
なんてことはよくあります。
その時に出てきたエラーメッセージは、エラーメッセージ全文を検索にかけましょう!
ネットで検索すれば、解決方法を載せてくれている先人達がたくさんいます。私も先人達の知恵をお借りしていることが多々あります。ありがたいですねm(_ _)m
そういう解決方法を載せてくれているブログなどは、「原因」+「どう直せばいいか」を書いてくれているのでとても参考になります。あと、勉強にもなります。
これがまぁ、エラーが出たときの対処法の王道です。
それでは邪道は何か。別のサンプルコードを探す、です。
勉強し始めの時は、エラーの原因とかを調べてもピンと来なかったり、そもそも書いてある原因の意味が分からなかったりします。
そういう場合は書いてある内容を理解するために、わからないワードを検索するなどしてどんどん深みにはまっていきます。そしてVBAを書くのが嫌になっていきます^^;
そうなる前に、動かなかったコードは諦めて別の書き方を探しましょう。
書き方は人によっていろいろありますので、一つの方法に固執する必要はありません。あと、サンプルコードを載せてくれているブログもたくさんありますので、書き方が平易であるものや、解説が超絶詳しいものを探して別のコードを試してみた方が早い場合もあります。
細かいことは気にしない!
最後に躓かないため、心が折れないためのポイントについて。
動けばOK!細かいことは気にしない!
です。
コピペしてきたコード、もちろん内容を全部理解できればそれに越したことはありません。
しかしながら最初は解説を読んでもさっぱり分からないことがよくあります。その場合は、とりあえず動いてればOK!の気持ちで理解することを諦めます。何回も見てたらそのうち分かる時が訪れます。それまで放っておきましょう!(笑)
理解できなかったら先に進めない、だと確実に心が折れてイヤになるのでご注意を。
とりあえず1行ずつ実行しながら、解説がついていれば解説も読みながら、理解しようと努める。
それでもわからなかったら、「こうやって書けば動くんだな」と納得して飛ばす。
ようは動けばよいのです。
パソコンが動く仕組みがわかってなくてもパソコンは使えます。
コードの中身を全て理解しなくても、期待通り動いているのであれば問題ないのです^^
まとめ
今回は、VBAを書くうえでのポイントをいくつかお伝えしました。
最初は何もわからなくてエラーメッセージを解消するのに小一時間かかったり、エラーが出てないけど思った通りの結果にならなくて原因がわからなかったりすると思いますが、
全てを理解しようとしない。動けばOK。
うまく動かなかったら別のサンプルコードを探す。
で心が折れるのを回避して、勉強を続けていってほしいと思います。
ちょっとずつ知識が蓄積していけば、わかる範囲が増えていって楽しくなってきますよ!(^^)/
コメント