Page 545 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 通常モードに戻る ┃ INDEX ┃ ≪前へ │ 次へ≫ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ▼日付の不思議 茜のパパ 03/1/15(水) 0:37 ┗Re:日付の不思議 りん 03/1/15(水) 1:09 ─────────────────────────────────────── ■題名 : 日付の不思議 ■名前 : 茜のパパ ■日付 : 03/1/15(水) 0:37 -------------------------------------------------------------------------
皆さんこんばんは。 いつも勉強させて頂いております。 VBAを使い始めて、初めて年をまたいだ時、以下のような不思議な 現象(初心者の私にとってですが)に遭遇しました。 おかげで請求書の数字がおかしくなって恥をかきましたが・・・ 下記を実行するとセルA1 には "2月14日" と書き込みされますが、 セルの中は "2003/2/14" となります。 ちなみにこの入力は 2003年に行われました。 Dim 日付 As Date Sub akane() 日付 = "2001/2/14" Cells(1, 1) = Format(日付, "m""月""d""日""") End Sub なぜでしょうか?どなたか御教授お願いいたします。 環境は、Win98SE,xl2000です。よろしくお願いいたします。 |
茜のパパ さん、こんばんわ。 >下記を実行するとセルA1 には "2月14日" と書き込みされますが、 >セルの中は "2003/2/14" となります。 > 日付 = "2001/2/14" > Cells(1, 1) = Format(日付, "m""月""d""日""") セルに直接『2月14日』と入力したときと同じ結果になるので、別に不思議ではないとおもいますけど。 ・日付とみなされる文字列は自動的に日付形式になる ・年が省略されている日付は、入力時の年が入る 解決法としては、 Sub akane() 日付 = "2001/2/14" Cells(1, 1).NumberFormat = "m月d日" Cells(1, 1).Value = 日付 End Sub としてセルの数値の表示形式を月日にするとか Sub akane() 日付 = "2001/2/14" Cells(1, 1).NumberFormat = "@" Cells(1, 1).Value = Format(日付, "m""月""d""日""") End Sub セルの数値の表示形式を文字列にして、上の式をあたえるかのどちらかですかね。 |