Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


4492 / 13644 ツリー ←次へ | 前へ→

【56259】テキストボックス 初心者さっち 08/6/11(水) 16:40 質問[未読]
【56307】Re:テキストボックス りん 08/6/12(木) 20:45 回答[未読]
【56314】Re:テキストボックス 初心者さっち 08/6/13(金) 8:59 お礼[未読]

【56259】テキストボックス
質問  初心者さっち  - 08/6/11(水) 16:40 -

引用なし
パスワード
   さっそくですが、ご教示願います。

ユーザフォームのテキストボックス内に文章を入れ、ok(コンボボックス)ボタンを押下すると、文章内の特定の文字(数字)等を、任意のセルへ反映させる事はできますでしょうか?

例)【テキストボックス内へペーストする文章】
  ジョブサマリー バイト数:123,456,789 開始時間:16:05:32 経過時間:  00:00:05 終了  時間:16:05:37

  【OKボタン押下後、反映させたいセル及び内容】
  A1=123456789 B1=16:05:32 C1=00:00:05 

よろしくお願いいたします。

【56307】Re:テキストボックス
回答  りん E-MAIL  - 08/6/12(木) 20:45 -

引用なし
パスワード
   初心者さっち さん、こんばんわ。

>ユーザフォームのテキストボックス内に文章を入れ、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

こんな感じです。

【56314】Re:テキストボックス
お礼  初心者さっち  - 08/6/13(金) 8:59 -

引用なし
パスワード
   お早うございます。
ご返答ありがとうございます。

>OKボタンということは、コンボボックスじゃなくて、コマンドボタンですよね?
ご指摘ありがとうございます。その通りです。

ご教示いただいたプログラムを理解しようと思います。

なにせ、昨日から勉強しだしましたので、実行してもうまくいきませんでした。

がんばってみようと思います。

また、ご質問させていただくと思いますので、よろしくお願いします。

4492 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free