• ベストアンサー
  • すぐに回答を!

エクセルで、データ形式の異なるものを比較するマクロについて教えてください。

エクセルのマクロで、日付の比較を行いたいのですが、片方は普通のデータ(2000/5/20等)で、片方のデータは全て日付の頭に(’)が入っています ('2000/5/20等)。置換でも消せないし、値張り付けでも消せません。頭についている(’)を消す方法(手で消すの以外)または、そのままで、普通の頭に(’)が入っていない日付と比較(あっているかどうかを確認)する方法を教えてください。 マクロを修正する、またはデータを修正する、出来るだけ簡単に出来るものがいいです。とてもこまっています。よろしくお願いします。

共感・応援の気持ちを伝えよう!

  • 回答数3
  • 閲覧数238
  • ありがとう数5

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

  • ベストアンサー
  • 回答No.1
  • htokita
  • ベストアンサー率41% (44/107)

とりあえずお急ぎのようなので、応急処置的に答えます。 実は、ettyさんが試した「値貼り付け」でできます。 セルの表示形式が「日付」のところに「値貼り付け」をしても(’)は取れません。 一旦、セルの表示形式が「標準」のところに「値貼り付け」をします。これで(’)が取れます。 そして、もとの位置にコピー(または移動)すればOKです。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

出来ました!! 新しいシートにはってみたらうまく行きました。 なるほどという感じです。 ほんとうにありがとうございました。

その他の回答 (2)

  • 回答No.3
  • 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はワークシート上では使えない)

共感・感謝の気持ちを伝えよう!

質問者からのお礼

お礼が遅くなりました。 ぜひやってみたいと思います。 ありがとうございました。

  • 回答No.2
  • ARC
  • ベストアンサー率46% (643/1383)

#1,htokitaさんの方法が正解ですが、一応、DateValue()関数でも出来ます。 A1のセルに'2000/8/8 と入力されているとすると、 =DateValue(A1) で、日付形式に変換することが出来ます。 (ただし、変換先のセルの書式を、あらかじめ日付にしておかないと、36746などの、得体の知れない数値が表示されます。)

共感・感謝の気持ちを伝えよう!

