|
あおがえる さん、こんにちわ。
>そこでさらに大甘えするので心苦しいのですが対象セルA1,A2,A3をB2,B4,B6,B8にしたりC3,C6,C9,C12にしたりするにはどう書き換えればいいでしょうか?
またちょこっと処理方法を変えたので、全部Thisworkbookに書いてください。
Dim Rp(1 To 4) As String '比較するセルアドレス
Dim adat(1 To 4) As Variant 'セルの内容を覚えておく為の配列
Dim wsn As String 'チェック対象シートの名前
Private Sub Workbook_Open()
Dim II As Integer
'情報()
Rp(1) = "B2": Rp(2) = "B4"
Rp(3) = "B6": Rp(4) = "B8"
wsn = "Sheet1" 'シート限定
'1回目のデータをセット
With Application.ThisWorkbook.Worksheets(wsn)
For II = 1 To 4
adat(II) = .Range(Rp(II)).Value
Next
End With
End Sub
Private Sub Workbook_SheetCalculate(ByVal Sh As Object)
If Sh.Name = wsn Then 'シート限定
Dim II As Integer
With Sh
For II = 1 To 4
If adat(II) <> .Range(Rp(II)).Value Then
Select Case II
Case 1: Call TEST1(.Range(Rp(II)).Value)
Case 2: Call TEST2(.Range(Rp(II)).Value)
Case 3: Call TEST3(.Range(Rp(II)).Value)
Case 4: Call TEST4(.Range(Rp(II)).Value)
End Select
'新しい値をセット
adat(II) = .Range(Rp(II)).Value
End If
Next
End With
End If
End Sub
'//////分岐先1
Sub TEST1(cdat As Variant)
MsgBox adat(1) & " => " & cdat, vbInformation, Rp(1)
End Sub
'//////分岐先2
Sub TEST2(cdat As Variant)
MsgBox adat(2) & " => " & cdat, vbInformation, Rp(2)
End Sub
'//////分岐先3
Sub TEST3(cdat As Variant)
MsgBox adat(3) & " => " & cdat, vbInformation, Rp(3)
End Sub
'//////分岐先4
Sub TEST4(cdat As Variant)
MsgBox adat(4) & " => " & cdat, vbInformation, Rp(4)
End Sub
|
|