【Day43】文系オタクのエンジニア道~関数④~データの種類を判定する
こんにちは
安田です
焼き肉では白米を大盛りで食べ
シメにクッパを食べるお米大好き人間です
今日も数は少なめですが、インプットに努めていきます
IsNumeric関数
引数に指定した値が数値のとき→True
引数に指定した値が数値以外のとき→False
それぞれを返します
Sub test1()
MsgBox IsNumeric(100)
End Sub
Sub test1()
MsgBox IsNumeric("ジョジョの奇妙な冒険")
End Sub
Sub test1()
MsgBox IsNumeric("100")
End Sub
理由
”100” ダブルコーテーションで囲っているので、文字列になります
文字列の"100"は数値の100に変換することが可能です
VBA内部で自動的に数値に変換しているからです
文字列型を自動的に数値型へ変換してくれる仕組みを
自動型変換、自動型キャストと呼びます
VBAの特徴でした
IsDate関数
引数に指定した値が日付の場合→True
引数に指定した値が日付以外の場合→False
こちらは共にFalseとなります
Sub test1()
MsgBox IsDate("100")
MsgBox IsDate("ジョジョの奇妙な冒険")
End Sub
次のコードはFalseが返ってくると思いきや
Sub test1()
MsgBox IsDate("2024/5/31")
End Sub
IsDate("2024/5/31")も実際には
「"2024/5/31"」という文字列型となります
こちらもVBA内部で日付型に自動型変換しています
本来であれば"#" シャープで囲む必要があります
(#5/31/2024#)
しかし、一般的に("2024/5/31")と記述することが多いため
VBAの自動型変換が働いています
下記の表記の仕方は、日付型に自動で変換されます
まとめ
VBAって頭いいなーという素人感想となりますが
使いやすいように考えてくれているんだなと
自動型変換があるということを認識していきます
「VBAマスターに俺はなる」
最後まで読んでいただき
ありがとうございます
安田
マガジンにまとめてありますので
よかったらそちらも御覧ください
この記事が気に入ったらサポートをしてみませんか?