ここから本文です

セルへの時間入力VBAについて セルへの時間入力VBAについてご教授ください。 ...

mei********さん

2016/6/611:33:08

セルへの時間入力VBAについて


セルへの時間入力VBAについてご教授ください。

以下のVBAを「Sheet1」へ保存ています。

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Ran

ge, Cancel
As Boolean)
With Target
If Intersect(.Cells, Range("A1:A10")) Is Nothing Then Exit Sub
Cancel = True
.Value = Format(Time, "h:mm:ss")
End With
End Sub


<VBA内容>
範囲内のセルをダブルクリックで時間入力
対象範囲(A1~A10)
時間表示(hh:mm:ss)
ダブルクリックの度に

<変更したい機能>
・空白のセルにのみ、ダブルクリックで時間入力
・既に時間が入っているセルにダブルクリックしても時間更新なし
(初回に入った時間のまま更新しない、)
・時間以外でも何かしら入っていたらダブルクリックでの時間入力、更新はしない
・既に時間(何かしらの値)が入っているセルは選択可能で手動での時間更新は可能


大変恐れ入りますが、
ご教授お願い致します。

補足申し訳ございません。
vba内容が途中になってしまいました。

・ダブルクリックの度に時間更新される。

です。
宜しくお願い致します。

閲覧数:
49
回答数:
2

違反報告

ベストアンサーに選ばれた回答

msk********さん

2016/6/611:38:00

こんな感じです。

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
With Target
If Intersect(.Cells, Range("A1:A10")) Is Nothing Then Exit Sub
If .Value = "" Then
Cancel = True
.Value = Format(Time, "h:mm:ss")
End If
End With
End Sub

この質問は投票によってベストアンサーに選ばれました!

ベストアンサー以外の回答

1〜1件/1件中

hag********さん

2016/6/611:45:37

以下でどうでしょうか

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

With Target
If Intersect(.Cells, Range("A1:A10")) Is Nothing Then Exit Sub
Cancel = True
If .Value = "" Or Not IsDate("2000/1/1 " & Format(.Value, "h:mm:ss")) Then
.Value = Format(Time, "h:mm:ss")
End If
End With

End Sub

すでに時刻が入っているかどうかの判定が、単純にはIsDateでできないので、任意の日付と組み合わせる必要があります。

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる