Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


10223 / 76734 ←次へ | 前へ→

【72061】Re:セル更新時のマクロ
質問  けい E-MAIL  - 12/5/23(水) 11:34 -

引用なし
パスワード
   ▼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させています。
>これをなくせばよろしいかと。

7 hits

【72043】セル更新時のマクロ けい 12/5/21(月) 19:27 質問
【72044】Re:セル更新時のマクロ ponpon 12/5/21(月) 23:42 発言
【72051】Re:セル更新時のマクロ けい 12/5/22(火) 14:46 質問
【72047】Re:セル更新時のマクロ UO3 12/5/22(火) 11:14 発言
【72050】Re:セル更新時のマクロ けい 12/5/22(火) 14:04 質問
【72054】Re:セル更新時のマクロ UO3 12/5/22(火) 21:46 発言
【72060】Re:セル更新時のマクロ けい 12/5/23(水) 11:07 質問
【72055】Re:セル更新時のマクロ UO3 12/5/22(火) 21:51 発言
【72061】Re:セル更新時のマクロ けい 12/5/23(水) 11:34 質問
【72063】Re:セル更新時のマクロ UO3 12/5/23(水) 12:44 発言
【72066】Re:セル更新時のマクロ けい 12/5/23(水) 13:53 お礼
【72052】Re:セル更新時のマクロ ponpon 12/5/22(火) 15:01 発言

10223 / 76734 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free