- ベストアンサー
エクセルのInputBoxのことで
InputBoxに入力された値を、セルに反映させるVBAを知りたいのですが。 a bbb c ddddd 上記のように、スペースで区切って入力し、上記のケースなら、 A1 に a 、A2 に bbb 、A3 に c、A4 に ddddd と反映されるようにしたいのですが。 よろしくお願い致します。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
#1です。 こっちのほうがいいですね。 Sub test02() Dim xxx As String Dim yyy As Variant Dim i As Integer, n As Integer xxx = Application.InputBox("スペースで区切って入力してください。半角でも全角でもいいです。", "(σ^o^)σ ", Type:=2) If xxx = "" Then Exit Sub If xxx = False Then Exit Sub xxx = Replace(xxx, " ", " ") yyy = Split(xxx, " ") i = UBound(yyy) + 1 Range("A1").Resize(i).Value = Application.WorksheetFunction.Transpose(yyy) End Sub
その他の回答 (2)
- imogasi
- ベストアンサー率27% (4737/17069)
他の方法で Sub test01() 'x = "12 3455 56 sd 1 1" x = InputBox("文字列=") K = 1 s = 1 Do p = InStr(s, x, " ") If p = 0 Then Cells(K, "A") = Mid(x, s, Len(x) - s + 1) Exit Sub Else Cells(K, "A") = Mid(x, s, p - s + 1) s = p + 1 K = K + 1 End If Loop End Sub
お礼
ありがとうございました。 大変参考になりました。
- merlionXX
- ベストアンサー率48% (1930/4007)
Sub test01() Dim xxx As String Dim yyy As Variant Dim i As Integer, n As Integer xxx = Application.InputBox("スペースで区切って入力") xxx = Replace(xxx, " ", " ") yyy = Split(xxx, " ") i = UBound(yyy) For n = 1 To i + 1 Cells(n, "A") = yyy(n - 1) Next End Sub
お礼
ありがとうございました。 大変参考になりました。