<Vbadoc 中間ファイル仕様>
本書は、Vbadoc 機能で、使用する中間ファイルの仕様について纏めるものである。中間ファイルは、パース結果の保存出力ファイルで、ドキュメント出力の際の、入力ファイルとなるものである。

<基本仕様>• 中間ファイルは、パース処理の結果出力ファイルである。出力形式は、一般的な、テキスト••ファイルとし、メモ帳などのアプリで編集できるものとする。
中間ファイルは、vbadoc 機能で、ドキュメント出力する際の、入力ファイルとする。すなわ
ち、中間ファイルを直接編集することで、出力するドキュメント内容が編集できる仕様である。
これにより、出力内容を変更したいときに、再度、パース処理をやり直す必要がなくなる。
中間ファイルは、以下のファイル群とする。各ファイルの保存書式については、後述する。
SYSTEM_outline.txt
module_list.txt
ThisWorkbook_outline.txt
モジュール名_outline.txt
モジュール名_depend_list.txt
モジュール名_api.txt
モジュール名_const.txt
モジュール名_enum.txt
モジュール名_type.txt
モジュール名_var.txt
モジュール名_proc.txt•… システム概要… モジュールリスト… ThisWorkbook モジュールの概要… モジュールの概要(モジュールごと)… 依存モジュールリスト(モジュールごと)… API 宣言情報(モジュールごと)… 定数定義情報(モジュールごと)… 列挙値型定義情報(モジュールごと)… 構造体型定義情報(モジュールごと)… モジュール変数宣言情報(モジュールごと)… 関数情報(モジュールごと)

パース結果の中間ファイルは、vbadoc 機能を実装したブック直下の、tmp フォルダに保存する仕様とする。

<ファイル仕様>• システム概要

システム概要を記述するファイルの書式レイアウトは以下とする。1 段落のデータを改行で区切ったテキストデータである。例えば、概要の説明文が、3 段落の文章であれば、3 行のテキストデータとなる仕様である。また、EOF は、ファイルの終了(End Of File)の略である。

ファイル名:SYSTEM_outline.txt
段落:0
段落:1
段落:2
…
…
…
段落:n-1
段落:n【EOF】•モジュールリスト
VBA プログラムが記述されているモジュールの一覧を保存するファイルである。1 モジュー
ル名が 1 行に記述されているテキスト形式のファイルデータである。

ファイル名:module_list.txt
モジュール名:1
モジュール名:2…
…
…
モジュール名:n-1
モジュール名:n【EOF】

•ThisWorkbook モジュールの概要
ThisWorkbook モジュールの概要を記述するファイルの書式レイアウトは以下とする。1 段落のデータを改行で区切ったテキストデータである。例えば、3 段落の文章であれば、3 行のテキストデータとなる仕様である。

ファイル名:ThisWorkbook_outline.txt
段落:0
段落:1
段落:2
…
…
…
段落:n-1
段落:n【EOF】•モジュールの概要
各モジュールの概要を記述するファイルの書式レイアウトは以下とする。1 段落のデータを改行で区切ったテキストデータである。例えば、3 段落の文章であれば、3 行のテキストデータとなる仕様である。

ファイル名:モジュール名_outline.txt
段落:0
段落:1
段落:2…
…
…
段落:n-1
段落:n
【EOF】

•

依存モジュールリスト
各モジュールが依存しているモジュールの一覧を記述するファイルである。ファイル名に該当モジュール名が接頭辞として付与される。依存モジュール名は、1 行に 1 つのモジュール名を記述する仕様である。

ファイル名:モジュール名_depend_list.txt
依存モジュール名:1依存モジュール名:2…
…
…
依存モジュール名:n-1依存モジュール名:n【EOF】•API 宣言情報
各モジュールで宣言されている API の情報を保存するファイルである。ファイル名には、該当モジュール名が接頭辞として付与される。ファイルに保存するデータは以下の 2 種類が存在する。

