呼出されて勤務した時間帯を管理したいのですが
selectcase文で18:00から2:00まで勤務したら『準夜-深夜』と表記したいのですが『型が合いません』とエラーが出ます
マクロは我流で勉強中なのでよろしくお願いします
Dim 開始時間 As Date, 終了時間 As Date
Dim 開始時間帯 As String, 終了時間帯 As String, 業務時間帯 As String
Private Sub 業務ステータス()
開始時間 = TimeValue(開始時間TextBox.Text)
終了時間 = TimeValue(終了時間TextBox.Text)
Select Case 開始時間
Case 開始時間 > TimeValue("8:29") And 開始時間 < TimeValue("17:00"): 開始時間帯 = "日勤"
Case 開始時間 > TimeValue("16:59") And 開始時間 < TimeValue("24:00"): 開始時間帯 = "準夜"
Case 開始時間 > TimeValue("0:00") And 開始時間 < TimeValue("8:30"): 開始時間帯 = "深夜"
Case 開始時間 = TimeValue("0:00"): 開始時間帯 = "深夜"
End Select
Select Case 終了時間
Case 終了時間 > TimeValue("8:29") And 終了時間 < TimeValue("17:00"): 終了時間帯 = "日勤"
Case 終了時間 > TimeValue("16:59") And 終了時間 < TimeValue("24:00"): 終了時間帯 = "準夜"
Case 終了時間 > TimeValue("0:00") And 終了時間 < TimeValue("8:30"): 終了時間帯 = "深夜"
Case 終了時間 = TimeValue("0:00"): 終了時間帯 = "深夜"
End Select
If 開始時間帯 = 終了時間帯 Then
業務時間帯 = 開始時間帯
Else
業務時間帯 = 開始時間帯 & "-" & 終了時間帯
End If
End Sub
No.2ベストアンサー
- 回答日時:
質問のエラーは#1さんの通りだけど
caseの使い方も間違いだと思うので修正してみました
もう一度、ヘルプに目を通しておいた方が良いかと
Dim 開始時間 As Date, 終了時間 As Date
Dim 開始時間帯 As String, 終了時間帯 As String, 業務時間帯 As String
Private Sub 業務ステータス()
開始時間 = TimeValue(開始時間TextBox.Text)
終了時間 = TimeValue(終了時間TextBox.Text)
Select Case 開始時間
Case TimeValue("8:29") To TimeValue("17:00"): 開始時間帯 = "日勤"
Case TimeValue("17:00") To 1: 開始時間帯 = "準夜"
Case TimeValue("00:00") To TimeValue("8:30"): 開始時間帯 = "深夜"
End Select
Select Case 終了時間
Case TimeValue("8:29") To TimeValue("17:00"): 終了時間帯 = "日勤"
Case TimeValue("17:00") To 1: 終了時間帯 = "準夜"
Case TimeValue("00:00") To TimeValue("8:30"): 終了時間帯 = "深夜"
End Select
If 開始時間帯 = 終了時間帯 Then
業務時間帯 = 開始時間帯
Else
業務時間帯 = 開始時間帯 & "-" & 終了時間帯
End If
End Sub
日を跨ぐ時は日付も付加しないと、正確な計算が出来ませんよ
今回は時間の計算が無いため、希望の処理になると思いますが・・・
詳しい説明は省きますが、時間の計算が必要な時は気をつけてくださいね
わかりやすい説明&コード訂正、ありがとうございます。
今回初めてSELECT文を使ってみたのでずっと悩んでました(汗)
今まではIFばっかで分岐させてたのでコードが長くなっていたので一歩進んだことをしようとしてドツボはまってました。
これからも精進します。
時間計算のほうは克服済です(笑)ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 指定した値以上の中で最小値を出したい 7 2022/10/24 21:12
- Excel(エクセル) 日付で矢印マクロ 4 2023/07/25 16:47
- Excel(エクセル) エクセルで勤務時間の計算をしています。 下記図でstartは勤務開始時間、endは勤務終了時間です。 5 2022/06/07 13:51
- 避妊 至急教えてください。アフターピルを飲むべきですか? 低容量ピルを服用していますが、アフターピルを飲ん 3 2023/05/02 11:09
- その他(プログラミング・Web制作) GASでガントチャートを作りたいです 1 2022/09/05 17:26
- Windows 10 ディスククリーンアップ 2 2023/01/03 18:59
- Visual Basic(VBA) Excel vbaについての質問 3 2023/04/18 16:14
- その他(Microsoft Office) エクセル 条件付き書式 日をまたぐ塗りつぶし 1 2023/01/13 18:00
- アルバイト・パート 初めてバイトを始めました。まだ初めてから1ヶ月程ですが、少し違和感がします。 その職場はタイムカード 1 2022/05/07 01:57
- Excel(エクセル) エクセル2019の関数を教えてください。 8 2022/12/16 12:45
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
業務 「主任技術者 管理技術者」
-
退職後12年 職歴証明書は作成...
-
【業務中の歯磨きについて】 僕...
-
【文章】ここで学んだ事を活か...
-
委任状の有効期限
-
職業安定法27条
-
終業前にゴミ捨て・片付けなど...
-
前の部署への出戻り
-
INDEX、MATCH関数での空欄を「0...
-
追加して別の警備業務につく場...
-
人事異動 ショックで憤りを感じ...
-
簡易郵便局はどこまで出来るの?
-
宅建主任者の設置についての質...
-
業務のマニュアルが整備されて...
-
兼務とは
-
私ばかり大変アピールするおば...
-
職場でガスライティング?を受...
-
職場の先輩が生理的に無理です...
-
仕事に関する話を外でしていけ...
-
派遣労働者の業務内容について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
前の部署への出戻り
-
退職後12年 職歴証明書は作成...
-
【文章】ここで学んだ事を活か...
-
兼務とは
-
人事異動 ショックで憤りを感じ...
-
職場でガスライティング?を受...
-
INDEX、MATCH関数での空欄を「0...
-
終業前にゴミ捨て・片付けなど...
-
仕事に関する話を外でしていけ...
-
業務 「主任技術者 管理技術者」
-
健康診断個人票の「業務歴」に...
-
目標管理シートの書き方
-
委任状の有効期限
-
暴行犯を捕まえようとしなかっ...
-
始末書の作成時間は労働時間に...
-
退職した会社から在職中の業務...
-
簡易郵便局はどこまで出来るの?
-
【業務中の歯磨きについて】 僕...
-
教えたくないよぉ。関数を使っ...
-
仕事の教え方がヘタ……?
おすすめ情報