Excel VBAのステップ数を数えるツールを探そうとおもったけれども、勉強のために自作してみる。
ステップ数を数える方法について
ソースコードから以下の情報を得たい。
- 全体のステップ数
- 実行ステップ数
- コメント行
- 空白行
こんな出力結果を得たい。
--------------------------
FileName Exxecute
--------------------------
hogehoge.cls 10
hugahuga.bas 10
--------------------------
Sum 20
--------------------------
サンプルを探してみた。以下のサイトのコードが良さそうだ。
テンプレートエンジンをつかってみる
テンプレートエンジンとは、データとテンプレートからドキュメントを作成するもの。
VBAで利用できるテンプレートエンジンは、「Mini Templator」が唯一の選択肢のようだ。
Mini Templatorについて
Mini TemplatorはHTML用のテンプレートエンジン。 VBAだけではなくて、Java, PHPでもつかえる模様。オープンソース。
上記サイトからVBA用のファイル一式をダウンロード。 なかにあるMiniTemplator.clsをインポートする。
ドキュメントは以下。
Mini Templatorのつかいかた
キホンは以下の4ステップ
- テンプレートエンジン生成
Dim templator As New MiniTemplator
- テンプレート読み込み
templator.ReadTemplateFromFile STEPCOUNTE_TEMPLATE_PATH
- データ入力
3.1 変数代入 3.2 ブロック代入
templator.SetVariable "filename", vbcComp.Name
templator.SetVariable "execute", vbcLine
templator.SetBlock "file"
- データを文字列 or ファイルに出力
Debug.Print templator.GenerateOutputToString
テンプレートを用意
こんな感じでテンプレート用意。
-------------------------
FileName} Execute
-------------------------
<!-- $BeginBlock file --> ${filename} ${execute}
<!-- $EndBlock file -->-------------------------
<!-- $BeginBlock sum --> Sum ${execute}
<!-- $EndBlock sum -->-------------------------
コード
2021.12.追記. コードなくなりました.
出力結果
-----------------------
FileName Execute
-----------------------
ThisWorkbook 39
Sheet2 0
Calc 3
Calc_spec 11
FileManager_spec 47
InlineRunner 112
MiniTemplator 608
mdlPrintF 282
SpecDefinition 62
SpecExpectation 164
SpecRunner 4
SpecSuite 42
StepCounter 51
FileManager 129
-----------------------
Sum 1554
-----------------------