• 締切済み

ACCESSで全角と半角を変換する

いつもお世話になっております 早速ですが、 ACCESS2000(OSはWindowsXP)での質問です 住所録を整理しているのですが、 住所欄に全角と半角の入力が混在しています 英数字及びハイフンは半角に カタカナは全角に変換したいのですが、 いい方法はないでしょうか? ちなみにStrconv関数をつかって 何とかしようと思ったのですが、 すべて変換されるので、どうもうまくいきません よろしくお願いします

みんなの回答

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

クエリに用いる場合に、以下のユーザー定義関数をお使いなればできるかと思います。 なお、半濁音、濁音付き文字は、1つの文字になります。そのまま、全角にしても、半角の「パソコン」は、全角の「パソコン」にはなりません。 ANSI文字だけを、半角のままにします。一応、パターンの中で、サポートしているはずです。 Function Han2Zen(arg1 As String)  Dim myPattern As String  Dim strValue As String  Dim i As Long  strValue = StrConv(arg1, vbWide)  Dim Sign As String   Sign = Chr(&H1F) & "-" & Chr(&H2F) & _      Chr(&H3A) & "-" & Chr(&H40) & _      Chr(&H5B) & "-" & Chr(&H60) & _      Chr(&H7B) & "-" & Chr(&HA5)   Const Figure As String = "0-9"   Const Alphabet As String = "A-z"   myPattern = "[" & Alphabet & Figure & Sign & "]"  For i = 1 To Len(strValue)   If Mid(strValue, i, 1) Like StrConv(myPattern, vbWide) Then    Mid(strValue, i, 1) = StrConv(Mid(strValue, i, 1), vbNarrow)   End If  Next i   Han2Zen = strValue End Function

sekkin
質問者

補足

ありがとうございます 試してみます

  • ja7awu
  • ベストアンサー率62% (292/464)
回答No.1

> 英数字及びハイフンは半角にカタカナは全角に変換したい ハイフン以外の記号について触れていないのですが、一応想定として、 カタカナだけを全角に、他を全て半角に変換するものとして、 次のようなユーザ定義関数は、如何でしょうか。 書式:  ChgKanaWide(文字列式) 使用例:  ChgKanaWide("Ab漢12-アイ") ※実際の「アイ」は半角 戻り値: Ab漢12-アイ Function ChgKanaWide(S As String) As String Dim N As Integer Dim St As String Dim Wd As String St = StrConv(S, vbWide) For N = 1 To Len(St)   If Asc(Mid(StrConv(St, vbNarrow), N, 1)) >= 32 And _     Asc(Mid(StrConv(St, vbNarrow), N, 1)) <= 126 Then     Wd = Wd & Mid(StrConv(St, vbNarrow), N, 1)   Else     Wd = Wd & Mid(St, N, 1)   End If Next N ChgKanaWide = Wd End Function

sekkin
質問者

補足

ありがとうございます 試してみます

関連するQ&A