• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:検索と置換 vba後、そのまま検索できない)

VBAで検索と置換ができない理由

このQ&Aのポイント
  • VBAで検索と置換を実行した後、ワークシート画面で検索と置換を開くと、日付の形式が変わってしまいます。
  • VBAで検索と置換を実行した結果と手作業で検索と置換を実行した結果が異なる理由は、日付のフォーマットが変換されてしまうためです。
  • VBAでは日付の形式が維持されるが、手作業では日付が変換されるため、検索結果が異なる場合があります。

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

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

こんばんは。 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]となります。 このようにそれぞれの操作で行われている処理が異なるため結果不一致となります。 ご確認ください。 ※差し支えなければ、やりたいことをご質問内容に含んでおいてもらえますと、回答がスムーズかと思います。

stjpduenuakic
質問者

お礼

ご回答ありがとうございました。

その他の回答 (1)

回答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 これで窓に表示される値が一致します。

stjpduenuakic
質問者

お礼

ご回答ありがとうございました。

関連するQ&A