見出し画像

VBAのメンテナンスを軽減する

ExcelVBAで作ったツールは、製作者がいないとコードのメンテナンスが
かなり面倒だったりします
私は前任者の退職に伴い、前任者がマクロの記録だけで作ったツールをメンテナンスしたり改良したりするために今の職場に配属されました
人が書いたコードって、読むの大変ですよね

特にマクロの記録で書かれたコードはかなり非効率的な物が多く、
前任者の残したツールは改善の余地がありすぎたので
バッサリ全てを捨ててゼロから作り直す事に

VBAで扱うセル位置やファイルやフォルダのパスを設定値化するための準備として、テーブルの見出しを動的に取得する方法をご紹介します


データを格納するテーブルを用意

まず、日々のデータを格納するテーブルを用意します
サンプルとして、家計簿でも作っていきましょう

データ格納テーブル

このテーブルの「見出し」を「設定」シートの「カラム設定」テーブルで動的に取得します。

カラム設定テーブルを「設定」シートに用意

カラム設定用テーブル

構成は、「カラム名」と「列番号」です
後々必要なものがあれば追加していきます

家計簿テーブルの見出し範囲に名前を付ける

家計簿テーブルの見出しを選択して、「数式」→「名前の定義」で名前を付けます。
ここでは、「家計簿見出し」としておきます。

「数式」タブ→「名前の定義」をクリック


名前を入力して「OK」をクリック

カラム設定テーブルに関数を入力

カラム名の1行目に下記の関数を入力します

=INDEX(家計簿見出し,ROW(A1))

列番号の1行目には下記の関数を入力

=ROW(A1)

どちらもオートフィルで下にコピーします

関数を入力してコピーする

これで、管理簿テーブルでカラムの増減があっても関数のコピーで柔軟にカラムの名前と列番号を取得できます。
このテーブルをVBAで読み込んで設定値として使用します。




いいなと思ったら応援しよう!