[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『特定セル更新日時の表示(VBA)』(Lalalaaan)
エクセルVBAで特定のセル範囲(B列〜U列)に変更を加えたらAB列のセルに、変更を行った日付をそれぞれ入れたいのですが、初心者のためうまく行きません。
どなたか教えて頂けないでしょうか。
B2〜U2の変更には日付をAB2
B3〜U3の変更には日付をAB3
B4〜U4の変更には日付をAB4
以下同様
と続きます。
よろしくお願いします。
< 使用 Excel:Excel2010、使用 OS:Windows7 >
>初心者のためうまく行きません。
どのようにうまくいかないのか教えてください コードを書かれているのなら、動かないまでもそのコードを提示してください
(渡辺ひかる) 2019/08/07(水) 09:01
例えば対象範囲に値が入力されているのを消した場合、あるいはもともとセルに入力されているデータと同じデータを 入力しなおした場合もその日付を入れるのだろうか? (ねむねむ) 2019/08/07(水) 09:27
Private Sub Worksheet_Change(ByVal Target As Range) Dim R As Range Dim R1 As Range
Set R = Intersect(Target, Range("B:U")) If R Is Nothing Then Exit Sub
For Each R1 In R Cells(R1.Row, "AB").Value = Now Next R1 End Sub (???) 2019/08/07(水) 09:55
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column > 1 And Target.Column < 22 Then
Cells(Target.Row, "AB") = Date
End If
End Sub
まではたどり着くことができました。
その後例えば行2-22までの限定範囲で上記の条件を入れたい場合どうすれば良いかご教示頂けますか。
(Lalalaaan) 2019/08/08(木) 07:47
ちなみに、私の書いたコードの場合は、セル範囲の貼り付けや複数行追加にも反応します。(変更点は、Range("B2:U22")にするだけ)
あと、同じ値だった場合は記録したくない、という場合は、考え方を変えて、ブックを開いたとき等にシートのコピーを取っておいて、修正したシートとコピーしてあるシートを比較してから記録、とかすれば良いでしょう。 ただし、一旦変えてから(ここで日時記録される)、元の文字列に戻した場合(ここは元と同じだから記録されない)とか気を付けないといけないし、行追加・削除があった場合に比較が難しくなるので、現状の何でも日時記録してしまう考えの方がシンプルで良いように思います。
(???) 2019/08/08(木) 09:29
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.