dポイントプレゼントキャンペーン実施中!

Excel2000です。
過去情報を色々調べてそれっぽいのは見つかってトライしているのですが、
なかなか応用が利かなくて上手く出来ませんので、教えて頂きたく投稿させて
頂きました。

例えば、セルA1に「山田 太郎」とあります。
姓名と名前は全角スペースで区切られています。

これをVBAを使用して、
スペース前の姓名「山田」を抽出して、係数に格納してファイル名などに利用
したいのですが、どうすればよいでしょうか?

簡単なことだと思うのですが、ハマってしまい困っています。お助け下さい。

A 回答 (4件)

こんにちは。


#1さんのSPLITを使った方法がベストかと思います。
別の方法では
Sub TEST()
  Dim 苗字 As String
  苗字 = Left(Range("A1").Value, InStr(Range("A1").Value, " ") - 1)
  MsgBox (苗字)
End Sub

LEFTを使って苗字を取り出します。
INSTRで全角スペースが何文字かを調べスペースを含まないようにする為、-1して苗字の終端を調べています。
    • good
    • 2
この回答へのお礼

早速のご回答ありがとうございます。
LEFTで色々試行錯誤していたのでこちらが入り易かったです。
#1さんのSplitも勉強してみます。
また、宜しくお願いします。

お礼日時:2009/12/24 11:29

#3です。


#2さんの方法はちょっと面倒かと思いますが・・・。
置換するより
=LEFT(A1,FIND(" ",A1)-1)
の方が楽かと思います。
やっていることはFINDかINSTRの違いだけです。
    • good
    • 2
この回答へのお礼

ありがとうございます。
そうですね。確かに=LEFT(A1,FIND(" ",A1)-1)の方が簡単だと思います。
ワークシート上でのこのやり方は、ネットで検索出来ていました。

お礼日時:2009/12/24 11:31

VBAを使用しなければならないのでしょうか?


セル1つからの抽出ならば、数式バー内でのマウス操作の問題だと思いますし、複数ならば「LEFT」関数と「置換」で処理します。
・姓は1文字~3文字が大半なので、スペースを含め4文字抽出
・抽出データーを「値を複写」で処理
・「置換」は「全角スペース+ワイルドカードのアスタリスク「*」」をブランクに置き換え
「スペースで区切られた氏名から性だけを抽出」の回答画像2
    • good
    • 0
この回答へのお礼

ありがとうございます。
ワークシート上に形跡を残さずにやりたかったので、
VBAでと考えました。

お礼日時:2009/12/24 11:27

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)

こんな感じでどうですか?
    • good
    • 1
この回答へのお礼

早々のご回答ありがとうございます。
最初の2行の方で出来ました。
助かりました。また宜しくお願いします。

お礼日時:2009/12/24 11:26

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A