こんにちは。kazuです。
本日はVBAで時間計算を行う方法になります。
今回は何を行うか
まず時間を計算をセル上で行うと

↓

のように記載するようになると思います。
今回はそれをVBAでフォームに出して行う
ということを行いました。
実行結果を見てみよう
まずはボタンを押します

「時刻入力します。よろしいですか?」
という表示がでて「はい」を押す。

日付と時刻を入力するフォームが出てきますので
日付時刻を入力します。今回は日付だけですが、
年も入力することができます。

何時間後を表示したいかを入力します。

「試験終了日時の結果を表示しますか?」で「はい」を押す。

計算結果を表示してくれる。

今回はこれを表示してくれるコード
になります。
コードを見てみよう。
'日時時間入力フォーム
Sub 現在時刻の設定()
Dim ipt As String
ipt = Application.InputBox(prompt:="試験開始の日付と時間を入力して下さい!", Title:="試験開始時間入力", Default:="記入例:*/* **:**") '日付と時間の入力
Select Case ipt
Case "False"
MsgBox "測定時間を入力します!", Title:="未記入" 'いいえを選択する
Case ""
MsgBox "空白です!日付と時間を入力して下さい。", vbCritical + vbExckamation, "警告" 'インプットボックスを空白ではいにすると
Case Else
Range("B10") = ipt 'インプットボックスに日付と時間を入力すると
End Select
End Sub
'時間入力フォーム
Sub 測定時刻の設定() 'セルC10
Dim ipt2 As String
ipt2 = Application.InputBox(prompt:="何時間測定しますか?入力してください!", Title:="試験時間入力", Default:="記入例:**:**")
Rag = Range("C10")
Select Case ipt2
Case "False"
MsgBox "試験終了時間を表示します", Title:="未記入" 'いいえを選択する
Case ""
MsgBox "空白です!測定時間を入力して下さい。", vbCritical + vbExckamation, "警告" 'インプットボックスを空白ではいにすると
Case Else
Range("C10") = ipt2 'インプットボックスに時間を入力すると
End Select
End Sub
'計算結果表示フォーム
Sub 計算結果() 'セルD10の結果表示
Dim msb As Integer
msg = MsgBox("試験終了日時の結果を表示しますか?", vbYesNo + vbQuestion, "確認")
If msg = vbYes Then 'はいにする
If Range("B10").Value = "" Then
MsgBox "日付と時間を手入力が空白です!入力してください!", vbCritical + vbExckamation, "警告" 'セルB10が空白
ElseIf Range("C10") = "" Then
MsgBox "何時間後?が空白です!入力して下さい!", vbCritical + vbExckamation, "警告" 'セルC10が空白
Else
MsgBox Range("B10") + Range("C10"), Title:="試験終了時刻表示" 'B10とC10が入力されてる場合時刻表示がでる
End If
ElseIf msg = vbNo Then
MsgBox "オレンジの結果に表示します", Title:="未表示" 'いいえを選択する
End If
End Sub
Sub 時刻計算()
Dim massage As Integer
massage = MsgBox("時刻入力をします。よろしいですか?", vbYesNo + Question, Title:="試験終了日時計算")
If massage = vbYes Then
'マクロ呼び出し
Call 現在時刻の設定
Call 測定時刻の設定
Call 計算結果
Else
MsgBox "中断しました", vbCritical + vbExckamation, "中断"
End If
End Sub
この4つのフォームを出すのにこれだけのコードが書かれています。
ふぅ…
これ作るの結構疲れました(笑)
ぜひ活用してみて下さい。
最後に
いかがでしたでしょうか?
VBAって書き方によってはいろいろなものを作ることができます。
しかもexcelって業種問わずよく使用されるソフトですので
覚えておいて損はないです。
ぜひ自分だけのプログラム作ってみてはいかがでしょうか。
最後までご覧いただきありがとうございました。