[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『変更前の値の取得(マクロ)』(今日も夜勤)
値を変更した時、変更前の値を取得するにはどうすれば良いんでしょうか。
具体的には 1.セルA1に数字を入力 2.セルA2から、A1に入力した値の行数の範囲に名前を定義する(マクロで) (例:A1に10と入力すると、A2:A11の範囲に「範囲10」という名前を定義する) 3.INDIRECT関数でその範囲の値を読む ということをやっています。
A1には時々値を入力しなおすんですが、 新しい値を入力すれば前の範囲に定義した名前は削除したいです。
マクロの記録を試してみたところ
ActiveWorkbook.Names("範囲" & i).Delete 'iはセルA1の変更前の値
とすればできそうなんですが、i(A1の変更前の値)の取得方法が分かりません。
どなたかよろしくお願いします。
こんなので、事足りますか?
Private Sub Worksheet_Change(ByVal Target As Range)
Dim i As Integer, n As Integer
With Target
If .Count > 1 Then Exit Sub
If .Address(0, 0) <> "A1" Then Exit Sub
n = .Value
Application.EnableEvents = False
Application.Undo
i = .Value
On Error Resume Next
ActiveWorkbook.Names("範囲" & i).Delete
ActiveWorkbook.Names.Add Name:="範囲" & n, RefersToLocal:="=A2:A" & n + 1
.Value = n
Application.EnableEvents = True
End With
End Sub
(キリキ)(〃⌒o⌒)b
キリキさん Application.Undo 知りませんでした。すごく助かりました。 では、がんばって完成させちゃいます。 ありがとうございました。 (今日も夜勤)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.