|
つん さん:
>えーと、僭越ながら、突っ込ませていただきます!
ありがとうございます。
とんだ失敗でした。
まずは、
'標準モジュールに
Sub gomennne()
Application.EnableEvents = True
End Sub
を一回走らせたほうがいいかな
そして、これに書き換えてください。
Option Explicit
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 Me.Range("C" & Target.Row) '入力したセルの行のC列で
If Not IsNumeric(.Offset(, -2).Value) Then 'A列の値が数字じゃなければ
.Replace What:="◆", Replacement:="" '◆を無しに置換します。
GoTo owari '飛べ!
End If
If Not IsNumeric(.Offset(, -1).Value) Then
.Replace What:="●", Replacement:=""
GoTo owari
End If
.Value = "" 'いったん消します。
For i = 1 To .Offset(, -2).Value 'A列の数字分繰り返します
.Value = "◆" & .Value
Next
For i = 1 To .Offset(, -1).Value
.Value = .Value & "●"
Next
For i = 1 To Len(.Value) 'C列の文字数繰り返します。
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
End With
owari :
Application.EnableEvents = True
End Sub
*くやしい〜 go to しか思いつかなかったぁ〜
もしかして、つんさんがもっと良いコードを見せてくれるかも・・・(へへ)
修正しました 本当にすみませんでした。
|
|