[[20180315115112]] 『targetが結合セルだった場合』(55) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『targetが結合セルだった場合』(55)

Worksheet_Changeで、B4を選択していたら処理が実行されるようにしたいです。

Dim p As String: p = "あああ"

  If Target = p Then
    msg box "123"
  End If

B4は、B4〜I4まで結合されており、実行しようとすると「型が一致しません」戸でてしまいます。
このエラーを回避するにはどうすれば良いのでしょうか?教えて下さい。

< 使用 Excel:Excel2010、使用 OS:Windows10 >


正常に動いてますよ。
削除するとセルの範囲が複数に変わり、エラーになるようです。
If Target.Count > 1 Then Exit Sub
をいれると回避できるようです。

違ってましたらお許しを

(隠居じーさん) 2018/03/15(木) 12:13


隠居じーさん さん

ありがとうございます!削除するとダメなのですね。
削除する際にも、貼り付けたデータを消す処理を入れたいのですが、削除する場合にエラーを出さない方法はありませんか?
(55) 2018/03/15(木) 13:02


 何をしたいのかほとんど解ってないけど。

 Target.cells(1).address(0,0) = "B4"
(BJ) 2018/03/15(木) 13:11

 こんな感じでしょうか。

 Private Sub Worksheet_Change(ByVal Target As Range)
    Dim p As String
    Dim Rng As Range
    p = "あああ"
    For Each Rng In Target
        If Not Intersect(Rng, Range("B4")) Is Nothing Then
            If Rng.MergeArea(1, 1).Value = p Then
              MsgBox "123"
            End If
        End If
    Next
 End Sub
(ろっくん) 2018/03/15(木) 14:39

 他の皆さんが、既にご回答ですが。
もし対象結合セルが一つだけなら(B4)のみみたいなので。
全セル選択、一括削除、対応なら下記を(2010ならサポートしてると思います)
プロシジャーの先頭行に
If Target.CountLarge > 1 Then Exit Sub
でも。(オバーフロー対策)

 ^^;

(隠居じーさん) 2018/03/15(木) 15:13


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.