|    | 
     ' ThisWorkbookモジュール 
Option Explicit 
 
Private Sub Workbook_SheetCalculate(ByVal Sh As Object) 
  Call test(Sh) 
End Sub 
 
' 標準モジュール 
Option Explicit 
Dim Dic1 As Object ' Scripting.Dictionary 
 
Function CellColor(Value, ColorIndex) 
  CellColor = Value 
  If Dic1 Is Nothing Then 
    Set Dic1 = CreateObject("Scripting.Dictionary") 
  End If 
  If Dic1.Exists(Application.Caller.Address(External:=True)) Then 
    Dic1.Item(Application.Caller.Address(External:=True)) = ColorIndex 
  Else 
    Dic1.Add Application.Caller.Address(External:=True), ColorIndex 
  End If 
End Function 
 
Sub test(Sh) 'マクロ一覧に出さないために引数を付加 
Dim Address As Variant 
  For Each Address In Dic1.Keys 
    Range(Address).Interior.ColorIndex = Dic1.Item(Address) 
    Dic1.Remove Address 
  Next Address 
End Sub 
 
 | 
     
    
   |