ガシガレ

社内SEのヒトリゴトです。

パーフェクト Excel VBAを読んだ話

いつものようにTwitterを眺めていると、以下のようなつぶやきがシェアされてきました。

 

「え!?タダで本くれるの!?」

引用RTで反応してみたところ、著者のタカハシノリアキさんが自らリプをくださいました。献本という言葉への憧れと、久々にVBAに触れてみるかという思いから手を挙げさせていただくことにしました。

 その後DMでやり取りさせていただきました。なんていい人なんだろうと思う反面、「初対面でこんな得体の知れないアカウントにタダで本を与えてしまってもよいのだろうか…」という疑問が湧いてきました。本当によいのでしょうか…。書評書かないでトンズラするかも知れないのに…。

・・・・・・

そして後日、本当に届いてしまいました。

VBA本を読むのは随分と久しぶりのことです。早速読み進めていきたいと思います。

 

読んだ人 

念の為、どんな人が読んだのかをご説明させていただきたいと思います。

私は30代後半の社内SEです。社会人になってから独学でExcelVBAを学び、製造業や商社などで業務改善に役立ててきました。最近はVBA開発からは離れていますが、かれこれ15年程度の付き合いになります。
いきなり話がそれますが、ここまで書いて「私ももう30後半か…」と軽くショックを受けています。

一昔前は「VBAについては極めたな…(ΦωΦ)フフフ…」と思っていましたが、Twitterなどで凄腕のVBAerさんを多数目撃し、それ以降は沈黙を守っています。

 

初心者向けの本ではない

570P超、中々のボリューム感です。読み進めるうちに、今ままで私が読んできた類のVBA本とは異なることに気づきました。最初に「あ、これはガチだ」と思ったのは以下の部分です。

Range("A1") = "Hoge"

(中略) このコードを「正しく理解する」のはなかなか難しいことにお気づきでしょうか。

 (高橋宣成 著 パーフェクト Excel VBA 第1章より引用)

 この部分、VBAに触れたことのない方には何のことだかわからないと思います。そして、慣れた方でも正確に答えられる方は少ないのではないでしょうか。(私を始めとして)

私が今まで手にした初心者向けの本は難易度順に掲載されるものがほとんどでした。しかしこの本はそうではない。以前の私が苦労した「配列」が序盤でサラリと説明されていたのが印象的でした。そして読み進めるうちに、その記載位置が正しいとわかります。

Excel VBAの体系を学べる技術書

この本はプログラミング言語であるExcel VBAの体系を学ぶことを意識して構成されています。そう、一言で表現するならば、この本は「Excel VBAの体系を学べる技術書」と言えるでしょう。

こちらから目次をご覧になれますので、ぜひ簡単に目を通してみてください。

gihyo.jp

 

では、なぜ体系を学ぶことが重要なのでしょうか。

本書にとても素晴らしい言葉がありましたので、こちらも引用させていただきたいと思います。

学習とは、記憶の「足し算」のように捉えられますが、その記憶する量が増えてくると、いずれかのタイミングで共通化、整理整頓する「引き算」が必要になります。つまり、そのことが体系を知るということなのです。 
(高橋宣成 著 パーフェクト Excel VBA 第1章より引用)

 私たちも体験として知っているはずです。いざ知識をアウトプットするという段階になったとき、私達は知っていることから必要な部分を引き算して使っていますよね。体系をしっかりと理解しておくことによって、正しく・効率よくアウトプットできる。そのために体系を学ぶわけですね。

完読した結果、やはり知らないことがたくさんありました。私は業務で必要な範囲でしか使ってこなかったので、クラスモジュールはまともに使ったこともありませんでしたし、プロパティプロシージャなど全く知らないこともありました。「これってそういう意味だったんだ」というものも…。

VBAを10年以上やっていても、独学ではこんな程度の人間もいます。新たに知識が増強されることに加え、体系を学ぶ過程で、パズルのピースがピタリ、またピタリとハマっていくような感覚がありました。私の中にあった断片的な知識があるべき形に再構築されていくような感覚です。もっと早くこの本に出会っていれば、もっと効率的かつ効果的にExcel VBA開発ができていたと悔やまれます。

また、本書の後半に記載されているサンプルのアプリケーション開発として「名簿管理ツールの作成」があります。本書の総復習になる上に、Excelとも相性バッチリのお題。これが作成できれば、色々なVBA開発に応用ができるようになるでしょう。

 

Excel VBAを学ぶなら「買い」

初めてVBAに触れようとする人は、「VBAをやりたい!」とは思っておらず、むしろ「業務上の課題や問題があって、その解決のためにVBAを学ぶ」人の方が多いのではないでしょうか。例えば以前の私がそうだったように「職場の業務を改善したい」とか、「煩雑なExcel業務をシンプルにしたい」とか。

そういう方にとって、体系を1から学ぶということはなかなかハードルが高い。プログラミング初心者であればなおさらです。業務を改善したいのであって、Excel VBAを学びたいわけではないわけです。Excel VBAは手段(How)です。そういう方の場合はまずマクロが動くところを目指してもよいと思います。やりたい・実現したい部分にフォーカスしてVBAに触れていくやり方の方がモチベーションを保ちながら学習できると思います。

そして、やがて「もっとVBAに詳しくなりたい」というタイミングがやってくるでしょう。そのとき、Excelを学ぶということが目的(Why)になったときこそ、購入しておいたこのパーフェクトExcel VBAが眩い輝きを放ちながらあなたのチカラとなってくれるでしょう。これからガチで学ぼうと思っている方は、初心者向けのVBA本と一緒に本書を購入しておくのもよいと思います。

本書内でも触れられていますが、VBAは2013年にVBA7.1になって以降、大きなバージョンアップがありません。(64bitに対応するため、みたいに言われていますね)
Excelはビジネスツールとして絶大なシェアを誇っていますので、過去資産に影響が出るような大きなアップデートは今後も起こりにくいでしょう。つまり、本書「パーフェクト Excel VBA」は腐りにくい。技術書としての価値が下がりにくい。ということが言えるのではないでしょうか。

 

まとめ

簡単にまとめさせていただくと、本書はExcelVBAを体系的に学べる、まさにパーフェクトな一冊です。特に以下の方にはおすすめです。

  • Excel VBAをもっと学びたい方
  • Excel VBA初心者から脱却したい方
  • 元々ITエンジニアだけど急遽VBAが必要になった方

献本いただいたこともあり少々宣伝臭くなってしまった部分もあったかもしれませんが、素直に感じたことを記述させていただいたつもりです。

以下でご紹介するAmazonのレビューも当然の高評価です。あとはサンプルや書店などで実際に手にとってみていただきたいと思います。もちろんノータイムでポチっても大丈夫です。なお、ページを跨ぐ図などはありませんが、物理本の方がおすすめです。

↓アフィ無しなので遠慮なく踏みまくってください。
https://www.amazon.co.jp/dp/4297108755

 私にとっては、VBAだけでなく「体系を学ぶことはとても大事なこと」ということを改めて気づかせてくれた大事な一冊になりました。これからも大切に使わせていただきます。

f:id:lksdsw:20200102110217p:plain

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

 

おしまい