|
' ThisWorkbookモジュール
Option Explicit
Private Sub Workbook_SheetCalculate(ByVal Sh As Object)
Call test2(Sh)
End Sub
' 標準モジュール
Option Explicit
Dim Dic1 As Object ' Scripting.Dictionary
Function InteriorColor(Value)
InteriorColor = Value
test1 Array("Interior.Color", RGB(0, 255, 0))
End Function
Sub test1(arg)
If Dic1 Is Nothing Then
Set Dic1 = CreateObject("Scripting.Dictionary")
End If
If Dic1.Exists(Application.ThisCell.Address(External:=True)) Then
Dic1.Item(Application.ThisCell.Address(External:=True)) = arg
Else
Dic1.Add Application.ThisCell.Address(External:=True), arg
End If
End Sub
Sub test2(Sh) 'マクロ一覧に出さないために引数を付加
Dim Address As Variant
For Each Address In Dic1.Keys
Select Case Dic1.Item(Address)(0)
Case "Interior.Color"
Range(Address).Interior.Color = Dic1.Item(Address)(1)
End Select
Dic1.Remove Address
Next Address
End Sub
これで、当該の関数を実行しているセルの背景色を変更できます。
いびきかいてないで返事してよね。
|
|