top of page

​タグ一覧

配列処理(73)

階層化フォーム(33)

ファイル操作(27)

開発事例(20)

シート・セル操作(18)

コード自動生成(10)

ユーザーフォーム(9)

文字列操作(8)

図形操作(7)

設計思想(7)

開発効率化(6)

GAS(5)

アニメーション(5)

技術解説(4)

講座実施報告(5)

イミディエイトウィンドウ(4)

Googleスプレッドシート(4)

副業(4)

クリップボード(4)

条件付き書式(4)

その他(4)

ココナラ(3)

小説(3)

HTML(3)

JavaScript(3)

イベントプロシージャ(2)

Enum(2)

PDF(2)

フリーランス(2)

リスキリング(2)

数学(2)

Outlook(2)

介護(2)

Discord(2)

シフト表(2)

LookerStudio(2)

日報(2)

カレンダー(2)

罫線(2)

パズル(2)

小ネタ(2)

コード解説(2)

ステータスバー(1)

コード解析(1)

OneDrive(1)

バックアップ(1)

可変長引数配列(1)

ブック処理(1)

スクレイピング(1)

スプレッドシート(1)

coconala(1)

リボン登録マクロ(1)

QRコード(1)

実行予約(1)

給与計算(1)

VBA不使用(1)

リボン(1)

超勉強会(1)

スピログラフ(1)

図名描写(1)

連想配列(1)

溶接ロボット(1)

保育士(1)

楽天市場(1)

経理(1)

医療(1)

文書作成(1)

発注書(1)

ショートカット(1)

WebAPI(1)

色操作(1)

スーパー開発ショートカット(1)

ライブラリ処理(1)

放課後等デイサービス(1)

児童福祉支援(1)

学校(1)

UI(1)

CAD(1)

【Excel VBAコーディングテクニック】コードの可読性を劇的に上げる設計ルール2選 ― 保守性・拡張性を意識した書き方 ―

【Excel VBAコーディングテクニック】コードの可読性を劇的に上げる設計ルール2選 ― 保守性・拡張性を意識した書き方 ―


Excel VBAで保守しやすいコードを書く重要性

Excel VBAでコードを書いていると、

「とりあえず動くマクロ」は比較的簡単に作ることができます。


しかし、

数週間後・数か月後にそのコードを読み返したとき、

あるいは機能追加や修正を行う場面になると、

「どこに何が書いてあるのか分からない」

「読むのに時間がかかる」

と感じた経験は少なくありません。


この記事では、


VBAを使った開発を続ける中で、保守しやすいコードを書く上で

特に効果を実感している、


・コードの可読性

・保守性

・将来的な拡張のしやすさ


を大きく改善し、VBAの保守性が高いコードを実現するための

設計ルールを2つ紹介します。


■ 設計ルール①

プロシージャ名はモジュール番号と一致させる


※このルールは、すべてのVBA開発で必須というわけではありません。


小規模なマクロや、

プロシージャ数が数個〜十数個程度の構成であれば、

ここまで厳密な命名ルールは正直不要なケースも多いです。


しかし、

ブックの機能が増え、コード全体の規模が大きくなってきた場合、

このルールは非常に強力に効いてきます。


プロシージャ名はモジュール番号と一致させる
プロシージャ名はモジュール番号と一致させる

● 問題が表面化しやすい状況


例えば、次のような状態です。


・プロシージャ数が20〜30以上に増えてきた

・標準モジュールが4〜5個以上に分かれてきた

・Public Sub / Public Function が増え、

 他モジュールから呼び出す処理が多くなってきた


この段階になると、

「どのプロシージャを、どこで定義したか」を

名前だけで判断するのが難しくなってきます。



● IntelliSenseで起こりがちな混乱


Publicプロシージャが増えると、

VBAエディタのIntelliSense(入力候補)には

多くのプロシージャ名が表示されるようになります。


このとき、


・どのモジュールに書いた処理なのか

・どの分類の機能なのか

・いま呼び出したい処理はどれか


を瞬時に判断できず、

選定に迷う場面が増えてきます。



● モジュール番号と揃えるという考え方


そこで採用するのが、


・モジュール名に番号を付ける

 例:Mod01_入力補助

・プロシージャ名にも同じ番号を付ける

 例:S01_***


というルールです。


このようにしておくことで、

IntelliSenseに表示された時点で、


・このプロシージャはどの標準モジュールに属しているか

・そのモジュールはどの分類の機能か


を名前だけで即座に判別できるようになります。



● このルールで得られる実務上のメリット


・コード量が増えても迷いにくくなる

・目的の処理をIntelliSenseから即座に選定できる

・思考を一度リセットし、正しい場所にすぐ戻れる


特に、

機能追加・修正が頻繁に発生するブックでは、

この効果を強く実感しやすくなります。



■ 設計ルール②

変数宣言の「As」を縦に揃える


次に紹介するのは、

コードの見た目と理解速度に大きく影響するポイントです。


VBAでは、複数の変数をまとめて宣言する場面が多くありますが、

As の位置がバラバラな状態になっているケースも少なくありません。


変数宣言の「As」を縦に揃える
変数宣言の「As」を縦に揃える

● 揃っていない場合に起こること


・変数の型が視認しづらい

・宣言部分を読むのに余計な時間がかかる

・コード全体が雑然とした印象になる



● As を揃えることで得られる効果


As の位置を揃えるだけで、


・各変数の型を一瞬で把握できる

・宣言部分が「情報の一覧」として読める

・ロジック部分に意識を集中できる


といった効果が得られます。



● 見た目ではなく理解速度の問題


このルールは、

単なるコード整形や好みの問題ではありません。


・変数の役割を素早く把握できる

・処理の流れを追いやすくなる

・読み手の負担を減らせる


という点で、

可読性=理解のしやすさを直接的に高める工夫です。



■ この2つはテクニックではなく設計の考え方


今回紹介した2つのルールは、

難しい文法や特殊なテクニックではありません。


しかし、

コードを「一時的なもの」ではなく

「後から何度も触る資産」として考えると、

非常に大きな差が出てくるポイントです。


■ まとめ


・プロシージャ名とモジュール番号を揃える

・変数宣言の As を縦に揃える


この2つを意識するだけでも、

VBAコードの読みやすさは大きく変わります。


VBAで保守しやすいコードを書くためには、

動作だけでなく、後から読むことを前提にした設計が重要です。


すべてを一度に直す必要はありません。

まずは新しく書くコードから、

少しずつ取り入れてみてください。


Excel VBAによる業務自動化・ツール開発をご検討の方へ

​"脱Excel"の前に、現状のExcelの潜在能力を120%発揮してみませんか?

Softex-Celware

​インボイス登録番号:T5810983887134

  • Facebook
  • Twitter
  • YouTube

©2023 softex-celware。Wix.com で作成されました。

bottom of page