【VBA】つまらないことでハマった

制御文の罠?

お疲れモードのjimです。ども✋

今回は、VBAのくっだらないことでハマったという記事です。

『時間を入れる変数を文字列で定義してた』っていう凡ミスで、制御文が仕事をしていなかったという。。。

流れを説明すると⇒

1、hm1とhm2って変数を文字列で定義した

2、その変数2つを不等号(If文)で比較しようとした

3、10:00に9:00が勝った(9:00>10:00ってこと)

そゆ話。

 

10時よか9時

要するに文字列で比較してたんだよね。(当たり前だけど)

例えば、Dir関数使って1~11っていうファイル名を取得すると、1の次に10。10の次に11っていうファイル名がくるのと一緒ってこと。

だから、10:00より9:00のが大きいという判定になる。

↓10より2のが大きいという結果になる(ノーヒット)

 

文字列で比較させたいなら、hh:mmのような表示形式で比較してやらないとだめってことだね。

↓Formatがないとノーヒットになります

 

↓のように変数に代入する時に#で囲めばいいんだけどね

 

でも今回はExcelのcellから取得したんだよね。

↓じゃあ、CDate関数で比較?

 

しっかり定義しろ

いやぁ。。。

やり方は色々あるだろうけど、最初から時間(日付型)で定義しとけって話。

 

まあ、人生色々あらぁな。

 

 

はい、そんな感じ。

今週も疲れてたからなぁ。。

吹き出物できてるし。。。

全然気づかなくて、20分くらいハマったわ😅

じゃ、またね✋