プロが教えるわが家の防犯対策術!

例えばAccessのテーブルのあるフィールドに、次の様な全角文字と半角文字が混在している文字列があったとします。

================
南下a-125-00SP
PPP感化S-12345
堂都下125+333
================

ここから別にフィールドを設けて下記の様に全角文字部分のみ抜き出す方法は無いでしょうか?

================
南下
感化
堂都下
================

式でもVBAでも結構です。

A 回答 (2件)

こんにちは。

maruru01です。

文字コード0~255が半角なのでそれを利用します。
なお、エラートラップは自分で付けて下さい。


Private Function GetOnlyZenkaku(Str As String) As String

  Dim i As Long
  Dim Chr As String
  Dim temp As String

  temp = ""
  For i = 1 To Len(Str)
    Chr = Mid(Str, i ,1)
    If Asc(Chr) < 0 Or Asc(Chr) > 255 Then
      temp = temp & Chr
    End If
  Next i

  GetOnlyZenkaku = temp

End Function
    • good
    • 1
この回答へのお礼

ありがとうございます。お二人の回答をいただきどちらも出来るんでポイントをどうしようと困ってしまいました。どちらかというと、このコーディングのほうが、私にはわかりやすかったです。

お礼日時:2002/09/10 18:28

簡単にする方法が思いつかなかったので、とりあえず関数を作成してみました。


全角にして一文字づつキャラクターコードを比較しています。

Function sGetZenkaku(sMoji As String) As String
Dim iLen As Integer, i As Integer
Dim sIc As String
iLen = Len(sMoji)
For i = 1 To iLen
sIc = Mid(sMoji, i, 1)
If Asc(sIc) = Asc(StrConv(sIc, vbWide)) Then
sGetZenkaku = sGetZenkaku & sIc
End If
Next i
End Function
    • good
    • 0
この回答へのお礼

なるほど、判りました。ありがとうございます。

お礼日時:2002/09/10 18:25

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