2

pywin32を使用してWord文書を開き、いくつかのテキストボックスから値をコピーして、印刷しようとしています。コードとエラーは以下のとおりです。どんな助けでも大歓迎です。私は、このおそらく単純な質問に対する答えがないまま、ずっと長い間見てきました。

import win32com.client as win32

word = win32.gencache.EnsureDispatch('Word.Application')
word.Visible = 0
doc = word.Documents.Open('C:/testdoc.docm')
question2 = ActiveDocument.Variables("txtQuestion02").Value

print question2

トレースバック(最後の最後の呼び出し):ファイル "C:/ Users / rjudge / SkyDrive / Programming / SAP Assignment grading / Grade MS Word --Doc version.py"、line 18、in question2 = ActiveDocument.Variables( "txtQuestion02")。値NameError:名前'ActiveDocument'が定義されていません

バーニーの提案後の最新のエラー:トレースバック(最後の最後の呼び出し):ファイル "C:/ Users / Robert / SkyDrive / Programming / SAP Assignment grading / Grade MS Word --Doc version.py"、line 18、in question2=word。 ActiveDocument.Variables( "txtQuestion02")。Value

getattrのファイル"C:\ Python27 \ lib \ site-packages \ win32com \ client__init __。py"、行463、returnselfApplyTypes(* args)

ファイル"C:\ Python27 \ lib \ site-packages \ win32com \ client__init __。py"、456行目、ApplyTypesselfoleobj .InvokeTypes(dispid、0、wFlags、retType、argTypes、* args)、pywintypes.com_error:(-2147352567、'例外が発生しました。'、(0、u'Microsoft Word'、u'オブジェクトが削除されました。'、 u'C:\ Program Files(x86)\ Microsoft Office \ Office12 \ 1033 \ WDMAIN11.CHM'、25305、-2146822463)、なし)

プロセスは終了コード1で終了しました

WordでtxtQuestion02を設定する方法(テキストボックスのVBAコード):

`

プライベートサブtxtQuestion02_Change()

Me.txtAnswer02.Value = Me.txtQuestion02.Value

終了サブ`

ローカル変数を見ると、変数は正しい値を示しており、テキストボックスの内容を変更するとすぐに変更されます。txtQuestion02.valueは、本来の機能を果たしているようです。pywin32を使用してアクセスできないようです。今、私はPythonでテキストを操作できるテキストに印刷するというひどい道を進んでいます。しかし、それはまったく間違っています。

4

1 に答える 1

0

ActiveDocumentコードでは定義されていませんが、Word アプリケーション内で Document クラスのインスタンスとして定義されています (wordコード サンプルで呼び出されます)。代わりに試してください:

question2 = word.ActiveDocument.Variables("txtQuestion02").Value 
于 2013-01-31T19:03:39.117 に答える