• 締切済み

ACCESSのVBAでカナを取り出すプログラム

ACCESSのVBAで急遽以下の処理をする必要があり、コードを教授ください。当方、プログラミングは素人で、簡単なコードをネットで拾って来て動かしているレベルです。 テーブル「名簿」のフィールド「旧カナ」の値(文字列)を取り出して、その文字列からカナとスペースだけを抜き出してフィールド「新カナ」に登録したいです。全レコードを置きかけます。 フィールド「旧カナ」には、名前のカナだけではなく英字、数字、記号などが入っているので、カナだけを取り出して文字詰めして「新カナ」に登録し直したいです。VBAのコードを教えてください。 ACCESSのモジュールで書いて、マクロで起動する予定です。よろしくお願い致します。

みんなの回答

  • kkkkkm
  • ベストアンサー率66% (1742/2617)
回答No.2

If tmp Like "*[ァ-ン]*" _ ですが環境によっては見た目「ア」が普通の大きさなのですが実際は小さい「ァ」です。

  • kkkkkm
  • ベストアンサー率66% (1742/2617)
回答No.1

あまりスマートな感じではないのですがよろしければ試してみてください。 Public Function test() Dim db As Database, rs1 As Recordset, rs2 As Recordset Dim i As Long, j As Long, mStr As Variant Dim tmp As Variant Set db = CurrentDb Set rs1 = db.OpenRecordset("名簿", dbOpenTable) rs1.MoveFirst Do Until rs1.EOF mStr = "" If rs1![旧カナ] <> "" Then For i = 1 To Len(rs1![旧カナ]) tmp = Mid(rs1![旧カナ], i, 1) If tmp Like "*[ァ-ン]*" _ Or StrConv(tmp, vbNarrow) = " " _ Or tmp = "ヮ" Then If AscW(StrConv(tmp, vbKatakana)) = AscW(tmp) Then mStr = mStr & tmp End If End If Next rs1.Edit rs1![新カナ] = mStr rs1.Update End If rs1.MoveNext Loop Set rs1 = Nothing Set db = Nothing End Function

関連するQ&A