- ベストアンサー
関数かVBAで拗音促音ァィゥェォッャュョヮを変換
拗音や促音の半角で1/2の高さのァィゥェォッャュョヮを半角カナに変換したいのです。 エクセル2000です。 一個ずつ置換えする以外に何かよい方法はないでしょうか? お知恵をお貸しください。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
こんな風?標準モジュールにて 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 ・・・に続くカタカナは『小文字』の拗音促音です その下のコメント行のは『半角大文字』です。数値は文字コード
その他の回答 (2)
- kagakusuki
- ベストアンサー率51% (2610/5101)
仮に、元の文字列がSheet1のA1セルに入力されると、変換後の文字列がSheet1のB1セルに表示される様にするものとして、Sheet2のA1セルに =SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(Sheet1!A1,"ァ","ア"),"ィ","イ"),"ゥ","ウ"),"ェ","エ"),"ォ","オ"),"ャ","ヤ"),"ュ","ユ"),"ョ","ヨ") と入力しておき、Sheet1のB1セルには =SUBSTITUTE(Sheet1!A1,"ッ","ツ") と入力 ※半角の「ヮ」は無い様です。
お礼
有難うございます。 勉強になりました。
- maverik1226
- ベストアンサー率75% (9/12)
こんばんわ こんなんで、どうでしょうか? 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
お礼
このサイトは半角カナが表示できないので誤解を生んだかと思います。 全角ひらがな→半角カナでも全角カナ→半角カナでもありません。 現在半角カナになっている拗音、(例:キャ・キュ・キョ の小さなャュョなど)とか促音(バットの小さな゛ッなど)を、半角のヤユヨやツに変換したいのです。 よろしくお願いします。
お礼
なるほど、文字コードに規則性があるのですね! とれも参考になりました。 これで思うことができるようです。 助かりました。 有難うございます。