> ## Documentation Index
> Fetch the complete documentation index at: https://docs.jinba.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Word文書処理

> 高度なWord文書処理とテキストハイライト

## 概要

Word文書処理ツールは、Microsoft Word文書（.docx）を操作するための高度な機能を提供します。これらのツールは、コンテンツ抽出、テキストハイライト、レビューコメントの追加、テンプレートからのAI文書生成に対応し、日本語、中国語、その他の国際文字セットを含む複数言語をサポートします。

## 主な機能

### WORD\_EXTRACT

* .docxファイルからテキスト、テーブル、画像、コメント（返信含む）を文書順に抽出
* 元の文書構造を保持した構造化配列として結果を返却
* テーブルはセル文字列の二次元配列として返却
* 日本語をはじめとする多言語に対応

### WORD\_TEXT\_HIGHLIGHT

* .docxファイル内の特定のテキストにカラーハイライトを適用
* 複数のハイライト色をサポート
* 国際文字エンコーディングサポート
* 正確なテキストマッチングとハイライト
* 文書フォーマットと構造を保持

### WORD\_TEXT\_COMMENT

* .docxファイル内の特定のテキストにレビューコメントを追加
* デフォルトでは対象テキストの全出現箇所にコメントし、`index` オプションでN番目の出現箇所のみ指定可能
* コメントの作成者名をカスタマイズ可能（デフォルト: `Jinbaflow`）
* 日本語・中国語などの多言語テキストにネイティブ対応

### WORD\_TEMPLATE\_GENERATE

* Wordテンプレート（.dotx/.docx）をもとに文書を生成
* LLMがテンプレートのスタイルと構造を解析し、指示に基づいてテンプレートのデザインルールに準拠したコンテンツを作成
* 構造化データ（テーブルデータやリストなど）を文書に組み込むことも可能

## 認証

ほとんどのWord文書処理ツールに認証は必要ありません。`WORD_TEMPLATE_GENERATE` はLLMを使用するため、config の `api_key` でOpenAI APIキーを任意に指定できます。省略した場合はJinbaクレジット（`{{ secrets.JINBA_CREDIT_KEY }}`）が使用されます。

## 例: 文書コンテンツの抽出

`WORD_EXTRACT` は .docx ファイルの `file_url` を受け取り、構造化された要素の配列を返します。各要素は以下のいずれかです：

* `{ "type": "text", "content": "..." }`
* `{ "type": "table", "content": [["セル", ...], ...] }`
* `{ "type": "image", "name": "..." }`
* `{ "type": "comment", "content": "...", "author": "...", "date": "...", "target": N, "replies": [...] }`

```yaml theme={null}
- id: upload_document
  name: upload_document
  tool: INPUT_FILE
  input:
    - name: description
      value: "コンテンツを抽出するWord文書をアップロード"

- id: extract_content
  name: extract_content
  tool: WORD_EXTRACT
  input:
    - name: file_url
      value: "{{steps.upload_document.result.file_url}}"
```

## 例: レビューコメントの追加

`WORD_TEXT_COMMENT` は `file_url`、対象テキストとコメントのマップである `items`、および任意の `author`（作成者名）を受け取ります。各項目の値は `{ "comment": "...", "index": N }` の形式で、任意の `index`（1始まり）を指定するとN番目の出現箇所のみにコメントし、省略すると全出現箇所にコメントします。出力の `result` はコメント追加後の .docx ファイルのURLです。

```yaml theme={null}
- id: add_review_comments
  name: add_review_comments
  tool: WORD_TEXT_COMMENT
  input:
    - name: file_url
      value: "{{steps.upload_document.result.file_url}}"
    - name: items
      value: |
        {
          "四半期売上": { "comment": "この数値を再確認してください。" },
          "締切": { "comment": "PMに確認してください。", "index": 2 }
        }
    - name: author
      value: "法務レビューBot"
```

## 例: テンプレートからの文書生成

`WORD_TEMPLATE_GENERATE` は `template_url`（.dotx または .docx）、作成するコンテンツを記述した `instructions`、および文書に組み込む任意の構造化データ `data`（テーブルデータやリストなど）を受け取ります。出力は生成された文書のURLである `result.url` です。

