|
初心者さっち さん、こんばんわ。
>ユーザフォームのテキストボックス内に文章を入れ、ok(コンボボックス)ボタンを押下すると、文章内の特定の文字(数字)等を、任意のセルへ反映させる事はできますでしょうか?
OKボタンということは、コンボボックスじゃなくて、コマンドボタンですよね?
フォームにテキストボックス(TextBox1)とコマンドボタン(CommandButton1)を配置して、以下のマクロをフォームモジュールに記述します。
「:」で文字列を区切って、必要そうなところだけ抽出してます。
>例)【テキストボックス内へペーストする文章】
> ジョブサマリー バイト数:123,456,789 開始時間:16:05:32 経過時間: 00:00:05 終了 時間:16:05:37
Private Sub CommandButton1_Click()
ReDim rdat(1 To 1, 1 To 3) As Variant
Dim aa As Variant, II As Long, s1 As String
'テキストボックスの文字
s1 = Me.TextBox1.Text
'処理開始
If s1 = "" Then
MsgBox "入力してね", vbExclamation
Else
aa = Split(Replace(Replace(s1, " ", ":"), " ", ":"), ":")
II = LBound(aa)
Do
If II > UBound(aa) Then Exit Do
Select Case aa(II)
Case "バイト数"
II = II + 1
rdat(1, 1) = aa(II)
Case "開始時間", "経過時間"
If aa(II) = "開始時間" Then CC = 2 Else CC = 3
NN = 0
Do
II = II + 1
If II > UBound(aa) Then Exit Do 'データが正しければないはず。
If Trim(aa(II)) <> "" Then
NN = NN + 1
If NN > 1 Then rdat(1, CC) = rdat(1, CC) & ":"
rdat(1, CC) = rdat(1, CC) & aa(II)
End If
If NN = 3 Then Exit Do
Loop
End Select
II = II + 1
Loop
'結果
Application.ActiveSheet.Range("A1:C1").Value = rdat()
Erase rdat
End If
End Sub
こんな感じです。
|
|