● VBAプログラムのコメントは、だらだらと沢山書きましょう。特に売るソフトを作るわけでもない私たち素人はそうしたほうがいいです。なんでもかんでも「プロ」の真似をすると、引継ぎのときに「ハマる」ことになります。「VBAプログラムのコメントはほどほどに。長々と書くのはやめましょう」は絶対に信用しないように!

※間違ってない重要なことなのでご自分でも考えてください。
※メモ書きなので、自分でも意味不明な箇所も多いです。ごめんなさい。
  

よく「VBAプログラムのコメントはほどほどに。長々と書くのはやめましょう」などと言われます。

でもそれは「売るソフトを作る人・会社」の場合だけです。

そもそも、コメントなんて、ちゃんとした人なら一瞬で「すべてのコメントを一発ではずすプログラム」を作って、「無かったもの」にできます。
必要なコメントだけを残すのだって、一瞬で、できます。

「コメント(特に設計変更理由なども含む)」は、私たち素人には引継ぎ後の「命綱」になることも多いです。(外部に委託する場合、作り変えしてもらう場合、なども命綱になります。料金の低下にも結び付きます。)

絶対に、「VBAプログラムのコメントはほどほどに。長々と書くのはやめましょう」などということには騙されないように、設計に関することや社内体制・ツルの一声・その他、すべての事柄についてコメントを書きまくりましょう。(あくまで販売しない・社内で使うだけのエンドユーザーコンピューティングのプログラムの場合、特にプログラム初心者や中級者に引き継がねばならないケースがいつの世代も想定される場合、等々、ですが。)

逆に、「設計に関することや社内体制・ツルの一声・その他、すべての事柄について」・・・、いちいち、それらについてのコメントを何か別のファイルや別紙などに「分けて」残したりすると、部署の刷新やパソコンの入れ替え、事務所内の模様替え、OSの再インストール、その他諸々のとき、そういった「別のファイルや紙など」を誤って捨ててしまうことが非常に多いです。

例えば、「メールのパスワードやサーバ名、プロバイダのパスワードやルーターの変更したパスワード」などなど・・・、ちゃんと現行の内容を「全て」残せている人がどれだけいますか?いま「絶対OK」と即答できる人、どれだけいますでしょうか?
現実にはほとんどいません。
「メールのパスワードやサーバ名?プロバイダのパスワード?ルーターの変更したパスワード?そんなのどっかいっちゃった!」という人・会社様がほとんどです。

ちなみに、ちゃんと「メールのパスワードやサーバ名?プロバイダの設定など」、こういったものをしっかり「全て」残せている方は「1割以下」です。0.5割以下かもしれません。僕はちゃんと「全部」残している人には出会ったことがありません。

「コメント(特に設計変更理由なども含む)」も、プログラムと分けて別ファイルや別紙に書いて残してしまうと、そうなります。

そして、引継ぎのあとに、「なんでこういう風にしたのか」が分からないまま、立ち尽くすことになってしまいます。

でも、プログラム内に書いておけば、「どんだけ引継ぎしても残ります。」

「フォルダ作って別ファイルに・・・」、なんてことも絶対にしたらいけません。そんなことをするから、それがそもそもの間違いのもとになります。
そんなことをすれば、どこかの世代で、「面倒だから」とそのコメントや設計変更書は消えていく羽目になります。プログラム内に残しておくのが一番管理もしやすいし効率もいいのです。

そもそも、そんなもの(メールやプロバイダやレンタルサーバなどの設定書)ごときすらが、ちゃんと管理できない人が、別の場所に分けてしまった「コメントや設計変更に関する資料、環境や社内体制の変更と共に書き換えたプログラムの内容や関連事項、その他の資料」が、管理できるわけがないじゃないですか。
最初から100%、無くすに決まっているんです。分けちゃった時点で。
火を見るよりも明らかとはこのことなのです。
だから、「VBAプログラム内に直接書きまくって残しましょう」ということを心底、おすすめします。
例えば、「ここを直したら、関連個所のあそことあそことあそこも直す・見直す」ということも書いておくと、もしなんかあったときに、修正がメチャクチャ・ラクになります。
「図が無いとわかりづらい」と言う人も居ますが、そんなのは「慣れ」です。
図などなくても長い説明の文章があればわかります。箇条書きに色々と書けばそれでもずいぶんとわかりやすくなります。(それにもともと、全部が全部、何度も見返すものでもないですし。)
図なんかなくなって、長い説明の文章があれば、その文章をもとに図式化して、数十分以内に解決できますが、重要事項(書き換え理由その他)が紛失されれば、1日や2日で済まない場合だって少なくありません。それにどうしても図が欲しかったら、Excelのセルを利用して図式化し、それをテキスト化するフリーウェアを使えばOKです。
図をとるか、1日や2日、下手したら一週間を無駄にすることを取るか、と聞かれれば、図なんかどうでもいいので、書き換えた理由や状況説明のほうが「たくさん」残っていてほしいです。
実際、僕も残っていてどれだけ助けられたことか・・・
素人には、なくてはならないものです。
別のところに分けた文書を引っ張りだしてきて、該当箇所を探すだなんて、それこそ時間の無駄・浪費でもありますし、やってられないです。プログラムのすぐそばに、全部、理由も何もかもコメントとして書いてあれば、文書探す手間もかかりません。書籍や仕様書の注釈のように番号振ってプログラムの最後にまとめて書いたっていいわけですし。(僕はそれも目が疲れて効率が悪いのでしないですけど。)

