現在時間を判断してあいさつを出すVBAを書こうとしましたがうまくいきません。
どこが悪いのかご教示くださいませ。
Sub メッセージ()
Dim MG As String
Select Case Time
Case Time < "16:00:00"
MG = "こんにちは。"
Case Time < "12:00:00"
MG = "おはようございます。"
Case Time >= "16:00:00"
MG = "こんばんは。"
End Select
MsgBox MG
End Sub
No.3ベストアンサー
- 回答日時:
設定の順番が間違えてます。
これでは"おはようございます"は表示されません。Case の後はTimeではなくIs
時間は小数に直すか、分数にした方が間違いないです。
最後の条件はElseにすれば残った条件に対応します。
Sub メッセージ()
Dim MG As String
Select Case Time
Case Is < 1 / 2
MG = "おはようございます。"
Case Is < 2 / 3
MG = "こんにちは。"
Case Else
MG = "こんばんは。"
End Select
MsgBox MG
End Sub
この回答への補足
> 時間は小数に直すか、分数にした方が間違いないです。
12時=24時*1/2
16時=24時*2/3 ですね?ここまではわかりました。
でも、すみません。なぜなの?
もう1点
> 設定の順番が間違えてます。
Case Is < 2 / 3 を先に持ってくると 1 / 2もこれにはいってしまい、これで変数MGが「こんにちは」に決定してしまうということですね?
No.5
- 回答日時:
私もよく勘違いします。
Select Case 何々
Caseの後は、何々なしで、値を書けば良い。
(A)「値」にピッタリのものを目指す時は、値だけを
記述
しかしなぜか
(B)(=を除き)比較演算子<などを使うときは
IS(IS演算子)が要る。
深い理由はあるのだろうが、無しにして欲しいと思ったものです。
余分ですが、他の言語などでは、時刻を定数として表現する場合に#で囲む必要があったりで、要注意。
No.4
- 回答日時:
Sub メッセージ()
Dim MG As String
Select Case Time
Case Is < "16:00:00"
MG = "こんにちは。"
Case Is < "12:00:00"
MG = "おはようございます。"
Case Is >= "16:00:00"
MG = "こんばんは。"
End Select
MsgBox MG
End Sub
ってのでどうでしょう?
No.2
- 回答日時:
case では判断文は使用できません。
以下のようにします。
-----------------------------------------
Dim MG As String
Select Case Hour(Time)
Case 0 To 12
MG = "おはようございます。"
Case 13 To 16
MG = "こんにちは。"
Case Else
MG = "こんばんは。"
End Select
MsgBox MG
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセルのVBAでダブルクリックでチェックを入れたあと 1 2022/10/26 20:30
- Visual Basic(VBA) Vbaで数式をポーランド記法に変換するコードを作って実行しようとするとフリーズします。 1 2022/05/24 17:53
- Visual Basic(VBA) 【追加】ファイルを閉じてダイアログで保存した時だけ処理の実行をする 3 2022/03/23 15:43
- Visual Basic(VBA) select caseの入れ子 3 2023/03/08 18:48
- Visual Basic(VBA) 【変更】ファイルを閉じてダイアログで保存した時、更新したシートだけの処理の実行をする 5 2022/03/26 18:31
- Visual Basic(VBA) 先ほど、回答者様によって教えていただいたのですがどうしたらいいか分かりません。 ユーザーフォーム上に 2 2023/02/21 22:25
- Visual Basic(VBA) 【Excel VBA】自動メール送信の機能追加 5 2022/09/29 12:53
- Excel(エクセル) 2つのVBAを一緒にしたら機能しなくなりました(エクセル) 7 2022/06/02 12:41
- Visual Basic(VBA) Excel vbaについての質問 3 2023/04/18 16:14
- Visual Basic(VBA) エクセル VBAについて 2 2022/05/16 16:33
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教える店舗&オフィスのセキュリティ対策術
中・小規模の店舗やオフィスのセキュリティセキュリティ対策について、プロにどう対策すべきか 何を注意すべきかを教えていただきました!
-
Select case To を用いた時間の範囲指定に関して
Excel(エクセル)
-
IF文に時間(何時から何時まで)の条件文を付けたい
Word(ワード)
-
vba 時間の引き算 例えば 15:00から16:15の間の時間は1時間15分ですが、vbaのコード
Visual Basic(VBA)
-
-
4
vba セルに入力した時間をマクロで受け取るには?
Excel(エクセル)
-
5
excel vba 時間計算と条件分岐の質問
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
首吊りどこ締めるの
-
至急!尿検査前日にオナニーし...
-
腕を見たら黄色くなってる部分...
-
検便についてです。 便は取れた...
-
彼女のことが好きすぎて彼女の...
-
勃起する時って痛いんですか? ...
-
精子が黄色?
-
口の中に黒い血の塊
-
白血球が多いとどんな心配があ...
-
尿検査前日に自慰行為した時の...
-
中出しをするとお腹が痛い・・・。
-
精子に血が・・・
-
これって喉仏ですか? 私は女性...
-
爪が紫色?
-
納豆食べた後の尿の納豆臭は何故?
-
筋トレするとチンコが縮んじゃ...
-
射精をして1週間以内に尿検査を...
-
尿検査の前日は自慰控えたほう...
-
EXCELで式からグラフを描くには?
-
excelでsin二乗のやり方を教え...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
至急!尿検査前日にオナニーし...
-
首吊りどこ締めるの
-
尿検査の前日は自慰控えたほう...
-
尿検査前日に自慰行為した時の...
-
検便についてです。 便は取れた...
-
白血球が多いとどんな心配があ...
-
中出しをするとお腹が痛い・・・。
-
射精をして1週間以内に尿検査を...
-
彼女のことが好きすぎて彼女の...
-
腕を見たら黄色くなってる部分...
-
勃起する時って痛いんですか? ...
-
変な話しになります。尿検査で...
-
これって喉仏ですか? 私は女性...
-
EXCELで条件付き書式で空白セル...
-
男です。昨日の午後3時くらいに...
-
今朝、毎朝の習慣でオナニーし...
-
納豆食べた後の尿の納豆臭は何故?
-
1日前の検尿
-
値が入っているときだけ計算結...
-
精子が黄色?
おすすめ情報