| 
    
     |  | おはようございます〜^^ 
 >Private Sub Worksheet_Change(ByVal Target As Range)
 >Dim r As Long
 >Dim i As Long
 > If Target.Column >= 3 Then Exit Sub
 > Application.EnableEvents = False
 >
 > With Range("C" & Target.Row)
 >  If Not IsNumeric(.Offset(, -2).Value) Then
 >    .Replace What:="◆", Replacement:=""
 >   Exit Sub
 >  End If
 >  If Not IsNumeric(.Offset(, -1).Value) Then
 >    .Replace What:="●", Replacement:=""
 >    Exit Sub
 >  End If
 >  .Value = ""
 >  For i = 1 To .Offset(, -2).Value
 >    .Value = "◆" & .Value
 >  Next
 >  For i = 1 To .Offset(, -1).Value
 >    .Value = .Value & "●"
 >  Next
 >  For i = 1 To Len(.Value)
 >    If Mid(.Value, i, 1) = "◆" Then
 >      .Characters(i, 1).Font.ColorIndex = 3
 >    ElseIf Mid(.Value, i, 1) = "●" Then
 >      .Characters(i, 1).Font.ColorIndex = 4
 >    End If
 >  Next i
 >  Application.EnableEvents = True
 > End With
 >
 >End Sub
 >
 >他にもエラー処置が必要かも??
 >*こんなコードにつっ込みも下さい
 
 えーと、僭越ながら、突っ込ませていただきます!
 
 Application.EnableEvents = False
 Application.EnableEvents = True
 
 でサンドイッチになってますが、
 途中、「Exit Sub」で抜けてしまうと、
 Application.EnableEvents = True が通らなくなって、
 以後イベントが発生しなくなっちゃいます(>_<)
 
 
 ※どうせ、VBA使うなら、作業列を作って、数式を作ったりせず、最初から全部VBAですればいいんやん!!・・・って、Abebobo さんの回答みて、初めて気がつきました。ぼけぼけ〜〜〜〜
 
 |  |