こんにちは。
Wordのファイルを開いて、こちらの指定した文字列がないか検索をしたいのですが、何か良い方法はないのでしょうか?
Editに入力→パスの指定→ボタンをクリック→ヒットした回数を表示 という流れにしたいのです。
検索をしたらVBでの例は見つかったのですが・・・
http://www.users.gr.jp/ml/archive/vb/3131.asp
(↑勝手にリンクを貼っていけなかったら削除して下さい。)
よろしければアドバイスお願いします。
TWordApplicationを使えば、ほぼ同じ記述でできますよ。
そのURLを例にしてみれば、
var
varTrue: OleVariant;
begin
varTrue := True;
WordApplication1.Documents.Open(FullPath, EmptyParam, varTrue, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam);
WordApplication1.Selection.Find.Execute(strWord, EmptyParam, EmptyParam,EmptyParam,EmptyParam, EmptyParam, varTrue,
EmptyParam, EmptyParam, EmptyParam, TmptyParam);
if WordApplication1.Selection.Find.Found then
begin
//見つかった
end;
WordApplication1.Quit;
こんな感じです。
>にしのさん
レスありがとうございます。返事が遅れて申し訳ありません。
FullPathにはExtractFileDir関数を利用し、strWordには検索語のEdit1.Textを入れようとしたのですが、「変数実パラメータと変数仮メータとは同一の型でなければなりません」「実パラメータが足りません」と出ます。
両方ともString型で宣言したのですが、型の宣言が間違っているのでしょうか? 初心者なので的外れなことを言っていたらすいません。 今調べて色々試していますので、よろしかったらアドバイスをお願いします。
> 「変数実パラメータと変数仮メータとは同一の型でなければなりません」
このエラーは、引数と変数の型が微妙に異なるとき
> 「実パラメータが足りません」
このエラーは、引数の数が足りないとき
にそれぞれ出ます。
前者の"微妙に異なるとき"というのは、困ったことにTCaptionとStringなどの、
実際には変わりのない型も、含まれてしまいます。
面倒ですけど、Edit.Textを、
いったん別の変数に入れておけばいいと思います。
あと、後者のエラーですけど、わたしはTWordAppliocationを使ったことないので、
わかりません。
でも、エラーメッセージをダブルクリックすると、
キャレットがエラーの付近に移動します。
これを使えば、多分原因が見つけられると思います。
ツイート | ![]() |