• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:空欄のセルをダブルクリックした時に現在の年月日を入力させたいのです。)

Excel VBAを使用してセルをダブルクリックした時に現在の年月日と時間を入力する方法

このQ&Aのポイント
  • Excel VBAを使用して、指定された範囲のセルをダブルクリックした時に現在の年月日を入力し、隣のセルに現在の時間を入力する方法を説明します。
  • 具体的には、C1からC30までのセルをダブルクリックした時にC1からC30に現在の年月日を表示し、D1からD30に現在の時間を表示します。また、E1からE30をダブルクリックした時にもE1からE30に現在の時間を表示します。
  • VBAコードを使用して、セルのダブルクリックイベントを処理し、ActiveCellに対して現在の日付を入力し、隣のセルに対して現在の時間を入力します。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.3

こんばんは。 まぁみなさんと大差ないけど、私なら 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

fi7
質問者

お礼

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

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (3)

回答No.4

実は 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

fi7
質問者

お礼

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

全文を見る
すると、全ての回答が全文表示されます。
  • DreamyCat
  • ベストアンサー率56% (295/524)
回答No.2

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関数を調べてみてください。 >>「プライバシーに関する・・」  <<  これはわかりませんが、セキュリティレベルを一番下げてしまう かな?

fi7
質問者

お礼

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

全文を見る
すると、全ての回答が全文表示されます。
  • web2525
  • ベストアンサー率42% (1219/2850)
回答No.1

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 で可能

fi7
質問者

