Word VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


15 / 308 ツリー ←次へ | 前へ→

【855】word vbaで文字列を置換したい、見つからなかったときの処理 あお 18/6/8(金) 14:35 質問[未読]
【856】Re:word vbaで文字列を置換したい、見つから... 亀マスター 18/6/8(金) 20:14 回答[未読]
【857】Re:word vbaで文字列を置換したい、見つから... あお 18/6/8(金) 20:52 発言[未読]
【858】Re:word vbaで文字列を置換したい、見つから... あお 18/6/11(月) 14:25 お礼[未読]

【855】word vbaで文字列を置換したい、見つからな...
質問  あお  - 18/6/8(金) 14:35 -

引用なし
パスワード
   こんにちは、いつもお世話になっています。
wordのVBAで以下で置換をしようとしていて以下は問題なく動きます。
word.application.selection.find.execute findtext:=置換前の文字列,replace:=wdreplaceall,replacewith:=置換後の文字列
文字が見つからなかったときもエラーにならずに終了してしまうのですが、見つからなかったときはフラグを立てたいと思っています。
そのようなことはできますでしょうか?
wordは初心者、検索してExcelvbe内に書いてます。

【856】Re:word vbaで文字列を置換したい、見つか...
回答  亀マスター  - 18/6/8(金) 20:14 -

引用なし
パスワード
   Executeメソッドは検索成功時にTrueを返し、失敗時にFalseを返します。
ですので、以下のような形で判定できます。

If Word.Application.Selection.Find.Execute FindText:="文字列A", Replace:="文字列B" = True Then
  '成功時の処理
Else
  '失敗時の処理
End If
※Ifの中で=Trueはなくても動きますが、わかりやすくするためにあえて入れています。

また、FindオブジェクトのFoundプロパティも同様の値を返すので、以下のようにしてもOKです。

With Word.Application.Selection.Find
  .Execute FindText:="文字列A", Replace:="文字列B"
  If .Found = True Then
    '成功時の処理
  Else
    '失敗時の処理
  End If
End With


ht tps://msdn.microsoft.com/ja-jp/vba/word-vba/articles/find-execute-method-word
ht tps://msdn.microsoft.com/ja-jp/vba/word-vba/articles/find-found-property-word

【857】Re:word vbaで文字列を置換したい、見つか...
発言  あお  - 18/6/8(金) 20:52 -

引用なし
パスワード
   亀マスターさん、ありがとうございました!
月曜に会社でやってみます!!
聞く人もおらず調べても見つからず苦戦して久しぶりに投稿いたしました。
本当に助かります、教えてもらったページもよく読んでおきます(今後はここらで解決できるよう頑張ります)
また、月曜に投稿します


▼亀マスター さん:
>Executeメソッドは検索成功時にTrueを返し、失敗時にFalseを返します。
>ですので、以下のような形で判定できます。
>
>If Word.Application.Selection.Find.Execute FindText:="文字列A", Replace:="文字列B" = True Then
>  '成功時の処理
>Else
>  '失敗時の処理
>End If
>※Ifの中で=Trueはなくても動きますが、わかりやすくするためにあえて入れています。
>
>また、FindオブジェクトのFoundプロパティも同様の値を返すので、以下のようにしてもOKです。
>
>With Word.Application.Selection.Find
>  .Execute FindText:="文字列A", Replace:="文字列B"
>  If .Found = True Then
>    '成功時の処理
>  Else
>    '失敗時の処理
>  End If
>End With
>
>
>ht tps://msdn.microsoft.com/ja-jp/vba/word-vba/articles/find-execute-method-word
>ht tps://msdn.microsoft.com/ja-jp/vba/word-vba/articles/find-found-property-word

【858】Re:word vbaで文字列を置換したい、見つか...
お礼  あお  - 18/6/11(月) 14:25 -

引用なし
パスワード
   本日会社で試したところ教えていただいたやり方でできました。本当にありがとうございました!

▼あお さん:
>こんにちは、いつもお世話になっています。
>wordのVBAで以下で置換をしようとしていて以下は問題なく動きます。
>word.application.selection.find.execute findtext:=置換前の文字列,replace:=wdreplaceall,replacewith:=置換後の文字列
>文字が見つからなかったときもエラーにならずに終了してしまうのですが、見つからなかったときはフラグを立てたいと思っています。
>そのようなことはできますでしょうか?
>wordは初心者、検索してExcelvbe内に書いてます。

15 / 308 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
207156
(SS)C-BOARD v3.8 is Free