| 
    
     |  | ●条件付書式版1(作業セルが必要。) 作業セルをA1として、
 
 標準モジュール
 
 Public savad As String
 
 Sub Auto_Open()       ↓対象シート名と同じ
 If ActiveSheet.Name = "Sheet1" Then
 savad = ActiveCell.Address
 End If
 End Sub
 
 対象シートモジュール
 
 Private PrevCell As Range
 
 Private Sub Worksheet_SelectionChange(ByVal Target As Range)
 'If Target.Count > 1 Then Exit Sub
 If Range("A1").Value = "" Then
 Range("A1").Value = ActiveCell.Address(0, 0)
 End If
 If Not PrevCell Is Nothing Then
 Range("A1").Value = ActiveCell.Address(0, 0)
 On Error Resume Next
 PrevCell.FormatConditions.Delete
 On Error GoTo 0
 With ActiveCell
 .FormatConditions.Delete
 .FormatConditions.Add Type:=xlExpression, Formula1:="=A1=""" & .Address(0, 0) & """"
 .FormatConditions(1).Interior.ColorIndex = 3
 End With
 End If
 Set PrevCell = ActiveCell 'Target.Cells(1)
 DoEvents
 End Sub
 
 Private Sub Worksheet_Activate()
 savad = ActiveCell.Address
 End Sub
 
 
 ●条件付書式版2(やっぱり作業セルが必要。)
 作業セルをA1として、各セルに条件付書式を設定しておく。
 簡易だけど、ファイルが重くなる可能性大。
 ↓これにひっかかる可能性がありそう
 "表示形式を追加できません"エラーが書式設定時に発生する
 えっちttp://support.microsoft.com/default.aspx?scid=kb%3bja%3b213904
 
 シートモジュール
 
 Private Sub Worksheet_SelectionChange(ByVal Target As Range)
 Range("A1").Value = Target.Address
 End Sub
 
 全てのセルか、A1から使いたい範囲のセルを選択して、
 
 条件付書式の「数式が」で、
 =CELL("address",A1)=$A$1
 (A1の条件は後で消す。)
 
 ----------------
 ちょっとした発見
 入力規則って、セルに設定しただけでは、UsedRange内に入らないんですね。
 範囲内に入るのは、リストから何かしらの値が選択されたときだけで、
 セルを選択して、Deleteキー等でセル内容を消すと、また範囲外になるんですね。
 
 また、条件付書式も範囲外として扱われるんですね。
 今まで、てっきり対象になると思ってました。
 
 |  |