みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

Excel VBA ある値が入力されたときだけユーザーフォームを出したいです

ExcelのVBAを教えてください。

D15は、リストで入力する値を選択できるようになっています。
D15で選択された値によって、B15に反映されるようになっています。

たとえば、
D15の値をリストで105を選んだら、B15に「AAA」と入り、
D15の値をリストで109を選んだら、B15に「ccc」と入ります。
これらは、B15にIF関数が入っていて制御されています。

ところが、D15の値をリストで108と選んだ時だけ、B15に「BBB」と入る場合と「DDD」と入る場合の2パターンあり、これは人間の判断でどちらにするか考えるので、IF関数を使えません。

なので、
D15のリストボックスで108を選んだときだけ、
ユーザーフォームを出し(UserForm1.Show)、ユーザーフォームにBBBとDDDのコマンドボタンがあって、Tabでコマンドを選択し、Enterで確定し(マウスは使いたくない)、確定したコマンドの値をB15に反映させるようにしようと思いました。

・・・が、ユーザーフォームを出すタイミングのVBAの組み方がわかりません。

D15の値をリストから選択する・・・というのは、他の方が作った仕組みなので変えることはできません。

投稿日時 - 2009-04-11 10:34:46

QNo.4870154

困ってます

質問者が選んだベストアンサー

イベントのみで

'対象シートのシートモジュールへ
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address(0, 0) <> "D15" Then Exit Sub
If Target.Value = 108 Then UserForm1.Show
End Sub

参考まで

投稿日時 - 2009-04-11 11:00:27

お礼

思ったどおりものができました。勉強になりました。
ありがとうございました!

投稿日時 - 2009-04-11 17:31:46

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問