```yaml theme={null}
- id: upload_template
  name: upload_template
  tool: INPUT_FILE
  input:
    - name: description
      value: "Wordテンプレート（.dotx または .docx）をアップロード"

- id: generate_document
  name: generate_document
  tool: WORD_TEMPLATE_GENERATE
  input:
    - name: template_url
      value: "{{steps.upload_template.result.file_url}}"
    - name: instructions
      value: |
        新しい顧客ポータルに関するプロジェクト提案書を作成してください。
        エグゼクティブサマリー、マイルストーン、予算セクションを含めてください。
    - name: data
      value: |
        {
          "milestones": [
            { "name": "設計", "due": "2026-08-01" },
            { "name": "実装", "due": "2026-09-15" }
          ]
        }
```

## 例: 文書レビューとハイライト

`WORD_TEXT_HIGHLIGHT` は `file_url` と、各項目が `{ "text": "...", "color": "..." }` 形式の `highlights` 配列を受け取ります。テキストマッチングは、段落およびテーブルセル内での大文字小文字を区別しない部分一致です。出力の `result` はハイライト済み .docx ファイルの署名付きURLで、後続ステップからは `{{steps.highlight_key_terms.result}}` で参照できます。

```yaml theme={null}
- id: upload_document
  name: upload_document
  tool: INPUT_FILE
  input:
    - name: description
      value: "レビューとハイライト用のWord文書をアップロード"

- id: highlight_key_terms
  name: highlight_key_terms
  tool: WORD_TEXT_HIGHLIGHT
  input:
    - name: file_url
      value: "{{steps.upload_document.result.file_url}}"
    - name: highlights
      value: |
        [
          {
            "text": "重要",
            "color": "YELLOW"
          },
          {
            "text": "緊急",
            "color": "RED"
          },
          {
            "text": "締切",
            "color": "PINK"
          },
          {
            "text": "対応必要",
            "color": "GREEN"
          }
        ]
```

## 例: 契約書レビューワークフロー

```yaml theme={null}
- id: input_contract
  name: input_contract
  tool: INPUT_FILE
  input:
    - name: description
      value: "法的レビュー用の契約書文書をアップロード"

- id: extract_contract_text
  name: extract_contract_text
  tool: WORD_EXTRACT
  input:
    - name: file_url
      value: "{{steps.input_contract.result.file_url}}"

- id: identify_key_clauses
  name: identify_key_clauses
  tool: OPENAI_INVOKE
  config:
    - name: version
      value: gpt-4
  input:
    - name: prompt
      value: |
        この契約書を分析し、ハイライトすべき重要な条項を特定してください：
        
        {{steps.extract_contract_text.result}}
        
        以下を特定して返してください：
        1. 即座に注意が必要な重要な条項（RED ハイライト）
        2. 重要な財務条項（YELLOW ハイライト）
        3. 締切と期日（PINK ハイライト）
        4. 終了条項（BLUE ハイライト）
        5. 責任制限（GREEN ハイライト）
        
        テキスト、色、重要度レベルを含むJSON配列として返してください。

- id: apply_legal_highlights
  name: apply_legal_highlights
  tool: PYTHON_SANDBOX_RUN
  input:
    - name: code
      value: |
        import json
        import re
        
        # AI推奨事項を解析
        ai_response = """{{steps.identify_key_clauses.result.content}}"""
        
        # 標準的な法的用語ハイライトを定義
        legal_highlights = [
            {"text": "終了", "color": "BLUE"},
            {"text": "解約", "color": "BLUE"},
            {"text": "責任", "color": "GREEN"},
            {"text": "損害賠償", "color": "GREEN"},
            {"text": "違反", "color": "RED"},
            {"text": "債務不履行", "color": "RED"},
            {"text": "支払", "color": "YELLOW"},
            {"text": "期限", "color": "PINK"},
            {"text": "不可抗力", "color": "VIOLET"},
            {"text": "機密", "color": "TURQUOISE"},
            {"text": "知的財産", "color": "DARK_BLUE"}
        ]
        
        print(json.dumps(legal_highlights, indent=2, ensure_ascii=False))

- id: highlight_contract_terms
  name: highlight_contract_terms
  tool: WORD_TEXT_HIGHLIGHT
  input:
    - name: file_url
      value: "{{steps.input_contract.result.file_url}}"
    - name: highlights
      value: "{{steps.apply_legal_highlights.result.stdout}}"

- id: create_review_summary
  name: create_review_summary
  tool: OUTPUT_FILE
  input:
    - name: content
      value: |
        契約書レビューサマリー
        ====================
        
        文書: {{steps.input_contract.input.description}}
        レビュー日: {{date | format('YYYY-MM-DD HH:mm:ss')}}
        
        ハイライト凡例:
        - RED（赤）: 即座に注意が必要な重要な条項
        - YELLOW（黄）: 財務条項と支払義務
        - PINK（ピンク）: 締切と重要な期日
        - BLUE（青）: 終了と解約条項
        - GREEN（緑）: 責任と損害賠償条項
        - VIOLET（紫）: 不可抗力と例外的状況
        - TURQUOISE（ターコイズ）: 機密保持とプライバシー条項
        - DARK_BLUE（濃紺）: 知的財産条項
        
        主要所見:
        {{steps.identify_key_clauses.result.content}}
        
        推奨事項:
        1. すべての RED ハイライト条項を法務顧問と確認
        2. すべての PINK ハイライト日付が正確であることを確認
        3. YELLOW ハイライト財務条項が受け入れ可能であることを確認
        4. BLUE ハイライト終了条件を確認
        
        次のステップ:
        - 法務チームレビューが必要
        - ステークホルダー承認が必要
        - クライアント署名待ち
    - name: filename
      value: "contract_review_summary_{{date | format('YYYY-MM-DD')}}.txt"
    - name: fileType
      value: "txt"
```

