- ベストアンサー
ExcelのYear()がうまく作動しないのはなぜか?
Excel (Office 2004forMac)のマクロで、Application.InputBoxを使ってBook1のセルB1に期首期日(例えば2009/1/1)(これを変数StartingDateと定義)を次のように入力しました。これは成功しました。 StaringDate=Application.InputBox("期首:", "期首期日") Cells(2,1).Value=StartingDate つぎに本年の値(2009)をセルB3に入れようとして次のようにしました。 Cells(B3).Value=Year(StartingDate) すると、B3には「1905....」のようなデータが入ってしまいます。あるいは2段構えで ThisYear=Year(StartingDate) Cells(B3).Value=ThisYear としても結果は同じです。 マクロではなく、直接にB3に「=Year(B2)」と書き込むと、正しく2009が表示されるときと、1905.xxxが表示されるときがあります。 正しい表示を得るのに、何処が誤っているのでしょうか? いくら考えても判りませんで、困っております。おわかりの方、どうぞ教えて下さい!
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
日付のエクセルでの認識は1900/01/01から何日後であるかで制御しています。 日付型は実際は数字なんです。 そのため、日付形式に2009と入力すると1900/01/01から2009日後の1905/07/01となってしまいます。
その他の回答 (1)
- hotosys
- ベストアンサー率67% (97/143)
セルの表示形式が違っていませんか? 値が2009のセルの表示形式を日付形式にすると(形式にもよりますが)1905/7/1とかになってしまうようです。
お礼
戴いたヒントを元に再考し、Year(StartingDate)が日付のデータ型ではないことに気づき、セルB3の表示形式を標準または数値に直したところ、正しく2009が得られました。 本当に助かりました。ありがとうございました。
お礼
Year()を入れたセルの表示形式を日付のデータ型にすべきだと勘違いしておりました。誤りが良く理解できました。貴重なヒント、本当にありがとうございました。