• ベストアンサー

【エクセル】行の最終更新日を、あるセルに自動で入力させる方法。

エクセルの表で、ある行のデータを更新した時、 その行の最末尾に作っておいた項目名「最終更新日」というセルのデータに 自動的に更新日時が入力されるようにするにはどのようにすればよいでしょうか?

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

  • ベストアンサー
  • ham_kamo
  • ベストアンサー率55% (659/1197)
回答No.2

No.1です。 すみません、縦横を間違えていましたか。これは失礼しました。 書き換える所はいっぱいあるので、とりあえずマクロを以下のものに置きかえていただけますか?(データの入力範囲の箇所だけ修正してください) Private Sub Worksheet_Change(ByVal Target As Range)  Dim MyRng As Range, R As Range, L As Range  Dim LastUpdated As Integer  Set MyRng = Intersect(Target, Range("B2:D6"))  If MyRng Is Nothing Then Exit Sub    Set L = Rows(1).Find("最終更新日")  If L Is Nothing Then Exit Sub  LastUpdated = L.Column    For Each R In MyRng.Rows   Cells(R.Row, LastUpdated) = Now  Next End Sub

minaru
質問者

お礼

できました! ご親切に二度もお答えくださってありがとうございました。 大変に分かりやすかったです。 本当にありがとうございました。

その他の回答 (1)

  • ham_kamo
  • ベストアンサー率55% (659/1197)
回答No.1

A列に項目名が入っており、「最終更新日」という項目名が書いてあるとします。 シートタブを右クリックし、「コードの表示」を選択するとVBAの画面が出るので、右の画面に以下のマクロをコピーして貼り付けてください。その際、3行目の"B2:D6"は実際にデータが入るセル範囲に書き換えてください。 Private Sub Worksheet_Change(ByVal Target As Range)  Dim MyRng As Range, R As Range, L As Range  Dim LastUpdated As Integer  Set MyRng = Intersect(Target, Range("B2:D6"))  If MyRng Is Nothing Then Exit Sub    Set L = Columns("A").Find("最終更新日")  If L Is Nothing Then Exit Sub  LastUpdated = L.Row    For Each R In MyRng.Columns   Cells(LastUpdated, R.Column) = Now  Next End Sub Alt+F11でExcelの画面に戻り、セルに入力をすると最終更新日が自動的に更新されます。 最終更新日の行はあらかじめ日付と時刻に書式設定しておいてください。

minaru
質問者

補足

できました! ありがとうございます。 差し支えなければ教えていただきたいのですが、 「A列に項目名が入っている表」ではなく「1行目に項目名が入っている表」だった場合は どこを書き換えればよいのでしょうか?

関連するQ&A