久しぶりにVBA参考書籍のレビューです。
今回は沢内晴彦氏が執筆された「入門レベルでは決して足りない実務に必須のスキルとは ExcelVBA 実戦のための技術」(ソシム株式会社)です。
VBAを初めて学ぶ方向けではない
まず最初に、本書はタイトルの通り“入門レベルでは足りない実戦のための技術”が書かれたものであり、初学者向けの内容構成とはなっていません。
VBAを初めて学ぶ方は、「いちばんやさしいExcel VBAの教本」や「ストーリーで学ぶ Excel VBAと業務改善のポイントがわかる本」といった、入門者向けの書籍を手に取ることをお薦めします。
内容構成
本書の目次は下記の通りです。
Chapter1 実務の場面でこそ絶対に必要な「VBAの基本」とは
Chapter2 「構文」についての理解を実務レベルにまで引き上げる
Chapter3 「ワークシートとセル」を、とことん効率的に扱うために
Chapter4 複数処理を前提とした「ブック」の操作を極める
Chapter5 「VBA関数」には工夫の余地が多々あるが、使うことにこだわってはダメ
Chapter6 「図形とグラフ」の操作は可読性とメンテナンス性が鍵
Chapter7 「印刷・ページ設定」にこそVBAが必要、という視点を持つ
Chapter8 「ExcelとAccessの連携」:様々なデータを柔軟かつ効率的に取得する
Chapter9 可読性と開発効率を跳ね上げる「クラスモジュール」の活用
Chapter10 ユーザー視点のプログラムに仕上がるかどうかは「イベント処理」の使い方次第
Chapter11 「ユーザーインタフェース」で実務レベルの使いやすさを実現させるための作法
Chapter12 エラー処理も含めた「高度なプログラミング」のためのテクニック
http://www.socym.co.jp/book/1160 より
上記の通り、日本語で書かれたVBAの参考書籍の中では珍しく、「クラスモジュール」にまで触れられています。
しかも、数ページだけサラッと書いてあるレベルではなく、1チャプターを割き、基礎的な知識から具体的な活用方法まで解説されています。
これまで、クラスモジュールを扱った目立つ参考書籍と言えば、井川はるき氏の「そこが知りたい!Excel VBAプロの技」くらいしかなかったのですが、こちらはすでに絶版となっており今から入手するのは困難です。
そんな中、新たに出版された本書は、クラスモジュールを扱っているだけでも非常に貴重な存在であると言えます。
その名に恥じない実戦的な内容
実戦的な内容と言えば、以前当ブログでも高橋宣成氏が執筆された「ExcelVBAを実務で使い倒す技術」を紹介しましたが(下記記事参照)、本書はさらに踏み込んだ内容となっています。
例えば、ExcelとAccessの連携に関しては(Chapter8)、DAOとADOの違いと使い分け(ADOXについては紹介程度)、さらにはSQLやトランザクションといった、データベースの取り扱いに必要な知識にまで言及しています。
また、単に“動けばいいプログラム”の開発ではなく、“ユーザーにとって使いやすいプログラム”を開発するために、ユーザーインターフェース(UI)を工夫する必要がある点、使いやすいUIを作るために必要なテクニックまで解説されているのは、非常に丁寧だと感じました。
どのような「仕組み」を入れるかは、とにかくユーザーの視点で考えることが大切です。実務で使うプログラムということは、PCスキルの低い人でも使う可能性があるということなのですから、その層の視点に立って考えるべきでしょう。
ところが、そもそも「ExcelVBAでプログラムを作ろう」という人は、PCのスキルも比較的高い人のため、PCスキルの低い人の視点にはなかなか立てません(立っているつもりでも)。この乖離が、「なぜ、こんな使い勝手の悪いものが?」という現象を生み出す要因となっています。
だから例えば、プログラムの開発途中で、ユーザーインターフェースの部分だけでも実際にユーザーに確認してもらい意見を聞く、あるいは、実際に操作して持っている様子を横から見る。そんなシンプルな工夫が、実務の現場では不可欠だと思ってください。
Chapter11 p.365 より
一度読んだだけでは身に付かないボリューム
本書は全12章構成、400ページを越えるボリュームで、実務レベルのプログラムを開発するのに役立つテクニックと知識が凝縮されています。
帳票の取り扱いやデータベース連携、クラスモジュールの活用にイベント処理、UI設計に
エラー処理等、内容は多岐にわたり、とてもじゃないですが一度読んだだけではすべてを把握して理解することはできません。
何度も読んで実際のマクロに組み込む、これを繰り返すことでようやく本書の内容を身に付けることができるでしょう。
最初に書きましたが、本書は初学者向けの内容ではありません。
出版社のページにすら「本書は、初心者向けの入門書ではありません」との記述があります。
書かれている内容は、一般的なVBAの参考書籍に比べると高度で理解しづらい部分が多々あるでしょう。ですが、それだけに本書の内容を身に付ければ大きな武器となるはずです。
VBAに限らず、他の言語での開発にも役立つ知識が詰まった本書は、会社でマクロ開発する人には特にお薦めの良書だと思います。
正直、こんな一ブログ記事では書ききれないほど密度の高い内容となっていますので、まずは書店で内容を見てみてください。
印象的だった一文
私が本書を読んで特に印象的だった一文を以下に紹介します。
(一部てにをはにタイプミスがあるようですが、原文のまま引用させていただきます。)
実務で使うプログラムであれば、何年かすれば異動などで元々作った人がその部署にはいないなんてこともあるでしょう。仕様が変わることも十分に考えられます。
だから規模の大きなものであれば、仕様変更がある場合はきちんとスケジュールを立てて行うべきです。しかしVBAを使ったプログラムの場合は、規模の小さいものも多くあるでしょうし、日々使うものであれば迅速に仕様変更へ対応しなくてはならないことのほうが多くあるはずです。こういったことが考えると、やはり業務用のVBAプログラムでは可読性・メンテナンス性が重要なのです。
Chapter6 p.196 より
このように、業務用のプログラムを作る場合には、印刷やページ設定のように簡単な操作であっても工夫の余地がたくさんあるのです。
ポイントは、次の点を強く意識すること。プログラムを使うのは、必ずしもパソコンやExcelに詳しい人ではない
だからこそ、簡単と思える処理であっても、より使いやすくするための工夫が大切ですし、VBAのスキルが重要になるのです。
このことをしっかりと理解して、様々な工夫をするようにしてください。そうすることが、作成したプログラムの品質を上げることにつながります。
Chapter7 p.216 より
覚えるべきはSQL
Chapter8 p.259 より
この記事へのコメントはありません。