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

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

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

このQ&Aに関連する最新のQ&A

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で質問しましょう!

このQ&Aと関連する良く見られている質問

Qエクセル:半角カナを全角に、半角英数はそのままに。

エクセル:半角カナを全角に、半角英数はそのままに。

ひらがな・漢字・半角カナ・半角英数が混じったセルが縦に沢山あります。
半角カナだけを全角にし、半角英数はそのままにしたいのですが、JISでは全て全角になってしまいます。
どなたか良い関数を教えてください。

Aベストアンサー

ご使用のエクセルのバージョンが提示されていないのですが、エクセル2007ならネストの制限にかからないので、以下のような数式1つで変換することができます(A2セルにデータがある場合)。

=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(JIS(A2),"0",0),"1",1),"2",2),"3",3),"4",4),"5",5),"6",6),"7",7),"8",8),"9",9)

古いバージョンのエクセルで変換したいなら、B2セルに「=JIS(A2)」
C2セルに以下のような式を入力し、右方向にL列まで、下方向にデータ数分だけオートフィルすればL列に変換後のデータが表示されます。

=SUBSTITUTE(B2,TEXT(COLUMN(A1)-1,"[DBNum3]0"),COLUMN(A1)-1)

Q半角カナを全角カナに変換したい

表題の通りです。
先輩から引き継いだエクセルのデータが、全角カナと半角カナとの両方を、使い分けなどではなく使用しているものだったので、半角カナを全部、全角カナに変換したいと考えています。
置換機能で50音全部を置換するのは大変ですので、一度に変換する良い方法があれば教えてください。
また、全角アルファベットを、普通の英字(半角アルファベット?)にも変換したいと思っています。

Aベストアンサー

=JIS(セル番地)
で全角に
=ASC(セル番地)
で半角になります。

QExcelで全角数字と半角数字の混在について

 Excelについて、以下のように全角数字と半角数字が混在しているワークシートがあるので、全部を半角数字に置き換えることは出来ないでしょうか?
EZ123
123
486
このように文字列としての数字・数値としての数字が混在しています。これらを全て半角数字にしたいのですが。あくまでも、見栄えの問題ですので、特に、計算等の必要はありません。
 よろしくお願いします。

Aベストアンサー

Sheet1のA1にデータがあるとして、別シートに =ASC(Sheet1!A1) のようにしてから、元のシートに値で貼り付けるとか、、、

Q【エクセル】半角数字→全角数字

エクセルですでに半角で入力されている数字を全角数字に一括変換する方法はありますか?

(1)住所録で半角入力されている番地等の数字のみをを全角に変換する方法
(2)電話番号など、全て数字で入力しているセルを一括で全角に変換する方法

Aベストアンサー

両方とも「=JIS(文字列)」でできます。

参考:日経PC21 / 全角を半角に変換する
http://pc.nikkeibp.co.jp/pc21/tech/excel36/28/index.shtml

QExcel 全角数字を半角数字に

エクセルを使ってデータを管理しています。
郵便番号の項目には、500件ぐらい郵便番号が入力されていますが、全角数字で入力されたデータと、半角数字で入力されたデータが混じっていて、見辛いし管理もしづらいです。
 関数を使って、全角数字を半角数字に変換する方法はありますでしょうか?

Aベストアンサー

ASC関数を使って変換できます。

但し、全角の音引き(ー)は、半角のマイナス(-)には変換されませんので、これも変換するには、
A1セルに元のデータがあるとして、

=ASC(SUBSTITUTE(A1,"ー","-"))

とすればOKです。


このカテゴリの人気Q&Aランキング

おすすめ情報