Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


9677 / 13644 ツリー ←次へ | 前へ→

【26070】更新日付を入れたいのですが malco 05/6/22(水) 19:41 質問[未読]
【26071】Re:更新日付を入れたいのですが かみちゃん 05/6/22(水) 19:46 発言[未読]
【26072】Re:更新日付を入れたいのですが りん 05/6/22(水) 19:53 回答[未読]

【26070】更新日付を入れたいのですが
質問  malco  - 05/6/22(水) 19:41 -

引用なし
パスワード
   最近やっとVBAに手を出した初心者です。
もともと顧客の管理のためにエクセルでリストを作っていたのですが
だんだんと大きなリストを作らなければならなくなり、入力や宛名書きといった
処理を効率化するためにマクロを組み始めました。
さて、リストに入力した顧客情報は新しい動きがあればそのつど情報を更新していくのですが
その際、いつ更新したかが分かるように更新日の項目をもうけて、更新したら
そのつど自動で更新日を書き換えたいのです。
素人考えでは WorkSheet_Changeイベントで書き換えられた行番号を調べて
Cells(行番号,列番号(固定))にDateを書き込めば良い。と思ったのですが
どうやって、行番号を調べればいいかがどうしても分かりません。
どなたか教えていただけませんでしょうか?
顧客情報のうち固定化されている項目は顧客名くらいで他の項目は頻度は違っても
更新される可能性があります。
また、ユーザーフォームを使って新規に入力する場合もあります。

どうかよろしくお願いします。

【26071】Re:更新日付を入れたいのですが
発言  かみちゃん  - 05/6/22(水) 19:46 -

引用なし
パスワード
   こんにちは。かみちゃん です。

>素人考えでは WorkSheet_Changeイベントで書き換えられた行番号を調べて
>Cells(行番号,列番号(固定))にDateを書き込めば良い。と思ったのですが
>どうやって、行番号を調べればいいかがどうしても分かりません。

元データがどういうような並び方になっていて、どこに更新日を入れたいのか、
ご自分で考えたコードがどうなっているのかがよくわかりませんが、
アクティブセルの行番号でいいのであれば、
ActiveCell.Row
で取得できると思います。

【26072】Re:更新日付を入れたいのですが
回答  りん E-MAIL  - 05/6/22(水) 19:53 -

引用なし
パスワード
   malco さん、こんばんわ。

>その際、いつ更新したかが分かるように更新日の項目をもうけて、更新したら
>そのつど自動で更新日を書き換えたいのです。
>素人考えでは WorkSheet_Changeイベントで書き換えられた行番号を調べて
>Cells(行番号,列番号(固定))にDateを書き込めば良い。と思ったのですが
>どうやって、行番号を調べればいいかがどうしても分かりません。

A-F列に手を加えたときにG列に日時を入れます
Private Sub Worksheet_Change(ByVal Target As Range)
  Dim c As Range
  Application.EnableEvents = False 'このコード内から呼び出されるのを防ぐため
  'Targetが単一セルとは限らないので
  For Each c In Target
   Select Case c.Column
     Case 1 To 6 'A - F
      Cells(c.Row, 7).Value = Now 'G
   End Select
  Next
  Application.EnableEvents = True
End Sub

こんな感じです。
新しいシートに貼り付けて動かしてみてください。
確か、Changeイベントは入力規制のリストから入力した場合は反映しなかったと思いますので注意が必要です(使っていなければ問題ありませんが)。

9677 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free