## 例: 多言語文書処理

```yaml theme={null}
- id: upload_multilingual_doc
  name: upload_multilingual_doc
  tool: INPUT_FILE
  input:
    - name: description
      value: "日本語/中国語テキストを含む文書をアップロード"

- id: highlight_multilingual_terms
  name: highlight_multilingual_terms
  tool: WORD_TEXT_HIGHLIGHT
  input:
    - name: file_url
      value: "{{steps.upload_multilingual_doc.result.file_url}}"
    - name: highlights
      value: |
        [
          {
            "text": "重要",
            "color": "RED"
          },
          {
            "text": "緊急",
            "color": "PINK"
          },
          {
            "text": "注意",
            "color": "YELLOW"
          },
          {
            "text": "截止日期",
            "color": "PINK"
          }
        ]

- id: process_highlighted_content
  name: process_highlighted_content
  tool: GEMINI_INVOKE_WITH_FILE
  config:
    - name: version
      value: gemini-1.5-flash
    - name: token
      value: "{{secrets.GEMINI_API_KEY}}"
  input:
    - name: prompt
      value: |
        このハイライトされた多言語文書を分析し、以下を行ってください：
        1. すべてのハイライトされたテキストセクションを特定
        2. ハイライトされた用語の英語翻訳を提供
        3. ハイライト色別に要点をまとめる
        4. 注意が必要な重要な情報を記録
    - name: file_url
      value: "{{steps.highlight_multilingual_terms.result}}"
```

## 例: 教育コンテンツハイライト

