|
Gロボさん、inoue さん、おはようございます。
考え方としては、どこかにセルA1のコピーを常に持っていると
この処理はできます。
では、そのコピーをどこに持つか? ですが、
・別のシートの同じアドレスを持つセル
これが確実なんですが、この処理のためにテンポラリシートを
用意しなければなりません。
・Excel2000以上ですが、IDというプロパティを使用する。
本来のIDプロパティの使用方法とは違いますが、
領域がリザーブされているので使えそうです。
当該シートのモジュールに
'=======================================================
Sub init_id()
With Range("a1")
.ID = .Value
End With
End Sub
'=======================================================
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Not Application.Intersect(Target, Range("a1")) Is Nothing Then
With Range("a1")
.Offset(1, 0).Value = .ID
.ID = .Value
End With
End If
Application.EnableEvents = True
End Sub
最初に一度だけ、init_id を実行してから試してみて下さい。
但し、このIDプロパティは、ブックを保存しても
このプロパティは再度開いたときは、初期化されています。
よって、開く度に一度、init_idを実行して
データを同期させなくてはなりません。
通常は、Workbook_Openイベント等で実行することになります。
確認してみて下さい。
|
|