• ベストアンサー

VBAで変数を日付に変更する方法

年、月、日が変数で与えられる時、この変数を日付のシリアル値に変換するプログラムを教えて下さい。

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

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.3

エクセルとエクセルVBAでは、シートに入力された日付(入力は例2016/12/1)は、セルの値は日付シリアル値という、1900年1月1日をスタート第1日目として、その日付の順序数(第何日目か)で持たれます。 http://exinfo.biz/lec/lec_serial.shtml ですから、2016、12,1のような年、月、日の数値は日付シリアル値の数値では直接に、現れません。すなわち日付シリアル値を自分で計算するのは手に負えません。ですから、表計算ソフトを作った(エクセルではMS社)の「関数」を使わざるを得ません。 その関数はDateSeria関数です。 http://officetanaka.net/excel/vba/function/DateSerial.htm 他Google出紹介すればわかること。 VBAまでやりながら、この日付シリアル値のことを知らないの人が結構いる。 それとエクセル関数のDATE関数を使う場合と別の関数(名)になっていることがややこしくする。 http://www.excel.studio-kazu.jp/func/date.html 2016/12/Iのような文字列が変数にある場合は、DateValue関数がある。 VBAでもDateValue関数を使う http://www.239-programing.com/excel-vba/func/func036.html

ganchan59
質問者

お礼

早々に丁寧な回答ありがとうございました。 おかげでうまくできました。

その他の回答 (2)

  • mt2015
  • ベストアンサー率49% (258/524)
回答No.2

DateSerial関数を使ってみてください。

  • ushi2015
  • ベストアンサー率51% (241/468)
回答No.1

こんにちは Sub test()   Dim 年 As Integer   Dim 月 As Integer   Dim 日 As Integer   Dim x As Long   年 = 2016   月 = 12   日 = 6   x = DateSerial(年, 月, 日)   MsgBox x End Sub エラー処理は適宜入れて下さい。

関連するQ&A