Excel VBAの開発効率を向上させるフレームワーク
◆「Excel VBA Framework」とは?
ExcelVBAで開発を行う際に、よく使う機能をフレームワークとしてまとめたものです。
大まかに言うと、(1)開発の効率化と、(2)保守性・拡張性の向上がこのフレームワークの売りです。
(1)毎回必要となる機能を共通化し、一部のコードを自動で生成できるようにすることで、効率的に開発ができるようになります。
また、(2)ワークシートの入出力やメッセージ出力を集約し、変更の頻度が高いスキーマ定義やメッセージをコードから分離することで、保守性・拡張性を向上させます。
◆Excel VBA Frameworkの機能
このフレームワークが持つ機能は、下記の通りです。
【1. スキーマ定義】
行番号・列番号の定義を、VBAのコードに固定で持つのではなく、スキーマ定義のシートに記載された値を動的に取得するようにしました。
これにより、スキーマ変更時のコードへの影響が少なくなります。
【2. データアクセスクラス(DAクラス)の自動生成】
各ワークシートのデータにアクセスする際に、Worksheetオブジェクトに直接アクセスするのではなく、データの入出力を管理するクラス(DAクラス)を作成し、そのクラスを通じてWorksheetにアクセスする方が保守性・拡張性が高まる上、入力チェックをする際にも便利です。
しかし、各ワークシートのスキーマに応じたDAクラスを準備するのはなかなか面倒くさいものです。
そこで、上記のスキーマ定義から、DAクラスを自動生成する仕組みを作成しました。
【3. 入力チェック(ゴミ処理)】
上記のDAクラスの中に自動で入力チェック(ゴミ処理)を組み込みました。入力チェックは、まだ汎用的なものしか実装していませんが、容易に拡張可能です。
【4. メッセージユーティリティ】
ユーザーに表示するメッセージを、VBAのコードに固定で持つのではなく、「メッセージ一覧」のシートに記載された内容を利用するようにしました。
ユーザーメッセージを一カ所に集中させることで、実装と同時に統一的なメッセージ設計が簡単にできるようになります。
また、適切にメッセージ設計をすることで、エラー発生時の対応がとりやすくなります。
◆ソースコード・ライセンス
ソースコードも公開しており、変更や有償での再配布も可能です(Apache License, version 2.0を採用)。
上記フレームワークは、未だ発展途上にあります。ご意見・ご要望等あれば、ご連絡ください。
ソフト名: | Excel VBA Framework |
---|---|
動作OS: | Windows 7/Vista/XP |
機種: | IBM-PC x64 |
種類: | フリーソフト |
作者: | 伊勢川 暁 |