我有一个小方法试图枚举 Word 文档中的字段。自从我不得不做这种事情以来已经过去了很多时间,现在我不记得如何正确地做这件事了。
下面的代码使用的是 OleVariants,我已经尝试了一段时间,谷歌搜索没有找到 Delphi 解决方案。任何人都可以建议如何解决这个问题?
代码的最终目标是识别特定类型的字段并使用该信息删除该字段。
procedure TForm2.Button1Click(Sender: TObject);
var
I: Integer;
begin
If OpenDialog1.Execute Then
Begin
WordApp := CreateOLEObject( 'Word.Application' );
WordDocument := WordApp.Documents.Open( OpenDialog1.FileName, EmptyParam,
EmptyParam, EmptyParam,
EmptyParam, EmptyParam,
EmptyParam, EmptyParam,
EmptyParam, EmptyParam,
EmptyParam, EmptyParam,
EmptyParam, EmptyParam,
EmptyParam );
for I := 0 to WordDocument.Fields.Count - 1 do
begin
ShowMessage( WordDocument.Fields[ I ].Code );
end;
End;
end;
顺便说一句,我知道这段代码让 Word 处于打开状态等等。
暂时这很好,我目前主要关心的是让事情正常工作。
我也尝试将循环更改为:
for I := 0 to WordDocument.Fields.Count -1 do
begin
ShowMessage( WordDocument.Fields.Item( I ).Code );
end;
但没用,告诉我“项目”不是收藏的一部分。
我已经没有想法了。