Pythonを使用してWord文書に行番号を追加または削除する方法

Word文書の行番号機能は、詳細な文書編集や解析に非常に役立ちます。行番号を追加すると、文書の可読性と特定の行を引用する際の効率が大幅に向上し、読者に明確な指針を提供し、不要な混乱や誤解を避けることができます。しかし、文書の編集が完了し、公開や出版フォーマットに変換する際には、行番号が不要になることもあり、読書体験を妨げることさえあります。このような場合、行番号を削除する必要があります。

Pythonを使用してWord文書の行番号を簡単に管理することで、作業効率を向上させるだけでなく、文書の専門性と整然さを保つことができ、さまざまなシナリオに対応できます。本記事では、**Pythonを使用してWord文書に行番号を自動的に追加または削除する方法**について説明し、文書処理作業を簡便にします。

- **[PythonでWord文書に行番号を追加する方法](#pythonでword文書に行番号を追加する方法)**
- **[PythonでWord文書の行番号を削除する方法](#pythonでword文書の行番号を削除する方法)**

本記事で使用する方法には、[Spire.Doc for Python](https://www.e-iceblue.com/Download/Spire-Doc-Python.html)が必要です。PyPIからインストールできます：`pip install Spire.Doc`。

[無料ライセンスを申請](https://www.e-iceblue.com/TemLicense.html)

## PythonでWord文書に行番号を追加する方法

Word文書では、ページフォーマットはセクション単位で設定されます。このライブラリを使用して、`Document.Sections.get_Item()`メソッドで指定されたセクションを取得し、`Section.PageSetup`でページ設定を表す`PageSetup`オブジェクトを取得してページフォーマットを設定します。`PageSetup`クラスには、行番号を追加およびフォーマットするための一連のプロパティが含まれており、表示間隔、開始番号、およびテキストとの間隔を設定できます。

以下は、Word文書の行番号フォーマットを設定するプロパティの詳細です：

| プロパティ | 機能 |
| --- | --- |
| `LineNumberingStep` | 行番号の表示間隔を設定します。0に設定すると行番号は表示されません。 |
| `LineNumberingStartValue` | 行番号の開始番号を設定します。 |
| `LineNumberingDistanceFromText` | 行番号とテキストの間隔を設定します。 |
| `LineNumberingRestartMode` | 行番号の再開始ポイントを設定します。ページごと、セクションごと、または連続番号の設定が可能です。 |

以下は、Pythonを使用してWord文書の行番号を設定する手順です：

1. 必要なモジュールをインポートします。
2. `Document`オブジェクトを作成し、`Document.LoadFromFile()`メソッドを使用して行番号を設定するWord文書をロードします。
3. 文書内のセクションをループ処理します：
    - `Document.Sections.get_Item()`メソッドを使用して現在のセクションを取得します。
    - `Section.PageSetup`プロパティを使用して現在のセクションのページ設定を取得します。
    - `PageSetup.LineNumberingStep`プロパティを使用して行番号の表示間隔を設定します。
    - `PageSetup.LineNumberingStartValue`プロパティを使用して行番号の開始数値を設定します。
    - `PageSetup.LineNumberingDistanceFromText`プロパティを使用して行番号とテキストの間隔を設定します。
    - `PageSetup.LineNumberingRestartMode`プロパティを使用して行番号の再開始ポイントを設定します。
4. `Document.SaveToFile()`メソッドを使用して文書を保存します。
5. リソースを解放します。

**コード例：**
```python
from spire.doc import Document, LineNumberingRestartMode, FileFormat

# Documentクラスのインスタンスを作成
doc = Document()

# Wordドキュメントをロード
doc.LoadFromFile("Sample.docx")

# ドキュメント内のセクションを繰り返し処理
for i in range(0, doc.Sections.Count):
    # 現在のセクションを取得
    section = doc.Sections.get_Item(i)
    # そのセクションのページ設定を取得
    pageSetup = section.PageSetup
    # 行番号の間隔を設定
    pageSetup.LineNumberingStep = 1
    # 行番号の開始値を設定
    pageSetup.LineNumberingStartValue = 1
    # 行番号とテキストの間の距離を設定
    pageSetup.LineNumberingDistanceFromText = 20
    # 行番号のリスタートモードをセクションごとに設定
    pageSetup.LineNumberingRestartMode = LineNumberingRestartMode.RestartSection

# ドキュメントを保存
doc.SaveToFile("output/Wordドキュメントに行番号を追加.docx", FileFormat.Docx)
doc.Close()
```

追加結果
![PythonでWordドキュメントに行番号を追加](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/278784/33c39fd4-e539-efd5-10d7-ae3bb89967dd.png)

## PythonでWord文書の行番号を削除する方法

`PageSetup.LineNumberingStep`プロパティを0に設定すると、行番号が表示されなくなります。以下は手順です：

1. 必要なモジュールをインポートします。
2. `Document`オブジェクトを作成し、`Document.LoadFromFile()`メソッドを使用して行番号を削除するWord文書をロードします。
3. 文書内のセクションをループ処理します：
    - `Document.Sections.get_Item()`メソッドを使用して現在のセクションを取得します。
    - `Section.PageSetup.LineNumberingStep`プロパティを0に設定して行番号を削除します。
4. `Document.SaveToFile()`メソッドを使用して文書を保存します。
5. リソースを解放します。

**コード例：**
```python
from spire.doc import Document, FileFormat

# Documentクラスのインスタンスを作成
doc = Document()

# Wordドキュメントをロード
doc.LoadFromFile("output/Wordドキュメントに行番号を追加.docx")

# ドキュメント内のセクションを繰り返し処理
for i in range(0, doc.Sections.Count):
    # 現在のセクションを取得
    section = doc.Sections.get_Item(i)
    # 行番号の間隔を0に設定して行番号を削除
    section.PageSetup.LineNumberingStep = 0

# ドキュメントを保存
doc.SaveToFile("output/Wordドキュメント行番号を削除.docx", FileFormat.Docx)
doc.Close()
```

削除結果
![PythonでWordドキュメント行番号を削除](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/278784/f63b7025-9040-f405-088a-28cbb1c73306.png)

本記事では、Pythonを使用してWord文書に行番号を追加または削除する方法を紹介しました。

その他のWord文書処理のコツについては、[Spire.Doc for Pythonのチュートリアル](https://www.e-iceblue.com/Tutorials/Python/Spire.Doc-for-Python/Program-Guide/Spire.Doc-for-Python-Program-Guide-Content.html)をご覧ください。