|
▼こずえ さん:
>コンパクトにできますか?
コンパクトというか、現状のコードだと 「エネ」シートのどのセルが変化しても
Changeイベント・プロシージャ内の処理が走りますね?
それは無駄なことなので、C列の入力(あるいはクリア)でなければ、
チェックはしないことにしましょう。
Private Sub Worksheet_Change(ByVal Target As Range)
Dim c As Range
Dim r As Range
Dim ss As String, zz As String
Dim i As Long
If Target.Column <> 3 Then Exit Sub 'C列の Change でなければ抜ける
zz = "C64:C65,C115:C116,C166:C167,C115:C116,"
zz = zz & "C219:C220,C248:C250,C277:C278,C306:C307"
ss = "CEGIDFHJ"
For Each r In Range(zz).Areas
i = i + 1
If Not (Intersect(Target, r) Is Nothing) Then
Set c = Worksheets("メニュー").Range(Mid$(ss, i, 1) & "10")
If WorksheetFunction.CountBlank(r) = 2 Then
c.ClearContents
Else
c.Value = "印 刷"
End If
Exit For
End If
Next
End Sub
|
|