秘密基地、どこに作った?

教えてください。

たとえば、エクセルのセルの
 AAA555さくらサクラ
という文字列から、英数字だけ抜き出す方法を教えてください。
文字列は可変(不規則な長さ)で、文字列中には英数の他にひらがな、
カタカナ、漢字があります。
例の結果として、AAA555を抜き出したいです。

A 回答 (4件)

◆英数字の後にひらがな、カタカナ、漢字が並んでいるものとします


(ひらがな、カタカナ、漢字は順不同でも可)
B1=LEFT(A1,MATCH(1,INDEX(1/(CODE(MID(ASC(A1),ROW($1:$50),1))>5000),),0)-1)
    • good
    • 0
この回答へのお礼

maron-5様
ありがとうございました。
CODE関数の文字コードを>126とし、実行したら英数字を抜くことができました。

お礼日時:2007/07/17 17:49

数字と英文字(半角、全角)を抜き出すユーザ定義関数です


まず以下のマクロをALT+F11でVBE画面を開き、左上のVBA Projectでシート名を右クリックし「挿入」→「標準モジュール」で表示される画面に貼り付けて下さい。

次にワークシート画面に戻って
=AtoZ(A1)
のように式を入力してください。A1の部分が文字列が入っているセルアドレスです。

英記号などを抽出文字に追加したかったら
 strPattern = "[0-9A-Za-z0-9A-Za-z]+-@"
のように後ろに追加してください

Function AtoZ(ByVal trg As Range) As String
Dim RE, mchItems
Dim strPattern As String
Dim idx As Integer
If trg <> "" Then
 Set RE = CreateObject("VBScript.RegExp")
 strPattern = "[0-9A-Za-z0-9A-Za-z]"
 With RE
  .Pattern = strPattern
  .IgnoreCase = True
  .Global = True
  Set mchItems = .Execute(trg.Value)
  If mchItems.Count > 0 Then
   For idx = 0 To mchItems.Count - 1
    AtoZ = AtoZ & mchItems(idx).Value
   Next idx
  End If
 End With
 Set RE = Nothing
End If
End Function
    • good
    • 0
この回答へのお礼

zap35さんへ
ありがとうございました。
問題解決しました。
VBA初心者で書き方がわからずググっても調べられず、
困り果てていました。
親切なご回答感謝いたします。

お礼日時:2007/07/11 16:50

アドバイスです。



VBAを使って関数を作るしかないと思います。
    • good
    • 0

・正規表現(パターンマッチ構文)


・1文字ずつチェック。 0-9,a-zA-Zにあればコピー

などいろいろ方法があります
    • good
    • 0

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

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


おすすめ情報