つい先日「実務で使えるExcel VBAプログラミング作法」という本を読んだばかりですが、また新たな「Excel VBAプログラミング作法」に関する本を見つけました。
それが今日ご紹介する、永井 雅明著「完全版 ExcelVBAのスキルを実務で活かし切るための本」です。
2021年6月に出版された本で、今まで知りませんでした。我ながらアンテナが低いです。
本書の対象読者は、プログラミングを専門としない実務担当者で、Excel VBAによるマクロを作成したことはあるものの、個人レベルでの使用にとどまっている人が、自分以外の人にもメンテナンスが可能なコードを書いて、共有していきたいと考えている人。
エラーの発生が少なく、拡張性のあるコードを書くにはどうすればよいかについて学ぶことができます。
主な内容としては
- わかりやすいコードの書き方
- チームで共有するための注意事項
- 効率的なデバッグ方法/エラー処理
- 業務で使用するツール作成手順(要件定義からメンテナンスまで)
- 第三者が書いたコードのメンテナンス
また、巨大データを扱うために、SQLをExcel で使う方法についても説明されています。ただ、これについてはSQLをある程度知っているという人向けのようで、SQLとはなんぞや?というレベルの人が実務で使用するには、本書以外での学習がさらに必要になると思われます。
本書の特徴として、わかりやすいコードを書くためのノウハウの他に、チームを組んで開発、運用するために必要なことについて、多くのページを割いていることです。
マクロの説明書から変更履歴の残し方、業務のための自動化ツールの要件定義、設計、コーディング、テスト、運用開始後のメンテナンスまで、どのような作業が発生するのか。今後実際に作業に取りかかる際の作業工数算出に役立つのではと思います。
ちょっと驚いたのが、変数の命名について。著者は「変数は日本語で書けばいい」と言っていること。日本語で書いた方が、変数の用途が一目でわかるというのがその理由です。但し、英数を利用したキャメル記法やスネーク記法を否定しているのではなく、個人や少人数での管理の場合は、変数は漢字を用いた方が良いのではという考えです。
この本で扱うコードについても、変数は全て漢字かなまじりで記述されています。
私も我流でExcel VBAを使ってきましたが、使い始めた最初の頃は、変数名もプロシージャ名もすべて日本語でした。そのうち「変数には日本語使わない方がいいよ」的な記述を色々なところで見かけてアルファベットでの変数名に変えていきましたが・・・
「漢字でええやん」と言い切っている解説書に初めて出会った気がします。
変数名については、色々意見があると思われますのでこのあたりで・・・
また、ユーザーフォームは作成に時間がかかり、変更時も大変なので、ユーザーフォームの代わりにExcelシートの利用を推奨しています。その作り込みについても、入力規制や条件付き書式を使って、入力ミスが起こりづらい入力環境構築について説明されています。
デバッグについて説明もよかったです。
Excel VBAの開発ツールである「VBE」で
・イミディエイトウィンドゥ
・ローカルウィンドゥ
・ウォッチウィンドゥ
の使い方について。これらを利用することにより、実行途中の変数の様子を参照できたり、特定の変数について、あらかじめ決めた数値になったら実行を中断したりすることができます。
デバックというと、バカの一つ覚え。マクロのステップ動作で一行ずつ実行させることしかやってませんでしたので、今後はこれらも使っていきたいと思います。
その他、コードの書き方のお作法としては
- withステートメントを使って、コードを短く見やすくする方法
- コメントの入れ方
- インデントの入れ方
- プロシージャの分割方法
- 固定値は定数化
- シートの表を扱うときはデータが増えることを考慮する
など、お約束の作法は、ほぼ網羅されています。
見やすいコードの書き方から始まって、Excelでの自動化ツールのチームとしての開発手順など、類書とは一味違った切り口で、Excel VBAを業務に役立てるノウハウが語られており大変勉強になりました。