Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


59862 / 76738 ←次へ | 前へ→

【21543】Re:条件が認識しません
回答  Hirofumi  - 05/1/23(日) 2:14 -

引用なし
パスワード
   こんなかな?

Sub Test()

  Dim strTime As String
  Dim dtmTime As Date
  Dim dtmResult As Date
  
  strTime = InputBox("時刻を入力してください。hh.mm.ss", "時刻入力")
  If strTime <> "" Then
    If IsDate(strTime) Then
      dtmTime = TimeValue(strTime)
      dtmResult = dtmTime - #12:10:00 AM#
      If dtmResult < 0 Then        '★追加
        dtmResult = dtmResult + 1    '★追加
      End If               '★追加
      With Sheets("Sheet1")
        With .Range("B1")
          .NumberFormatLocal = "hh.mm.ss"
          .Value = dtmTime
        End With
        .Range("B2").Value = Hour(dtmResult)
        .Range("B3").Value = Minute(dtmResult)
        .Range("B4").Value = Second(dtmResult)
        With .Range("B5")
          .NumberFormatLocal = "hh.mm.ss"
          .Value = dtmResult
        End With
      End With
    Else
      MsgBox "時刻が入力されませんでした。最初からやり直してください"
      Exit Sub
    End If
  End If
  
End Sub

PS:
余談ですが、
質問時のコードでtimeと言う変数名を使っていますが、VBAにTimeと言うステートメント、関数が有ります
因って、予約名と言って本来は使わない、使え無い名前です
今回、Dimで変数宣言されているから変数として動いている様ですが、此れで変数宣言されていないで

Time = InputBox("時刻を入力してください。hh.mm.ss", "時刻入力")

等とすると、Systemの時間が変更されてしまいます
こう言う事とを回避する為に、成るべく変数名に頭3文字程度のプリフィックスを付けた方が無難です
(使いたい変数名は、大抵が予約名です)
0 hits

【21534】条件が認識しません あすなろ 05/1/22(土) 23:31 質問
【21535】Re:条件が認識しません ちゃっぴ 05/1/22(土) 23:44 回答
【21536】Re:条件が認識しません りすりす 05/1/22(土) 23:59 回答
【21538】Re:条件が認識しません あすなろ 05/1/23(日) 0:20 質問
【21539】Re:条件が認識しません Hirofumi 05/1/23(日) 0:46 回答
【21540】Re:条件が認識しません あすなろ 05/1/23(日) 1:03 お礼
【21542】時刻取得 あすなろ 05/1/23(日) 1:55 質問
【21543】Re:条件が認識しません Hirofumi 05/1/23(日) 2:14 回答
【21552】Re:条件が認識しません あすなろ 05/1/23(日) 15:13 お礼

59862 / 76738 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free