Excel VBA質問箱 IV

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

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


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

【25263】セルの中の特定の文字列 あいんすと 05/5/25(水) 22:12 質問[未読]
【25265】Re:セルの中の特定の文字列 kobasan 05/5/25(水) 22:43 回答[未読]
【25266】Re:セルの中の特定の文字列 ponpon 05/5/25(水) 22:47 回答[未読]
【25267】Re:セルの中の特定の文字列 ponpon 05/5/25(水) 22:48 発言[未読]
【25315】Re:セルの中の特定の文字列 ponpon 05/5/27(金) 22:14 発言[未読]
【25316】Re:セルの中の特定の文字列 あいんすと 05/5/27(金) 22:40 お礼[未読]
【25268】Re:セルの中の特定の文字列 ちゃっぴ 05/5/26(木) 0:04 回答[未読]

【25263】セルの中の特定の文字列
質問  あいんすと  - 05/5/25(水) 22:12 -

引用なし
パスワード
   お疲れ様です。

1つのセルの中に
○○○○○ ×××℃ △△△△rpm
スペースで区切られている文字列の
×××℃ と △△△△rpm を
それぞれ抜き出したいのですが...

温度と回転数は変わるので、必ずスペースを入れることを
前提に、℃とrpmの前の数字を取り出すことが出来ますでしょうか?

【25265】Re:セルの中の特定の文字列
回答  kobasan  - 05/5/25(水) 22:43 -

引用なし
パスワード
   ▼あいんすと さん 今晩は

>
>1つのセルの中に
>○○○○○ ×××℃ △△△△rpm
>スペースで区切られている文字列の
>×××℃ と △△△△rpm を
>それぞれ抜き出したいのですが...
>
>温度と回転数は変わるので、必ずスペースを入れることを
>前提に、℃とrpmの前の数字を取り出すことが出来ますでしょうか?


'splitを使うといいです。
'B2:B4に○○○○○ ×××℃ △△△△rpmのタイプのデータがあるとして
'

Sub test()
Dim r As Range
Dim A As Variant
  For Each r In Range("B2:B4")
    A = Split(r.Text, " ") '区切りは全角スペースとする
    B = Left(A(1), Len(A(1)) - 1)
    C = Left(A(2), Len(A(2)) - 3)
    MsgBox B & "℃" & vbCr & vbCr & C & "rpm"
  Next
End Sub

【25266】Re:セルの中の特定の文字列
回答  ponpon  - 05/5/25(水) 22:47 -

引用なし
パスワード
   こんばんは。こんなんでは?
全角のスペースで考えています。

Sub test()
 Dim myVal As Variant
 Dim myData As String

 myData = Range("A1").Value
 myVal = Split(myData, " ")
 Range("B1").Value = Mid(myVal(1), 1, Len(myVal(1)) - 1)
 Range("C1").Value = Mid(myVal(2), 1, Len(myVal(2)) - 3)
End Sub

【25267】Re:セルの中の特定の文字列
発言  ponpon  - 05/5/25(水) 22:48 -

引用なし
パスワード
   あら、かぶっちゃった。

【25268】Re:セルの中の特定の文字列
回答  ちゃっぴ  - 05/5/26(木) 0:04 -

引用なし
パスワード
   正規表現を利用した方法

' 要参照 Microsoft VBScript Regular Expressions 5.5

Dim objRegExp  As VBScript_RegExp_55.RegExp
Dim colMatches As VBScript_RegExp_55.MatchCollection
Dim objMatch  As VBScript_RegExp_55.Match

strTarget = "○○○○○ ×××℃ △△△△rpm"

Set objRegExp = New VBScript_RegExp_55.RegExp

With objRegExp
  .Pattern = " (.+)℃ (.+)rpm"
  Set colMatches = .Execute(strTarget)
End With
Set objMatch = colMatches(0)
With objMatch
  Debug.Print .SubMatches(0)
  Debug.Print .SubMatches(1)
End With

【25315】Re:セルの中の特定の文字列
発言  ponpon  - 05/5/27(金) 22:14 -

引用なし
パスワード
   今頃気づきました。
一文字目から取り出すなら
>Range("B1").Value = Mid(myVal(1), 1, Len(myVal(1)) - 1)
>Range("C1").Value = Mid(myVal(2), 1, Len(myVal(2)) - 3)
       ↓
 Range("B1").Value = Left(myVal(1), Len(myVal(1)) - 1)
 Range("C1").Value = Left(myVal(2), Len(myVal(2)) - 3)

【25316】Re:セルの中の特定の文字列
お礼  あいんすと  - 05/5/27(金) 22:40 -

引用なし
パスワード
   多数のご回答、有難うございます。
また、分からない所があったら宜しくお願いします。

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