- ベストアンサー
エクセルで、データ形式の異なるものを比較するマクロについて教えてください。
エクセルのマクロで、日付の比較を行いたいのですが、片方は普通のデータ(2000/5/20等)で、片方のデータは全て日付の頭に(’)が入っています ('2000/5/20等)。置換でも消せないし、値張り付けでも消せません。頭についている(’)を消す方法(手で消すの以外)または、そのままで、普通の頭に(’)が入っていない日付と比較(あっているかどうかを確認)する方法を教えてください。 マクロを修正する、またはデータを修正する、出来るだけ簡単に出来るものがいいです。とてもこまっています。よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
とりあえずお急ぎのようなので、応急処置的に答えます。 実は、ettyさんが試した「値貼り付け」でできます。 セルの表示形式が「日付」のところに「値貼り付け」をしても(’)は取れません。 一旦、セルの表示形式が「標準」のところに「値貼り付け」をします。これで(’)が取れます。 そして、もとの位置にコピー(または移動)すればOKです。
その他の回答 (2)
- ARC
- ベストアンサー率46% (643/1383)
マクロの中で使うなら、こんな感じでしょうか。 Dim Date1 As Variant, Date2 As Variant Date1= #2000/8/7# '日付シリアル値 Date2= "平成12年8月8日" '文字列 IF DateValue(Date1) <= DateValue(Date2) THEN 'この部分が実行される ELSE 'この部分は実行されない END IF って感じです。 ちなみに、マクロの中で記述する場合に限り、DateValueの代わりにCDateを使ってもいいです。(CDateはワークシート上では使えない)
お礼
お礼が遅くなりました。 ぜひやってみたいと思います。 ありがとうございました。
- ARC
- ベストアンサー率46% (643/1383)
#1,htokitaさんの方法が正解ですが、一応、DateValue()関数でも出来ます。 A1のセルに'2000/8/8 と入力されているとすると、 =DateValue(A1) で、日付形式に変換することが出来ます。 (ただし、変換先のセルの書式を、あらかじめ日付にしておかないと、36746などの、得体の知れない数値が表示されます。)
お礼
出来ました!! 新しいシートにはってみたらうまく行きました。 なるほどという感じです。 ほんとうにありがとうございました。