• ベストアンサー

関数かVBAで拗音促音ァィゥェォッャュョヮを変換

拗音や促音の半角で1/2の高さのァィゥェォッャュョヮを半角カナに変換したいのです。 エクセル2000です。 一個ずつ置換えする以外に何かよい方法はないでしょうか? お知恵をお貸しください。

質問者が選んだベストアンサー

  • ベストアンサー
  • nicotinism
  • ベストアンサー率70% (1019/1452)
回答No.2

こんな風?標準モジュールにて Public Function myConv(ByVal S As String) As String   Const Moji = "ァィゥェォャュョッ" '167,168,169,170,171,172,173,174,175   'アイウエオヤユヨツ '177,178,179,180,181,212,213,214,194   Dim i As Integer, C As String   myConv = S   For i = 1 To Len(S)     C = Mid(S, i, 1)     Select Case Asc(C)       Case 167 To 171         Mid(myConv, i) = Chr(Asc(C) + 10)       Case 172 To 174         Mid(myConv, i) = Chr(Asc(C) + 40)       Case 175         Mid(myConv, i) = "ツ"     End Select '    If InStr(Moji, C) > 0 Then '      Mid(myConv, i) = StrConv(Chr(Asc(C) + 1), vbNarrow) '    End If   Next i End Function ワークシートでは、=myconv(セル番地) ※「ワ」は不明です。当方2010 Const ・・・に続くカタカナは『小文字』の拗音促音です その下のコメント行のは『半角大文字』です。数値は文字コード

emaxemax
質問者

お礼

なるほど、文字コードに規則性があるのですね! とれも参考になりました。 これで思うことができるようです。 助かりました。 有難うございます。

その他の回答 (2)

  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.3

 仮に、元の文字列がSheet1のA1セルに入力されると、変換後の文字列がSheet1のB1セルに表示される様にするものとして、Sheet2のA1セルに =SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(Sheet1!A1,"ァ","ア"),"ィ","イ"),"ゥ","ウ"),"ェ","エ"),"ォ","オ"),"ャ","ヤ"),"ュ","ユ"),"ョ","ヨ") と入力しておき、Sheet1のB1セルには =SUBSTITUTE(Sheet1!A1,"ッ","ツ") と入力 ※半角の「ヮ」は無い様です。

emaxemax
質問者

お礼

有難うございます。 勉強になりました。

回答No.1

こんばんわ こんなんで、どうでしょうか? Sub Test() '★A1セルに入力してある文字を、B1セルに変換して出力します With Sheets(1) '全角ひらがな→半角カナの場合 .Range("B1").Value = StrConv(StrConv(.Range("A1").Value, vbKatakana), vbNarrow) '全角カナ→半角カナの場合 .Range("B1").Value = StrConv(.Range("A1").Value, vbNarrow) End With End Sub

emaxemax
質問者

お礼

このサイトは半角カナが表示できないので誤解を生んだかと思います。 全角ひらがな→半角カナでも全角カナ→半角カナでもありません。 現在半角カナになっている拗音、(例:キャ・キュ・キョ の小さなャュョなど)とか促音(バットの小さな゛ッなど)を、半角のヤユヨやツに変換したいのです。 よろしくお願いします。

関連するQ&A