Excel・VBAマクロの独学を効率的に進める方法※体験記あり

VBA独学

大前提として「効率的」と「楽して・短時間で」はイコールではありません。

VBAマクロの習得は決して楽ではない道のりです。ましてや独学となると尚更です。

そのうえで、いかにまわり道せず(無駄な努力をせず)にスキルを高めていくか。

体験記を交えながらお話したいと思います。

はじめから順番に網羅しようとするな!

例えばですが

顧客リスト100名への案内状を一斉に作成するツールをVBAマクロで構築したい

まずは基礎から文法を勉強しよう!Dimとは、Rangeとは、Variantとは、なるほどなるほど…

一見正しそうに見えますが、この流れが大きな間違いです。

VBAマクロは知識があるだけでは構築することはできません。色々な書き方やルール、データ型の種類等を頭に叩き込んで覚えても、いざ「さあ書くぞ!」となった時に、まったく手が動きません。

正しくは、以下のような流れです(さっきとは完全に真逆の流れです)。

顧客リスト100名への案内状を一斉に作成するツールをVBAマクロで構築し始める(まず着手)

まずは顧客リストを1件ずつ確認しないと。繰り返し処理はForを使うんだな。Forの使い方は…

顧客の性別ごとに処理内容を変えたいな。条件で分ける場合はIfが必要なのか。Ifの使い方は…

使う場面が出てきたら、今必要な形でそれを習得する。これがもっとも効率的な進め方です。

「知識を蓄積する」「記憶する」ではなく、大事なのは実践。

書籍の内容を丸暗記しても、書籍の中で書かれているVBAマクロを完コピできるようになるだけです。

実際人間の記憶には「エピソード記憶」と「意味記憶」があり、前者は体験やストーリーが伴っており、後者は単純な機械的な暗記で、前者の方が定着率と思い出しやすさが高いそうです。そして長期的に記憶されます。

なので、丸暗記はまったく意味がなくて、とにもかくにもまず書いて、動かしてみて、エラーになって、エラー解消に四苦八苦して、やっとの思いでクリアできて。と思ったら別のところが動かなくなって・・・。この体験を得ることが何より重要なんです。

こういう試行錯誤にこそスキルアップの要素が詰まっていて、かつ自分の足りない部分を着実に埋めていってくれるので、非常に効果的です。

自分自身の頭をひねって、悩ませて、色々な苦い経験を積んで。その結果乗り越えたエラーの数であったり、オリジナルで構築したコードの数であったり、その分だけ強くなっていきます。これはガチです。

6年前のVBAマクロ独学体験記

始めた経緯

かくいう私も、6年前まではVBAマクロがまったく読みも書きもできない素人でした。

そんな中仕事で、かなり面倒なExcel業務を前任者から引き継ぐことになりました。

内容は「各営業所が予算を達成した連続月数を毎月算出する」でした。

前任者に資料の作成手順を聞いたところ、基幹業務システムからデータを出してきて、達成率を手計算で算出、それを過去分と合わせて「当月時点で連続で何回達成しているか?」を目で確認して算出しているとのことでした。

面倒くさ過ぎるやろ。全国に40拠点あるんやぞ。日暮れるわ。

実際に前任者の方は日が暮れるまでその作業をやっていたそうです。

さすがにそれはあまりにも時間の無駄だと感じ、VBAマクロを使えるようになろうと決心しました。

前途多難なスタート

VBAマクロ第一号の題材が少し難しかったというのもありますが、とにかく毎日毎日苦労の連続。

わからないところが出てきたらその都度ググって調べてなんとか解決はしていましたが、1つの記事だけではすんなり解決しない問題も出てきて、色々なサイトをまわって、解決の材料になりそうな投稿をかき集めて、それらを全部組み合わせてやっと解決、なんてことがざらにありました。

中でも、やっぱり一番しんどかったのは「なぜエラーが出るのか?」を突き止める作業。

当然自分オリジナルのVBAマクロを書いているので、その中で発生するエラーを一発で解決してくれるような記事なんてあるはずもなく・・

何を試してもエラーエラーエラーエラーエラー

