過去ログ

                                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です。よろしくお願いいたします。
 ───────────────────────────────────────  ■題名 : Re:日付の不思議  ■名前 : りん <rin_doggie@hotmail.com>  ■日付 : 03/1/15(水) 1:09  -------------------------------------------------------------------------
   茜のパパ さん、こんばんわ。

>下記を実行するとセル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

セルの数値の表示形式を文字列にして、上の式をあたえるかのどちらかですかね。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━    通常モードに戻る  ┃  INDEX  ┃  ≪前へ  │  次へ≫    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━                                 Page 545