そのほか、コメントを書きまくってあると、「誰か他人が作ったプログラム」を「引き継ぐ」場合で、かつ、誰かが作ったが故に、「どうしてもエラーが出たり不具合が出たりする理由がつかめない」「エラー・不具合の解決にもともと長い年月がかかる」「エラーや動作不良の頻度がすごく少ないので原因がつかみにくい」といった場合に、別の箇所を直している最中に、たまたま、長ったらしく書いたコメントのある「単語」が目に入って、それがヒントになって解決することだってあります。これが結構大きいです。特に素人には。そして特にAccessVBAよりもExcelVBA。
他人が作ったやつ、特にExcelVBAの引継ぎは、なかなか骨の折れるものも少なくありません。
Excelは何でもできすぎるので。(Excelはデータベースソフトみたいにあれダメこれダメ最初から整理されていなくちゃダメという制限が無いので、なんでもメチャクチャにできすぎてしまい、意味の分からないぐちゃぐちゃなプログラムを改修させられることが少なくないので。プログラム自体もセル番地ベースで列名ベースじゃないのでもともと見づらい・読みづらいですしね。そういう僕もぐちゃぐちゃなプログラムを書いてしまっています。だから余計に「ExcelVBAは要注意!」、と言えます。)
自分が部分改修したことが原因でさらにエラーになることもありますし。
ExcelVBAの改修作業ではそういったことがとても多いです。
自分が気の付いたこと全部が書いてあるコメントがそこにないと、そういうエラー解決のための「気付き」は得られません。
真っ白な、そしてコードだけのプログラムを眺めさせられても、そういう気付きを、特に私たち素人は絶対に得られないのです。
「コメントは最小限にしたほうが頭良さそうにみえるでしょ?」とか「実際、バカはコメントが多い」などと「カッコつける」「人をけなす」必要なんてまるでありません。本当のこと言えば、コメントが目に移っても脳に到達させない技術(後述)が無い人のほうがバカだと思います。
バカにしたい奴にはさせておいて、自分は自分の目の前の問題を解決しましょう。
そいつが責任とってくれるわけでもないですし。
私たち素人は「プロ」じゃないんですから、また、「売るソフトを作ってるわけじゃない」んですから、コメント書きまくってもそれで全然オッケーなのです。

また、他のプログラム言語はともかく、VBAに限って言えば、VBAはF8キー押下の連続で、ステップバイステップで「1行ずつ」プログラムの実行ができます。その際は、実行する行だけ黄色にハイライトさせて(変数の中身の値も確認しながら)実行できるので、コメントなんていくら書いたって邪魔にはなりません。
コメントが書いてあって目に映っていても、目に映しているだけで脳まで到達させなければ書いてないのと同じです。(それに、そもそも、VBAはコメントは全部・緑色表示なので、緑文字は脳にまで行かせないようにして見ることが可能です。それができない人のほうがおかしいです。そんな能力すらないのかしら?と心配になります。)

また、先にも書いた通り、コメントが「うざい」と思ったらコメントを全消しする、あるいは印の付けたものだけ残す、そういうプログラムを書けば一瞬で好きなように消せます。

何度も言ってしまいますけど、「うざかったら、消しゃあいい」だけの話なんです。
(念のためバックアップを作ってからそっちを消して読めばいいんです。)

消すプログラムが作れれば一発で、数秒で終わる作業です。

VBAはVBEditorの操作もできるのでそれができるかもしれません。
また、できないにしても、モジュール単位でテキストファイルにコピペしてから、コメントだけプログラムで全消しして、また、全部もとのモジュールにコピペしなおせばOKです。

なのにそれをエラそうに「コメント書きすぎ。そんなことも分からないのか!?」とかエラそうに言う人がいますが「売るソフトじゃねえんだよ!もっというと、お前だけに読ませるために残してんじゃねえんだよ!お前なんかいつ居なくなるか分かんねえじゃねえか。そんな奴の言うこと聞いてられっか。お前が居なくなったあと、素人でもなんとか分かるようにしておく必要があるんだよ!少しだけExcelができる人に対する成長への貢献・育成の意味もあるんだよ!」ということです。

例えば、以降に挙げたサンプルプログラムのように、コメントを書きまくっても、「私たち素人」にとっては「全然オッケー」です。

これでもまだ少ないほうです。

むしろ、10行でも20行でも、自分の気づいたこと、メモ、その他、社内の状況・環境で関係すること、等々、「なぜそう書いたのか?」を、すべて、書いてしまいましょう。分けて書いたらまず間違いなく、「異動の繰り返し・社内体制の変更の繰り返し」の中で「絶対に無くす・誤って捨てる・消えていく・消されていく・・・」のがオチです。
特に、社内体制や社内事情のこと、ツルの一声のことなど、は大切です。

大事なコメントを掃除やパソコン入れ替えや部署変更・環境変化等々で誤って捨ててしまわないよう、確実に、VBAプログラム内に残してください。

●コメント残しのサンプルプログラム

  
また、コメントを上に書くとわかりづらい、ということであれば、以降に示すようにコメントをプログラムの下に書けば結構見やすくなります。(コメントが目に入っても脳まで到達させないようにしやすい。)
もちろん、何度も言いますが、こんなことしなくても「コメントが目に入っても脳まで到達させないようにしやすくする」というのは誰にでもできますし、コメントを一発で消すとか、一瞬で必要なものだけ残す、のなんてだれにでもできます。
特にVBAではVBE自体も操作できますし、それがわかりづらいなら、いったん各モジュールをBAS形式でエクスポートしてから、Wordなどで不要なコメントだけ全部消して、インポートし直せばOKです。

  

  
  
以下のプログラムはVBAじゃなくてUWSCのプログラムですけど、その場合も、例えばこんな感じでコメントが残ってるとすごくあとの修正がしやすいです。UWSCのプログラムコード作成は、VBEの画面のように至れり尽くせりではないので・・・。

  
  
★ 究極にコメントが多い例