[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『VBAでエラーメッセージの表示について』(ハム太郎)
いつもお世話になっております。
現在、入力値に対するエラーメッセージのVBAを作成しており、
初心者の為、お伺いしたいのですが、
B1 りんご
B2 バナナ
B3 みかん
D1 いちご
とした場合、D1の“いちご”が、B1〜B3の候補に無いのでエラーメッセージを
出したいので、下記のようにしたところ
■Aパターン
If .Range("B1,B2,B3") <> .Range("D1") Then
MsgBox "入力が間違っています", vbOKOnly + vbExclamation
D1に“みかん”と正解が入ってもエラーメッセージが出ます。
D1をB1〜B3のリストにして選択式にすれば・・・。という方法もあるのですが、
そうではなく、複数の候補に対して、選択値が異なる場合にエラーを表示したいと思ってます。
あと、
■Bパターン
If .Range("B1") <> .Range("D1") Or .Range("B2") <> .Range("D1") Or .Range("B3") <> .Range("D1") Then
MsgBox "入力が間違っています", vbOKOnly + vbExclamation
とやっても、結果は同じで・・・、D1が“みかん”でもエラーが表示されます。
IFの構文の作り方なのだと思いますが、混乱してしまって。。。
助けて頂けないでしょうか。よろしくお願い致します。
< 使用 Excel:Excel2010、使用 OS:Windows7 >
BパターンでAndにすれば、正確に働きました。
失礼しました。
(ハム太郎) 2017/02/23(木) 18:36
もう見ないかとは思いますが・・・
仮に シート上で、この処理を行おうとすれば、どこかのセルに、たとえば =IF(ISERROR(MATCH(D1,B1:B3,0)),"入力が間違っています","")
こんな式を書くことで実現できますよね。
この処理を VBA流に記述すると以下のようになります。
Sub test()
If IsError(Application.Match(Range("D1"), Range("B1:B3"), 0)) Then MsgBox "入力が間違っています" End If
End Sub
( β) 2017/02/23(木) 19:28
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.