# scripts/ — 補助ツール

メイン変換パイプラインに依存せず実行できる、見積もり・診断用の補助スクリプト集。

---

## `diagnose.py` — 脱 MS Office 移行 事前診断

入力ディレクトリの VBA ソース（`.bas` / `.cls` / `.frm` / `.vba`）を走査し、
**LibreOffice Basic への移行可能性をスコアリング**します。

> 💡 これは何の役に立つのか：
> 「自社／自治体の VBA マクロ資産は LibreOffice にどれくらい移行できるのか？」を、
> IT 委員会・首長・上司に出すための **1 ページの数字** を作るための診断ツールです。

### 使い方

```bash
# CSV のみ
python scripts/diagnose.py /path/to/vba_sources

# HTML サマリも生成（議事録・提案書に貼れる）
python scripts/diagnose.py /path/to/vba_sources --html report.html

# 出力先指定
python scripts/diagnose.py /path/to/vba_sources -o estimate.csv
```

出力例（stderr）：

```
走査中: 87 ファイル...
[OK] CSV: /work/estimate.csv

=== 集計 ===
  AUTO   : 38 ファイル
  REVIEW : 31 ファイル
  MANUAL : 18 ファイル
  概算工数: 96.0 時間 (≒ 12.0 人日)

  非互換 API Top 5:
    - Range(...) → getCellByPosition / getCellRangeByName: 47
    - WorksheetFunction.* → Calc は同等関数を別経路で公開: 22
    - Selection.* → DispatchHelper 経由のメソッド呼出に書換: 19
    - UserForm → Basic IDE のダイアログ再構築（FormControl 系）: 8
    - ADO/DAO → SDBC (LibreOffice の DB API) への置換: 6
```

### 判定ルール

| カテゴリ | 含むもの | 推定工数 |
|---|---|---|
| **AUTO** | 基本型宣言・MsgBox・If/For/Do/Select・文字列/数値/日付組込関数 | 1 分/件 |
| **REVIEW** | Range / Cells / Selection / ActiveSheet / On Error / CreateObject / GetObject | 1-4 分/件 |
| **MANUAL** | UserForm / ActiveX / PivotTable / Chart / Outlook 連携 / ADO・DAO / Win32 API 宣言 | 3-6 分/件 |

ファイル単位の分類：
- MANUAL が 1 つでもあれば **MANUAL**
- REVIEW がある（MANUAL 無し）なら **REVIEW**
- それ以外は **AUTO**

### 出力 CSV のスキーマ

```
relative_path, loc, category,
auto_hits, review_hits, manual_hits,
estimated_effort_minutes, top_findings
```

UTF-8 BOM 付き / CRLF（Excel での文字化け回避）

### 注意事項

- 静的解析のみ。UserForm のレイアウト・Win32 API 依存・外部 DLL 等は別途検証してください
- 文字コードは UTF-8 / SJIS / CP932 / Latin-1 を順に試行
- VBA の行コメント (`'`) は除外、文字列リテラル中のキーワードも除外（誤検出回避）
- 最終工数は **必ず人手レビュー + テスト工数加算** で確定してください

### 自治体・教育機関向けの活用シナリオ

> 「Microsoft Office ライセンスを LibreOffice に置き換えれば年 ¥XXX 万円削減できる」
> という提案には、**「既存 VBA 資産がどれだけ動くのか」** の数値根拠が必須です。
> 本スクリプトはその初期見積もり材料を 5 分で作ります。

### 商用利用

- 個人・社内 PoC は無料（MIT）
- 自治体・教育機関の **マクロ資産棚卸し・移行レポート受託**（A4 PDF 納品 + 推奨移行計画）は応相談
- 連絡先: highdefinitionaudiodriver@gmail.com
