[[20050829085349]] 『インプットボックスについて』(涼風) ページの最後に飛ぶ

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

 

『インプットボックスについて』(涼風)

 たとえば、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)


 お返事遅くなりました。
無事、動作させることができました。
ありがとうございました。
(涼風)

コメント返信:

[ 一覧(最新更新順) ]


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