Option Explicit
Sub test1()
Dim c As Long
Dim d As Date
c = 3
d = "#2015/" & c & "/1#"
Debug.Print d
End Sub
Sub test2()
Dim c As Long
Dim d As Date
c = 3
d = "2015/" & c & "/1"
Debug.Print d
End Sub
2018/03/15 03:26
小川慶一さんのコメント
(コメントID: 5247)
受講生 さん:
おそくなりました。
> 日付の記載方法に関しては、ダブルクォートで囲む方法とシャープで囲む方法があるそうですが、
TypeName関数使ってデータ型を調べてみるとよいです。
Sub hoge()
Debug.Print TypeName(#3/18/2018#) 'Date
Debug.Print TypeName("2018/3/18") 'String
Dim c As Long
c = 3
Debug.Print TypeName("2018/" & c & "/18") 'String
End Sub
受講生さんの投稿
(投稿ID: 3735)
御回答頂きましてありがとうございます。
キャストの件了解しました。
また、日付の記載に関してもう一点質問がありますので、ご教授下さい。
日付の記載方法に関しては、ダブルクォートで囲む方法とシャープで囲む方法があるそうですが、
今回のプログラム作製におきまして、当初はシャープで囲んでおりましたが、日付の中に変数を組み込むと
エラーとなってしまうため(Sub test1)、ダブルクォートで囲んだという経緯があります(Sub test2)。
そこでお尋ねしたいのですが、test1のように日付の前後をシャープで囲んだ場合、
その中に変数を組み込んだ書き方というのは出来ないのでしょうか?
仮に、出来ないとするならば、(かなり主観的な考え方になりますが)ダブルクォートで囲んだ方が
扱いやすいのかなという気もします。
逆に、シャープで囲んだ方が良いというメリット等ありましたら、ご教授下さい。
以上、よろしくお願いします。
小川慶一さんのコメント
(コメントID: 5247)
おそくなりました。
> 日付の記載方法に関しては、ダブルクォートで囲む方法とシャープで囲む方法があるそうですが、
TypeName関数使ってデータ型を調べてみるとよいです。
ということで、ダブルクォートで囲ったものは、たとえば "2018/3/18" であれば、長さ9文字の、「2 0 1 8 / 3 / 1 8」という文字列です。
シャープで囲うと日付型の日付ですね。
変数を使って日付を指定したいのであれば...。例えば、以下の要領で。
> 逆に、シャープで囲んだ方が良いというメリット等ありましたら、ご教授下さい。
まずは、ご自身で考えてみてください。
そこから考察を進めましょう。