- 締切済み
エクセルの日付表記について教えてください。
エクセルの日付表記について教えてください。 htmlファイルがあり、テーブルタグの中に『2010年01月09日』書かれていたとします。 このhtmlファイルをエクセルで開くと、ほとんどの場合『2010年1月9日』となってしまいます。 『2010年01月09日』とそのまま表記したいのですが、エクセルが開いたときのセルの書式を、日付ではなく標準で開くように指定する方法はあるのでしょうか。バージョンはOFFICE2000です。 よろしくお願いします。
- みんなの回答 (4)
- 専門家の回答
みんなの回答
誤解がありますね。 "2010年1月9日"を標準の形式で表すと40187ですよ。 "2010年01月09日"を読み込んだら"2010年1月9日"と表示されるのは、 エクセルが 1."2010年01月09日"が日付の形式であると認識 2.それをシリアル値である40187に変換 3.そのセルの表示形式を"yyyy年m月d日"に設定 しているからです。 単にhtmlに記述されている通りの"2010年01月09日"と表示させたいだけなら、 Windowsのコントロールパネルから「日付、時刻、地域と言語のオプション」- 「数値、日付、時刻の形式を変更する」を選んで、「標準と形式」を 「日本語」以外にすれば、前記の1が成り立たなくなり、単なる文字列として そのまま読み込むはずです。 (この説明はXPの場合です。VISTAや7では手順が違うかもしれません) 作業が終わったら、元に戻しておきましょう。 ただし、これは単なる文字列として読み込んでいるだけなので、 エクセルは逆に日付として認識していませんから、そのままでは 日付関数を使うことは出来ません。 一旦、VALUE関数でシリアル値に変換する必要が生じます。
- merlionXX
- ベストアンサー率48% (1930/4007)
データ量が多いとのことなのでVBAによる手法を考えてみました。 以下の手順をお試しください。 1.Altキー+F11キーで Visual Basic Editor画面を呼び出します。 2.画面上部のメニューバーから挿入、標準モジュールで出てきたコードウィンド(右側の白い広い部分)に以下のコードをコピペします。 '*****ここから下をコピペ***** Sub test01() For Each c In ActiveSheet.UsedRange If IsDate(c.Value) Then c.NumberFormatLocal = "yyyy""年""mm""月""dd""日""" End If Next End Sub '*****ここより上までをコピペ***** 3.Alt+F11キーで該当のワークシートへもどります。 4. Alt+F8キーでマクロを呼び出し「test01」を実行します。
- ziziwa1130
- ベストアンサー率21% (329/1546)
数値のままいくら書式設定しても、10未満の数値の10の位に0を表示することは不可能で、文字列に変換するしかありません。一例として、セルA1に表示させたい場合に、日付のシリアル値をセルB1に入力し、B1を非表示にします。セルA1には =RIGHT("000"&TEXT(YEAR(B1),"0"),4)&"年"&RIGHT("0"&TEXT(MONTH(B1),"0"),2)&"月"&RIGHT("0"&TEXT(DAY(B1),"0"),2)&"日" と入力する方法が一例としてあります。
- KURUMITO
- ベストアンサー率42% (1835/4283)
セルの書式設定で「表示形式」から「ユーザー定義」を選び「種類」の窓に yyyy"年"mm"月"dd"日" と入力すればよいでしょう。
お礼
早速回答いただきありがとうございます。 開くファイルが数千個あり、エクセルで開いた後に表示形式を変更するというのはできそうにありません。 最初から表示形式を標準で開きたいのです。 エクセルが勝手に、日付の表示形式で判断してしまうのをやめさせることはできないでしょうか。