スペースで区切られた文字列の後半を取得するには?

Question 90.1 拙著「Excel VBA そのまま使える実用マクロ 500連発」 Previous Next
詳細は こちら サンプルNo. ? ◆ 環境・・ Excel 2002 & Windows XP

はじめまして。次のような場合、何かうまく処理できる方法があれば教えて下さい。 ある列の一つ一つのセルの中にに下記の様なデータが混在しているとします。データは全て文字です。
ああ いいい
オオオオ うう
ええええ
取り出したいデータはスペースより後ろの ”いいい”、”うう” や ”ええええ” です。 スペースを探して ”いいい” や ”うう” を取り出す部分は
    Do Until aa = "End"
      ww = ww + 1
      aa = Right(Range("Y42").Value, ww)
      If Left(aa, 1) = " " Then
        bb = Right(Range("Y42").Value, ww - 1)
        aa = "End"
        Range("K31") = bb
      End If
    Loop
としたのですが、スペースより前が無い ”ええええ” を拾おうとすると、これでは永久的に抜け出せません。
”ええええ” を含め、”いいい” や ”うう” も同時に拾えるようなマクロをご教授願えませんでしょうか。
よろしくお願いします。
Answer   Copyright (C) 2008.7.22 永井善王
貴方が質問を送信されたフォームは、拙著「Excel VBA そのまま使える実用マクロ 500連発」の読者様が同書に掲載されたマクロについて質問するためのものです。 が、貴方のご質問は無関係のようです。 しかし、きっと読者様でしょうね?
一般の質問は、
Excel VBA Board期間限定質問 をご利用いただきたく、次回から、よろしくお願いします。

回答に入りますが時間があまり取れないので、くわしく解説できません。
スペースを区切り文字として使っているようですから、InStr関数でスペースを検索して先頭からの文字数を取得する方法をお勧めします。 InStr関数は、スペースが見つからない場合は 0 を返します。
下記にサンプルをお示ししますので、VBEのヘルプを活用してご理解ください。

Sub 文字列から区切り文字の前半を取得する()
    For 行 = 42 To 44
        文字列 = Range("Y" & 行).Value
        位置 = InStr(1, 文字列, " ", vbTextCompare)
        If 位置 <> 0 Then
            後半 = Right(文字列, Len(文字列) - 位置)
        Else
            後半 = 文字列
        End If
        Range("K" & 行 - 11).Value = 後半
    Next
End Sub
関連ページ
スペースで区切られた文字列の後半を取り出す方法は

 

Excel VBA Macro