Python(pywin32)でWordを操作する[1] - Wordオブジェクトモデル

概要

pywin32(win32com)を利用してPythonでWordを操作します。

この記事ではWordオブジェクトモデルを紹介して、次回に具体的なコードを示します。

関連

Python(pywin32)でWordを操作する[1] - Wordオブジェクトモデル
Python(pywin32)でWordを操作する[2] - Wordを起動/終了する
Python(pywin32)でWordを操作する[3] - 新規ドキュメント作成
Python(pywin32)でWordを操作する[4] - 文字列を入力/取得/削除する

Wordオブジェクトモデル

基本部分を抜粋して図/表にしています。

  • 1つの文/単語/文字はRangeオブジェクト
  • ParagraphはRangeオブジェクトではない

word_obj.png

オブジェクト 説明 リンク
Application Wordアプリを表すオブジェクト msdn
Documents Documentのコレクション msdn
Document 1つの文書を表すオブジェクト msdn
Paragraphs Paragraphのコレクション msdn
Paragraph 1つの段落を表すオブジェクト
段落に含まれる文書を表すRangeを返すプロパティを持つ
msdn
Sentences 1つの文を表すRangeのコレクション msdn
Words 1つの単語を表すRangeのコレクション msdn
Characters 1つの文字を表すRangeのコレクション msdn
Range 隣接する領域を表すオブジェクト msdn


example.PNG

example_test.PNG

  • Sentences(n)で取り出されるのは1つの文を表す「Rangeオブジェクト」-->Sentences(n).Textでテキスト取得
  • Paragraphs(n)で取り出されるのは「Paragraphオブジェクト」-->Rangeプロパティを使って、Rangeオブジェクトを取得したあと、Paragraphs(n).Range.Textでテキスト取得

PlantUMLソース

vscode_word_obj.PNG

Wordオブジェクトモデルは、PlantUMLで作成しています。

word_obj.wsd
@startuml

hide empty members
hide circle
skinparam shadowing false

Application -d- Documents
Documents o-r- Document

Document -d- Paragraphs
Document -d- Sentences
Document -d- Words
Document -d- Characters

Paragraphs o-d- Paragraph

Sentences  o-d- Range
Words      o-d- Range
Characters o-d- Range
Paragraph  -d- Range

Paragraphs -r[hidden]- Sentences
Sentences -r[hidden]- Words
Words -r[hidden]- Characters

@enduml

参考

Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account log in.