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

かな漢字、カタカナ、アルファベット、数字の含まれるデータフィールドがあります。
カタカナは全角のままで、アルファベットと数字を半角に変更する方法はありますでしょうか。

データの文字数、カナ→数字などの順は統一性がありません。また、スペースも含まれていますがスペースも削除した状態が望ましいです。

ご存知の方がいましたら教えてください。

A 回答 (4件)

ユーザー定義関数です。


文字を半角にしてみて数字、アルファベット(大文字または小文字)なら、その半角で置き換えています。文字毎にコーディングは不要と思いますが・・・・

Public Function AZaz09_Henkan(moji)
  Dim elm As String '1文字
  Dim elm_komoji As String '半角に変換
  Dim pot As Integer '文字位置

  moji = Trim(moji) '空白除去
  For pot = 1 To Len(moji)
    elm = Mid(moji, pot, 1) '1文字
    elm_komoji = StrConv(elm, vbNarrow) '半角文字にする
    Select Case Asc(elm_komoji)
      Case 48 To 57, 65 To 90, 97 To 122 '0~9,A~Z,a~z
        Mid(moji, pot, 1) = elm_komoji
    End Select
  Next
  AZaz09_Henkan = moji
End Function
    • good
    • 0
この回答へのお礼

ありがとうございます。

Function moji(MyStr As String)
Mylength = Len(MyStr)
For i = 1 To Mylength
Mystr_i = Mid(MyStr, i, 1)
If Mystr_i Like "[A-Z]" Or Mystr_i Like "[0-9]" Then
Mystr_tmp = StrConv(Mystr_i, vbNarrow)
Else
Mystr_tmp = Mystr_i
End If
moji = moji & Mystr_tmp
Next i
End Function

の方法をとることになりましたが、ぜひ試してみます。

お礼日時:2001/07/30 09:40

OracleにはREPLACEなる関数があり、


文字の置き換えができてたか、とおもいます。

ACCESSではどうでしょう?
A~Z、a~z、0~9なら52回もUPDATE文実行かな?
(Upper,Lower使用しても36回、とても大変)
    • good
    • 0

再び。


StrConv関数だと、お望みのようなことは難しいのでは?
複数条件が絡んでいるようですし...。
私もあまり詳しくないですが、私のやっている方法。

***スペースを削除***
Public Function DelSpaces(st As String) As String

Dim i As Long, lg As Long
Dim bst As String, c As String

st = Trim(st)
lg = Len(st)
For i = 1 To lg
c = Mid(st, i, 1)
If c = " " Or c = " " Then
Else
bst = bst + c
End If
Next i
DelSpaces = bst

End Function

***英数字の変換***
Public Function ZenToHan_Num(st As String) As String

Dim i As Long, lg As Long
Dim bst As String, c As String
Dim c1 As String
Dim c2 As String

st = Trim(st)
lg = Len(st)
For i = 1 To lg
c = Mid(st, i, 1)
c1 = "0": c2 = "0"
If c = c1 Or c = c2 Then
c = c1
Else
c1 = "1": c2 = "1"
If c = c1 Or c = c2 Then
c = c1
英数字…最後まで続く
End If
bst = bst + c
Next i
ZenToHan_Num = bst

End Function

これをクエリの式で呼び出し、変換しています。
参考になれば。
    • good
    • 0

かな漢字はどうするんでしょう?



Accessには文字列操作機能はないはずなので、VBAで自分で作るしかありません。
モジュールでAをAに変換するってのをアルファベット・数字ともに1個ずつかいていくしかないのでは?

この回答への補足

かな漢字はそのままです。

VBAでStrConv関数を利用するのではないか、というところまでの予想はできているのですが。

補足日時:2001/07/27 14:56
    • good
    • 0

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