============================================================
  VBA2LOBasic v0.1.0 説明書
  VBA → LibreOffice Basic 自動変換ツール（GUI / CLI 対応）
============================================================

■ ソフト名
  VBA2LOBasic

■ バージョン
  0.1.0

■ 作者名
  highdefinitionaudiodriver

■ 連絡先
  GitHub: https://github.com/highdefinitionaudiodriver/VBA2LOBasic
  バグ報告・機能要望: highdefinitionaudiodriver@gmail.com

■ 動作環境
  対応OS: Windows 10 / 11（64bit推奨）
          macOS, Linux（ソースから実行可）
  必要メモリ: 256MB以上
  ディスク容量: 約40MB（EXE単体）
  ランタイム: 不要（EXE版は同梱済み。ソース版はPython 3.10以上）

■ ソフト種別
  フリーソフト（MITライセンス）

■ カテゴリ
  プログラミング > 変換・移行ツール

■ 概要
  VBA2LOBasicは、Microsoft Office（Excel, Word, PowerPoint）の
  VBAマクロコードをLibreOffice Basicソースコードに自動変換する
  デスクトップアプリケーションです。

  単純な行単位の変換ではなく、VBAソースコードを完全にパースして
  AST（抽象構文木）を構築し、VBAのCOMオブジェクトモデルを
  LibreOfficeのUNO APIへ変換します。

  GUIとCLIの両方に対応しており、GUIで手軽に変換することも、
  CLIでCI/CDパイプラインに組み込んで自動化することも可能です。

■ 主な機能

  【変換機能】
  ・VBA → LibreOffice Basic の自動変換
  ・Excel VBA (Calc UNO API), Word VBA (Writer UNO API),
    PowerPoint VBA (Impress UNO API) の3アプリ対応
  ・AST（抽象構文木）ベースの高精度変換
  ・シンボルテーブル＆型推論エンジンによる型情報を利用した
    動的UNO APIマッピング
  ・VBA関数 → LibreOffice Basic関数の自動マッピング
  ・Win32 API Declare文 → クロスプラットフォーム代替の変換
  ・FileSystemObject → ネイティブファイルI/Oへの変換
  ・Confidence Score（変換確実度 1-100）による品質評価
  ・自動変換カバレッジ（%）と手動修正必要行の一覧レポート
  ・Officeファイルから直接VBA抽出（.xlsm, .docm, .pptm対応）
  ・再帰的サブフォルダ一括変換

  【出力形式】
  ・.bas テキストファイル出力
  ・.xba XML形式（LibreOfficeマクロライブラリ形式）出力
    - Module.xba（各モジュール）
    - script.xlb（ライブラリインデックス）
    - dialog.xlc（ダイアログインデックス）

  【UserForm変換】
  ・VBA UserForm (.frm) → LibreOffice Dialog (.xdl) XML変換
  ・12種のコントロール対応
    （CommandButton, TextBox, Label, CheckBox, OptionButton,
     ComboBox, ListBox, Frame, Image, ScrollBar, SpinButton,
     ProgressBar）
  ・座標・サイズのTwips→ダイアログ単位自動変換
  ・イベントリスナーの自動生成

  【パーサー】
  ・95以上のVBAキーワード対応の字句解析器
  ・再帰下降パーサーによる完全なAST構築
  ・30以上のASTノードタイプ
  ・エラー回復機能付き（パースに失敗した行はRawCodeとして保持）

  【変換パイプライン（7段階）】
  1. SyntaxTransformer（型サフィックス除去、属性除去）
  2. FunctionTransformer（関数名マッピング）
  3. ObjectModelTransformer（COM→UNO API変換、型推論対応）
  4. FileSystemTransformer（FSO→ネイティブI/O変換）
  5. APIDeclareTransformer（Win32 API→クロスプラットフォーム変換）
  6. UserFormTransformer（UserForm→Dialog変換）
  7. CommentAnnotator（未変換コードのTODOアノテーション）

  【Confidence Score システム】
  ・各変換にスコアを付与（1-100点）
    - Exact (100): 完全な1:1マッピング
    - Equivalent (90): 機能的に等価
    - Alternative (70): 代替手法での変換
    - Partial (50): 部分的変換
    - Stub (30): スタブ/プレースホルダ生成
    - TODO (10): TODOコメントのみ
    - Unsupported (0): 変換不可
  ・自動変換カバレッジ率の算出
  ・手動修正が必要な行のリストアップ

  【GUI】
  ・左右分割パネル（VBA入力 / LO Basic出力）
  ・変換レポートタブ（警告・エラー・Confidence）
  ・ファイル / ディレクトリの読み込み
  ・.xba ライブラリエクスポート
  ・.frm → .xdl 変換
  ・クリップボードからの貼り付け変換

  【CLI モード】
  ・convert: VBA → LibreOffice Basic 変換
  ・extract: VBA抽出のみ（変換なし）
  ・report: ドライラン（Confidenceスコア付きレポート）
  ・convert-frm: UserForm → Dialog (.xdl) 変換
  ・gui: GUI起動

