|
かえってややこしくなったかも知れませんが、編集するとこんな感じです。
日付は初めにチェックし、入力済みならメッセージを出してマクロを中止、
未入力なら決められた位置に本日の日付を強制入力し、その行に対して
他のデータも入力できるようにしてあります。
InputBox は、何も入力しないで OK したときか、キャンセルを押した後の
MsgBox で「いいえ」を選択したときに、その項目を飛ばして次のデータの
入力に移ります。MsgBox で「はい」を押すと全て中止します。ま、そのへん
の改造は簡単なので、希望に添わないなら一度ご自分でやってみて下さい。
Sub InputBox_Data2()
Dim CkR As Variant, Ary As Variant, GetV As Variant
Dim i As Integer, Ans As Integer
Dim Def As String
Const St1 As String = "を入力してください"
Const Ttl As String = "日報"
CkR = Application.Match(CLng(Date), Range("B:B"), 0)
If IsError(CkR) Then
CkR = Range("B65536").End(xlUp).Row + 1
Else
MsgBox "本日のデータは入力済みです", 48: Exit Sub
End If
Ary = Array("今日の天候", "来場者数", "売上げ金額", "担当者名")
Cells(CkR, 2).Value = Format(Date, "yyyy/m/d")
For i = 4 To 7
If i = 4 Then
Def = "晴れ"
Else
Def = ""
End If
GetV = Application _
.InputBox(Ary(i - 4) & St1, Ttl, Def, Type:=3)
If VarType(GetV) = 11 Then
Ans = MsgBox("入力を中止しますか", 36)
If Ans = 6 Then Exit Sub
End If
If Ans <> 7 Then Cells(CkR, i).Value = GetV
Ans = 0
Next i
End Sub
|
|