Excel VBA質問箱 IV

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

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


5155 / 13644 ツリー ←次へ | 前へ→

【52325】時間入力について yoshi 07/11/8(木) 22:33 質問[未読]
【52326】Re:時間入力について かみちゃん 07/11/9(金) 1:17 発言[未読]
【52327】Re:時間入力について yoshi 07/11/9(金) 1:55 質問[未読]
【52328】Re:時間入力について yoshi 07/11/9(金) 2:05 質問[未読]
【52340】Re:時間入力について yoshi 07/11/9(金) 12:18 質問[未読]

【52325】時間入力について
質問  yoshi  - 07/11/8(木) 22:33 -

引用なし
パスワード
   よろしくお願いします。
時間入力についてお伺いします
たとえばA5:B50内で
720と入力したら7:20
1500と入力15:00となるような
方法ありますか?あるようでしたら
Worksheet_Changeイベントで
お願いします。

【52326】Re:時間入力について
発言  かみちゃん  - 07/11/9(金) 1:17 -

引用なし
パスワード
   こんにちは。かみちゃん です。

>時間入力についてお伺いします
>たとえばA5:B50内で
>720と入力したら7:20
>1500と入力15:00となる

以下のような感じです。
Private Sub Worksheet_Change(ByVal Target As Range)
 If Intersect(Target, Range("A5:B50")) Is Nothing Then Exit Sub
 Application.EnableEvents = False
 Target.Value = Format(Target.Value, "00:00")
 Application.EnableEvents = True
End Sub

エラー処理は、まったくしていませんので、必要であれば、過去ログくらいは検索しましょう。
Worksheet_Changeのエラー処理の方法は、たくさん載っています。

【52327】Re:時間入力について
質問  yoshi  - 07/11/9(金) 1:55 -

引用なし
パスワード
   >エラー処理は、まったくしていませんので、必要であれば、過去ログくらいは検索しましょう。
>Worksheet_Changeのエラー処理の方法は、たくさん載っています。
かみちゃんさん
ありがとうございます
うまく動作しました
vbaあまり詳しくないのですが
どんなエラー処理必要なんですか?

【52328】Re:時間入力について
質問  yoshi  - 07/11/9(金) 2:05 -

引用なし
パスワード
   下記のようなことでしょうか?
Private Sub Worksheet_Change(ByVal Target As Range)
 If Intersect(Target, Range("D5:E50")) Is Nothing Then Exit Sub
 Application.EnableEvents = False
 On Error Resume Next
 Target.Value = Format(Target.Value, "00:00")
 On Error GoTo 0
 Application.EnableEvents = True
End Sub

【52340】Re:時間入力について
質問  yoshi  - 07/11/9(金) 12:18 -

引用なし
パスワード
   かみちゃんさんへ
過去ログからいろいろ調べました
問題ないですか?
よろしくお願いします
Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
 If Intersect(Target, Range("D5:E50")) Is Nothing Then Exit Sub

 With Target
  If .Count > 1 Then Exit Sub
  If IsEmpty(.Value) Then Exit Sub
  If Not IsNumeric(.Value) Then Exit Sub
 
  If Len(.Value) <> 3 And Len(.Value) <> 4 Then
    MsgBox "値が違います"
  End If

  If .Value / 100 > 23 Then
    MsgBox "値が違います"
  End If

  If .Value Mod 100 > 59 Then
    MsgBox "値が違います"
  End If
 End With
 Application.EnableEvents = False
 On Error Resume Next
 Target.Value = Format(Target.Value, "00:00")
 On Error GoTo 0
 Application.EnableEvents = True
End Sub

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