なぜ前任者のコードが読めないのか?

前任者が残したVBAのコード。コメントはない。変数名は意味不明。何をしているのかさっぱり分からない——そんな経験はありませんか?

前任者のコードが読めない理由は、「自分だけが分かればいい」という前提で書かれているからです。コメントなし・意味不明な変数名・マクロの記録そのまま——これらが重なると、他人には読めないコードになります。読み方を知れば、必ず解読できます。

この記事では、次のことを解説します。

  • 前任者のコードが読めない3つの理由
  • コードを読み解くための具体的な手順
  • 読めないコードを「自分のコード」に変えるための考え方

なぜ前任者のコードが読めないのか——3つの理由

① コメントが一切ない

コードには「なぜこう書いたのか」という意図が込められています。でも、その意図はコード自体には書かれていません。コメントがないと、処理の流れは追えても「なぜこの処理をしているのか」が分からなくなります。

特に条件分岐や特定の数値が出てくる箇所は、背景を知らないと意味が掴めません。コメントのないコードは、書いた本人でさえ数か月後には読めなくなることがあります。

② 変数名が意味を持っていない

前任者のコードによく出てくるのが、こういった変数名です。

Dim a As LongDim x As StringDim tmp As Integer

「a」「x」「tmp」——何が入っているか、名前から分かりません。コードを上から読んで、どこでその変数に値が入り、どこで使われているかを全部追わないと意味が分かりません。

変数名は「その変数に何が入っているか」を伝えるためにあります。意味のない変数名は、読む人の手間を大幅に増やします。

③ マクロの記録がそのまま残っている

マクロの記録で生成されたコードは、Selectが多く、同じ処理が何か所にも散らばっています。一つの処理が数十行に膨らんでいることも珍しくありません。

記録コードはあくまで「操作を記録したもの」なので、読みやすさは考慮されていません。そのまま残されたコードは、何をしているのかを把握するだけで相当な労力がかかります。

読めないコードを読み解く手順

ステップ① F8で一行ずつ動かして「何をしているか」を確認する

まず、コードを読もうとするより先にF8で動かしてみてください。一行実行するたびに、Excelの画面がどう変わるかを目で確認します。

「この行を実行したら、このセルが変わった」という対応関係が分かると、コードの意味が少しずつ見えてきます。読む前に動かす、これが読めないコードの最初の一手です。

ステップ② 理解した行にコメントを書き足していく

一行の意味が分かったら、その場でコメントを書き足します。

'A列の最終行を取得するls_rw = Cells(Rows.Count, 1).End(xlUp).Row

全部を一度に理解しようとしなくていいです。分かった行からコメントを積み上げていくと、コード全体の地図が少しずつできあがります。

ステップ③ 意味不明な変数名を、意味のある名前に置き換える

変数の中身が分かったら、変数名を分かりやすいものに変えます。VBEの「編集→置換」で一括置換できます。

aが最終行だったならls_rwに、xが対象シート名だったならt_shに。変数名を変えるだけで、コードの読みやすさが格段に上がります。

まとめ

前任者のコードが読めない理由は、「自分だけが分かればいい」という前提で書かれているからです。

  • コメントがない——意図が伝わらず、処理の背景が分からない
  • 変数名が意味を持っていない——何が入っているか追わないと分からない
  • マクロの記録がそのまま——Selectだらけで冗長なコードになっている

読めないコードも、F8で動かしながらコメントを書き足していけば、必ず読めるようになります。「読めない」のではなく、「まだ読んでいない」だけです。

よくある質問

Q. 前任者のコードを修正してもいいですか?

読み解いた上で修正することは問題ありません。ただし、修正前に必ずバックアップを取ってください。また、一度に大きく変えず、一か所ずつ変更して動作確認する習慣をつけてください。

Q. コードが長すぎて、どこから読めばいいか分かりません。

ボタンや処理の起点になっているプロシージャ(Subの名前)から追ってください。そこから呼び出されている別のSubやFunctionを順番に確認していくと、全体の流れが見えてきます。いきなり全部読もうとしないことが大切です。

Q. コメントを書く文化がない職場では、どうすればいいですか?

自分が修正・追加した部分だけでもコメントを書く習慣をつけることをおすすめします。「○年○月 修正:〇〇のため変更」のような記録を残すだけで、次に読む人(自分も含めて)の負担が大幅に減ります。

Q. 変数名を変えたら動かなくなりました。

変数名の置換は、VBEの「編集→置換」で「現在のプロジェクト」を対象に一括置換するのが確実です。手動で一部だけ変えると、名前が一致しない箇所が残ってエラーになります。置換前にバックアップを取ってから作業してください。

前任者のコードを読み解くところから、実務で使えるVBAを体系的に学びたい方は、JIMOVEの動画講座をご覧ください。

「読めないコードをどう読むか」まで丁寧に解説しています。

動画で学びたい方へ

「記事を読んでも、実際に自分で書けるか不安…」という方には、動画で基礎からじっくり学べる講座がおすすめです。

VBAが初めての方を前提に、つまずきやすいポイントを先回りして解説しています。サンプル動画は無料でご覧いただけます。

動画で学ぶExcelマクロ|JIMOVEオンラインスクール

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

上部へスクロール