Excel 2010 の VBA のコードを自動的に整形したい:解決

いつもシェアしていただいてありがとうございます。これからも「ちょいとお役立ちして嬉しくなる」記事の配信を目指しています。ポチッと↓のボタンからシェアしてください。

先日素人さんが作った Excel の VBA を変更する仕事が入った(普段請けないのですが、重要な方からのお仕事だった)のですが、そのコードがなかなか曲者で、次の様な状態でした。

・インデントが入ったり入らなかったり
・インデントの数は不揃い
・気ままに空白行がある
・変数名は1文字のオンパレード
・当然 Dim が無いかと思ったら、時々ある
・複数のフォームで共通化されておらず、あちらこちらに同じ内容のモジュール有り
・Range() などで直接範囲指定されているので Excel の行列追加で自動的に参照先の付け替えが行われない
etc…

まぁとりあえず、リファクタリングは無くとも自動整形ぐらいはしたかったわけです。

と言う事でネットを漁ってみたのですが、Office 2007 以降に正式に対応を謳っているものは見つかりませんでした。

仕方が無しに古くても・・と探して最終的に行き着いたのは、Smart Indenter と言う add-in でした。

Office 2000〜2003 対応と書かれている最新版(3.5)を使ってみましたが、無事 2010 でも動作しました。

下図の様な整形の指定ができ、手で整形するのに比べれば天国の様な環境に変わります。

整形オプション

整形オプション

※インストール後にコンテキストメニューから「Indenting Options」を選択すると出るダイアログ

セットアップ

インストールは Smart Indenter#Application から該当のバージョンを(自分は 3.5)ダウンロードして実行します。

初期設定

実行後は次の図の様に、VBA 画面の「アドイン|アドインマネージャ」メニューを開き、起動時にロードされるように設定しておきましょう。

起動時の設定

起動時の設定

使い方

あとは、コードエディタ中で右クリックすることで、次の図の様なメニューが選択可能になります。

適宜実行しましょう。

VBAコード中のコンテキストメニュー

VBAコード中のコンテキストメニュー

まとめ

ほんと、きちんと書かれていないプログラムはメンテナンスもしづらいし、バグの温床ですがな(泣)

いつもシェアしていただいてありがとうございます。これからも「ちょいとお役立ちして嬉しくなる」記事の配信を目指しています。ポチッと↓のボタンからシェアしてください。

山本をフォローするだけでちょっぴりお得な情報が見つかりますよ↓↓↓