- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:検索と置換 vba後、そのまま検索できない)
VBAで検索と置換ができない理由
このQ&Aのポイント
- VBAで検索と置換を実行した後、ワークシート画面で検索と置換を開くと、日付の形式が変わってしまいます。
- VBAで検索と置換を実行した結果と手作業で検索と置換を実行した結果が異なる理由は、日付のフォーマットが変換されてしまうためです。
- VBAでは日付の形式が維持されるが、手作業では日付が変換されるため、検索結果が異なる場合があります。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
こんばんは。 Cells.Find(What:=CDate("2014/1/1"), MatchByte:=False) こちらで返る値は [2014/01/01] →Cells.Findで返る値を表示してみてください。 ワークシートで検索したことになっている値は [1/1/2014] おわかりでしょうか。 Findではデータ型を日付とし、2014/1/1ではなくシリアル値として検索しています。 ですので、検索履歴としては正しいといえます。 しかしながら検索窓で操作する場合はあくまで文字列と書式でのみ検索しています。 よってキャラクターが[2014/1/1] Formatが[*2000/1/1]となります。 このようにそれぞれの操作で行われている処理が異なるため結果不一致となります。 ご確認ください。 ※差し支えなければ、やりたいことをご質問内容に含んでおいてもらえますと、回答がスムーズかと思います。
その他の回答 (1)
- karasu1201
- ベストアンサー率22% (13/59)
回答No.2
追記です。 Sub test() Dim a As Date Dim b As String a = Cells.Find(what:=CDate("2014/1/1"), Matchbyte:=False) b = Format(a, "yyyy/m/d") If Not b = "" Then Cells.Find (b) End If End Sub これで窓に表示される値が一致します。
質問者
お礼
ご回答ありがとうございました。
お礼
ご回答ありがとうございました。