はじめに
Excel VBAを始めたものの、思うように進まず挫折した、挫折しそう、という方は少なくありません。
プログラミングを知らない人にとっては、プログラムを書く、というのはかなりハードルが高いことです。
スポーツや習い事と同じですが、「プログラミング、ちょっとやってみるか」というぐらいの軽い気持ちであれば、残念ながら習得は難しいでしょう。
「自分はプログラミングを覚えたいわけではなくラクをしたいだけ。VBAはその手段に過ぎない」という方もおられると思います。そのような場合であればChatGPTなどのAIを活用することをお勧めします。
そうではなく、「VBAを理解したい」「どうしてもプログラミングを習得したい」、という方に向けて、挫折しそうになったときの克服方法を紹介します。
今もこれからも分からないことがあってOK! 分からないときに調べればいいだけ!
まず、プログラミングで一番重要なことをお話します。
一番重要なのは、分からないことは悪いことではない、ということです。むしろ「分かりません!」と開きなおってください。知識もセンスも一切不要です。
どんなに熟練のプログラマーでも、分からないことが必ずあります。というより、熟練度が高いプログラマーほど、「自分には知らないことはたくさんある」と思っているほどです。
では分からないことがあるときにどうするかというと、調べればいいんです。それだけです。
1. 分からない
2. 調べる
3. 分かった
これの繰り返しです。熟練度が高いプログラマーは今までのこの繰り返しの数が多いため、何も見ずに書けるようになっているだけです。小学生が算数ドリルや漢字を何度も書いて、出来なかったことが出来るようになっているのと一緒です。
あなたは何が分からないですか?
- 「VBAってなに?」
- 「プログラミングってどうやって始めればいいの?」
- 「入門本は買った方がいいの?」
- 「セルに計算式をプログラミングで作れる?」
- 「マクロの自動生成で何十行も出てきてどうすればいいの?」
このように段階ごとに分からないことはいくつも出てきます。そしたらその都度調べればいいんです。Google検索でもChatGPTなどのAIに質問するのでもいいです。
この「分からない」→「調べる」の繰り返しをすれば、プログラミングは身に付きます。
考え方、で挫折するポイントの対応方法
1. 何をしたいのか自分でわからない
VBAを使って何をしたいのか自分で分からない、というのは実はよくあります。
そのときは、ノートでもExcelでもなんでもいいのですが、自分がやりたいことを整理するのが先です。プログラムはそのあとです。
VBAを使ってやりたいことで多いのは、Excel操作を自動化したい、というものです。その具体的なExcel操作を手作業で書きだします。
例:
- 新規ブックを作成する。
- 毎回同じ書式に整えている。(フォントの種類やサイズ、列幅)
- これが面倒なので自動でやってほしい。
これがそのままVBAでやりたいことになります。
「最終的にどうなっていたら便利か?」というのが導き出せたらOKです。
迷ったときは一度整理するようにしてください。
2. どう書けばいいのか分からない!
プログラムをどう書けばいいか分からない、というのは最初は当然ありますが、いきなりコードを書こうとせず、まずは「日本語で手順」を書きだします。
上であげたやりたいことの内容を具体的に書きます。
例
- 新規ブックを作成する。
- シートの名前を「xxx」にする。
- シートのフォントをMSゴシック 12ポイントにする。
- 全ての列幅を10にする。
- ブック名は「aaa.xlsx」でC:\testフォルダに保存する。
この日本語をそのままVBAのプログラムに置き換えていくのがプログラミングになります。
「マクロの記録」機能を使ってプログラムにしたり、この日本語の手順をChatGPTに質問してみてください。ここで無理に自作しようとしないでいいです。
プログラムの内容が分からなくても、プログラムは出来上がります。
ちなみに上の内容をそのままChatGPTに「以下の条件でVBAを書いてください」と質問するとこれを出してくれました。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
Sub CreateNewBook() Dim wb As Workbook Dim ws As Worksheet ' 新規ブック作成 Set wb = Workbooks.Add ' 最初のシートを取得 Set ws = wb.Sheets(1) ' シート名を「xxx」に変更 ws.Name = "xxx" ' フォントをMSゴシック 12ptに設定 ws.Cells.Font.Name = "MS ゴシック" ws.Cells.Font.Size = 12 ' 全列幅を10に設定 ws.Cells.ColumnWidth = 10 ' C:\test フォルダに "aaa.xlsx" で保存 wb.SaveAs Filename:="C:\test\aaa.xlsx", FileFormat:=xlOpenXMLWorkbook ' 保存後ブックを閉じたい場合は以下を有効化 'wb.Close SaveChanges:=False End Sub |
プログラミングで挫折するポイントの対応方法
1. 本屋に行って手に取って、自分が理解できる本を1冊を買う
こんなページを書いておきながらなんですが、プログラミングを習得するのであれば、Google検索やAIに質問しまくるよりも、入門本で学習するのが結局は1番近道です。
YoutubeやネットやChatGPTなどはどうしても情報が断片的になります。
しかし入門本は一通りのことが順番に書いてあります。
購入時は実際に本屋に行って、自分が理解できるものを買ってください。入門本は合う合わないが結構あるのでAmazonのレビューで判断するよりも本屋で実際に手に取った方がいいです。
そして、本の内容を実際にVBAで書いて動かしてみてください。手でコードを書くと一気に理解が深まります。
2.エラーになる
プログラムを書いていくと、いろんなエラーにぶつかります。
「コンパイル エラー」「実行時エラー」といったメッセージが表示されると、初心者は「何が起きたのかわからない」と感じます。
特に型が一致しませんやオブジェクト変数が設定されていませんなどのエラーは理解しづらいものです。
ただ、エラーが発生するとエラーメッセージが表示されますので、それを元にGoogleやAIで調べてみてください。ほとんどのエラーはすぐに解決します。
でも、エラーが出るということは、あなたが新しいことに挑戦している証拠です。エラーに遭遇するたびに、新しい知識が1つ増えます。10回エラーを解決すれば、10の問題解決パターンが身につきます。
3.完璧を目指さない
初心者が挫折する大きな理由の1つは、最初から完璧なコードを書こうとすることです。プロのプログラマーでも、最初から完璧なコードは書けません。まずは動くものを作り、後から改善していくのが基本です。
私もこのサイトで記事を書いていく中で、コードを書いていますが、「なんか気に入らないのでボツ」といって捨てたコードがたくさんあります。
なんなら、こういう記事を自分がほしい、と思って書き始めたページもあったりしますが、その知識がないため記事を書きながら調べた、なんてこともあります。
とりあえず動けばOK!ぐらいの気持ちでいいです。
まとめ
VBAを学ぶときに挫折しやすい理由は「何をしたいか分からない」「どう書けばいいか分からない」「エラーが怖い」などです。
しかし、それぞれに克服の方法があります。
- まずは日本語でやりたいことを書き出す。
- マクロの記録やAIを活用して形にする。
- エラーは挑戦の証拠ととらえる。
- 完璧を目指さず「動けばOK」で進める。
この繰り返しで、少しずつできることが増えていきます。
焦らず、コツコツ取り組めば必ずVBAは身につきます。