Excel VBA 一時退避用のセルオブジェクトを作成したい
Excel VBA 一時退避用のセルオブジェクトを作成したい
お世話になります。
環境は
WindowsXpPro Sp3
Excel2002 Sp3
です。
まず、「やりたいこと」をエクセルではなく通常の変数で書いてみます。
-------------------------------------------
aの値が20を超えていたら元の値に戻したい
-------------------------------------------
Dim a As Long
Dim temp As Long
a = 10 '元の値
temp = a '元の値を保存
a = 30 '変更後の値
If a > 20 Then
a = temp
Else
End If
-------------------------------------------
これと同じことをエクセルのCell(単一)に対して行いたいです。
うまくいかないので、Copy,Pasteを使ってみましたが、参照コピーになるようで元に戻せません。
元に戻したいのは、値だけではなく、そのセルに含まれる情報全てです。
なので「セルオブジェクトを退避させて復帰させる」というのを実現させたいです。
うまくいかないので、試しにCopy,Pasteを使って以下のコードを実行してみました。
しかし、参照コピーになっているようで元の値には戻りませんでした。
-------------------------------------------
Cells(10, 5) = 3
Cells(10, 5).Copy '<---- 元の値を保存
Cells(10, 5) = 20 '<---- 値を変更
If Cells(10, 5) > 10 Then
ActiveSheet.Paste '<---- 元の値に復帰させたいけれど変更後の「20」になってしまう。
Else
End If
-------------------------------------------
ペースト先をcells(10,6)等に変えて実行してみると、明らかに参照コピーになっていると思われる動作でした。
処理対象のシート上やブック上へ退避用のセルは作りたくないです。
退避領域のセルを単独で作りたいです。
方法をご存じの方、お手数ですがサンプルコードを提示頂けませんでしょうか。
よろしくお願いします。
お礼
お返事ありがとうございます。 今までDVD-RWの方に移していたのですが PCの本体のほうに移したほうが、 画質が綺麗なまま保存できると聞いたので DVDを使わない一時退避の方法を教えてください。 説明不足ですみません。