- ベストアンサー
VBアプリでExcelファイル内の文字が置換された事を確認する方法
- VBアプリを使用してExcelファイル内の文字を置換する方法について質問です。置換したファイルの一覧を作成するためにはどのような方法が適切でしょうか?また、動作結果におけるエラーの理由や検索・置換・一覧作成の流れについても教えてください。
- VBアプリでExcelファイル内の文字が置換された事を確認する方法について質問です。置換したファイルの一覧を作成するためにはどのような方法が適切でしょうか?また、エラーが発生した理由や検索・置換・一覧作成の流れについても教えてください。
- VBアプリでExcelファイル内の文字が置換された事を確認する方法について質問です。置換したファイルの一覧を作成するためにはどのような方法が適切でしょうか?また、エラーの原因や検索・置換・一覧作成の流れについて詳しく教えてください。
- みんなの回答 (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で確認しました。)
その他の回答 (2)
- tsukasa-12r
- ベストアンサー率65% (358/549)
失礼しました。勘違いしていたのは私の方でした。m(_ _)m 以前、開いている全てのワークブックの全てのワークシートに対して Replace 処理を行うマクロを作ったことがあったのですが、今、見てみたら、 (1) Find で検索 (2) 戻り値が Nothing かどうかをチェック 戻り値が Nothing でなければ Replace という処理をしていました。
補足
いえいえ、とんでもありません。やはりNothingを見てますよね。 しかしExcelのVBAでNothingを比較できても、VB6ではNothingを式で 使う事はできないので困ってしまっています。この辺を詳しくご存知でした ら教えてください。
- tsukasa-12r
- ベストアンサー率65% (358/549)
>しかし.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 を参照しようとしてもできなくてエラーになるんですね。
お礼
Replace関数の方では確かに戻り値が複数設定されていますが、この場合は Replaceメソッドです。 ""で空白の行が見つかったという事になるんですか・・・しっくり来ました 有り難うございます。
お礼
まさに今そこの部分を調べていたところです。おっしゃる通り目的の動作 をしてくれました。tsukasa-12rさん最後まで丁寧に教えて下さって有り 難うございます。