お礼

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

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 点在するセルを、ダブルクリックで変更したいのです。

    シート上に多数点在するセルを、ダブルクリックで変更したいのです。 下記の通り、数ヶ所のセルだと思い通りにセルが変更されるのですが 30か。。。40個目辺りのセルを追加して行くと突然動かなくなってしまいます。 Range(・・・・・・・) ←この中 物には限界があるのかな?と思いつつ、質問致します。 120セル位で動作させたいのですが、良いお知恵をお貸し下さいませ。 皆様宜しくお願い致します。 Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) If Intersect(Target, Range("A1,C1,F1,A3,C3,F3,A6,C6,E6," _ & "A8,C8,E8,A10,C10,F10,A12,C12,F12," _ & "A14,C14,F14,A17,D17,F17,A19,C19,F19")) Is Nothing = False Then Cancel = True If Target.Value = ChrW(10003) Then Target.ClearContents Else Target.Value = ChrW(10003) End If End If End Sub

  • ダブルクリックで自動入力

    初心者です。教えて下さい。 一つのBOOKに二つのSheetがあります。 Sheet”データ”のA列に番号が入力してあり、そのセルをダブルクリックすると Sheet”印刷”の(A18)にダブルクリックした番号が入力され、 2回目からは前に入力したセルの一つ下に入力されるようにしたいのですが・・ 下記を自分で作ってみましたが、何度やっても(A18)にしか自動入力されません。 どのようにしたら最終行の下に入力されるようになるのでしょうか? 色々調べてみましたが分かりませんでした・・・宜しくお願い致します。 Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean) If Target.Count > 1 Then Exit Sub If Target.Column <> 1 Then Exit Sub Cancel = True With Worksheets("印刷") MyRange = Range("A18").End(xlUp).Offset(1).Address .Range(MyRange).Value = Target.Value Application.Goto .Range(MyRange) End With End Sub

  • エクセルVBA ダブルクリックした左隣の値を返す方法

    いつもお世話になっております。 あるワークシートにおいて、 Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, _ Cancel As Boolean) If ActiveCell.Column = 7 Then Target.Value = "希望" End If End Sub というマクロを記述することができました。 今度は、 G列のどこかのセルをダブルクリックすると、 同じ行のE列の値が、 ダブルクリックしたセルに入るようにしたいのです。 どのような記述をすればよいのか ご教示ください。

  • エクセルにてダブルクッリクしたときの動作

    エクセルにて特定のセルをダブルクリックをした時に日付を表示させたくて以下のマクロを組みました。 Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range,Cancel As Boolean) If intersect(Target, Range("A1")) Is Nothing Then Exit Sub If ActiveCell = "" Then ActiveCell = Format(date, "yyyy") Cancel = True End If End Sub この場合A1セルをダブルクリックした時のみ西暦が入力されるようになっていますが、他のセルで、例えばB1セルでは月、C1セルでは日にちをダブルクリックで入力させるにはどうしたら良いでしょうか? If intersect(Target, Range("A1")) Is Nothing Then Exit Sub のTarget, Rangeを書き換えて複数このマクロを書き込んだのですがうまく動作しなくて。 知恵を貸していただけると助かります。

  • 右クリック、ダブルクリックの操作

    勤務表作成してます。 A1に「ON・OFF」を表示します。 「ON」のときに、ダブルクリックで、上のセルを表示、右クリックで「1」を表示します。 「OFF」のときは、コンテキストメニュ-(通常の操作)が出来るようにしたいのですが、ON.OFFの切り替え操作のVBAがわかりません。 よろしくお願いします。 Option Explicit Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) ' ActiveCell = ActiveCell.Offset(-1, 0).Value ' ' If Target = Range("$A$1") Then ' Cancel = True If Range("$A$1").Value = "イベントON" Then Range("$A$1").Value = "イベントOFF" Else Range("$A$1").Value = "イベントON" ActiveCell = ActiveCell.Offset(-1, 0).Value Exit Sub End If Cancel = True If Range("$A$1").Value = "イベントOFF" Then Exit Sub End If End Sub Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean) 'ActiveCell = "1" ' If Target = Range("$A$1") Then ' Cancel = True ' If Range("$A$1").Value = "イベントON" Then ' Range("$A$1").Value = "イベントOFF" If Range("$A$1").Value = "イベントON" Then ActiveCell = "1" Else: Range("$A$1").Value = "イベントOFF" Exit Sub End If Cancel = True If Range("$A$1").Value = "イベントOFF" Then Exit Sub End If End Sub

  • ダブルクリックイベントで良いのかどうか?

    お世話になります。 ダブルクリックイベントで、そのセルを赤く色を塗り、尚且つ、 そのセルをダブルクリックした事により、別のワークブックを開き、 また、開いたワークブックのシートの中からある単語を検索して その属性を現在アクティブにしている、ブックのシートに記入しよう としていますが、 まず、下記の様に、ダブルクリックイベントで、セルを赤く塗るまではうまくいったのですが、別のブックを開く事がうまく出来ません。 記述が悪いのか、または標準モジュールに記述するべきなのか分からなく困っています。 どなたかご教授頂きたく宜しくお願い申し上げます。        記 Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) Dim Rng As Range, myRng As Range Set Rng = Range("c2:d2,f2") Set myRng = Intersect(Target, Rng) If myRng Is Nothing Then Exit Sub Rng.Interior.ColorIndex = xlColorIndexNone myRng.Interior.ColorIndex = 3 Cancel = True If Intersect(Target, Range("c2")) Then Workbooks.Open Filename:="C:\Documents and Settings\Owner\デスクトップ\台帳.xls" End If End Sub

  • Excel2007 セルをダブルクリック

    お願います。 顧客管理ファイルの顧客シートの顧客名セルをダブルクリックすると 見積書ファイルが開いてダブルクリックした顧客名セルの内容を提出先顧客名セルへ転記したい。 見積書(テンプレート)の見積書シート 出来れば「○○○株式会社」→「○○○株式会社 御中」で貼り付けしたいです。 Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) Worksheets("顧客シート").Range(ActiveCell).Copy Workbooks.Open "\C\見積書\2012年度\見積書(テンプレート).xls" Workbooks("見積書(テンプレート).xls").Worksheets("見積書").Range("a4").PasteSpecial End Sub こんなん書いてみましたがどうも上手くいきません・・・ ご指導のほどお願いします。

  • ダブルクリック・右クリックの操作方法

    勤務表作成してます。 A1に「ON・OFF」を表示します。 「ON」のときに、ダブルクリックで、上のセルを表示、右クリックで「1」を表示します。 「OFF」のときは、コンテキストメニュ-(通常の操作)が出来るようにしたいのですが、ON.OFFの切り替え操作のVBAがわかりません。 よろしくお願いします。 Option Explicit Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) ActiveCell = ActiveCell.Offset(-1, 0).Value If Target = Range("$A$1") Then Cancel = True If Range("$A$1").Value = "イベントON" Then Range("$A$1").Value = "イベントOFF" Else Range("$A$1").Value = "イベントON" End If If Range("$A$1").Value = "イベントOFF" Then Exit Sub End If End If End Sub Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean) ActiveCell = "1" ' If Target = Range("$A$1") Then ' Cancel = True ' ' If Range("$A$1").Value = "イベントON" Then ' Range("$A$1").Value = "イベントOFF" ' Else ' Range("$A$1").Value = "イベントON" ' End If If Range("$A$1").Value = "イベントOFF" Then Exit Sub End If End Sub

  • エクセル ダブルクリックで処理日の入力

    お世話になります。 先般、お教え頂きました別のダブルクリックイベントプロシージャと 下記の当日の日付を入力するという処理を同じシート上で行いたいのですが、VBエディターにどのように記述したら良いかわかりません。 当方、かなりの初心者です。 よろしくご教授くださいませ。 【新しく加えたい処理】 Option Explicit Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) If Intersect(Target, Range("b4:C999")) Is Nothing Then Exit Sub If ActiveCell = "" Then ActiveCell = Date Cancel = True End If End Sub 【もともと使っている処理】 Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) If Not Intersect(Target, Range("h1:h999")) Is Nothing Then With Target If .Value = "" Then .Value = "有" ElseIf .Value = "有" Then .Value = "無" ElseIf .Value = "無" Then .Value = "" End If End With ElseIf Not Intersect(Target, Range("i1:i999")) Is Nothing Then With Target If .Value = "" Then .Value = "要" ElseIf .Value = "要" Then .Value = "不要" ElseIf .Value = "不要" Then .Value = "" End If End With End If End Sub よろしくお願いします。

  • 複数のダブルクリックイベントを同一シートで

    以前 質問して回答をいただいたシートで他のダブルクリックイベントを記述したいのですが・・・ 単独だと できるようですが 複数できるようにしたいのですが エクセル2010です。 >http://okwave.jp/qa/q7230128.html A1:N1 のセルをダブルクリックしたら 色が黄色 また ダブルクリックしたら 色なし 教えをうけたマクロコードが 以下です。 ダブルクリックイベント その1 Private Sub worksheet_beforedoubleclick(ByVal Target As Excel.Range, cancel As Boolean) If Application.Intersect(Target, Range("A1:N1")) Is Nothing Then Exit Sub If Target.Interior.ColorIndex = xlNone Then Target.Interior.Color = vbYellow Else Target.Interior.ColorIndex = xlNone End If cancel = True End Sub ダブルクリックイベントその2 J8:J9,L8:L9,N8:N9,P8:P9,R8:R9,T8:T9,V8:V9,J29:J30,L29:L30,N29:N30,P29:P30,R29:R30 上の セルをダブルクリックしたら 現在時刻を表示したい 記述コードは 以下です。 Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) If Intersect(Target, Range("J8:J9,L8:L9,N8:N9,P8:P9,R8:R9,T8:T9,V8:V9,J29:J30,L29:L30,N29:N30,P29:P30,R29:R30")) Is Nothing Then Exit Sub If ActiveCell = "" Then ActiveCell = Time Cancel = True End If End Sub 2つのコードをうまくまとめたいのですが 知識不足でとまどっております。 詳しいかた、アドバイスお願いいたします。 よろしくお願いします。