#概要
pywin32(win32com)を利用してPythonでWordを操作します。
この記事ではWordオブジェクトモデルを紹介して、次回に具体的なコードを示します。
#Wordオブジェクトモデル
基本部分を抜粋して図/表にしています。
- 1つの文/単語/文字はRangeオブジェクト
-
ParagraphはRangeオブジェクトではない
- RangeプロパティからRangeオブジェクトを取得できる
オブジェクト | 説明 | リンク |
---|---|---|
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 |
- Sentences(n)で取り出されるのは1つの文を表す「Rangeオブジェクト」-->Sentences(n).Textでテキスト取得
- Paragraphs(n)で取り出されるのは「Paragraphオブジェクト」-->Rangeプロパティを使って、Rangeオブジェクトを取得したあと、Paragraphs(n).Range.Textでテキスト取得
#PlantUMLソース
Wordオブジェクトモデルは、PlantUMLで作成しています。
下記URLからブラウザだけで描画できます。
編集画面 http://plantuml.com/plantuml/
とのことなので、PlantUML Web Serverもおいておきます。
@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
#関連
Python(pywin32)でWordを操作する[1] - Wordオブジェクトモデル
Python(pywin32)でWordを操作する[2] - Wordを起動/終了する
Python(pywin32)でWordを操作する[3] - 新規ドキュメント作成
Python(pywin32)でWordを操作する[4] - 文字列を入力/取得/削除する
Python(pywin32)でWordを操作する[5] - ドキュメントをファイルに保存する、Wordのオプション変更
Python(pywin32)でWordを操作する[6] - 特定のタイトルが付いているウィンドウの操作
Python(pywin32)でWordを操作する[7] - 既存文書を開く/閉じる(Documents.Open(), Document.Close())
Python(pywin32)でWordを操作する[8] - 段落単位の文字列取得, 統計(ページ数, 段落数,etc)取得
#参考
- オブジェクト モデル - MSDN
- PyWin32 Documentation - Tim Golden's Stuff
- VOV(VBA, OLE, VBScript)による自動操作 - スクリプト系プログラミング言語ファンのじたばた
- COM(Component Object Model)についてふわっと学習していく その1 導入編 - Qiita
- VBScriptでWordファイルのページ数一覧を作ってみる - Segmentation Fault
- Office Space Microsoft Word 文書でテキストを検索、置換する
- みんなのワードマクロ
- テキストでUMLを書く - Qiita