エクセルマクロ オンライン講座コメント紹介

コメント紹介
   └ エクセルマクロ・VBA発展編1フォローアップミニセミナー
       └ エクセルマクロ・VBA発展編1フォローアップミニセミナーNo.10

エクセルマクロ・VBA発展編1フォローアップミニセミナーNo.10

[11372] 2019-04-23 21:04:10 ゲストさんからの投稿です。

小川さん
いつも大変楽しく勉強させていただきております。

ウォーミングアップ問題1についての質問です。
私は以下のようなコードを書いたのですが、小川先生と同じ日付が出ました。
こちらの方が簡素でいいと思ったのですが、このコードでも問題はないですか?
Sub mondai1()
Worksheets("Sheet3").Range("A1").Value = Date + 3
End Sub

 


[11374] 2019-04-23 23:03:38 小川慶一さんからの投稿です。

ゲストさん:

エクセルVBAでは、日付は、内部的には小数で扱っています。
日付として出力するときに日付に変換しています。

以下、参考にしてください。

Sub DateValueSample()
    Dim dt As Date
    dt = #12:00:00 AM# '日付の初期値
    Debug.Print CDbl(dt)
    
    dt = #4/23/2019# 'このコードを書いている日
    Debug.Print CDbl(dt)
    
    dt = #4/23/2019 6:00:00 AM# 'このコードを書いている日の午前6時
    Debug.Print CDbl(dt)

    dt = #4/23/2019 6:00:00 PM#  'このコードを書いている日の午後6時
    Debug.Print CDbl(dt)
    
    dt = #4/23/2019# 'このコードを書いている日
    dt = dt + 3      'このコードを書いている日の3日後
    Debug.Print CDbl(dt)
End Sub


出力される結果は、以下です。
0
43578
43578.25
43578.75
43581

上記のとおり、 + 3 とすれば元の日付から見て、ちょうど3日あとになります。
ただし、このやり方しか使いこなせないとなると、「2時間前はどう表現するのか?」とか「35分後」といった、60進法的処理の記述に行き詰まってしまいますね。

ということで、この機会に、DateAdd関数をしっかりマスターされるほうが良いかと思います。


> 小川さん
> いつも大変楽しく勉強させていただきております。
>
> ウォーミングアップ問題1についての質問です。
> 私は以下のようなコードを書いたのですが、小川先生と同じ日付が出ました。
> こちらの方が簡素でいいと思ったのですが、このコードでも問題はないですか?
> Sub mondai1()
> Worksheets("Sheet3").Range("A1").Value = Date + 3
> End Sub
>

 


[11375] 2019-04-24 23:36:54 ゲストさんからの投稿です。

小川慶一さん:

解説ありがとうございます。
日付を内部的に少数で扱っていることは知りませんでした。
やはりゆくゆくは、5分後、10分後、30分後を表示できるようになりたいので、この機会にDateAdd関数を勉強したいと思います。

> ゲストさん:
>
> エクセルVBAでは、日付は、内部的には小数で扱っています。
> 日付として出力するときに日付に変換しています。
>
> 以下、参考にしてください。
>
>
Sub DateValueSample()
>     Dim dt As Date
>     dt = #12:00:00 AM# '日付の初期値
>     Debug.Print CDbl(dt)
>     
>     dt = #4/23/2019# 'このコードを書いている日
>     Debug.Print CDbl(dt)
>     
>     dt = #4/23/2019 6:00:00 AM# 'このコードを書いている日の午前6時
>     Debug.Print CDbl(dt)
> 
>     dt = #4/23/2019 6:00:00 PM#  'このコードを書いている日の午後6時
>     Debug.Print CDbl(dt)
>     
>     dt = #4/23/2019# 'このコードを書いている日
>     dt = dt + 3      'このコードを書いている日の3日後
>     Debug.Print CDbl(dt)
> End Sub

>
> 出力される結果は、以下です。
> 0
> 43578
> 43578.25
> 43578.75
> 43581
>
> 上記のとおり、 + 3 とすれば元の日付から見て、ちょうど3日あとになります。
> ただし、このやり方しか使いこなせないとなると、「2時間前はどう表現するのか?」とか「35分後」といった、60進法的処理の記述に行き詰まってしまいますね。
>
> ということで、この機会に、DateAdd関数をしっかりマスターされるほうが良いかと思います。
>
>
> > 小川さん
> > いつも大変楽しく勉強させていただきております。
> >
> > ウォーミングアップ問題1についての質問です。
> > 私は以下のようなコードを書いたのですが、小川先生と同じ日付が出ました。
> > こちらの方が簡素でいいと思ったのですが、このコードでも問題はないですか?
> > Sub mondai1()
> > Worksheets("Sheet3").Range("A1").Value = Date + 3
> > End Sub
> >

 


まずはここから!スマホでも学べる無料動画講座

今なら先着30名限定で無料!定価4,800円の、初心者のためのエクセルマクロ動画講座。
  1. Excel 97~Excel 2016まですべて対応。動画本数20本、総再生時間2時間44分53秒
  2. PC, Mac, iPhone, iPad, Androidのお好みの環境で、いつでも好きなときに学べます。
2004年から10年間述べ3,000名以上に実施した研修の経験と実績を集約した講座です。
いますぐ無料で試してください。

トップへ