[[20200817154148]] 『入力された値によってマクロを実行する』(仮) ページの最後に飛ぶ

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

 

『入力された値によってマクロを実行する』(仮)

A1に「りんご」と入力したらMacro1を実行し、「ぶどう」と入力したらMacro2を実行、「なし」と入力したらMacro3を実行する。
というように指定したセルの値によって実行するマクロを分けることは出来ますか?

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


 Private Sub Worksheet_Change(ByVal Target As Range)
    Select Case Range("A1")
    Case "りんご"
        Call Macro1
    Case "ぶどう"
        Call Macro2
    Case "なし"
        Call Macro3
    End Select
 End Sub
(???) 2020/08/17(月) 16:03

 # 衝突してしまいました。

 そのシートモジュールに、以下のプロシージャを書いてください。
 Private Sub Worksheet_Change(ByVal Target As Range)
     If Target.Address <> "$A$1" Then Exit Sub
     Select Case Target.Value
         Case "りんご"
             Call Macro1
         Case "ぶどう"
             Call Macro2
         Case "なし"
             Call Macro3
     End Select
 End Sub

 なお、Macro1の中で、当該シートのセルを更新するのであれば、
     Application.EnableEvents = False
     Call Macro1
     Application.EnableEvents = True
 といったようにしてください。
 Macro1のなかで、またChangeイベントプロシージャが再帰的に
 呼ばれてしまうのを回避する意図です。

 なお^2、私は、以下のマクロをボタンに登録して、意識的にマクロをキックすることを推奨します。
 Sub test()
     Select Case Range("A1").Value
         Case "りんご"
             Call Macro1
         Case "ぶどう"
             Call Macro2
         Case "なし"
             Call Macro3
     End Select
 End Sub

(γ) 2020/08/17(月) 16:05


ありがとうございます。1度作成中のエクセルで試してみます。
(仮) 2020/08/17(月) 16:13

コメント返信:

[ 一覧(最新更新順) ]


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