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

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

エクセルVBAとか全然わからなかった私がマクロをマスターするためにした2つのこと

f:id:drumer2sh:20140530101020j:plain

私はマクロとかも知らない初心者でした。


100回目ということで、ちょっと視点を変えて私がどうやってVBAをマスターしていったのか?ということを経験を踏まえて書いてみたいと思います。私の場合は、良く言う理系男子の典型で情報系大学でプログラミングを少しかじっていたというのもありますが、普通の大学生の属性よろしく、遊んでいたので全然身についてはいませんでした。ちょっとは知ってるけどねレベルです。ですのでマクロなんて全然わからなかったし、VBA?ハテ?C言語でちょっとだけ先輩のプログラムをコピーしてしのいでた自分には全然未知の世界でございました。そんな私が、どうやって今のみたいに自由にマクロを組めるようになったのか?やっぱりこの2点です。

・プログラミングの基礎
オブジェクト指向の理解

の2点に尽きると思います。以上の2つをどうマスターしたのか?ということで、書いてみたいと思います。

  • プログラミングの基礎をマスターする
    • プログラミングの基礎の本を読む
    • 特定の言語を学ぶ
    • 自分で何かを作ってみる(手を動かす)
  • VBAを使ってマクロを作る

プログラミングの基礎の本を読む


[改訂新版] これからはじめるプログラミング基礎の基礎

[改訂新版] これからはじめるプログラミング基礎の基礎


おうちで学べるプログラミングのきほん

おうちで学べるプログラミングのきほん


プログラムはなぜ動くのか 第2版 知っておきたいプログラムの基礎知識

プログラムはなぜ動くのか 第2版 知っておきたいプログラムの基礎知識



いきなり本出しましたけど、要するにプログラミングの基礎をすごくわかりやすく解説してあれば言語はなんでも良いと思います。私が学んだプログラミングの基礎の本はなんと「Basic」です。ぶっちゃけもう今は誰も使ってないし、COBOLより古い言語だと思います。そんな本を図書館で発見して読みました。すごく原始的な言語なので、「基礎」を学ぶにはとても適していたように思います。

お勧めの本自体は3つ目はかなり難しめです。(アセンブラなので)突き詰めれば、コンピュータって0と1しか理解しません。その世界でのみ生きているパソコンに人があーだこーだ言うのはとても大変。ですのでプログラミングがあって、その言葉をさらにパソコンが分かる言葉に落とし込む翻訳機があって、それを通してパソコンは人の言葉=プログラミングを理解します。そういうお話ががっつり書いてあるのが3冊目ですね。

とりあえず1冊目を読んでみると良いと思います。

特定の言語を学ぶ

スッキリわかるJava入門

スッキリわかるJava入門





別にVBAやマクロに限らなくても良いのです。プログラミングの本質はどの言語でも変わりません。基本的な書き方があって、変数があって、制御構文があって・・・ですのでどれでも構わないのです。大切なのはプログラムってこうやってできている。ということを知ることの方が大切なのです。1冊目はRPG!を・・・作りません・・・ネタにはなってますがRPGを題材にJavaをわかりやすく解説しています。2冊目以降は普通の入門書といった感じ。


実は本なんてなんでも良いと思っています。大切なことは。


・プログラミングの基本的な考え方
・変数、配列変数
・制御構文

などのこれらの理解ができるのであれば、言語なんてなんでも良いのです。もちろんVBAの書籍でもそれは実現できます。

自分で何かを作ってみる(手を動かす)


そしたら、後は実践です。とりあえずVBAでもJavaでもCでもPHPでもなんでもいいです。何かを作ってみましょう。そうする中で様々な問題にぶち当たります。それを乗り越えることで、よりプログラミングについて深く理解ができると思います。私が初めて作ったプログラミングはバトルゲームでした。ただ、攻撃と防御と呪文があるくらいで、コンピュータの敵とただ戦うだけです。ドラクエの戦闘シーンのみをパクッたようなゲームでした。ですが、自分で作ったゲームはとてもうれしかったのを覚えています。その後は、競馬シミュレーションゲームも作りました。グラフィックなんて使える技術はなかったですから、工夫してすべて文字で表現して、作ったのを覚えています。

何か作ると必ず色々と工夫が必要になります。そうすることが、アルゴリズムを考える良い訓練になるのです。

オブジェクト指向について勉強する


いちばんやさしい オブジェクト指向の本 (技評SE新書 007)

いちばんやさしい オブジェクト指向の本 (技評SE新書 007)


私がオブジェクト指向に出会ったのは初めて入った会社でJavaの研修をやった時です。はじめはなかなか理解ができませんでしたし、何度も説明をしてもらったり、実際に作ったりして初めてクラスの意味やその便利さなどを理解できたと思います。色々とロボットに例えたり、しながらこのブログでも説明していますが、オブジェクト指向考え方を理解することがとても大切です。ぶっちゃけ話を始めると実践とは離れてしまうように感じるし概念のお話なので非常に難しく思ってしまいますが、理解できれば実践でフル活用できる考え方なのです。


例えば共通の処理は親クラスに書いてしまう。そうすると他のクラスはそのサブクラスにすることで、そのまま使えるし独自にカスタマイズもできるようになる。こういう考え方ができるようになるためにもオブジェクト指向は大切です。

VBAを使ってマクロを作る


このブログでも、成績表マクロや発注書マクロなど色々なマクロを作ってきました。これらのマクロもちゃんと作るともっと大変なのですが、最初はどんなものでも構いません。ですが、必ずやってほしいことがあります。

完成させること。そして使ってもらうこと。


これです。大変かもしれませんが1本は必ず完成させてください。そしてそのマクロを「人に使ってもらう」ということが大切です。そして、その人が嬉しかったり、喜んだりするところを見てほしいです。そうするときっとまた、もっと便利になるようなマクロは作れないかな?とか、これをマクロにしてみたいな。という考え方が生まれてくるはずです。そうすれば、あなたもすぐにマクロマスターへとなれると思いますよ。


それが、エクセルマクロを学ぶ意味なのですから。


今日はここまで!



かしこ