Excel VBA質問箱 IV

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

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


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

【34373】シートチェンジで元の値を取得できますか... boni 06/2/1(水) 15:45 質問[未読]
【34377】Re:シートチェンジで元の値を取得できま... 小僧 06/2/1(水) 16:35 回答[未読]
【34380】Re:ありがとうございました boni 06/2/1(水) 16:42 お礼[未読]

【34373】シートチェンジで元の値を取得できますか...
質問  boni  - 06/2/1(水) 15:45 -

引用なし
パスワード
   はじめまして。色々と検索していてこちらを発見し、早速質問させて頂きます。

ユーザーさんが、あるセルを編集した場合に、そのセルをキーとして、
別シートにその他の関連情報を反映させるという処理を行っています。

・キーセルがNull→入力された
・キーセルがクリアされた

場合には対応できるのですが、変更された場合の処理に困っています。
(キーセルがXからYに変更される場合)

編集される前のキーセルに関連した情報も反映させたいのですが、
Worksheet_Changeの引数(Target)の値からは、編集された後の
値しか取得できませんよね。
編集される以前のキーセル値を取得する方法はありませんか?

なんらかのメソッドやプロパティで簡単に取得できないならば、
別の方法を考えますので、とりあえずシートチェンジイベントに関連して、
編集される以前の元の値を取得する、簡単な方法があったら教えて下さい。
よろしくおねがいします。

【34377】Re:シートチェンジで元の値を取得できま...
回答  小僧  - 06/2/1(水) 16:35 -

引用なし
パスワード
   ▼boni さん:
こんにちは。

>値を取得する、簡単な方法があったら教えて下さい。

Option Explicit
Dim varV As Variant

Private Sub Worksheet_Change(ByVal Target As Range)
  Sheets("Sheet2").Range(Target.Address).Value = _
    varV & "→" & Target.Value
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
   varV = Target.Value
End Sub

Sheet1 のモジュールに貼り付けた後、
適当なセルの値を変えて、Sheet2 の結果を確認されてみて下さい。


上記のコードですと複数のセルを選ぶとエラーになります。

【34380】Re:ありがとうございました
お礼  boni  - 06/2/1(水) 16:42 -

引用なし
パスワード
   やはり、Worksheet_SelectionChangeを利用するしかないようですね。
一応、その方向でテスト中のところでした。
ありがとうございました。

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