As a user, I would much rather see a userform with separate areas for each
response--or even a couple of inputboxes...
But if you wanted, you could use application.inputbox() and ask for an array to
be returned:
Option Explicit
Sub testme()
Dim myArr As Variant
Dim iCtr As Long
Dim userCancelled As Boolean
Dim resp As Long
myArr = Application.InputBox(prompt:="Three values", Type:=64 + 2, _
Default:=Array("first", "second", "third"))
userCancelled = False
For iCtr = LBound(myArr) To UBound(myArr)
If myArr(iCtr) = False Then
userCancelled = True
End If
MsgBox myArr(iCtr)
Next iCtr
If userCancelled Then
Exit Sub
End If
'more code here
End Sub
You could also use:
Sub testme2()
Dim myArr As Variant
Dim iCtr As Long
Dim userCancelled As Boolean
Dim resp As Long
myArr = Application.InputBox(prompt:="Multiple values", Type:=64)
userCancelled = False
For iCtr = LBound(myArr) To UBound(myArr)
If myArr(iCtr) = False Then
userCancelled = True
End If
MsgBox myArr(iCtr)
Next iCtr
If userCancelled Then
Exit Sub
End If
'more code here
End Sub
and have the user type the response as:
{"asdf",1,"qwer",17}
Replace the comma with the user's windows list separator