気が滅入りそうになりました。一人孤独に終電間際まで格闘する日が続きました。

一向に解決しない状況って本当にストレスが凄いし、やる気も削がれていきます。

この時期は本当にモチベーション維持に苦労しました。何度やめようと思ったことか。

エラーをやっつければスキルが格段にアップ

もう戻りたくない辛い時期でしたが、その繰り返しで確実にスキルが上がっていくのがわかりました。

違うVBAマクロを書いていてエラーが出てきても、「ああ、あのパターンね」とすぐに解決策を導き出せるように次第になっていきました。

エラーを出すのは「失敗」ではなく「成功への糧」です。

今エラーに立ち向かって頑張っている方、無駄じゃないですよ!めげずに!!

もう少し速く解決にこぎ着けたかった

とは言え、これまでの学習過程を振り返ってみると、もう少し速く解決にこぎ着けたかったなと思います。

もちろん試行錯誤する時間は大切ですけど、回り道をした感は正直否めません。

今だから言えることですが、もっと学習時間を圧縮することはできたなあと。ドツボにハマって抜け出せないことが多かったなあと。

あの時もっとこうしていれば、効率的に解決できてたなーとか。考え出したらキリがないですが。まあ誰にも聞けない、一人で気合で何とかするしかないという孤独な状況での闘いだったので、仕方ないとは思うんですが・・・。

すぐに解決する環境があればストレスフリー

「わからない状況に陥った時にすぐに解決できる環境が整っている」という状態であれば、モチベーションを常に高く維持しながらストレスなく進められたなと感じています。

ヤフー知恵袋とか、プログラミング系の質問に特化した場所に投稿したりもしたことはありますが、自分の陥っている状況を文字のみでのやり取りで伝えるのはかなり難易度が高いし、うまく投稿が出来たとしても、アンサーが返ってくる保証は無いし。返ってきても数日後とかに結局なるし。「今すぐ答えを知りたい!」という欲を満たすことはどうしてもできませんでした。

やっぱり悩む時間が長いとしんどいし、精神的に辛いし、モチベーションはどんどん低下していきます。ストレス半端なかったなあ・・・。

あまりにも解決しなさすぎて、2か月くらいVBAマクロをまったく触らないこともありました。

それくらい、もう戻りたくない辛い時期でした。

実践に加えて「すぐに質問できる・高め合える環境」を

どれだけ実践的に取り組んでいても、躓いて解決できなくて諦めて終わってしまっては元も子もありません。

実践的に取り組むのと同じくらい、いやそれ以上に、挫けずにモチベーションを維持し続けることが何より大事で、何より難しいことかもしれません。もう精神論の話になってきます。

それを後押しするのがやはり「すぐ誰かに質問できる・高め合える環境を用意しておくこと」だと思います。

詳しい人に聞くのが一番早いですし、解決までの労力も少なくて済みます。

苦しい経験からも、解決までのスピードと省労力はモチベーション維持に直結します。

また、同じ志を持った同志の存在も大きいと思います。

孤独もやはりモチベーション維持の妨げに繋がってしまいがちです。

正しいやり方で一緒に頑張っていきましょう!

とはいえそんな恵まれた環境を準備するのは実際難しいです。簡単にできればみんな苦労してません。

そこでこの度「初心者がエクセルマクロを回り道せずに習得していくための手引書(最短距離で身に付けたい人向け)」をnoteで記事公開しました。

エクセルマクロの0→1を最短距離で進むための基礎を身に付けることを目的とし、実際にサンプル課題を作ってみて、目で読むだけではなく頭と体で覚えられるような内容になっています(第1弾のみ公開中で、今後どんどんコンテンツは追加していきます)。

わからないところが出てきた時に、色々なサイトを横断して苦労して調べなくても、このnote内だけで完結できるような構成にしていくつもりです。また筆者は当ブログ含め、noteも毎日閲覧していますので、記事内でわからないことがあればコメントで自由に質問していただいて構いません。

とにかく、あなたのエクセルマクロ習得のお手伝いができればと強く思っていますので、ぜひ活用してみてください。

地道に頑張っていきましょう!!!

コメント

タイトルとURLをコピーしました