• ベストアンサー

全角文字だけ抜き出したい

例えばAccessのテーブルのあるフィールドに、次の様な全角文字と半角文字が混在している文字列があったとします。 ================ 南下a-125-00SP PPP感化S-12345 堂都下125+333 ================ ここから別にフィールドを設けて下記の様に全角文字部分のみ抜き出す方法は無いでしょうか? ================ 南下 感化 堂都下 ================ 式でもVBAでも結構です。

質問者が選んだベストアンサー

  • ベストアンサー
  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.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

souta_n
質問者

お礼

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

その他の回答 (1)

  • mantaro1
  • ベストアンサー率48% (19/39)
回答No.1

簡単にする方法が思いつかなかったので、とりあえず関数を作成してみました。 全角にして一文字づつキャラクターコードを比較しています。 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

souta_n
質問者

お礼

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

関連するQ&A