Excel VBA質問箱 IV

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

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


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

【52016】削除前のデータ toto 07/10/16(火) 14:21 質問[未読]
【52019】Re:削除前のデータ Jaka 07/10/16(火) 15:04 発言[未読]
【52020】Re:削除前のデータ toto 07/10/16(火) 16:08 質問[未読]
【52022】Re:削除前のデータ Jaka 07/10/16(火) 17:33 発言[未読]

【52016】削除前のデータ
質問  toto  - 07/10/16(火) 14:21 -

引用なし
パスワード
   よろしくお願いします。
エクセルのセルに記入されたデータを変更した際に変更前のデータの取得は
できますが、データを削除した際に、削除前のデータを取得したいと思います。
変更時と削除とは違っているようです。
対象はセル1ヶです。
 どなたか方法をご存じの方お願いします。

【52019】Re:削除前のデータ
発言  Jaka  - 07/10/16(火) 15:04 -

引用なし
パスワード
   ▼toto さん:
>エクセルのセルに記入されたデータを変更した際に変更前のデータの取得は
>できますが、データを削除した際に、削除前のデータを取得したいと思います。
>変更時と削除とは違っているようです。
例えばどういう場合が違うのかも、具体的に書いておいた方が良いと思います。
再現しようも無いので。

【52020】Re:削除前のデータ
質問  toto  - 07/10/16(火) 16:08 -

引用なし
パスワード
   ▼Jaka さん:
>▼toto さん:
>>エクセルのセルに記入されたデータを変更した際に変更前のデータの取得は
>>できますが、データを削除した際に、削除前のデータを取得したいと思います。
>>変更時と削除とは違っているようです。
>例えばどういう場合が違うのかも、具体的に書いておいた方が良いと思います。
>再現しようも無いので。
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Set r = Intersect(Target, Range("K9:K3508")) '数量用
 If r Is Nothing Then GoTo S1
  For Each C In r
   C.ID = CStr(C.Value)
  Next
S1:
End sub

Private Sub Worksheet_Change(ByVal Target As Range)
dim RR
  Set r = Intersect(Target, Range("K9:K3508"))
   If r Is Nothing Then GoTo End sub
   For Each c In r
     RR=c.ID   
   Next
End sub
上記のプログラムでK列のどこかのセルを変更するとRRに変更前のデータが取得できますが、セルを削除した時にはrが""となりデータが取得できません。
以上が詳細です。途中不要な部分は削除してあります。
よろしくお願いします。

【52022】Re:削除前のデータ
発言  Jaka  - 07/10/16(火) 17:33 -

引用なし
パスワード
   考え方だけですが、
消す前のデータを変数に保持。
Undo
で、元に戻して変更前のデータを取得後
保持しておいたデータを戻す。

マクロからの書き換え等は、Undoが聞かないから注意。(エラーになる)

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