『インプットボックスについて』(涼風)  たとえば、D列で「可能」を選択したとき さらにA列が空白ならば、インプットボックスでA列に日付をいれる・・・  なんてことは出来ますか?  以前教えてもらった方法で、D列で「可能」を選択すれば インプットボックスが出現して、理由を入力しなければならない・・・ ということは出来たのですが、 今回は、日付が入力されていない場合のみインプットボックスを出したいのです。  お願いします。 ---- こんにちは! >以前教えてもらった方法で、D列で「可能」を選択すれば こちらですね。ちょっと作ってみましたのでお確かめください。 [[20050709235733]]『ダイアログボックスで』(涼風) 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 If Target.Value = "" Then Application.EnableEvents = False Target.Offset(, -3).Value = "" Application.EnableEvents = True Exit Sub End If If IsDate(Target.Offset(, -3).Value) Then Exit Sub Application.EnableEvents = False With Target Select Case .Value Case "可能" Do MyData = Application.InputBox( _ "必ず、yyyy/mm/ddの形式で日付を入力してください。", _ Default:=Format(Date, "yyyy/mm/dd"), Type:=1) If VarType(MyData) = vbBoolean Then MsgBox "キャンセル出来ません。" & vbCrLf & _ "必ず日付を入力して下さい。" Else MyData = Format(MyData, "yyyy/mm/dd") End If Loop Until IsDate(MyData) .Offset(, -3).Value = MyData End Select End With Application.EnableEvents = True End Sub (SoulMan) ---- いつもありがとうございます。 一度試してみます。 またよろしくお願いします。 ---- 試してみました。出来ました。 そこで、もうひとつだけワガママ言っていいですか? D列は入力規則で、"可能"以外に"不可能"や"継続"などから選ぶようになっているのですが D列で"可能"以外を選択した場合も同じように B列に日付が入力されていない場合のみインプットボックスを出現させ 日付を入力したいのですが。 このとき、日付を入力する列は、B列です。 難しいでしょうか・・・ (涼風) ---- こんばんは! プライドを見てたら遅くなってしまたぁ(^^; 要約すると、こんな感じですかね?? Option Explicit Private Sub Worksheet_Change(ByVal Target As Range) Dim MyDate As Variant Dim n As Long If Target.Column <> 4 Then Exit Sub If Target.Count > 1 Then Exit Sub If Target.Value = "" Then Exit Sub 'たとえば、D列で「可能」を選択したときさらにA列が空白ならば、 'インプットボックスでA列に日付をいれる・・・ 'なんてことは出来ますか? '以前教えてもらった方法で、D列で「可能」を選択すればインプットボックスが出現して、 '理由を入力しなければならない・・・ということは出来たのですが、 '今回は、日付が入力されていない場合のみインプットボックスを出したいのです。 With Target Select Case True Case .Value = "可能" And Not IsDate(.Offset(, -3).Value) 日付入力 MyDate n = -3 'D列は入力規則で、"可能"以外に"不可能"や"継続"などから選ぶようになっているのですが 'D列で"可能"以外を選択した場合も同じように 'B列に日付が入力されていない場合のみインプットボックスを出現させ '日付を入力したいのですが。 'このとき、日付を入力する列は、B列です。 Case .Value <> "可能" And Not IsDate(.Offset(, -2).Value) 日付入力 MyDate n = -2 End Select If IsDate(MyDate) Then Application.EnableEvents = False .Offset(, n).Value = MyDate Application.EnableEvents = True End If End With End Sub Private Sub 日付入力(ByRef x As Variant) Do x = Application.InputBox( _ "必ず、yyyy/mm/ddの形式で日付を入力してください。", _ Default:=Format(Date, "yyyy/mm/dd"), Type:=1) If VarType(x) = vbBoolean Then MsgBox "キャンセル出来ません。" & vbCrLf & _ "必ず日付を入力して下さい。" Else x = Format(x, "yyyy/mm/dd") End If Loop Until IsDate(x) End Sub (SoulMan) ---- お返事遅くなりました。 無事、動作させることができました。 ありがとうございました。 (涼風)