アプリ版:「スタンプのみでお礼する」機能のリリースについて

空欄のセルをダブルクリックした時に現在の年月日を入力させたいのです。
そして同時に隣のセルにも現在時間を入力させたいのです。
また、その隣のセルをダブルクリックした時にも現在時間を入力させたいのです。
エクセル2007を使用しています。

(例)C1からC30までのセルをダブルクリックした時にC1からC30に現在年月日を表示させ、D1からD30に現在時間を表示させる。
また、E1からE30をダブルクリックした時にE1からE30に現在時間を表示させる。


上記の事をやりたいのですが、C1からC30の現在年月日の入力までしかうまくできないのです。

どのようにすればうまくできるか、VBAに詳しい方、ご教授お願い致します。

現在までのコードは以下のように入力しました。

Option Explicit

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

If Intersect(Target, Range("C1:C1000")) Is Nothing Then Exit Sub

If ActiveCell = "" Then
ActiveCell = Date
Cancel = True
End If

End Sub


初心者なので、詳しい変更方法の解説をお願いします。


また、このエクセルを保存する時に「プライバシーに関する・・」というダイアログが出てくるのですが出ないように変更できますか?
出さないようにできる方法があれば教えて下さい。

よろしくお願い致します。

A 回答 (4件)

こんばんは。



まぁみなさんと大差ないけど、私なら

Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Not IsEmpty(Target) Then Exit Sub
If Intersect(Target, Range("C1:C30,E1:E30")) Is Nothing Then Exit Sub
If Target.Column = 3 Then
Target.Value = Date
Target.Offset(, 1).Value = Time
ElseIf Target.Column = 5 Then
Target.Value = Time
End If
Cancel = True
End Sub
    • good
    • 1
この回答へのお礼

希望通りの事が出来ました。
ありがとうございました。

お礼日時:2010/08/17 21:39

実は With が好きなので使ってみた。

Visual C# も With が使えるといいのになぁ。

Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Not IsEmpty(Target) Then Exit Sub
If Intersect(Target, Range("C1:C30,E1:E30")) Is Nothing Then Exit Sub
With Target
If .Column = 3 Then
.Value = Date
.Offset(, 1).Value = Time
ElseIf .Column = 5 Then
.Value = Time
End If
End With
Cancel = True
End Sub
    • good
    • 0
この回答へのお礼

希望通りの事が出来ました。
ありがとうございました。

お礼日時:2010/08/17 21:38

If Not Intersect(Target, Range("C1:C1000")) Is Nothing Then


If ActiveCell = "" Then
ActiveCell.Value = Date
ActiveCell.Offset(, 1).Value = Hour(Now())
End If
End If

If Intersect(Target, Range("E1:E1000")) Is Nothing Then Exit Sub
ActiveCell.Value = Hour(Now())

Cancel = True

これでどうぞ。年月日や時刻の書式はformat関数を調べてみてください。


>>「プライバシーに関する・・」  <<
 これはわかりませんが、セキュリティレベルを一番下げてしまう かな?
    • good
    • 0
この回答へのお礼

希望通りの事が出来ました。
ありがとうございました。

お礼日時:2010/08/17 21:39

C列に日付表示と同時にD列に時刻表示は


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

If Intersect(Target, Range("C1:C1000")) Is Nothing Then Exit Sub

If ActiveCell = "" Then
ActiveCell = Date
ActiveCell.Offset(0, 1) = Time 'この部分が追加
Cancel = True
End If

End Sub

で可能
    • good
    • 0
この回答へのお礼

希望通りの事が出来ました。
ありがとうございました。

お礼日時:2010/08/17 21:39

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!