Excel VBA質問箱 IV

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

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


35356 / 76738 ←次へ | 前へ→

【46582】Re:イベント処理Change
回答  ひげくま  - 07/2/7(水) 13:29 -

引用なし
パスワード
   ▼ごろり さん:
こんにちは。

>Private Sub Worksheet_Change(ByVal Target As Range)
>  If Target.Address = "$B$4" And Target.Value <> "" Then Call AAA
>  If Target.Address = "$E$5" And Target.Value = 2 Then Call BBB
>End Sub
(略)
>手でA1とA2をコピーし、B1とB2に貼り付けようとすると
>Target.Addressに"$B$1:$B$2"をいれようとしてエラーになります。(型の不
>一致)
>複数のセルの値をDELETEとしようとしてもエラーになってしまいます。
>IF文とは関係ないところに手をつけたのになぜ起こったのか、わからないです
>。

Target が複数のセルを持つ範囲の場合、プロパティとしてValueを指定することはできないようです。
なので、If文で、Target.Value を比較しようとしているところでエラーになっています。

If Target.Address = "$B$4" Then
  If Target.Value <> "" Then Call AAA
End If

と分ければ、複数せる範囲の場合は外側のIf文ではじかれるので大丈夫です。

また、比較の前に、Target.Count が1より大きかったらはじくようにしても大丈夫だと思います。
こっちの方がスマートかな?
0 hits

【46581】イベント処理Change ごろり 07/2/7(水) 13:12 質問
【46582】Re:イベント処理Change ひげくま 07/2/7(水) 13:29 回答
【46583】Re:イベント処理Change ひげくま 07/2/7(水) 13:32 発言
【46612】Re:イベント処理Change ichinose 07/2/8(木) 7:51 発言

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