初心者のためのExcelマクロ超入門(絶対できるVBA開発)

マクロがまったくわからない人のためにエクセルマクロやVBAについてできるだけわかりやすく書いています。Twitter:@shuhhohhey

初心者のためのExcel(エクセル)マクロVBA超入門-プログラミングの基礎1

プログラミングの基礎

長々と前回前々回で前段をやりました。Excelマクロをマスターしたいなら、
プログラミングの基礎を学べ!ということですね。さて、まずプログラミングとはなんでしょうか?
なーんか理系っぽいですし、もはや言葉のみで拒否反応が出る人もいるかと・・・汗
しかし、近年文系出身のSEさんがたくさんいるようにプログラミングは
別に理系のものではありません。とりあえず、先入観取っ払ってください。

プログラミングとは?

プログラミングとは・・・

「コンピュータに仕事をさせるための指示(命令)を書くこと」

です。はぁ?ですね。わからなくても、大丈夫。説明します。
 コンピュータはそれ単体ではまったく動くことはありません。
コンピュータが動くには「ソフト」が必要です。PS3でいうと、PS3がコンピュータそのもので、
ゲームが「ソフト」になります。「ソフト」にあたるものが「プログラム」です。
そしてこの「プログラムを作る作業」が「プログラミング」です。
要するにコンピュータというものはソフト(プログラム)がなければ何もしないし、
何もできません。電源をつけても真っ黒なままです。

え?ウィンドウズが起動するじゃないかって?

WindowsもMacもプログラムで動いている。

そうですね、起動します。起動するように「プログラミング」されているからです。
Windowsもソフトです。ですからプログラムでできています。
つまりPCの電源を入れると・・・

  • Windowsを起動しなさい
  • 起動が終わったら、WindowsのHome画面を表示しなさい。
  • そしたら、ネットとかつなぎなさい。
  • 日本語入力できるようなIME辞書を起動しなさい
  • 何かされるまで待ちなさい。

 ※わかりやすく超おおざっぱに書いています。

というように「命令」されているからPCは動きます。
PCで動くものはほぼすべて「プログラム」が動いていて、
誰かがそれを「プログラミング」しているということです。
ありがたいですねw

プログラミングとはコンピュータへの指示書を書くこと

 さて、プログラミングとはコンピュータを動かすための命令を書くことですが、
これをExcelに当てはめますと、コンピュータをExcelに置き換えて・・・

「Excelを動かすために命令を書くこと」

ということですね。これがプログラミングとはなんぞや!の答えです。

Excelマクロを理解するにはプログラミングを理解する

プログラミングとはExcelを動かすための指示書を書くこと。

コンピュータはどうやって命令を理解している?

 まぁここまでわかれば今回はこれでいいのですが、、ではコンピュータはどうやって
命令を理解するのでしょうか?きっと、未来なら人間の言葉をそのまま理解してくれる
ようになるかもしれませんが、(アイアンマンのジャービスみたいに・・・・)
残念ながら今は無理です。人と人が日本語や英語を使ってコミュニケーションをとるように
コンピュータと人間も「プログラミング言語」を使ってコミュニケーションをとります。
ですから、コンピュータに

  • エクセルのファイル開いてー
  • このシートにこんな表書いてよ!
  • このグラフを折れ線でお願い。

とか言っても無理です(笑)PCは・・・・ハテ?という感じです。
でも実はおふざけでもなんでもなく、この命令を文章で書くという過程はとっても重要です。
なぜならこれをプログラミング言語に「翻訳」すればPCさん(Excelさん)は理解してくれて
動いてくれるわけですから。それに文句も言わないし、超忠実に、そう愚直なまでに忠実に、
そして超---------高速に。です。

しかし、コンピュータは人間ではないので「あいまいさ」を理解してくれません。
ですから、コンピュータに命令する時にはとってもとっても丁寧にかつ正確に命令して
あげないといけません。しかし、外国人と違って、間違ってたらちゃんと何を言ってる
かわからないよ?とか、これってこういうことじゃないの?とか教えてくれます。
ちゃんと最後まで伝わるまで(つまり伝えきるまで)なんの文句も言わず、ずーっと
あなたに付き合ってくれます。

イイヤツですね。^-^

自動販売機はどうやって動いてる?

 身近な例で、自動販売機をあげてみます。

 自動販売機も「プログラム」で動いています。どんな命令が入っているのでしょう?
ちょっと見てみましょう?(簡単かつ大雑把に書きます)

  1. お金が入ってきたか?
  2. 入ってない→1へ戻る、入ってきた3へ
  3. 入ってきたお金の種類は?
  4. 1円→そのまま吐き出す、5円→そのまま吐き出す、10円→お金表示を10にする。
    50円→お金表示を50にする、100円→お金表示を100円にする、
    500円→お金表示を500円にする、1000円→お金表示を1000円にする
  5. 金額の合計が120円以上か?
  6. 120円以上→120円以下の商品ボタンを点灯、120円未満→点灯しない。
  7. 追加のお金が入ってきたか?
  8. 入ってきてない→7へ、入ってきた9へ
  9. 入ってきたお金の種類は?
  10. お金の種類によって前の金額と合計してお金表示する
  11. ボタンが押されたか?
  12. 押されてない→7へ、押された13へ
  13. 押された商品ボタンは?
  14. ボタンによって商品を出す。
  15. お金表示から120円を引く
  16. お釣りがある?
  17. お釣りある→お釣りを出す、お釣りがない→1へ

他にも、お釣りを出す硬貨の内訳とか、売り切れの時とか、釣銭切れの時とか、
いろいろとやっていますが、単純に「ボタンが押された商品を出す。」
という動作をするだけなのに、自動販売機に仕事をさせるには
結構な量の命令が必要だということです。

これが「プログラム」です。

さて、どうでしょう?「面倒くさい」と思いましたよね。
そうですプログラムは面倒くさいんです。作るのは結構大変です。
しかし、自動販売機は1度作ると後はずっと24時間365日停電でもない限り、
ずっと無人で動き続けます。だから、私たちは便利にいつでもジュースが買えます。

Excelマクロを作るのは結構大変!?

Excelでも同じです。マクロを作るのは正直大変です。ちゃちゃっとはできません。
慣れればできるかもですが・・・
ですが、1度作ると何度やっても同じ処理を超短時間でやってくれます。
したがって、マクロを作るには、

  • この作業は毎回行うのか?
  • 自動化するのにどれくらいかかるのか?
  • 作業の頻度はどれくらいか?

といろんなことを考えて、作った方が断然便利!と思ったら作ればいいんです。
それ以外は作らなくていい。というか作ったらダメ。

だって、3時間かかる作業があって、でもそれは1回しかない。今後はもうしない。
この作業のマクロを開発するのに4時間かかってたら、本末転倒です。
それなら頑張って3時間かけてやった方が良い。ただ、ミスが怖いから正確にしたい。
ミスを直す時間も兼ねると5時間かかる作業ならマクロの価値が出ます。

Excelマクロを作る前には必ずこの検討をしてからにしましょう。

まとめ

  • プログラミング:コンピュータに仕事をさせるための指示(命令)を書くこと
  • プログラミング言語:コンピュータが理解できる言葉
  • Excelマクロを作る前には検討が必要

次回はプログラミングの基礎2です。
本格的にプログラミング(VBA)を学びましょう。

あー・・・ジャービスいたらなぁ・・・

かしこ