【VBA】日付、日時を判定するIsDate関数


今回は、IsDate関数を見ていきます。 この関数は値が日付として扱えるのかどうかを判定する関数になります。これだけ聞くとどこで使えるのか分かりづらいとは思いますが、非常に有用な関数です。

IsDate関数に限らず、日付を扱う関数はとても重要なんだにゃ。 日付をどうにかしたいときにまずは値が日付かどうかで、分岐させると非常に使い勝手の良いプログラムになるんだにゃ。
ぜひここで使い方を覚えてほしんだにゃ。
IsDate関数とは?

まずは、IsDate関数の基本について見ておきましょう。
構文:IsDate(引数)
戻り値:True or False
引数に、日付式や文字式を指定して使うと、引数が日付データならTreuを、日付データでなければ、Falseを返します。日付だけでなく、日時でもOK!
形式によっては、日付と認識してくれないので、何が日付として使えるか、使えないのかを覚えておくとスムーズに書けると思います。

基本はたったこれだけだにゃ。後は実践のみ繰り返し使って覚えていくんだにゃ。
形式の使用例
Trueを返す場合

Trueを返す場合を見ていきましょう。日付や時間、複合した場合でも返せますね。重要なのは、その単位や繋がりに何を使っているか。”/”(スラッシュ)、”-“(ハイフン)、 ” “(空白)、”年月日”、時間であれば、”時分秒”、” : “(コロン)が使えます。
Debug.Print IsDate("2022/12/31")
>> True
Debug.Print IsDate("2022-12-31")
>> True
Debug.Print IsDate("2022年12月31日")
>> True
Debug.Print IsDate("令和4年12月31日")
>> True
Debug.Print IsDate("2022 12 31")
>> True
Debug.Print IsDate("22/12/31")
>> True
Debug.Print IsDate("2022/12-31")
>> True
Debug.Print IsDate("12:35:45")
>> True
Debug.Print IsDate("12時35分45秒")
>> True
Debug.Print IsDate("2022/12/31 12:35:45")
>> True
Debug.Print IsDate("2022年12月31日12時35分45秒")
>> True
Debug.Print IsDate("令和4年12月31日12時35分45秒")
>> True
Falseを返す場合

一方で、使えそうで使えないものもあるんだにゃ。プログラムがおかしいと思った場合は、確認してみると良いんだにゃ。特に複合させる場合でも、漢字を混ぜるとおかしくなるんだにゃ。
Debug.Print IsDate("20130102")
>> False
Debug.Print IsDate("2022.12.31")
>> False
Debug.Print IsDate("令和四年十二月三十一日")
>> False
Debug.Print IsDate("2022_12_31")
>> False
Debug.Print IsDate("2022年12/31")
>> False
プログラミングを学ぶならTechAcademy(テックアカデミー)がおすすめ!

独学で苦戦している人は、一度しっかりと基礎を学ぶと次のステップへ進めますよ。今のおすすめは、TechAcademy(テックアカデミー)ですね。
- オンラインで選抜された現役エンジニアから学ぶことができる
- 自宅からWeb制作・プログラミング・アプリ開発など幅広い分野を学べる
- 学ぶだけではなく、転職の支援、副業に活かせるスキルの習得、副業の仕事紹介まで行っている

無料体験や相談もあるから、一度試してみてもいいんだにゃ!
\無料体験、無料相談はこちらから/