■ インストール方法

  【EXE版（推奨・簡単）】
  1. VBA2LOBasic.exe をダウンロード
  2. 任意のフォルダに配置（インストーラ不要）
  3. ダブルクリックでGUI起動
  ※ Pythonやその他ランタイムのインストールは不要です。

  【ソース版】
  1. Python 3.10 以上をインストール
  2. コマンドプロンプト（またはターミナル）で以下を実行:
     git clone <repository_url>
     cd VBA2LOBasic
     pip install .

■ 使い方

  【GUI モード（デフォルト）】
  1. VBA2LOBasic.exe をダブルクリック（またはpython main.pyで起動）
  2. 「Open File」で変換対象のファイルを選択
     - .bas / .cls / .frm ファイル
     - Officeファイル（.xlsm, .docm, .pptm）
  3. 「Source App」でソースアプリを選択（auto = 自動検出）
  4. 「Convert (F5)」で変換実行
  5. 左パネルにVBA入力、右パネルにLibreOffice Basic出力
  6. 「Conversion Report」タブでConfidenceスコアを確認
  7. 「Save Output」で .bas ファイルとして保存
  8. 「Export as .xba Library」で LibreOfficeマクロライブラリとして保存

  キーボードショートカット:
    Ctrl+O          ファイルを開く
    Ctrl+S          出力を保存
    F5 / Ctrl+Enter 変換実行

  【CLI モード】
  基本:
    VBA2LOBasic.exe convert <入力ファイル> -o <出力先>

  例:
    VBA2LOBasic.exe convert macro.xlsm -o output/
    VBA2LOBasic.exe convert input/ -o output/ --recursive
    VBA2LOBasic.exe convert macro.bas -o output/ --format xml
    VBA2LOBasic.exe report macro.bas --json
    VBA2LOBasic.exe extract document.docm -o vba_output/
    VBA2LOBasic.exe convert-frm UserForm1.frm -o dialog.xdl

  主なオプション（convert コマンド）:
    -o, --output     : 出力ファイル/ディレクトリ
    --source-app     : ソースアプリ (excel/word/powerpoint/auto)
    --format         : 出力形式 (bas/xml)
    --recursive      : ディレクトリを再帰的に処理
    --report         : 変換レポートを表示
    --report-json    : レポートをJSON形式で出力

  report コマンド:
    --json           : JSON形式で出力
    （Confidenceスコア、カバレッジ率、手動修正行を表示）