```yaml theme={null}
- id: upload_study_material
  name: upload_study_material
  tool: INPUT_FILE
  input:
    - name: description
      value: "ハイライト用の教育文書をアップロード"

- id: extract_text
  name: extract_text
  tool: WORD_EXTRACT
  input:
    - name: file_url
      value: "{{steps.upload_study_material.result.file_url}}"

- id: identify_study_points
  name: identify_study_points
  tool: OPENAI_INVOKE
  config:
    - name: version
      value: gpt-4
  input:
    - name: prompt
      value: |
        この教育コンテンツを分析し、ハイライト用にテキストを分類してください：
        
        {{steps.extract_text.result}}
        
        カテゴリ:
        1. 重要な概念と定義（YELLOW）
        2. 重要な公式や方程式（GREEN）
        3. 重要な事実と日付（BLUE）
        4. 例とケーススタディ（VIOLET）
        5. 警告や注意事項（RED）
        
        各カテゴリでハイライトする具体的なテキストフレーズを返してください。

- id: create_study_highlights
  name: create_study_highlights
  tool: PYTHON_SANDBOX_RUN
  input:
    - name: code
      value: |
        # 教育ハイライトスキームを作成
        study_highlights = [
            # 重要な用語と定義
            {"text": "定義", "color": "YELLOW"},
            {"text": "定理", "color": "YELLOW"},
            {"text": "原理", "color": "YELLOW"},
            
            # 公式と方程式
            {"text": "公式", "color": "GREEN"},
            {"text": "方程式", "color": "GREEN"},
            {"text": "計算", "color": "GREEN"},
            
            # 重要な事実
            {"text": "重要", "color": "BLUE"},
            {"text": "注意", "color": "BLUE"},
            {"text": "覚える", "color": "BLUE"},
            
            # 例
            {"text": "例", "color": "VIOLET"},
            {"text": "ケーススタディ", "color": "VIOLET"},
            {"text": "たとえば", "color": "VIOLET"},
            
            # 警告と注意
            {"text": "警告", "color": "RED"},
            {"text": "注意", "color": "RED"},
            {"text": "避ける", "color": "RED"}
        ]
        
        import json
        print(json.dumps(study_highlights, indent=2, ensure_ascii=False))

- id: apply_study_highlights
  name: apply_study_highlights
  tool: WORD_TEXT_HIGHLIGHT
  input:
    - name: file_url
      value: "{{steps.upload_study_material.result.file_url}}"
    - name: highlights
      value: "{{steps.create_study_highlights.result.stdout}}"

- id: create_study_guide
  name: create_study_guide
  tool: OUTPUT_FILE
  input:
    - name: content
      value: |
        学習ガイド - ハイライト凡例
        ============================
        
        色分けシステム:
        
        🟡 YELLOW（黄） - 重要な概念と定義
        - 基本的な用語と概念
        - 暗記すべき重要な定義
        - 中核原理と理論
        
        🟢 GREEN（緑） - 公式と方程式
        - 数学的公式
        - 計算方法
        - 問題解決アプローチ
        
        🔵 BLUE（青） - 重要な事実と情報
        - 覚えるべき重要な事実
        - 試験の要点
        - 必須知識項目
        
        🟣 VIOLET（紫） - 例とケーススタディ
        - 実用的な例
        - 実世界での応用
        - ケーススタディ参照
        
        🔴 RED（赤） - 警告と注意
        - 避けるべき一般的な間違い
        - 重要な警告
        - 重要な安全情報
        
        学習のヒント:
        1. 最初に YELLOW ハイライトの定義に注目
        2. GREEN ハイライトの公式を練習
        3. BLUE ハイライトの事実を暗記
        4. VIOLET ハイライトの例を復習
        5. RED ハイライトの警告に特別注意
        
        文書処理日時: {{date | format('YYYY-MM-DD HH:mm:ss')}}
    - name: filename
      value: "study_guide_{{date | format('YYYY-MM-DD')}}.txt"
    - name: fileType
      value: "txt"
```

## ハイライト色オプション

`color` には以下の python-docx ハイライト色（大文字）のいずれかを指定します。省略した場合は `YELLOW` が使用されます。

| 色             | RGBコード  | 使用例       |
| ------------- | ------- | --------- |
| YELLOW        | #FFFF00 | 重要な概念、定義  |
| BRIGHT\_GREEN | #00FF00 | 公式、計算     |
| TURQUOISE     | #00FFFF | 注記、参照     |
| PINK          | #FF00FF | 締切、緊急項目   |
| BLUE          | #0000FF | 重要な事実、日付  |
| RED           | #FF0000 | 重要項目、警告   |
| DARK\_BLUE    | #000080 | 知的財産、特別条項 |
| TEAL          | #008080 | 補足的な参照    |
| GREEN         | #008000 | 責任、承認済み項目 |
| VIOLET        | #800080 | 例、ケーススタディ |

## 使用例

* **文書レビュー**: 法的契約、技術仕様書
* **教育材料**: 教科書、学習ガイド、研修資料
* **コンテンツ分類**: 重要度別の情報整理
* **品質保証**: 問題、修正、改善点のハイライト
* **協業**: チームレビュー用セクションのマーク
* **コンプライアンス**: 規制要件のハイライト
* **翻訳**: 翻訳やローカライゼーション用テキストのマーク
* **研究**: 発見や重要な洞察の分類

## ベストプラクティス

### ハイライト戦略

* 文書全体で一貫した色分けを使用
* チーム協業用のハイライト凡例を作成
* 視覚的混乱を避けるため色数を制限
* 本格処理前にサンプルテキストでハイライトをテスト

### 国際対応

* 非ラテン文字の符号化互換性を確認
* 一括処理前に多言語コンテンツでテスト
* アラビア語/ヘブライ語の右から左のテキスト方向を考慮
* Unicode互換のテキストマッチングを使用

### パフォーマンス最適化

* 大きな文書をセクション別に処理
* 処理時間短縮のため特定のテキストマッチングを使用
* 類似のハイライト操作をバッチ処理
* ハイライト後のファイルサイズを監視
