新しく質問する

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

役に立った:0件
  • 質問者:souta_n
  • 投稿日時:2002/09/10 14:41
  • 困り度:すぐに回答が欲しいです
  • 友達に紹介
  • ブログに書く
  • 教えて!gooお気に入り

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

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

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

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

式でもVBAでも結構です。

この質問への回答は締め切られました。
このQ&Aは役に立ちましたか?(役に立った:0件)
  • 参考になった:0件

No.2ベストアンサー20pt

  • 回答者:maruru01
  • 回答日時:2002/09/10 16:15

こんにちは。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

通報する

この回答へのお礼

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

  • 参考になった:0件

No.1ベストアンサー10pt

  • 回答者:mantaro1
  • 回答日時:2002/09/10 15:48

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

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

通報する

この回答へのお礼

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

  
このQ&Aは役に立ちましたか?(役に立った:0件)

このページのトップへ

Facebook公式ページ

公式Twitter