【Excel VBA】あなたは大丈夫?VBA初心者の間違った学び方

こんにちは、ツクダンです!

今回は初心者がハマりやすいExcelVBA学習の落とし穴と、その対処法をご紹介しま

 

「Excel業務への活用」「学習ハードルの低さ」などの理由から、非エンジニアを中心に利用されているプログラミング言語VBA。

僕も以前、化学系のプログラミング初心者に向けた記事で、第一言語としてオススメしました。

ー 何から始める?化学系のプログラミング学習

しかしVBA学習を進めた結果、その学習ハードルの低さは初心者とって害になる可能性があることに気がつきました。

 

「僕の記事を読んでくれているあなたには、VBA学習を挫折してほしくない!」

と思ったので、記事にまとめることにしました。

 

この記事では、

  • なぜ学習ハードルの低さが害になるのか
  • どう対処すればその問題を防げるのか

の二つの点についてまとめて行きます。

 

この記事は次のような方におススメです!!

  • これから初めてプログラミング言語を学ぶ方
  • VBAを独学で学んできた方
  • チーム単位でVBAを業務に利用している方

 

 

初心者が注意すべきExcel VBAの特徴

じつは学習ハードルが低いこと自体は悪いことではありません。

問題はVBA特有の「記述ルールのゆるさ」。

どういうことか理解してもらうために、次の二つのことを説明していきます。

 

VBAの記述ルールのゆるさ

他言語に比べてVBAは記述のルールがかなりゆるい言語。

その結果「一つの命令の記述に複数の選択肢が存在する」ということが起こります。

例えば指定セルや文字列こそ変えていますが、以下に示しているコードはすべて「セルに文字列を入れる」という命令の記述です。

Sub ルールが緩いVBA()

    Application.ActiveSheet.Range("A1").Value = "完全詠唱"
    
    ActiveSheet.Range("A2").Value = "Applivcationを省略"
    
    Range("A3").Value = "さらにActivesheetを省略"
    
    Range("A4") = "とうとうValueまでも省略"
    
    Cells(5, 1) = "Rangeの代わりにCellsを用いる"
     
End Sub

 

コードを省略可能だったり、「セル指定」にRangeとCellsのどちらでも使えたり。

VBAは一つの命令に対して様々な書き方が存在する、自由度の高い言語なのです。

 

ルールがゆるいと何が問題なのか?

「制限が少ない」ことは直感的な操作を可能にするため、初心者にとってはありがたいでしょう。

しかし上級者を目指す人にとっては足かせになりえます。

なぜなら記述ルールがゆるいことは、次の二つの問題を引き起こす確率を高めるからです。

  • データに対する間違った理解
  • コードの記述方法に個性が出る

 

データに対する間違った理解

コードの記述に制限が少ないと、ルールを間違って理解してしまう可能性があります。

どういうことか?例えば以下のコードを考えてみましょう。

 Range("A1") = "実はコードが省略されている"

初心者がこのコードを見たとき、そもそもコードが省略されていることなんて分かりません。

その結果、次の三つの勘違いを生んでしまいます。

  • Rangeという「オブジェクト」そのものに「代入」ができる
  • アクティブ状態のシートしかセル入力できない
  • 「Application.ActiveSheet.」のような、「より上位のオブジェクト」は存在しない

 

このように間違った学習を進めてしまうと、その修正にエネルギーを使うので学習が非効率になってしまうのです。

 

コードの記述方法に個性が出る

様々な書き方ができるということは、人によって書き方が変わる可能性があるということ。

つまり同じ命令でも、技術レベルの違いでコードの書き方に個性が出てしまうのです。

 

もちろんコードを分かりやすくするための個性ならいいです。

しかし初心者がだすのは基本的に悪い個性。秩序の無い自己流です。

 

自己流で書かれたコードは読みにくく、理解が難しくなる

チームで開発・管理を行っていくことを考えると、コード制限が少ないのは望ましくないのです。

 

 

初心者におススメの学び方

なら「一体どうすれば正しく学べるのか?」が気になりますよね。

そこで続いては、初心者がVBAを正しく学ぶための方法をいくつか提案したいと思います。

それが次の三つ。

  • プログラミングスクールで学ぶ
  • 辞書的な教材を持っておく
  • 様々な教材から学ぶ

 

プログラミングスクールで学ぶ

もっともオススメなのは、プログラミングスクールでプロの講師に学ぶことです。

正しい知識・考え方で導いてくれながら、質問にも答えてくれる。

優れた指導者に恵まれた人の成長が早いのと同じ、プログラミング学習でも結局これが最強です。

「どのスクールがオススメなの?」という方は、以下の記事を参考にしてください。

ー 【2022年版】VBAが学べるおすすめスクール5選

 

辞書的な教材を持っておく

正しさ・厳密さ重視した「辞書的な教材」を持っておくことは、独学で学ぶ人には非常に有効です。

分からないところをその都度しらべる。

あるいは気の向くままにパラパラ読んで、少しずつ身に着けていくのも良いでしょう。

オススメは次の書籍。

ExcelVBAを勉強するなら購入して損はしない一冊です。

ExcelVBAのすべてが体系的かつ詳細にまとめられています。

難点は内容が非常に厳密に書かれていること。(文章の書き方も分かりやすくはない)

プログラミング初心者がここから入るのは、厳しい印象です。

あくまで「辞書的な使い方」をオススメします。

 

様々な教材から学ぶ

教材を色々使ってみるのも、間違った学び方を定着させないために有効です。

問題なのは間違った理解のまま学習を進めることなわけです。

書籍・動画教材・ブログなど様々な部分から知識を参考にする習慣があれば、間違いにはすぐに気がつけます。

ぜひ試してみてください。

 

 

VBA初心者の学び方まとめ

今回は初心者に向けて、学習の際に注意すべきExcelVBAの特徴を紹介しました。

それはルールによる制限が少ないこと。

その特徴から二つの問題が発生するのでしたね。

  • データの間違った理解
  • コードの書き方が統一されない

 

そしてその問題を引き起こさないために、僕がオススメする学習方法を三つ紹介しました。

  • プログラミングスクールで学ぶ
  • 辞書的教材を持っておく
  • 様々な教材から学ぶ

 

あなたが最短距離でVBAを習得できることを願っています。

最後まで読んでいただきありがとうございました。

最新情報をチェックしよう!