[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『入力された値によってマクロを実行する』(仮)
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
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.