今日ははじめてVBAの本を購入したのでそれについて書いていこうと思います。
経緯
僕は今までネットベース、独学ベースでVBAを学習してきました。
基本的な使い方・コードの書き方はネットの「一から始める、カンタンVBAの使い方」的なサイトで学びました。
コードは6割は記録したものを、4割はネットで調べて自分で入力するという方法で書いています。
「実務に役立てられているか?」という問いにはイエスと答えられます。
しかし、
「仕組みを理解しているか?」という問いにはイエスとは答えられません。
今はネットで入手した断片的な情報からなんとなく使えるマクロを作っていますが、これから更にレベルアップを目指すなら本で体系的に学習しようと思いました。
はじめて「VBAの専門書」として選んだのが本書・ExcelVBAの神様 ボクの人生を変えてくれた人です。
この書評はあくまで僕と同じように「なんとなくマクロ使うことはできるけど、なぜ使えるかを説明できない」というレベルの人向けの書評です。
また、後述しますが読了後「このようなレベルの人が読むべき本」であると感じました。
概要、というかそもそも小説仕立てです。
小説の構成
うだつのあがらないサラリーマン江藤真二がExcelVBAを武器に社内で頭角を現していくサクセスストーリー。
背景として契約をバンバンとってくる同期・唐沢、その反面全く契約をとれない真二。
密かに思いを寄せる水岡の心も唐沢へ傾いていく。
追い打ちをかけるのが上司・黒原の罵声・パワハラ。
そんな環境の中、公園で現実に打ちひしがれていると後の師匠となるホームレスに出会った。
という小説がベースとなっていて、それに付随してVBAの解説をしています。
小説自体も結構クセがあって、好みが別れる内容と感じました。
例えばこんな感じです。
「まさしくそのとおりだが、お前の気持ちもわからないでもない。今のお前は、虫歯が二本あるのに一本しか治療してもらえなかったような気持ちの悪さだろう?」
「なんですか、そのたとえは。なまじ上手いだけに腹が立ちますね。まさしくそのとおりです。」
あくまでも僕の感想ですが、この文章の前に出てくることの「たとえ」として虫歯の治療を引用しています。このたとえについては一切共感できませんでした。
繰返しですが好みは個人差があると思います。
特徴
本書の進め方の最大の特徴は、「必要なときに必要なことだけ解説される。」という点にあります。それについてはこのようにコメントが記載されていました。
スマホの機能の1割しか知らなくても十分な操作ができることと同じでVBAの機能も1割知っていれば十分でそれ以上は必要なく、必要なものは必要な時に覚えるので十分
個人的にこの進め方は素晴らしいと思いました。
一般的なExcel本は「どんな機能があるか?」を羅列して紹介していきます。
これは一見、機能を網羅していて抜けがないように感じますが、「この機能は果たしていつ使うのだろうか?」という気持ちになり、不信感により読んでいるときの集中力に欠けてしまいます。
例えるなら国語辞典の初めから終わりまでを延々と解説していくイメージです。
本書では「場面毎の課題が設定され、どう解決していくか」に焦点があてられているため集中して読み込んでいけます。
なおかつ場面毎の課題もすべて基礎として網羅すべきものであるため、書籍に陥りがちな「情報量がむやみやたらに多くて、戦意喪失する」ということを避けられる構造になっていると個人的に感じました。
この進め方は個人差があるので、少し読んでみて合わないと思うなら絶対に買わない方がいいと思います。
購入に至ったきっかけ
- Alt + F11:VBE(編集画面)の呼び出しのショートカットキー
- コード内でF5:そのコードを実行するショートカットキー
という知識が割と序盤に出てきたためです。
「コード内でF5」のショートカットキーは最近知りましたが、これを知っているのと知らないのでは作業効率に雲泥の差が生じるレベルです。本当に早く知っておきたかった…。
序盤にサラッとこの情報が出てきたため、「このレベルの知識が以後にも出てくるのでは?」と期待が高まり購入に至りました。
為になったこと5つ
①マクロとVBAの定義
- マクロはプログラムであり、その言語をVBAという
マクロとVBAは同じものを言い方を変えてるだけと認識していたので正しい知識として上書きしておきます。
②オブジェクト+メソッド=ステートメント
- Shinji.Face.Eye.Close (←ステートメント)
恥ずかしながら今までオブジェクトとかメソッドとか意識してきませんでした。
こういうルールで構成されていることが分かれば、「何故かマクロが正常に機能していない場合」に原因となる部分がどこかを解明できるような気がします。
③引数(ひきすう)はメソッドに具体性を与える。
- Shirayuri.Face.Mouth.Eat Food:=Soba
「食べる」というメソッド、「そばという食べ物を」という引数
プロパティはオブジェクトの特徴やデータのこと。下のステートメントでは「目の色」というデータを表している。
- Shinji.Face.Eye.Color
④Ctrl + スペースキー で入力候補が表示される
イメージとしては予測変換のようなもの。これを用いることで単語の誤入力とスピードが改善される。
引用元:自動メンバー表示のショートカットキー-Ctrl+スペース・Jキー:VBE(Visual Basic Editor)
⑤VBAの基本構文は3つしかない
- 1)メソッドの使い方
Range("A1").select
オブジェクト.メソッド という風にメソッドを使う。
- 2)プロパティの取得
x=Range("A1").value
変数=オブジェクト.プロパティ という風にプロパティの値を取得できる。
- 3)プロパティの設定になる
Range("A1").value=15
オブジェクト.プロパティ=設定値 という風にプロパティ自体を設定できる。
おわりに
VBAの基礎的な内容が小説を交えることで分かりやすく、読みやすく書かれていました。
僕と同じように「初心者」の方、「我流で仕組みを理解しきれていない」方にはかなりオススメできる内容となっています。
「説明は必要最小限に留める」、「小説自体にクセがある」という点を受け入れることができれば入門書としてかなりオススメできる内容となっています。