- 締切済み
ACCESSで全角と半角を変換する
いつもお世話になっております 早速ですが、 ACCESS2000(OSはWindowsXP)での質問です 住所録を整理しているのですが、 住所欄に全角と半角の入力が混在しています 英数字及びハイフンは半角に カタカナは全角に変換したいのですが、 いい方法はないでしょうか? ちなみにStrconv関数をつかって 何とかしようと思ったのですが、 すべて変換されるので、どうもうまくいきません よろしくお願いします
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- Wendy02
- ベストアンサー率57% (3570/6232)
クエリに用いる場合に、以下のユーザー定義関数をお使いなればできるかと思います。 なお、半濁音、濁音付き文字は、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
- ja7awu
- ベストアンサー率62% (292/464)
> 英数字及びハイフンは半角にカタカナは全角に変換したい ハイフン以外の記号について触れていないのですが、一応想定として、 カタカナだけを全角に、他を全て半角に変換するものとして、 次のようなユーザ定義関数は、如何でしょうか。 書式: 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
補足
ありがとうございます 試してみます
補足
ありがとうございます 試してみます