結論から言うと
ツールのテンプレートパターンを考えて書いてみた。パターン考慮して汎用的なツールも作った。
https://github.com/yyYank/yank/tree/master/Recursivive
対象読者
VBAでなんかツールを作りたい人
プロジェクトでツール作りそうな人
前提
VBAの規約に関しては別エントリ参照。
VBAでツールを作るにあたって、
今まで現場で個人的に色々とツールを作ってきた(自主的にまたは作らされた)経験から
見てきたパターンを明文化しようというのが今回の試みです。
最低限必要な機能
VBAのExcelマクロツールでは以下の機能が備わっていれば、大体のものは作成可能。
※ファイルのコピー、削除に関してはVBAの標準で充分。
○ファイルコピー
FileCopy "コピー元", "コピー先"
○ファイル削除
Kill "ファイル名"
テンプレート処理パターン
大体は、以下の3系統に分類される。
1.一括処理系
再帰処理による横断的な処理
(各xlsブックの値の抽出、変更、削除、入力チェックなど)
これについては、ある程度汎用的に利用出来るVBAコードを書いた。
コードの内容に関しては別エントリで説明する。
2.自動生成系
設計書を元にソースを自動生成、または
別の設計書を生成。
(結構ツライ出来栄えになる事が多い。)
3.DB処理系
データ抽出、テーブル作成、データ作成など。
テンプレート処理フロー
基本パターンは以下の4ステップである事が多い。
1.ディレクトリまたはファイルの指定(エクスプローラ呼び出し->ファイル or ディレクトリ指定)
2.バリデーション(入力チェック、ファイルの存在チェック)
3.対象ディレクトリまたはファイルに対して処理を行う。
4.出力(ファイルに結果を出力)
実装上のポリシー
まとめ
VBAでツールとして各プロジェクトで作成されることが多いと思われるものをまとめました。
つまり、上記の内容さえ網羅してしまえば、
「どのプロジェクトでもほぼ通用する」ということです。
そして、私作りました。ファイルの再帰処理に特化したAOP(風)のツールです。
Recursivive<-これ。
再帰処理に特化したツールです。DB機能は未実装なんですが、ファイルの再帰処理、入出力、ロギングまではまとめてあります。ロジックと今回紹介したテンプレート処理の分離が設計思想です。
詳細は別エントリで。
各地で車輪の再発明が繰り返されているのだろうなぁ。
なるべくならし無い方が良いですよね。そのための資料になれば幸いです。
この内容をまとめることによって個人的には備忘録になるのでどのプロジェクトに行っても困りません(笑)
0 件のコメント:
コメントを投稿