ExcelVBA開発カイハツフレームワークとは?
ExcelVBAによる開発カイハツオコナサイに、よく使ツカ機能キノウをまとめたものである。
開発者カイハツシャは、このフレームワークを利用リヨウすることで、効率的コウリツテキにそれなりの品質ヒンシツのアプリケーションが開発カイハツできるようになる。
このフレームワークが機能キノウは、下記カキトオりである。(一部イチブ予定ヨテイ
機能キノウ 説明セツメイ 実装ジッソウ状況ジョウキョウ
スキーマ定義テイギ 行番号ギョウバンゴウ列番号レツバンゴウ定義テイギを、VBAのコードに固定コテイつのではなく、スキーマ定義テイギのシートに記載キサイされたアタイ動的ドウテキ取得シュトクするようにした。

これにより、スキーマ変更ヘンコウのコードへの影響エイキョウスクなくなる。
v0.10で実装ジッソウ完了カンリョウ
データアクセスクラス(DAクラス)の自動ジドウ生成セイセイ カクワークシートのデータにアクセスするサイに、Worksheetオブジェクトに直接アクセスするのではなく、データの入出力ニュウシュツリョク管理カンリするクラス(DAクラス)を作成サクセイし、そのクラスをツウじてWorksheetにアクセスするホウ保守性ホシュセイ拡張カクチョウセイタカまるし、入力ニュウリョクチェックをするサイにも便利ベンリである。

しかし、カクワークシートのスキーマにオウじたDAクラスを準備ジュンビするのはなかなか面倒メンドウくさい。

そこで、上記ジョウキのスキーマ定義テイギから、DAクラスを自動ジドウ生成セイセイする仕組シクみを作成サクセイした。
v0.10で実装ジッソウ完了カンリョウ
入力ニュウリョクチェック(ゴミ処理ショリ ユーザーはトキにとんでもないアタイ入力ニュウリョクする。それでいてアプリがウゴかないと、すぐに「バグだバグだ!」と苦情クジョウってくる。

入力ニュウリョクワルいんだから、らねーよ」とカエしたくなるが、タシかに、ある程度テイドのゴミは機械的キカイテキノゾいてから処理ショリしたホウ親切シンセツ設計セッケイである。

そこで、上記ジョウキのDAクラスのナカ自動ジドウ入力ニュウリョクチェック(ゴミ処理ショリ)をんだ。入力ニュウリョクチェックは、まだ一部イチブしか実装ジッソウしていないが、容易ヨウイ拡張カクチョウ可能カノウである。
v0.10で一部イチブ実装ジッソウ
メッセージユーティリティ ユーザーに表示ヒョウジするメッセージを、VBAのコードに固定コテイつのではなく、「メッセージ一覧イチラン」のシートに記載キサイされた内容ナイヨウ利用リヨウするようにした。

ユーザーメッセージをイッショ集中シュウチュウさせることで、実装ジッソウ同時ドウジ統一的トウイツテキなメッセージ設計セッケイ簡単カンタンにできるようになる。また、適切テキセツにメッセージ設計セッケイをすることで、エラー対処タイショがとりやすくなる。
v0.10で実装ジッソウ完了カンリョウ
Javaへのインターフェース提供テイキョウ 上記ジョウキのスキーマ定義テイギから、JavaのDAクラスを自動ジドウ生成セイセイし、Apache POIをモチいて、Javaから対象タイショウのワークシートにアクセスができるようにする。 今後コンゴ実装ジッソウ予定ヨテイ
その便利ベンリ機能キノウ DAクラス高速化コウソクカバージョン、DAクラスの単体テストクラスの生成、AccessDBへのデータ入出力を容易にするクラスなどなど。 今後コンゴ実装ジッソウ予定ヨテイ
想定ソウテイ利用者リヨウシャ
Excel VBAをよく使ツカヒト
Excel VBAをある程度テイドよく使ツカヒトであれば、トウフレームワークの使ツカカタオボえる価値カチがあるだろう。
なお、トウフレームワークは入門者ニュウモンシャけではない。
オブジェクト指向シコウプログラミングをある程度テイド理解リカイしているヒト
オブジェクト指向シコウプログラミングを理解リカイしていれば、トウフレームワークを比較的ヒカクテキ容易ヨウイ理解リカイできるだろう。
想定ソウテイ規模キボ
300ギョウ〜3マンギョウ程度テイドのアプリ
300ギョウ以下イカのミニアプリでは、フレームワークを使ツカうとギャク冗長ジョウチョウになるかもしれない。
3マンギョウえるチュウ大規模ダイキボアプリでは、そもそもExcel VBAで実装ジッソウすべきではない。
.NET FrameworkやJavaの使用シヨウ検討ケントウされたい。
使ツカカタ
1.画面ガメン設計セッケイ
まず、どういう画面ガメンレイアウトにするかをカンガえる。
Excelのデータにアクセスするためには、レツ番号バンゴウギョウ番号バンゴウ指定シテイする必要ヒツヨウがあるため、
何列目(何行目)に何のデータを配置するか(スキーマ)を早期ソウキにフィックスさせるのがポイントである。
Excelでは、下記カキのようなスキーマがよくモチいられる。
ヨコスキーマのレイ
タテスキーマのレイ
2.「スキーマ定義テイギシート」にて、スキーマ情報ジョウホウげる
まずは、スキーマ定義テイギシートの「1.スキーマ基本キホン情報ジョウホウ」に必要ヒツヨウ情報ジョウホウ入力ニュウリョクする。
  ※画面ガメン設計セッケイヨコスキーマを選択センタクした場合バアイは、「スキーマ定義_横」のシートを、
   タテスキーマを選択センタクした場合バアイは、「スキーマ定義テイギ_タテ」のシートをモチいる。
  ※スキーマが複数フクスウ種類シュルイある場合バアイは、シートをコピーしてやす。
ツギに、「レツメイ列番号レツバンゴウす」ボタンをすと、「2.スキーマ」にレツメイ列番号レツバンゴウ自動ジドウ入力ニュウリョクされる。
  ※タテスキーマの場合バアイは、「ギョウメイ行番号ギョウバンゴウす」ボタンをす。
3.データアクセスクラスを生成セイセイする
「スキーマ定義シート」の「2.スキーマ」に必要ヒツヨウ情報ジョウホウ入力ニュウリョクし、「データアクセスクラス生成セイセイ」ボタンをす。
すると、ExcelVBAFrameworkとオナじフォルダのナカに、クラスファイルが生成セイセイされる。
物理ブツリメイ入力ニュウリョク必須ヒッス
ギョウ番号バンゴウレツ番号バンゴウのいずれかは入力ニュウリョク必須ヒッス
  列番号レツバンゴウだけを入力ニュウリョクして、行番号ギョウバンゴウをブランクとすれば、下記カキのように、行番号ギョウバンゴウ指定シテイしてアタイ取得シュトクするメソッドが生成セイセイされる。
  行番号ギョウバンゴウ列番号レツバンゴウ固定コテイ場合バアイ両方リョウホウ入力ニュウリョクする。
4.生成セイセイしたクラスファイルをインポートする
3で生成セイセイしたクラスファイルをVBEからインポートする。
5.データアクセスクラスの利用リヨウ
インポートしたクラスは下記カキのように使ツカうことができる。
6.メッセージ設計セッケイ
ユーザに表示ヒョウジするメッセージを、メッセージ一覧イチラン記載キサイする。
※メッセージ番号バンゴウ、タイトル、メッセージは入力ニュウリョク必須ヒッス
※エラーメッセージの場合バアイ、メッセージ番号バンゴウ先頭セントウに「E」をけ、Err.RaiseのサイにE以下イカ番号バンゴウ指定シテイする。
7.メッセージユーティリティの利用リヨウ
メッセージユーティリティの利用リヨウ方法ホウホウ下記カキトオり。
ライセンス
Apache License, Version 2.0
Copyright 2011 Akira Isegawa
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
       http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
開発カイハツシャ情報ジョウホウ
開発者カイハツシャサイト
http://ise-apps-jp.blogspot.com/
ブログ
http://a-i-a.blog.so-net.ne.jp/
連絡先レンラクサキ
akira.isegawa@gmail.com
改定カイテイ履歴リレキ
v0.10 新規シンキ作成サクセイ
v0.11 バグ修正シュウセイ
FW_CommonDataAccessorのFW_CommonDataAccessorIF_getEndRow関数カンスウについて、
最終行サイシュウギョウ取得シュトク処理ショリ開始カイシ位置イチ修正シュウセイ
以上イジョウ