プロが教えるわが家の防犯対策術!

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

A 回答 (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
    • good
    • 7
この回答へのお礼

できました!

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

お礼日時:2007/03/12 22:01

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の画面に戻り、セルに入力をすると最終更新日が自動的に更新されます。
最終更新日の行はあらかじめ日付と時刻に書式設定しておいてください。

この回答への補足

できました!
ありがとうございます。

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

補足日時:2007/03/12 21:13
    • good
    • 1

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

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A