• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:セルに入力された時間を表示し固定したい)

セルに入力された時間を表示し固定したい

このQ&Aのポイント
  • 表の特定の列に入力された時刻を記録したいが、自動的に固定したい
  • マクロを使用して、入力された時刻を別の列に表示し、固定する方法を知りたい
  • マクロ不慣れでも使える簡単な方法で、セルに入力された時間を表示し固定したい

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

  • ベストアンサー
  • k-josui
  • ベストアンサー率24% (3220/13026)
回答No.2

気に入らなければスルーで・・・ 関数もマクロも使わず、現在時刻入力はキーボードショートカットでOKです。 時刻の入力は → [Ctrl]+[:]キー 日付の入力は → [Ctrl]+[;]キー

akira0723
質問者

お礼

早々のご回答ありがとうございました。 ご回答を参考に下記のマクロを「ボタン」にして解決しました。 Sub Macro5() SendKeys "^:" End Sub

akira0723
質問者

補足

このショートカットキーを参考にマクロを「ボタン」にしました。 シンプルで当方にも分かりやすい方法で解決出来ました。

その他の回答 (3)

回答No.4

Q、A1に入力が有った時点の時刻をB1に表示したい。 A、次のようでいいのでは・・・ Private Sub Worksheet_Change(ByVal Target As Range)   If Target.Address = "$A$1" Then     Range("B1") = Format(Now(), "hh:mm")   End If End Sub Excel は一度も操作したことがないので、ちょいと調べて書いたやっつけ仕事。でも、これいいような気がします。

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.3

B列に 数式 =IF(A2<>"",TODAY(),"") を入れて式を複写しておく。 B列の書式を日付にしておく。 結果例 A2:B 12 2019/2/15 aa 2019/2/15 2019/2/15 <--ブランク入力 ーー これを固定するには、 https://kokodane.com/mini_macro26.htm などに3行マクロの例で載ってますが、Selectionを細工しないとならない。 そこで小生が思うのは、ブックを閉じるときに、B列を、自分自身のセルに、値複写するのはどうだろうか。 Private Sub Workbook_BeforeClose(Cancel As Boolean) Dim c As Range For Each c In Range("A2:A20") If Len(c) >= 1 And c.Offset(0, 1).HasFormula Then c.Offset(0, 1).Select Selection.Copy Selection.PasteSpecial Paste:=xlPasteValues End If Next c End Sub 夜11時から作業して夜1時に終わるような場合は、困るかもしれないが、そういう場合はない、と仮定して。

akira0723
質問者

お礼

ご回答も参考になりました。

akira0723
質問者

補足

ご回答ありがとうございます。 データ入力が続けてある場合と日にちをまたぐ場合があります。 また同じ日でもブックを閉じてしまう時もあります。 で、結局 複数の入力担当者の意見で、日付入力セルでマクロボタンをクリックで試行してみることになりました。 セルへの入力(変更)時の自動実行もご回答いただきましたが、B列も場所によっては日付以外の入力が必要になる可能性もあるので入力セルで「ボタン」クリックが分かりやすいとの結論になりました。 Sub Time() SendKeys "(^):" SendKeys "{ENTER}" End Sub

  • mt2015
  • ベストアンサー率49% (258/524)
回答No.1

対象シートに以下のマクロでどうでしょう。 B列にセル式は不要です。 Private Sub Worksheet_Change(ByVal Target As Range)   For Each rOne In Target     If rOne.Column = 1 Then '変更されたのがA列で       If rOne.Value = "" Then '値が空白ならB列も空白         Cells(rOne.Row, 2).Value = ""       Else '値が空白以外なら現在時刻をB列に入れる         Cells(rOne.Row, 2).Value = Now()       End If     End If   Next End Sub

akira0723
質問者

お礼

いつもお世話になっております。 早々のご回答ありがとうございます。 一発で日付と時刻が入りました。 但し、#No2さんのショートカットキーを「日付」ボタンで下記のコードで出来ることが分かったのでこれで行きます。 お手数をおかけしました。 ありがとうございました。 Sub Time() ' Time Macro ActiveCell.FormulaR1C1 = "12:22" End Sub

akira0723
質問者

補足

下記のお礼のあと、実際のシートで下記のコードでは駄目なことに気付きました。 早とちりでした。 キーの組み合わせにするか、ご回答のコードにするかは、作業担当者に聞いてから決めます。

関連するQ&A

専門家に質問してみよう