私は現時点でかなり困惑しています。Can I use Win32 COM to replace text inside a word document? に基づく (Python で) テンプレート ワード doc からワード doc を生成する単純なテンプレート システムをコーディングすることができました。
私の問題は、「テキストフィールド」のテキストがそのように見つからないことです。Word 自体にも、すべてを検索するオプションはありません。実際には、「メイン ドキュメント」と「テキスト フィールド」のどちらかを選択する必要があります。Windows の世界に慣れていないので、VBA ドキュメントを参照しようとしましたが、助けが見つかりませんでした (おそらく「テキスト フィールド」が非常に一般的な用語であるため)。
word.Documents.Open(f)
wdFindContinue = 1
wdReplaceAll = 2
find_str = '\{\{(*)\}\}'
find = word.Selection.Find
find.Execute(find_str, False, False, True, False, False, \
True, wdFindContinue, False, False, False)
while find.Found:
t = word.Selection.Text.__str__()
r = process_placeholder(t, answer_data, question_data)
if type(r) == dict:
errors.append(r)
else:
find.Execute(t, False, True, False, False, False, \
True, False, False, r, wdReplaceAll)
これは私のコードの関連部分です。私は今ではすべての問題を自分で回避することができました (ヒント: 文字列を 256 文字以上に置き換えたい場合は、クリップボードなどを介して行う必要があります...)