|    | 
     ▼UO3 さん: 
 
色々とご説明をありがとうございます。 
確かにL30もI36も結合セルだったため動いてなかったようです。 
セルを結合させずにマクロを実行したら動きました。 
 
もし結合セルのままマクロを動かすとした場合、以下の 
If Target.Count > 1 Then Exit Subを外せばよいのでしょうか。 
また、外してみたのですがその場合If Target.Value = "" Then 
のところで型が違うとエラーになりました。 
空白だった時と他の書き方はありますか? 
 
 
Private Sub Worksheet_Change(ByVal Target As Range) 
 
 If Target.Count > 1 Then Exit Sub ’<<ここを省略? 
 If Application.Intersect(Target, Range("l30")) Is Nothing Then Exit Sub 
  
 Application.EnableEvents = False 
  
 If Target.Value = "" Then’<<ここで型が違うとエラーが出ます。 
   Range("I36") = "" 
    
 Else 
   P = MsgBox("有りですか?", vbYesNo) 
   If P = vbYes Then 
     Range("I36") = "有り" 
   Else 
     Range("I36") = "無し" 
   End If 
  
 End If 
 Application.EnableEvents = True 
 
End Sub 
 
 
>▼けい さん: 
> 
>追加で。 
> 
>たとえばL30を含んで、複数セルを選択して(たとえがL30とL31)クリアキーを押すと 
>Target.Address は "$L$30:$L$31" になりますので、 $L$30 ではないと見なされます。 
>このような場合を想定するなら、PonPonさんがアドバイスされたように、Intersect を使ってください。 
>ただし、PonPonさんのコードでは、その前に、変更のあったセルが1つではなかったらExitさせています。 
>これをなくせばよろしいかと。 
 | 
     
    
   |