アプリ版:「スタンプのみでお礼する」機能のリリースについて

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

A 回答 (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

この回答への補足

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

補足日時:2005/05/02 13:18
    • good
    • 0

> 英数字及びハイフンは半角にカタカナは全角に変換したい



ハイフン以外の記号について触れていないのですが、一応想定として、
カタカナだけを全角に、他を全て半角に変換するものとして、
次のようなユーザ定義関数は、如何でしょうか。

書式:
 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

この回答への補足

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

補足日時:2005/05/02 13:17
    • good
    • 0

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