パソコン悪戦苦闘記録

英語表記の日付を日本語表記に変更するExcel操作

 あるWebサイトから、データをコピーして、Excelに貼り付けました。
 Excelを使って、データの集計をするためです。

 ある列(B列)には、日付のデータが入っています。
その日付が
Feb 01 2020
Jan 30 2020
Jan 01 2020
Dec 30 2019

というように、英語表記になっています。
 これでは、分かりにくい。
 日本語表記にしたいところです。




 けれでも、セルの書式設定の「表示形式」の「日付」で形式を変更しようとしても、何も変わりません。
 「半角スペース」がよくないんじゃないか、これを「半角スラッシュ(/)」に置き換えたら、いいじゃないかと考えました。そこで、SUBSTITUTE関数を使いました。
 SUBSTITUTE(サブスティチュート)関数は、ある特定の文字列を、他の文字列に置き換えるのに使用する関数です。
 C2セルに、「=SUBSTITUTE(B2," ","/")」 と入れます。
 そして、フィルハンドルをドラッグして、下の方のセルまで数式をコピーします。

 この操作によって、「Feb 01 2020」 が、「Feb/01/2020」 と置き換えられました。
 その上で、「表示形式」の「日付」でいろいろ形式を選ぶのですが、これでも全く変化がありません。
 表示形式が変わらないのは、セルに入っているデータが数式のままだからだ、と考えました。

 そこで、マクロを使って、「数式」を、「値」に変換します。
  Cells(i,3).Value = Cells(i,3).Text
として、C列の数式をすべて、値に置き換えました。
 
 ところが、これでも、まだだめです。日本語表記の日付に変更できません。

 しばらく考えて、答えが思いつきました。
   「データ型」だと。
 数式から値に変換させるときに、「Text」プロパティを使ったので、
データ型が文字列型(String)になっていることに気づいたのです。

 Cells(i, 3).Value = CDate(Cells(i, 3).Value)
というコードを書いて、C列のデータをすべて日付型(Date)に変換しました。
 すると、思ったとおり、
  「2020年2月1日」という日本語表記の日付に変更できました。
 めでたし、めでたし。
 Excelマクロは久しぶりに利用したけれども、「まだ忘れていなかった、あぁ、よかった」、と思ったのが前日。

ところが、
  ところが、
    ところがぁ~

翌日になって、私がやった一連の操作を、冷静に振り返ってみます。どうも無駄な作業っぽい、もっと洗練された方法がありそうに見えてきました。

 そこで、B列に
Feb 01 2020
Jan 30 2020
Jan 01 2020
Dec 30 2019

というデータが入っている状態で、いきなり
 Cells(i, 2).Value = CDate(Cells(i, 2).Value)
として、B列のデータをすべて日付型(Date)に変換しました。

 すると、なんとぉ~、これ一発で「2020年2月1日」と、日本語表記になっちゃった!!

 前日やった作業のうち、
  「Feb 01 2020」から → 「Feb/01/2020」への
文字列の置き換え作業は、意味がなかったわけです。
 そう、全く無駄な作業工程を踏んだことになります。

お勧め書籍


 でもまぁ、久しぶりにExcelマクロを使い、記憶喚起の機会になったんで、これはこれでよかった、としておきましょう。・・・・と、自分で自分を慰めることにしました。

それでは、また次の記事で。
goosyun

コメント一覧

goosyun
「無駄な作業」のようであって、実は無駄ではない。
ありがたいフォローです。
コメントありがとうございます。
  goosyun
新介
無駄な作業も身になりますね(^^)
ただ加齢と共に忘れていく量も半端ない(^^;;
名前:
コメント:

※文字化け等の原因になりますので顔文字の投稿はお控えください。

コメント利用規約に同意の上コメント投稿を行ってください。

 

  • Xでシェアする
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

最近の「VBAプログラミング・マクロ」カテゴリーもっと見る

最近の記事
バックナンバー
人気記事