[[20181019165444]] 『ダブルクリックで作動するコードを2つ作りたい』(たけてぃー) ページの最後に飛ぶ

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

 

『ダブルクリックで作動するコードを2つ作りたい』(たけてぃー)

こんにちは。お世話になります。よろしくお願いします。

1つのシートにて
ダブルクリックで作動するコードを2つ作りたいのですが
エラーが出てうまくいきません。

1つめはA列のどこかをダブルクリックすると
発動するコードです。

    Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
        If Intersect(Target, Range("A:A")) Is Nothing Then Exit Sub

   〜中略〜

    End Sub

2つめはセルの削除という名前の定義をしたセルをダブルクリックすると
発動するコードです。

    Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
        If Intersect(Target, Range("セルの削除") Is Nothing Then Exit Sub

   call 削除する

    End Sub

この2つが作動するようになるには
どこをどう直したらよろしいのでしょうか。
宜しくお願い致します。

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


 同じイベントプロシージャは一つのシート内では一つしか作成できない。
 Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    If Target.Address = Range("セルの削除").Address Then
        Call 削除する
    End If
    If Intersect(Target, Range("A:A")) Is Nothing Then Exit Sub
            '〜中略〜
 End Sub
 ではどうか?
(ねむねむ) 2018/10/19(金) 17:08

ねむねむさんありがとうございます。

中略の下に
もうひとつEnd Ifを足して実行してみたところ
'Range'メソッドは失敗しました。_Worksheet' オブジェクト
のエラーがでてしまいました。

なにとぞよろしくお願いします。
(たけてぃー) 2018/10/19(金) 17:30


コード全体をアップしてみてください。言葉で説明されても
どんなコードになっているかわからないので。
(とおりすがり) 2018/10/19(金) 17:31

横からですが、

>中略の下にもうひとつEnd Ifを足して実行してみたところ
そこに足してはダメです。

 Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    If Target.Address = Range("セルの削除").Address Then
        Call 削除する
    End If

    If Intersect(Target, Range("A:A")) Is Nothing Then
        Exit Sub
    End If
            '〜中略〜
 End Sub

のように、ダブルクリックした列がA列以外だったら終了するように判定してるだけなので・・
(もこな2) 2018/10/19(金) 18:47


ちなみに、セルの削除という名前の定義をしたセルは、単一セルでしょうか?

セル範囲である(単一セルでない)場合、TargetとAddressプロパティを比較しても合致しないと判定されちゃいそうなので、原案どおりIntersectメソッドでTargetが「セルの削除」に含まれているか判定したほうが、良さそうにおもいます。

(もこな2) 2018/10/19(金) 19:10


スマホからなので、体裁がうまくないけど、

    Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
        If not Intersect(Target, Range("A:A")) Is Nothing Then
           〜ひとつ目の処理〜
        End If

        If not Intersect(Target, Range("セルの削除") Is Nothing Then
           call 削除する
        end if
    End Sub

としてみてはどうでしょうか

(もこな2) 2018/10/19(金) 19:18


コメント返信:

[ 一覧(最新更新順) ]


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