[[20050709235733]] 『ダイアログボックスで』(涼風) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『ダイアログボックスで』(涼風)

 営業の入力用にEXCELの表を使っています。
 日報を入力するときに、D列に対応結果としてリストから選択し、L列には理由を入力するようになっています。(E〜Kには他の情報を入力しています)。
 
 D列でリストから「受注不可能」を選択した際には必ず理由を入力させたいのですが

 @D列でリストから「受注不可能」を選択すると、ダイアログボックスが表示される。
 Aダイアログボックスに理由を入力できるようにして
 BOKボタンを押すと、その入力した内容がL列に入力され、
 C元の表に戻ったら、カーソルはE列に。

 なんて、こんなワガママなこと、出来るでしょうか?

 VBAのこと、全く分からないので、出来るかどうかもわかりません。

 Excel2003、WindowsXPです。よろしくお願いします。


 おはようございます。
 >ダイアログボックスで
 インプットボックスのことでしょうか?
 対象シートの見出しを右クリック→コードを表示させてそこに貼り付けます。
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim MyData As Variant
If Target.Column <> 4 Then Exit Sub
If Target.Count > 1 Then Exit Sub
Application.EnableEvents = False
    With Target
        Select Case .Value
            Case "受注不可能"
                Do
                    MyData = Application.InputBox("受注不可能な理由を入力してください。", Type:=2)
                    If VarType(MyData) = vbBoolean Then
                        MsgBox "キャンセル出来ません。" & vbCrLf & vbCrLf & _
                                "必ず受注不可能な理由を入力して下さい。"
                    ElseIf MyData = "" Then
                        MsgBox "受注不可能な理由が入力されていません。" & vbCrLf & vbCrLf & _
                                "必ず受注不可能な理由を入力して下さい。"
                    End If
                Loop Until VarType(MyData) <> vbBoolean And MyData <> ""
                .Offset(, 8).Value = MyData
                .Offset(, 1).Select
            Case ""
                .Offset(, 8).Value = ""
        End Select
    End With
Application.EnableEvents = True
End Sub
#理由は一文字でも入力されればパスしてしまいます。(^^;
(SoulMan) 


 ありがとうございます。
 インプットボックスなるもの、はじめて知りました・・・
 すみません。
 一度、試してみます。
 また分からなくなったら、教えてください。 
        (涼風) 

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.