VBAで時間計算をを行う方法

VBA

こんにちは。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って業種問わずよく使用されるソフトですので
覚えておいて損はないです。
ぜひ自分だけのプログラム作ってみてはいかがでしょうか。
最後までご覧いただきありがとうございました。