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;
しかし、「アイテム」はコレクションの一部ではないと言われました。
アイデアが尽きた。