■ 対応する変換

  【サポートするVBA構文】
  ・プロシージャ: Sub, Function, Property Get/Let/Set
  ・制御フロー: If/ElseIf/Else, Select Case, For/For Each,
               Do/While/Wend, With, GoTo/GoSub
  ・変数宣言: Dim, Const, Static, Public, Private
  ・配列: 固定配列、動的配列、ReDim Preserve
  ・ユーザ定義型: Type, Enum
  ・エラー処理: On Error GoTo, Resume Next
  ・ファイルI/O: Open, Close, Line Input, Print #

  【オブジェクトモデル変換（73+パターン）】
  Excel VBA → Calc UNO API:
  ・ActiveWorkbook → ThisComponent
  ・ActiveSheet → ThisComponent.getCurrentController().getActiveSheet()
  ・Range("A1").Value → oCell.getValue()
  ・Sheets.Count → ThisComponent.Sheets.getCount()
  ・Application.ScreenUpdating → lockControllers()/unlockControllers()
  他多数

  Word VBA → Writer UNO API:
  ・ActiveDocument → ThisComponent
  ・Selection → ThisComponent.getCurrentController().getViewCursor()
  他

  PowerPoint VBA → Impress UNO API:
  ・ActivePresentation → ThisComponent
  他

■ ファイル構成（EXE版）
  VBA2LOBasic.exe      - 実行ファイル（これだけで動作します）
  VBA2LOBasic説明書.txt - 本ドキュメント

■ ファイル構成（ソース版）
  main.py              - エントリポイント（CLI + GUI起動）
  src/vba2lobasic/
    __init__.py         - パッケージ情報
    cli.py              - CLIインタフェース（Click）
    gui.py              - GUIインタフェース（tkinter）
    main.py             - 変換オーケストレーター
    parser/
      ast_nodes.py      - ASTノード定義（30+型）
      lexer.py          - 字句解析器（95+キーワード）
      vba_parser.py     - 再帰下降パーサー
      extractor.py      - Officeファイルからのvba抽出
    transformer/
      analyzer.py       - シンボルテーブル＆型推論エンジン
      base.py           - Visitor/Pipeline基底クラス
      syntax.py         - 構文変換
      functions.py      - 関数マッピング
      object_model.py   - COM→UNOオブジェクトモデル変換
      api_declare.py    - Win32 API変換
      filesystem.py     - FileSystemObject変換
      userform.py       - UserForm変換＆.frm→.xdlパーサー
      comments.py       - TODOアノテーション
    emitter/
      lo_basic_writer.py - AST→LO Basicテキスト出力
      lo_xml_writer.py   - .xba / script.xlb / dialog.xlc XML出力
    rules/               - JSON変換ルール
      syntax.json, functions.json, excel_to_calc.json,
      word_to_writer.json, ppt_to_impress.json,
      api_declares.json, controls.json
    utils/
      diagnostics.py     - Confidence Score＆レポート
  tests/                 - テストスイート（109件、pytest対応）
  pyproject.toml         - パッケージメタデータ
  VBA2LOBasic.spec       - PyInstaller ビルド定義

■ アンインストール方法
  フォルダごと削除してください。
  レジストリへの書き込みは一切行いません。

■ 免責事項
  本ソフトウェアの使用により生じたいかなる損害に対しても、
  作者は一切の責任を負いません。
  自己責任にてご利用ください。

  変換結果は自動生成されたものであり、動作を保証するものでは
  ありません。変換後のコードは必ず手動で確認・テストしてください。
  特にConfidence Scoreが低い（80未満）の箇所は重点的に
  レビューしてください。

■ 著作権・ライセンス
  Copyright (c) 2026 highdefinitionaudiodriver
  MITライセンスに基づき自由に使用・改変・再配布できます。
  詳細はLICENSEファイルを参照してください。

■ 変更履歴

  v0.1.0 (2026-03-28)
    - 初版リリース
    - VBA完全パーサー（95+キーワード、30+ASTノードタイプ）
    - 7段階変換パイプライン
    - Excel/Word/PowerPoint VBA → LibreOffice Basic対応
    - シンボルテーブル＆型推論エンジン
    - Confidence Score（変換確実度）システム
    - .xba LibreOfficeマクロライブラリ形式エクスポート
    - UserForm (.frm) → LibreOffice Dialog (.xdl) 変換
    - Win32 API → クロスプラットフォーム代替変換
    - FileSystemObject → ネイティブI/O変換
    - GUI（tkinter）＆ CLI（Click）対応
    - PyInstaller による EXE 生成対応
    - テストスイート（109件、pytest対応）

============================================================