1. API 基本情報 … 呼び出し名、アクセス性、戻り値の型、戻り値の説明、DLL、エイリアス名、引数の数、説明の 8 フィールドが CSV 形式で保存される。
2. 引数情報 … 引数名、引数の型、引数の説明の 3 フィールド。CSV 形式のデータが、API基本情報に続いて、引数の数だけ保存される。

ファイル名:モジュール名_api.txt

API 基本情報:1
引数情報:1…
…
引数情報:nAPI 基本情報:2…
API 基本情報:3…
…
…
API 基本情報:n
【EOF】

•

定数定義情報各モジュールで定義されている定数の情報を保存するファイルである。ファイル名には、該当モジュール名が接頭辞として付与される。ファイルに保存するデータには、以下の定数情報が、モジュール内に定義されている定数の数だけ存在する。
定数情報 … 定数名、アクセス性、定数値、定数の説明の 4 フィールド。CSV 形式で保存される。

ファイル名:モジュール名_const.txt
定数情報:1
定数情報:2
定数情報:3…
…
…
定数情報:n-1
定数情報:n【EOF】•

列挙値型定義情報
各モジュールで定義されている列挙値型の情報を保存するファイルである。ファイル名には、該当モジュール名が接頭辞として付与される。ファイルに保存するデータは以下の 2 種類が存在する。

1. 列挙値型基本情報 … 列挙型名、アクセス性、列挙定数値の数、列挙値型説明の 4 フィールドが CSV 形式で保存される。
2. 列挙定数値情報 … 列挙定数値名、列挙定数値、列挙定数値説明の 3 フィールド。CSV 形式のデータが、列挙値型基本情報に続いて、列挙定数値の数だけ保存される。

ファイル名:モジュール名_enum.txt
列挙値型基本情報:1列挙定数値情報:1…
…
列挙定数値情報:n列挙値型基本情報:2…
列挙値型基本情報:3…
…
…
列挙値型基本情報:n
【EOF】

•

構造体型定義情報
各モジュールで定義されている構造体型定義情報を保存するファイルである。ファイル名には、該当モジュール名が接頭辞として付与される。ファイルに保存するデータは以下の 2 種類が存在する。

1. 構造体型基本情報 … 構造体型名、アクセス性、メンバー変数の数、構造体型説明の 4フィールドが CSV 形式で保存される。
2. メンバー変数情報 … メンバー変数名、メンバー変数のデータ型、メンバー変数の説明。の 3 フィールド。CSV 形式のデータが、構造体型基本情報に続いて、メンバー変数の数だけ保存される。

ファイル名:モジュール名_type.txt
構造体型基本情報:1

メンバー変数情報:1…
…
メンバー変数情報:n構造体型基本情報:2…
構造体型基本情報:3…
…
…
構造体型基本情報:n
【EOF】

•

モジュール変数宣言情報
各モジュールで宣言されているモジュール変数の情報を保存するファイルである。ファイル名には、該当モジュール名が接頭辞として付与される。ファイルに保存するデータには、以下の変数情報が、モジュール内に定義されている変数の数だけ存在する。
変数情報 … 変数名、アクセス性、変数のデータ型、変数説明の 4 フィールド。CSV 形式で保存される。

ファイル名:モジュール名_var.txt
変数情報:1
変数情報:2
変数情報:3…
…
…
変数情報:n-1
変数情報:n
【EOF】

•

関数情報
各モジュールで定義されている関数の情報を保存するファイルである。ファイル名には、該当モジュール名が接頭辞として付与される。ファイルに保存するデータは以下の 2 種類が存在する。

1. 関数基本情報 … 関数名、アクセス性、戻り値の型、戻り値の説明、引数の数、関数の説
明、の 6 フィールドが CSV 形式で保存される。
2. 引数情報 … 引数名、引数のデータ型、参照/値渡し、省略可、省略時のデフォルト値、引数の説明、の 6 フィールド。CSV 形式のデータが、関数基本情報に続いて、引数の数だけ保存される。

ファイル名:モジュール名_proc.txt
関数基本情報:1

引数情報:1…
…
引数情報:n関数基本情報:2…
関数基本情報:3…
…
…
関数基本情報:n【EOF】

以上