• ベストアンサー

エクセルVBAで、2004年と入力したのに1992年になってしまう

Windows98,XP、Excel97を使用しています。 下記のコードでユーザーフォーム上のテキストボックスに今日の日付を表示させているのですが、WinXPでは正常に「04/11/25」を表示されるのに、Win98でブックを開くと「92/11/25」となってしまう場合があります。 Private Sub UserForm_Initialize()  TextBox1.Value = Date End Sub 必ず1992年になるのではなく、たまに「2004年」と表示されます。 「92」の部分を「04」に修正すると、修正される場合もあるのですが、「92」に戻ってしまう場合もあります。 他にも日付を入力するTextBoxがいくつかありますが、それらも同じ状態です。 この状態を解決するにはどうしたらよろしいでしょうか?ご存知の方、どうぞよろしくお願いします。

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

  • ベストアンサー
  • KenKen_SP
  • ベストアンサー率62% (785/1258)
回答No.2

こんにちは。 原因ですが、[コントロールパネル]-[地域]-[日付]タブの設定がWinXPとWin98で異なっているのかもしれません。 推測ですから、はずしていたら、すみません。 いずれにせよ、No.1の方の方法でいけますね、きっと。

takahiro_
質問者

お礼

ご回答ありがとうございます。 おっしゃっていた通りでした。 [日付]タブを見てみましたら、Win98では「yy/m/d」、WinXPでは「yyyy/m/d」になっていました! ただ、このマクロを使うパソコンは100台以上ありまして、全台変更するのはちょっと難しいです…。 ですのでちょっと違うかもしれませんが、マイクロソフトのサイトに「西暦は4桁で入力するとエラーが回避できる」ということが書いてありましたので、4桁で入力してもらうようにしました。 http://support.microsoft.com/default.aspx?scid=kb;ja;418150 またわからないことがありましたらよろしくお願いします。どうもありがとうございました。

すると、全ての回答が全文表示されます。

その他の回答 (1)

回答No.1

どうやら04年を平成4年(1992年)と読んでしまっているようですね。 Value = Format(Date, "yy/m/d")とやってみたらどうなりますか?

takahiro_
質問者

お礼

ご回答ありがとうございます。 和暦と勘違いしてしまっているのですね…。 .Value = Format(Date, "yyyy/mm/dd") としてみたのですが、フォーカスが他へ移ると、Win98では04/11/25というような表示になってしまいました。 でもWinXPでは上手くいきました。 ちょっと違うかもしれませんが、マイクロソフトのサイトに「西暦は4桁で入力するとエラーが回避できる」ということが書いてありましたので、4桁で入力してもらうようにします。 http://support.microsoft.com/default.aspx?scid=kb;ja;418150 またわからないことがありましたらよろしくお願いします。ありがとうございました。

すると、全ての回答が全文表示されます。

関連するQ&A