[[20200528161906]] 『セルをダブルクリックしてマクロを起動』(FALCON) ページの最後に飛ぶ

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

 

『セルをダブルクリックしてマクロを起動』(FALCON)

よろしくお願いします
セル内の文字をダブルクリックしてマクロを起動したいと思います
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Not (Target.Row = 1 And Target.Column = 4) Then Exit Sub
 ●マクロ
End Sub
こういう構文をみつけ出来たのですが
セルが表になって複数あるのですが
セルの範囲に名前を付けて、その名前の範囲のセルならマクロを
起動するにはどういう構文にすればいいでしょうか

   A      B       C     D
1 マクロA   マクロB    マクロP 
2 
3                       マクロS 

A1〜D3に作業表という名前を付けてダブルクリックで
おのおののマクロを実行したいと考えています

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


いろいろな方法があると思いますが例をいくつか

 Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    Cancel = True                        'セルの選択を解除
    Select Case True
        Case Target.Address(0, 0) = "A1"                        'アドレスがA1
            MsgBox "Hello"
        Case Not Intersect(Target, Range("B1:C3")) Is Nothing   'B1〜C3の範囲
            MsgBox "World"
        Case Target.Row = 5                                     '5行目
            MsgBox "Good"
    End Select
 End Sub

(ごむのおすし) 2020/05/28(木) 16:44


 参考に

 Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    Select Case True
        Case Not Intersect(Range("作業表1"), Target) Is Nothing
            MsgBox "マクロA実行"

        Case Not Intersect(Range("作業表2"), Target) Is Nothing
            MsgBox "マクロB実行"

        Case Not Intersect(Range("作業表3"), Target) Is Nothing
            MsgBox "マクロP実行"

        Case Not Intersect(Range("作業表4"), Target) Is Nothing
            MsgBox "マクロS実行"

        Case Else
            Exit Sub
    End Select
    Cancel = True
 End Sub

(ピンク) 2020/05/28(木) 16:55


書き込もうとしたら、編集がかぶったのでついでにちょっと再考。

>セルの範囲に名前を付けて、その名前の範囲のセルならマクロを起動
というところに反応して

    Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
        If Not Intersect(Target, Range("A1:D3")) Is Nothing Then
            Cancel = True
            MsgBox Target.Address(False, False) & "で右クリックされました"
        End If
    End Sub

↑みたいに、Intersectメソッドで右クリックしたセルが「名前を付けたセル範囲」と重なるか判定してから、特定のセルだったら、対応するマクロに移行すればよいと思います・・・とかんがえましたが、ごむのおすしさんが示されているように、【名前をつけたセル番地は関係なく】ダブルクリックしたセル番地で分岐すればいい話なのかもしれませんね。

    Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
        If Not Intersect(Target, Range("A1:D3")) Is Nothing Then Cancel = True

        Select Case Target.Address(False, False)
            Case Is = "A1": 'Call マクロA
            Case Is = "B1": 'Call マクロB
            Case Is = "C1": 'Call マクロP
            Case Is = "D3": 'Call マクロS
        End Select
    End Sub

(もこな2 ) 2020/05/28(木) 16:59


皆様有難うございます
作業を進めながら質問をさせて頂いております
確認時間がなくなってしまい」ましたので明日改めて確認させて頂きます
少しお時間を頂きます
有難うございました。
(FALCON) 2020/05/28(木) 17:17

コメント返信:

[ 一覧(最新更新順) ]


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