あなたの「必」の書き順を教えてください

特定の列のセルに、特定の文字が入力された際に、注意を促すポップアップを表示させるのは可能でしょうか???

例えば、
C列(3~50)もしくは、E列(3~50)のどこかに「あいう」と入力した際に、「あいう注意」
C列のどこかに「かきく」と入力した際に、「かきく注意」
ポップアップは、「OK」ボタンで終了

それ以外の、文字を入力した際は、ポップアップは出現しないというのは可能でしょうか?

VB初心者のため、宜しくお願い申し上げます。

A 回答 (3件)

No.2の補足質問について・・・



方法は何通りかありますが、

>If Target = "あいう" Then

の行を
>If InStr(Target, "あいう") > 0 Then
または
>If Target Like "*あいう*" Then

にしてみてください。
これで「あいう」が含まれている場合はメッセージボックスが表示されます。m(_ _)m
    • good
    • 0
この回答へのお礼

何度も、ご丁寧に、ありがとうございます。

思い描いていたものが完成いたしました。

また、何かありましたら、宜しくお願い致します。

お礼日時:2012/11/27 19:25

続けてお邪魔します。



>セルに入力した文字が消えてしますのですが
>そのまま残すことは可能でしょうか

とありますので・・・

前回は余計なお世話を焼いてしまったようですね!

単に注意喚起だけで、「あいう」「かきく」は入力してもよい!ということですよね?

そうであれば前回のコード内に

With Target
.Value = ""
.Select
End With

の4行が2か所ありますので、両方とも削除してみてください。

これでメッセージは表示されますが、データはそのまま表示されます。m(_ _)m

この回答への補足

ご丁寧に、ありがとうございます。

もう一つ、ご質問なんですが、
セルに「あいう」という言葉が含まれる場合に発動させることは可能でしょうか?
通常の関数(countif等)であれば、「*あいう*」と指定すれば、できると思うのですが
VBでは違うようです。
何か方法が、あればご教唆頂けますか?

お手数おかけ致しますが、宜しくお願い致します。

補足日時:2012/11/26 22:53
    • good
    • 0

こんばんは!


一例です。

画面左下の操作したいSheet見出し上で右クリック → コードの表示 → VBE画面に
↓のコードをコピー&ペーストしてデータを入力してみてください。

Private Sub Worksheet_Change(ByVal Target As Range) 'この行から
Dim myArea1 As Range
Dim myArea2 As Range
Set myArea1 = Range("C3:C50", "E3:E50")
Set myArea2 = Range("C:C")

If Application.Intersect(Target, Range(myArea1, myArea2)) Is Nothing _
Or Target.Count <> 1 Then Exit Sub

If Target = "あいう" Then
If Not Application.Intersect(Target, myArea1) Is Nothing Then
MsgBox "あいう注意", vbExclamation
With Target
.Value = ""
.Select
End With
End If
ElseIf Target = "かきく" Then
If Not Application.Intersect(Target, myArea2) Is Nothing Then
MsgBox "かきく注意", vbExclamation
With Target
.Value = ""
.Select
End With
End If
End If
End Sub 'この行まで

こんな感じではどうでしょうか?m(_ _)m

この回答への補足

ご丁寧に、ありがとうございます。

早速、試行させて頂いたのですが
セルに入力した文字が消えてしますのですが
そのまま残すことは可能でしょうか?

お手数おかけ致しますが、宜しくお願い致します。

補足日時:2012/11/26 14:13
    • good
    • 1

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


おすすめ情報