ExcelVBAがプログラミング初心者におすすめな理由
よく「プログラミング初心者におススメのプログラミング言語は何ですか?」と聞かれますが、私は「python」か「ExcelVBA」をおすすめしてます。(「できればデータベースの使い方を一緒に勉強すると良い」と付け加えています。)
将来性で言えば(今のところ)「python」をおススメしますが、プログラミングを学ぶ目的が「会社の業務を効率化・自動化したい人」には断然VBAをおススメしています。
ExcelVBAをおススメできる理由としては次の点です。
ExcelVBAがおすすめ理由
- Excelを使う企業が多い
- 情報量が多い
- 環境構築が必要ない(ExcelがあればOK)
- 学習コストが低い
Excelを使う企業が多い
一番大きなおススメポイントです。
事務職の求人情報に「Excel関数を使えるとなお良い」「ExcelVBAを使えるとなお良い」という記載はよく見かけますし、実際に経理業務でExcelで集計作業や会議資料の作成をする機会は少なくありません。
使う機会が多いということは一度覚えてしまえば業務改善効果が高いということです。
会社でExcelを使っていなければ業務改善効果は低くなり学ぶメリットは小さくなります。
しかし、Excel自体が汎用性の高いファイル形式(他のアプリケーションで読込可能なケースも多いなどのメリットがあります)なので、いったんExcelVBAでExcelファイルを作成して他のシステムに取込むといった利用方法も考えられるので、業務環境でExcelを使う機会が多けれ学習するメリットは大きい場合もあります。
情報量が多い
情報量はプログラミングを学ぶ時に重視しないと後悔する点です。
本業のプログラマーは会社の先輩に分からない事を教えてもらうことができますが、独学プログラマーは情報をインターネットで調べます。
その時に情報量が少ないと困ります。
ExcelVBAは情報量も多いし、あなたが「効率化したいなーこんなことできないかなー」と思ったことを他の誰かがコード化していればコードをコピペするだけで実現することもできます。(コード化してくれた人への感謝は忘れずにコピペしましょう。)
環境構築が必要ない(ExcelがあればOK)
ExcelVBAはExcelさえあればOKです。
プログラミングをする時に初心者が挫折しがちな項目に、プログラミング環境の構築があります。
ExcelVBAはExcelに開発環境があるのでここで挫折することはないと思います。
せっかくプログラミングをはじめようと思ったのに、実際にコードを書かないで挫折するのは本当にもったいないと思います。
まずはExcelVBAで自分の作ったプログラムが動くことの感動を体験してほしいです。
学習コストが低い
環境構築が必要無いこと、そもそもExcel専用の言語であることで学習ハードルはどの言語より低いです。(私はそう思っています。)
早い人なら勉強を始めて一時間後には自分のプログラムを動かすこともできます。
また、自分の作業内容をプログラミングするので作業の内容がイメージしやすいのも学習コストが低い要因だと思います。
例えば、「A1セルの値とB1セルの値を足してC1セルに入力する」というように、Excel上のデータを操作する(ことが多い)ので具体的な内容をプログラミングするからです。
他の言語に比べてスタート時にある程度具体的な内容を考えてからプログラミングできるのはExcelVBAの大きな特徴だと思います。
私もプログラミングの入り口はExcelVBAでした。
ExcelVBAで何ができるか?
ExcelVBAはExcelでの作業を(やろうと思えば)ほとんど自動化できます。
「この作業面倒だなー」と思ったらVBAで作業の自動化ができないか調べてみるといいかもしれません。
私も上場企業で働いていますが、Excel資料を作成する機会が多いので面倒な作業はどんどんVBAで自動化しています。
ExcelVBAのメリットはおすすめする理由と同じ
ExcelVBAがプログラミング初心者におすすめな理由で書いた内容と同じです。
ExcelVBAのメリット
- Excelを使う企業が多い
- 情報量が多い
- 環境構築が必要ない(ExcelがあればOK)
- 学習コストが低い
ExcelVBAのデメリット
ExcelVBAをおススメしてきましたがもちろんデメリットもあります。
ExcelVBAのデメリット
- 野良VBAが氾濫しがち
- アップデートされていない
- 大量のデータを扱えない、処理が遅い
野良VBAが氾濫しがち
これは企業の情報システム部のデメリットで、ExcelVBAはプログラミング言語としては保守しにくい傾向にあります。
言語仕様の問題もありますが、これはExcelVBAが手軽すぎるため「プログラミングの知識がほとんどない人」でもコードを書けてしまうからです。
本業のプログラマーの場合、プログラミングのルールをあらかじめ決めていて、コードを書き終わった後も複数人でコードをレビュー&修正したりします。
ExcelVBAは手軽にプログラミングできるので、「ルールを無視した見にくいコードを量産できでしまう」のです。
アップデートされていない
ExcelVBAは長い間アップデートされていないので言語仕様が古いままなので、コードを書く時に冗長な記法になっている部分もあります。
近々Excelにpythonが実装されるかもというような話もあるようですが、MicrosoftもVBAをこれ以上アップデートする意思は無さそうというのが現状です。
大量のデータを扱えない、処理が遅い
大量のデータの定義ですが個人的にはExcelで扱うデータ量の上限は10万行くらいだと思っています。
列数や処理の内容にもよりますが、10万行を超えるようなデータを扱う場合には他のプログラミング言語を選択しましょう。
初心者はExcelVBAで勉強してから他の言語へ
プログラミング初心者はまずExcelVBAを勉強してプログラミングを体験してから必要があれば他の言語を勉強するのがおススメです。
私も「ExcelVBA」→「Java」→「python」の順番で学習していますが初めにExcelVBAを勉強して本当に良かったと思っています。
他の言語を学習した今でも、会社でExcelの資料を作成する時にExcel関数やVBAを多用しています。
本業プログラマーでなければExcelVBAを学習するだけで多くの業務を改善することができます。
まずはExcelVBAを学習して業務改善してみることをおススメします。
私はメインでExcelVBA、Java、pythonを使っていますが、利用の割合は6:2:2位です。
まずはExcelVBAを勉強して自分の時間を増やすことから始めてみませんか?