• ベストアンサー

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

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

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

  • ベストアンサー
  • 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

  • エクセル表→セル内データ更新→同じ行の最終更新日欄の日付を自動更新 し

    エクセル表→セル内データ更新→同じ行の最終更新日欄の日付を自動更新 したい。 エクセルで作成した表で、表の中のデータを更新した場合に、その行の最後の列の「最終更新日」の日付を自動的に更新する方法を探しています。 具体的には、エクセルで1行目のA列に「データのキーワード」、B列に「データのハイパーリンク」、C列に「データ記入者」、D列に「最終更新日」の項目を作成し、2行目以降に作成した各データをA~Cの項目に従って記入してデータ一覧表を作成しています。 その際に、A,C列の項目を更新した時と、B列項目のリンクを開いた時に、同じ行D列の最終更新日の日付を自動で入力及び更新する方法はないでしょうか? 恐らくマクロを組む必要があると思うのですが、全くの素人ですので是非教えて頂けないでしょうか? すみませんが、宜しくお願い致します。

  • セルの最終更新日を自動で表示させるには?

    エクセルにA3:Z50のセル範囲の表がある場合、A3:D50のセル範囲のデータを更新した時はA1のセルに、E3:Z50のセル範囲のデータを更新した時はA2のセルに、自動的で更新日時が入力されるようにできるのでしょうか?

  • Excel 2007で、更新日をセルに自動入力する方法を教えて下さい。

    Excel 2007で、更新日をセルに自動入力する方法を教えて下さい。 ファイルを開いた日付ではなく、更新したときに、更新したシートのみ日付を自動で変更する方法はありますか?

  • Excelで更新日を自動的に入れたい

    いつもお世話になっております。 エクセルのデータがあるのですが、そのデータは何回か更新してから締めるものです。 これを何月何日に最終更新をしたかが自動的にどこかのセルに出てくるようには出来ないでしょうか? 宜しくお願いします。

  • エクセル セルデーター変更の自動更新日入力

    過去に質問がありましたが分らないので教えてください。 私の場合は、D列にのセルが変更されるとA列に更新日が自動で入力されるようにしたいのですが、恐れ入りますがお教えください。 因みに行は500行あります。 No.788307 質問:エクセルについて詳しい人教えてください。 質問者:yukkokun 行ごとで処理をしています。その行のデータの変更があった場合、その行のみ更新日を変更するようにしたいのですが、どうすればいいのですか。例えばA1~C1のいづれかを変更した場合、D1(更新日のセル)が自動的に変わるようにしたいのです。どなたかわかりやすく教えてください。関数等は初心者です。 )

  • 最終更新日

    実行中のファイルの最終更新日を取得したいのですが、どうすればよいですか? エクセルのファイル等を開くと、ファイルの更新日には開いた時の日時が一時的に入り、そのファイルを保存せずに終了すれば、開く前に入力されていた更新日に戻りますが、この開く前に入力されて更新日を所得したいのです。 DateLastModified等を使用すると開いた時の日時になってしまいます。 何か方法をご存知でしたら教えて下さい。

  • エクセルで結合セルがあるため最終行が解りません。

    エクセルで結合セルがあるため最終行が解りません。 A列2行目と3行目が結合セル(見出し)のためA列の最終行(罫線を除きデータが入ってる行)を求めれなくて困ってます。データは4行目以降から入力していく予定ですが Range("A" & Rows.Count).End(xlUp).Row は2となるため+1で入力行を求めてると3となってしまいます。A4からAの最後の行の範囲で罫線を除く最終行を出せればよいのですが  最初は4 以下順次5 6 7 ‥ どなたかご教示頂けないでしょうか?

  • ある行(の各セル)に入力されたデータが、自動的に別の行(の各セル)に表示されるようにしたい。

    Excelに関しては全くの素人のあほな質問で、大変恐縮しています。 あるブックの中のシートのある行に、各セルに「1119」「1187」「1113」「664」......などと左から右へ入力していきます。 この各セルに入力したデータが、別のブックにあるシートの特定の行の各セルに、左から右へ「1119」「1187」「1113」「664」......と、自動的に数値が入力されるようにしたいのです。 これを可能にする方法は、何かありますか? ちなみに、100個くらいの行のデータが別の行にも自動的に入力されるようにしたいと考えています。

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

    過去ログにあったQNo.2827109を参考に、マクロをコピーさせていただき、行の最終更新日を求めるように設定してみたのですが、上記の質問者の方はうまくいったとのことなのですが、私の場合「Findメソッドは失敗しました:'Range'オブジェクト」といったエラーが出てしまい、エクセルも固まったような状態になってしまいます。 ど素人質問で本当に申し訳ないのですが、全く何を施してよいのかわからない状態です。 どなたか解決策を教えてください! コピーさせていただいたマクロは次の通りです。 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 1列目に項目がある表で、「最終更新日」と言う項目を設け、マクロ4行目の()内は表に合わせて("A2:AF500")と変更して設定しました。 エクセルは2007です。

  • 特定セルの内容を更新したら、その更新日を自動的に表示する方法について

    エクセルで、特定のセルの内容を更新すると、別の特定セルに 更新日付が自動的に表示させたいと思っております。 例えば『A1』へ新規に文字入力したり、セルの内容を更新した時に、セル『B1』にその日の日付が自動で表示される。 そして、違う日にもう一度、同じ欄に入力すれば、その入力した日付に随時更新されるようにするための方法を教えていただければ幸いでございます。 御手数ですが、エクセル関数またはVBA、マクロのいずれかで実現可能な方法があれば教えて下さい。 何卒、宜しくお願いいたします。

専門家に質問してみよう