|
あおがえる さん、こんばんわ。
>皆様のご好意にさらに甘えるようで申し訳ないのですが、例えば下記のコードで(A1)のセルの計算値が変わったときにはTEST、(A2)のセルの計算値が変わったときにはTEST1、(A3)のセルの計算値が変わったときにはTEST2のマクロを実行するようにするにはどうしたらいいでしょうか?
adatを配列にして、複数のセルに対応しました。
ブックをオープンしたときに、最初の値を配列に入れるようにすればエラーも少なくなると思うので少々変更。
全部Thisworkbookに書いてください。
Dim adat(1 To 3) As Variant 'Aの内容をずっと覚えておく為の配列
Private Sub Workbook_Open()
Dim II As Integer
With Application.Thisworkbook.Worksheets("Sheet1") 'シート限定
For II = 1 To 3
adat(II) = .Cells(II, 1).Value
Next
End With
End Sub
Private Sub Workbook_SheetCalculate(ByVal Sh As Object)
If Sh.Name = "Sheet1" Then 'シート限定
Dim II As Integer
With Sh
If adat(1) <> .Range("A1").Value Then TEST1
If adat(2) <> .Range("A2").Value Then TEST2
If adat(3) <> .Range("A3").Value Then TEST3
'入替
For II = 1 To 3
adat(II) = .Cells(II, 1).Value
Next
End With
End If
End Sub
'//////ダミーの分岐先
Sub TEST1()
MsgBox adat(1), vbInformation, "A1"
End Sub
Sub TEST2()
MsgBox adat(2), vbInformation, "A2"
End Sub
Sub TEST3()
MsgBox adat(3), vbInformation, "A3"
End Sub
もう解決済かもしれませんが。
さっき気づきました、すみません。
|
|