関連するQ&A

  • エクセルでマクロを用い日付をテキスト化したいのですが。

    エクセルで日付をテキスト化するのに、マクロをつかって自動化させたいと考えています。 以下のようなデータを扱っています。 日付  その他  その他  その他 2007/4/26 2007/4/28 2007/5/12 2007/6/12 こういったデータがあり、日付の列を選択し、置換→200を'200にすることで日付をテキスト化したいと思っています。 マクロを作成中は問題なく、置換し、テキスト化が出来ますが。 一度日付データを消し、日付を入れてマクロを実行すると 4/26/'2007 4/28/'2007 5/12/'2007 6/12/'2007 といった感じで実行され、正しくテキスト化されません。 質問にお答えしていただけると大変ありがたいです。 よろしくお願いします。 ※ちなみにマクロは自動記録方式のみで作っています。VBAは修正程度の知識しかないです。

  • EXCELでマクロを用い日付をテキスト化したいのですが。

    エクセルで日付をテキスト化するのに、マクロをつかって自動化させたいと考えています。 以下のようなデータを扱っています。 日付  その他  その他  その他 2007/4/26 2007/4/28 2007/5/12 2007/6/12 こういったデータがあり、日付の列を選択し、置換→200を'200にすることで日付をテキスト化したいと思っています。 マクロを作成中は問題なく、置換し、テキスト化が出来ますが。 一度日付データを消し、日付を入れてマクロを実行すると 4/26/'2007 4/28/'2007 5/12/'2007 6/12/'2007 といった感じで実行され、正しくテキスト化されません。 質問にお答えしていただけると大変ありがたいです。 よろしくお願い致します。 ※ちなみにマクロは自動記録方式のみで作っています。VBAは修正程度の知識しかないです。

  • エクセル【マクロ】で置換作業を自動的にテキスト化させたいのですが。

    エクセルで日付をテキスト化するのに、マクロをつかって自動化させたいと考えています。 以下のようなデータを扱っています。 日付  その他  その他  その他 2007/4/26 2007/4/28 2007/5/12 2007/6/12 こういったデータがあり、日付の列を選択し、置換→200を'200にすることで日付をテキスト化したいと思っています。 マクロを作成中は問題なく、置換し、テキスト化が出来ますが。 一度日付データを消し、日付を入れてマクロを実行すると 4/26/'2007 4/28/'2007 5/12/'2007 6/12/'2007 といった感じで実行され、正しくテキスト化されません。 質問にお答えしていただけると大変ありがたいです。 よろしくお願いします。

  • EXCELマクロの外部から、マクロの中の変数の値を設定する方法について

    EXCELマクロの外部から、マクロの中の変数の値を設定する方法について教えて下さい。 どなたか詳しい方教えて頂けないでしょうか?。 マクロの先頭で、 ・普通にマクロを実行する時には、Flag = 0 ・デバッグをしたい時には、Flag = 1 に設定して、マクロの中でFlagの値によって条件分けをして実行したいのです。 でも、いちいちマクロを開いてFlagの値を変えたくありません。 また、内容は同じでFlag=0のマクロとFlag=1のマクロは用意したくありません。 なぜなら、片方のマクロで修正した内容をもう片方のマクロに反映させなければならず、 間違いの元になる可能性があるからです。 あと、対話式でFlagの値も設定したくありません。 キーの割り当ても検索していたのですが、マクロそのものの登録しか出来ないようですし、 困っています。 詳しい方がおられましたらご回答宜しくお願いします。

  • エクセルのマクロで

    こんにちは、お願いします。 エクセルで小計を自動計算させたいのですが・・・ 同じ日付のデータがいくつか入力されていて その日付ごとの小計を列で出したいのです。  日付    値  小計 2002/9/1  123 2002/9/1  456   579 2002/9/2  789 2002/9/2  321  1100 という感じで・・・ このとき小計を出すセルへカーソルを置き、日付を入力するか、またはその行と同じ日付になる小計を出す、 関数では出来ないですよね? 関数式ではできなとすると、マクロが作成できるでしょうか? ご存知の方がいらっしゃいましたら、是非教えてください。 宜しくお願いします。   

  • エクセルのマクロについて【長文です。】

    はじめまして。 今、仕事の中でマクロを使った処理を行おうとしています。 手順は下記の通りです。 【1】アクセスからデータをエクスポートする。 【2】エクスポートしたデータをエクセルで開く。 【3】エクセルの中のデータを表にまとめる。 ごく簡単にご説明すると、このような手順となります。 ここで、皆様のお力をお借りいたしたく、質問いたしました。 【2】と【3】の間で行う、作業なのですが、 アクセスからエクスポートしたデータは日付が「'20070827」のように、 文字列となって表示されてしまいます。 これをマクロで2007/8/27という表示にしたいと思います。 【3】の表へは日付でVLOOKUPを使い一覧にまとめています。 さらに、日付は自動で入る仕組みにしてあります。 はじめのうちは量が少なかったので、置換や区切り位置で どうにかしのいできたのですが、シート数が多くなってしまい、 とても時間がかかってしまいます。 マクロの登録にもチャレンジしてみましたが、 並び位置が変わってしまったりと不都合が出てしまいました。 出来れば、そのブックを開けた段階で日付が変更されるような マクロがありましたら、ぜひ教えてください。 よろしくお願いいたします。

  • Excelのマクロでデータ形式を容易に変更する方法

    2年ぶりにExcelのマクロについて 質問させていただきます。 他の人がExcelで作ったデータを取り込んで使いたいのですが マクロでデータ形式を変換する適切な方法を教えてください。 他の人が作ったExcelファイルで 例えばセルA1に H28/04/01 というデータがあったとします。 画面に表示される内容も セルに入力されている内容も どちらも H28/04/01 です。 ちなみに、セルの書式設定を確認すると 「標準」となっているのですが これが「文字列」だとしても 以下に記す内容は おそらく同じだと思います。 このデータを、分かりやすいように セルに入力されている内容は 2016/4/1 となるようにして しかも画面に表示される内容は 平成28年4月1日 となるようなマクロを組みたいのです。 Cells(1, 1) = Format(Cells(1,1),"yyyy/m/d") Cells(1, 1).NumberFormatLocal = "ggge年m月d日" と作ってみましたが このマクロを実行すると 2016/4/1 と表示されす。 そして、この状態から 改めてマクロを実行すると ようやく 平成28年4月1日 と表示されます。 これを1回のマクロ実行で済ませるためには どのように組んだらよいのでしょうか。 なお、上記の内容は Excel2010 でも Excel2003 でも同じでした。 マクロについては、まだまだ素人だと 痛感しております。 回答をよろしくお願いいたします。

  • エクセルのマクロの登録について

    エクセルのマクロ登録についてご質問です。 エクセルでマクロを登録したいのですが、 D7~D49まで自動で数式が反映するようにしてあります。 マクロのボタンを作成し、そのボタンを押すとコピーを選択した状態になるようにしてあります。 これが、すぐよこのE列~AH列まで日付が並んでおり、D7~D49に反映させたデータを 対応する日付の下に毎日値貼り付けをしている常態です。     D      E     F     G   自動反映   9/1   9/2   9/3 7   ~ 49 ボタンひとつでコピーした状態ではなく、その対応した日付の下に値貼り付けすることはできますでしょうか。 これがシート1、シート2、シート3、シート4まで あるのですが、ボタンひとつで登録するようにできますでしょうか。 どなたかご回答よろしくお願い致します。

  • Excel マクロのゴミの消し方

    Excelで残ってしまったゴミについて、処理を教えて いただきたいです。 Excelで、マクロを組んだらしいんですが、うまく いかなくって削除したようなんですが、ゴミ?!が 残ってしまって、そのデータファイルを開くたびに、 オープンマクロがドウコウってでてしまうんです。 これを出ないようにするには、何処をどういじれば メッセージがでなくなりますか? このデータは、Ver95なんですが、Ver97でも、 2000でも構いません。 修正の方法を教えていただけませんか? 宜しくお願いします。

  • EXCELの日付データの比較

    EXCELの日付データについての質問です。 たとえば、あるテキストデータでH20.7.19とあったとします。 それとEXCELの日付データにもH20.7.19があったとします。 テキストデータのH20.7.19をEXCEL側に貼り付け、EXCELの日付データH20.7.19と比較させ、答え0(誤差0)を返してもらう方法はありますでしょうか? 宜しくお願いいたします。