- ベストアンサー
スペースで区切られた氏名から性だけを抽出するには?
Excel2000です。 過去情報を色々調べてそれっぽいのは見つかってトライしているのですが、 なかなか応用が利かなくて上手く出来ませんので、教えて頂きたく投稿させて 頂きました。 例えば、セルA1に「山田 太郎」とあります。 姓名と名前は全角スペースで区切られています。 これをVBAを使用して、 スペース前の姓名「山田」を抽出して、係数に格納してファイル名などに利用 したいのですが、どうすればよいでしょうか? 簡単なことだと思うのですが、ハマってしまい困っています。お助け下さい。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。 #1さんのSPLITを使った方法がベストかと思います。 別の方法では Sub TEST() Dim 苗字 As String 苗字 = Left(Range("A1").Value, InStr(Range("A1").Value, " ") - 1) MsgBox (苗字) End Sub LEFTを使って苗字を取り出します。 INSTRで全角スペースが何文字かを調べスペースを含まないようにする為、-1して苗字の終端を調べています。
その他の回答 (3)
- avanzato
- ベストアンサー率54% (52/95)
#3です。 #2さんの方法はちょっと面倒かと思いますが・・・。 置換するより =LEFT(A1,FIND(" ",A1)-1) の方が楽かと思います。 やっていることはFINDかINSTRの違いだけです。
お礼
ありがとうございます。 そうですね。確かに=LEFT(A1,FIND(" ",A1)-1)の方が簡単だと思います。 ワークシート上でのこのやり方は、ネットで検索出来ていました。
- srxmk3pro
- ベストアンサー率53% (527/980)
- chochobizo
- ベストアンサー率42% (30/70)
NameArray = Split(Range("A1").Value, " ") MsgBox "姓:" & NameArray(0) & vbCrLf & "名:" & NameArray(1) または tmp = InStr(1, Range("A1").Value, " ") MsgBox "姓:" & Left(Range("A1").Value, tmp - 1) & vbCrLf & _ "名:" & Mid(Range("A1").Value, tmp + 1) こんな感じでどうですか?
お礼
早々のご回答ありがとうございます。 最初の2行の方で出来ました。 助かりました。また宜しくお願いします。
お礼
早速のご回答ありがとうございます。 LEFTで色々試行錯誤していたのでこちらが入り易かったです。 #1さんのSplitも勉強してみます。 また、宜しくお願いします。