• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VBアプリでExcelファイル内の文字が置換された事を確認する方法)

VBアプリでExcelファイル内の文字が置換された事を確認する方法

このQ&Aのポイント
  • VBアプリを使用してExcelファイル内の文字を置換する方法について質問です。置換したファイルの一覧を作成するためにはどのような方法が適切でしょうか?また、動作結果におけるエラーの理由や検索・置換・一覧作成の流れについても教えてください。
  • VBアプリでExcelファイル内の文字が置換された事を確認する方法について質問です。置換したファイルの一覧を作成するためにはどのような方法が適切でしょうか?また、エラーが発生した理由や検索・置換・一覧作成の流れについても教えてください。
  • VBアプリでExcelファイル内の文字が置換された事を確認する方法について質問です。置換したファイルの一覧を作成するためにはどのような方法が適切でしょうか?また、エラーの原因や検索・置換・一覧作成の流れについて詳しく教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.3

>しかしExcelのVBAでNothingを比較できても、VB6ではNothingを式で >使う事はできないので困ってしまっています。 そうですか? Set ret = xlBook.Application.Cells.Find(What:=Text1.Text, _ After:=xlApp.ActiveCell, _ LookIn:=xlFormulas, LookAt:=xlPart, _ SearchOrder:=xlByRows, SearchDirection:=xlNext, _ MatchCase:=False, MatchByte:=False) If ret Is Nothing Then MsgBox "なし" Else MsgBox "見つけた" End If としてみてください。正しく判定できると思うのですが・・・。(一応、VB6で確認しました。)

ta55
質問者

お礼

まさに今そこの部分を調べていたところです。おっしゃる通り目的の動作 をしてくれました。tsukasa-12rさん最後まで丁寧に教えて下さって有り 難うございます。

その他の回答 (2)

回答No.2

失礼しました。勘違いしていたのは私の方でした。m(_ _)m 以前、開いている全てのワークブックの全てのワークシートに対して Replace 処理を行うマクロを作ったことがあったのですが、今、見てみたら、 (1) Find で検索 (2) 戻り値が Nothing かどうかをチェック   戻り値が Nothing でなければ Replace という処理をしていました。

ta55
質問者

補足

いえいえ、とんでもありません。やはりNothingを見てますよね。 しかしExcelのVBAでNothingを比較できても、VB6ではNothingを式で 使う事はできないので困ってしまっています。この辺を詳しくご存知でした ら教えてください。

回答No.1

>しかし.Replaceメソッドは置換に成功しても失敗してもTrueを返すとなっています。 何か勘違いされているような気がします。 Excel 2002 ですが、ヘルプで調べてみたら >Replace 関数の戻り値は次のとおりです。 > >条件              Replace の戻り値 >expression is zero-length  長さ 0 の文字列 ("") >expression is Null       エラー >find is zero-length      expression のコピー >replace is zero-length    find がすべて削除された >expression のコピー >start > Len(expression)    長さ 0 の文字列 ("") >count is 0           expression のコピー となっていました。たしか、Excel 2000 でも同じだったと思います。 >2.動作結果の(2)ではエラーにならないのに(3)ではなぜエラーになるのか 2. では、何も入力されていないセル(空白のセル)がヒットして ret に空白のセルが返ってくるが、3. だと ret は Nothing になってるので、Nothing の ret に対して .Value を参照しようとしてもできなくてエラーになるんですね。

ta55
質問者

お礼

Replace関数の方では確かに戻り値が複数設定されていますが、この場合は Replaceメソッドです。 ""で空白の行が見つかったという事になるんですか・・・しっくり来ました 有り難うございます。