エクセルでデータ入力された日付と時間を自動入力する方法 - アラフィフ生産技術の日常

エクセルでデータ入力された日付と時間を自動入力する方法

エクセルでデータ入力された日付と時間を自動入力する方法 EXCEL
エクセルでデータ入力された日付と時間を自動入力する方法

エクセルでデータ入力する作業があるんだよ。
日付と時間を入力しなきゃいけないんだけど
毎回入力するのが面倒で・・・。

方法は2つね。
1つ目はショートカットキーを使う。
2つ目はVBAを使って
特定の列にデータが入力されたら別のセルに日付と時間を自動入力させる。

VBAか~。
やったことないからわからないよ。

入力方法から、保存の仕方まで全部紹介するね。

データ入力された日付と時間を自動入力する方法

VBAエディターを開く

用意したサンプルシートはこちら。
C列にデータ入力されたらA列に日付、B列に時間を自動表示させる方法を紹介します。

用意したサンプルシートはこちら。
C列にデータ入力されたらA列に日付、B列に時間を自動表示させる方法を紹介します。

日付と時間を自動入力する サンプルシート
日付と時間を自動入力する サンプルシート

まず、シートのところ右クリック。
そして「コードの表示」をクリック。

コードの表示をクリック
コードの表示をクリック

すると、VBAエディターが開きます。
ここにコード入力します。

VBAエディター
VBAエディター

VBAのコードを入力する

入力が面倒だと思うのでテキスト貼っておきますね。

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Dim r As Range
For Each r In Target
If r.Column = 3 Then
r.Offset(0, -1).Value = Format(Now, “hh:mm:ss”)
r.Offset(0, -2).Value = Format(Now, “yyyy/mm/dd”)
End If
Next r
End Sub

コード入力
コード入力

さきほどの
C列にデータ入力されたらA列に日付、B列に時間を自動表示させる方法
の部分を説明すると
r.Column = 3
というのが「C列に」の事です。
仮にA列にしたいなら 3を1に変えてください。

r.Offset(0,-1) が 入力したセルの上下に0個、左右にー1個移動したセルを指定。
そこに表示形式が hh:mm:ss (時間:分:秒)時間で表示させます。

ここも好きなように調整して下さい。
秒がいらないのであれば hh:mm で大丈夫です。
その下も同様でこちらは日付を表示させてます。

VBAはここまで、このまま右上の閉じるをクリックして閉じてください。

VBAエディターを終了する
VBAエディターを終了する

実際に使ってみる

C列になんでもいいので入力してください。
A列に日付、B列に時間が自動入力されます。

日付と時間の自動入力が完成
日付と時間の自動入力が完成

先ほどの説明を参考にして、
業務にあったシートレイアウトやコードに作り替えてくださいね。

このブックを保存する

VBAコードが入力されているので通常の拡張子で保存しようとすると確認メッセージが表示されます。

確認メッセージ
確認メッセージ

正解の保存方法はこちら。
ファイルの種類を
Excelマクロ有効ブック(*.xlsm)
にして下さい。

EXCELマクロ有効ブックで保存
EXCELマクロ有効ブックで保存

おまけ:日付と時間を簡単入力するショートカットキー

ちらりと書いた日付と時間を入力するショートカットキーも紹介しておきます。
けっこう便利ですよ。

日付Ctrl + ; (セミコロン)
時間Ctrl + : (コロン)
日付と時間を入力するショートカットキー
エクセル・ワード・パワーポイントのオンライン学習講座

当ブログのトップページはこちらです。
ブックマークして頂けると嬉しいです。
よろしくお願いいたします。

コメント

  1. shimi より:

    列、行反対にするときはどうすればいいのでしょうか?

    • seigi-ojisan より:

      こちらでいかがでしょうか?
      3行目にデータを入力すると1行目に日付、2行目に時間が入力されます。

      Private Sub Worksheet_Change(ByVal Target As Excel.Range)
      Dim r As Range
      For Each r In Target
      If r.Row = 3 Then
      r.Offset(-1, 0).Value = Format(Now, “hh:mm:ss”)
      r.Offset(-2, 0).Value = Format(Now, “yyyy/mm/dd”)
      End If
      Next r
      End Sub

タイトルとURLをコピーしました