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