今回Amazonで『ExcelVBAで使えるチェック機能コード集の基礎、処理開始編』のKindle電子書籍の販売を開始しました。
本書は、自分がこれまで出版してきたKindleの本で3作目になります。
以下のリンクが販売ページです。
ちなみに1作目は以下の本になります。
作目は以下の本になります。
今回は3作目なので、本のネタや構成の整理に始まり、執筆や見直し、表紙の作成、AmazonでのKindle出版の手続き、出版後の本文の修正など、それほど迷わずに進めていくことができました。
とはいってもやっぱりきつかったです。出版するまでの最後の2週間はかなり追い込みました。書きたいことはいくらでも出てくるのですが、読者にとって
- わかりやすく
- 有益なこと
を意識して書こうとすると、表現方法とか構成とか全体の中での意味などを考えながら書こうとすると、どうしても時間がかかります。
3作目は1作目、2作目と違って、以下の点を意識して書きました。
- 実際にVBAのSEとしてある程度の年数を経験しないとわからないこと
- VBAの実際のコード
VBAの実際のコードでも今回は、「チェック機能」に関するコードと「なぜそれが必要なのか」に焦点を当てました。
一般社会におけるチェック機能の位置づけ
これは具体的に何か本格的な調査をしたというわけではないのですが、体感的にVBAにおけるエラーやミスを起こさせないための「事前」の「チェック機能」をメインとした本というのはあまり多くはない気がします。
一般的にVBAとかプログラミングというのは、「こんなにすごいことができる!」とか「こんなに高速に大量に処理できる!」という華やかな面に光が当てられがちです。
一方、エラーやミスというものにはなかなか目が向けられません。
仮に目が向けられたとしても、現状の本やインターネットでは「このパターンのエラーが起きたらこう対処する」みたいな「事後」的にどう対応するかという情報が多いです。
一般的なエラーでさえそうなのですから、まして「事前」の「予防」的に「エラーを起こさせないための方法」について書かれた本や情報はさらに少ないと言えます。
確かにVBAに関する本でもエラーを扱った本はあります。でもそれらの本は「どうやってエラーを起こさせないか」についてはメインには書かれてはいないのです。
経理とVBAのSEの仕事を経験してきて思ったのは、「なぜもっとエラーを起こさせないためのチェック機能に関する本がないのだろうか」という点です。
確かにエラーが起きた後にどう対処するかといったエラー処理に関する方法も大事ですが、それと同じくらい事前にエラーを起こさせない方法も大事なはずです。
「他に情報が少ないのであれば自分が書くしかない」ということで今回『ExcelVBAで使えるチェック機能コード集の基礎、処理開始編』を執筆させていただきました。
本書の紹介
『ExcelVBAで使えるチェック機能コード集の基礎、処理開始編』についてですが、自分はVBAのSEとして多くのツールの改修や開発を経験してきました。その中で気づいたエラーやミスを出さないためのチェック機能コードと、その使いどころと順番と予防という考え方について書いています。
本書に対して以下が推奨する対象読者と注意点です。
◯本書の推奨読者
- 今までに業務でExcelVBAを使ったことがあってVBAの基礎的な知識がある人
- ExcelVBAを利用して業務を効率化するためのツールを作っている人、または過去にツールを作った経験がある人
- 自分でツールを使う時、または他の人にツールを使ってもらう時にエラーやミスを少なくしたい人
◯注意点
- 本書は業務でミスやエラーを少なくするためのコードを記述していますが、本書の内容はあくまで基礎であり、必ずしもこれで業務の全てが完璧にチェックできるわけではありません。
- ひとつのツール対して本書に書かれている全ての機能を入れる必要はありません。適宜必要なものだけを利用してください。
- 本書に記載されているチェック機能コードについてはVBAでの処理開始時点でのものであり、それより後の処理については記載していません。
- 本書には「ファイルシステムオブジェクト」など、プログラミングに関連する用語が多く出てきます。そのような用語は最後の方で簡易的な用語集としてまとめたので、用語の意味に関してはそちらをご参照ください。
- 本書の内容に関して運用した結果の影響については責任を負いかねます。予めご了承ください。
以下の内容を紹介文とさせていただいてます。
自分がツールを使っている時、次のように考えたことはないでしょうか?
「あっ、またエラーだ。ここはもうちょっとこうしてくれればいいのになぁ・・・」
「えっっっ!?ここはこんな数値は絶対出ないはずなのにどうして・・・?」
自分が作ったツールを他の人に使ってもらった時に次のようなことを言われたことはないでしょうか?
「○○さん、ここでまたエラーが出ました!このツールってエラーが多すぎませんか!?」
「本来であればこんな数値は出ないはずなのに、このツールってどうなってるんですか!?」
「○○さんの作るツールってエラーが多すぎませんか・・・」
VBAとはVisual Basic for Applicationsの略でExcelなどに標準搭載されているプログラミング言語です。
VBAで作ったツールでエラーやミスが出るというのは開発者にとっても使用者にとってもあまり気持ちのいいものではありません。
インターネットや本ではエラーに対して「それが起きた後にどうするか」
という事後の対処法について書かれたものが多いのではないでしょうか。
「Aというエラーメッセージが表示されたらこう対処する」
「Bというエラーメッセージが表示されたら原因はここです」
確かにエラーが起きた後のエラー処理は重要ですが、そもそも
「事前に対策をして最初からエラーを出さない」
ようにすることも重要です。
もっと言えば、インターネットや本において
- 実際の業務ではどのようなケースが考えられて、
- その場合の対策としてこういったコードを使えばいい
といった情報はさらに少ないでしょう。
筆者はこれまで実際にVBAのSEとして働いて様々なツールの改修を経験してきました。その経験から多くのツールに対して感じたのは、
「そもそも全くチェック機能が入っていないツールもある」
「意外とチェック機能を入れているツールが少ない」
「チェック機能が入っていたとしても甘い」
という点です。
これは、経理や事務の仕事をする人の日々の仕事を支えるという点では
問題があります。
経験の少ない人が、依頼者の業務でどこが間違えやすいかをあまり理解できなくてチェック機能の甘いツールを作ってしまうというのはわかります。
しかし、外部の専門の会社で非常に優秀な人が作って下さったツールでもチェック機能が甘いものが散見されるのです。
「じゃあどうすればいいんですか?」と思われた方もいるでしょう。
そのような問題に対する考え方、コードを記載したのが本書です。
ネット上の検索では出てこない筆者が実際に経験して気づいた点をお伝えします。
本書では、上記の問題に対して
- 実際の業務ではどのようなケースが考えられるか
- 事後よりも事前の予防や対策
について、多くのツールで共通して使えるVBAのチェック機能のコードを記載しています。
本書を読むことで以下の点がわかるようになります。
- チェック機能というものに対する考え方
- なぜそのチェック機能が必要なのか
- なぜそのチェック機能はこの順番で使った方がよいのか
- もしチェック機能がなかったらどのようなエラーが起きうるのか
- 必要なチェック機能のコード
上記の点がわかるようになることで、今後のツール作成から以下のような結果が
得られるようになるでしょう。
- エラーが少なくなる
- 仮にエラーが起きたとしても範囲を絞れる(事前に対策をしているので、チェック機能以外の部分を考えればよくなる)
- ユーザーの業務がスムーズに進むようになる(ミスが少なくなる)
- ユーザーの日々の業務に安心感を持たせてあげられるようになる
- ユーザーからのクレームが減少して修正時間も減り、自分の開発時間が増える
- 自分の開発時間が増えることでよりよいツールを作れるようになるという好循環が生まれる
◯本書の推奨読者
- 今までに業務でExcelVBAを使ったことがあってVBAの基礎的な知識がある人
- ExcelVBAを利用して業務を効率化するためのツールを作っている人、または過去にツールを作った経験がある人
- 自分でツールを使う時、または他の人にツールを使ってもらう時にエラーやミスを少なくしたい人
◯注意点
- 本書は業務でミスやエラーを少なくするためのコードを記述していますが、本書の内容はあくまで基礎であり、必ずしもこれで業務の全てが完璧にチェックできるわけではありません。
- ひとつのツール対して本書に書かれている全ての機能を入れる必要はありません。適宜必要なものだけを利用してください。
- 本書に記載されているチェック機能コードについてはVBAでの処理開始時点でのものであり、それより後の処理については記載していません。
- 本書には「ファイルシステムオブジェクト」など、プログラミングに関連する用語が多く出てきます。そのような用語は最後の方で簡易的な用語集としてまとめたので、用語の意味に関してはそちらをご参照ください。
- 本書の内容に関して運用した結果の影響については責任を負いかねます。予めご了承ください。
〇本書を読むことによってどうなるのか
- ツール作成において、なぜチェック機能が必要なのか、その重要性や考え方が分かります。
- ツール作成において、どの部分にどのようなチェック機能を入れればよいかが分かります。
- ツール作成後に、ユーザーの業務でミスやエラーを少なくすることができます。
- ユーザーのミスやエラーの減少によってエラー対応が減り、その分の時間を開発時間に回すことができます。それによってさらによりよいツール開発ができるという好循環を期待できます。
本書の総文字数は約40000字になります。
【目次】
はじめに
第一章、ExcelVBAにおけるチェック機能について
- チェック機能を作るまでの経緯
- 基本的な業務フローにおける入れるべきチェック機能の場所
- なぜこのグループと順番なのか
- チェック機能の「①Inputが始まる前のチェック処理」について
- チェック機能の「②各データの加工や抽出などの処理途中でのチェック処理」について
- チェック機能の「③データ出力直前でのチェック処理」について
第二章、処理開始時に入れるべきチェック機能
- フォルダ存在チェックがなぜ必要なのか
- フォルダ存在チェックのコードと解説
- ファイル存在チェックがなぜ必要なのか
- ファイル存在チェックのコードと解説
- ファイル開閉チェックがなぜ必要なのか
- ファイル開閉チェックのコードと解説
- ファイル更新チェックがなぜ必要なのか
- ファイル更新チェックのコードと解説
- ファイルを読み取り専用で開くコードがなぜ必要なのか
- ファイルを読み取り専用で開く時のコードと解説
- シート存在チェックがなぜ必要なのか
- シート存在チェックのコードと解説
- シート保護チェックがなぜ必要なのか
- シート保護チェックのコードと解説
- フィルターチェックがなぜ必要なのか
- フィルターチェックのコードと解説
- なぜフォーマットチェックが必要なのか
- フォーマットチェックのコードと解説
第三章、本書のコードの効率的な使い方と特典
- チェック機能用コードはどのように使うべきか
- 特典について
第四章、本書に出てくるプログラミングに関連する用語集
- AutoFilterMode
- Cellsプロパティ
- Closeメソッド
- CreateObject関数
- Dir関数
- Endステートメント
- Exitステートメント
- FileDateTime関数
- FileExistsメソッド
- FolderExistsメソッド
- For Each〜Nextステートメント
- GetBaseNameメソッド
- GetObject関数
- If〜Thenステートメント
- Interiorプロパティ
- Killステートメント
- Lockedプロパティ
- MoveFileメソッド
- MsgBox関数
- Nameステートメント
- Nothing
- Now関数
- On Error GoToステートメント
- Protectメソッド
- Public
- ShowAllDataメソッド
- Unprotectメソッド
- Valueプロパティ
- Withステートメント
- エラー
- ファイルシステムオブジェクト(FileSystemObject:FSO)
- モジュール
終わりに
参考文献
著者プロフィール
筆者の書籍紹介:Kindle出版
- 『経理事務担当者がVBAを使えるようになってから気づいたメリット』
- 『VBAのSE 仕事内容や求められるスキルとは?』
注意事項
カスタマーレビューもしくは星☆の評価のお願い
VBAのツール作成においてエラーやミスを少なくしたい人、作成するツールの堅牢性を高めたい人は是非ご一読ください!





















コメント