• ベストアンサー

エクセルにて濁点を分離する方法

エクセルで入力した文字(漢字、ひらがな、カタカナが混在)を一文字づつ分離したいのですが、濁点がある場合も一文字として表示させたいのですがどうしたらいいでしょうか? 例:「つくば市のガム」→「つ」「く」「は」「"」「市」「の」「カ」「"」「ム」 漢字、ひらがな、カタカナが混在ではむりなのでしょうか? よろしくお願いします。

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

  • ベストアンサー
回答No.2

A1 つくば市のガム B1 =asc(a1) C1 =substitute(substitute(substitute(substitute(substitute(substitute(substitute(substitute(substitute(substitute(substitute(substitute(substitute(substitute(substitute(substitute(substitute(substitute(substitute(substitute(B1,"が","か゛"),"ぎ","き゛"),"ぐ","く゛"),"げ","け゛"),"ご","こ゛"),"ざ","さ゛"),"じ","し゛"),"ず","す゛"),"ぜ","せ゛"),"ぞ","そ゛"),"だ","た゛"),"ぢ","ち゛"),"づ","つ゛"),"で","て゛"),"ど","と゛"),"ば","は゛"),"び","ひ゛"),"ぶ","ふ゛"),"べ","へ゛"),"ぼ","ほ゛") D1 =jis(mid($C1,columns($D1:d1),1)) D1 セルを右方向に、10 列とか 15 列とか、適当な列数だけドラッグ。

tsukajun
質問者

お礼

回答有り難う御座います。 助かりました。

その他の回答 (3)

回答No.4

回答としては、質問者さんの望んでいるものではないと思いますが、関数で処理は、今の私では、解く気持ちも起こりません。それで、マクロをと考えてみましたが、こちらも、Excelを、かなり遠ざかっているので、お粗末なコードになってしまいました。 マクロの考え方は、半角カタカナにすると、半濁点・濁点は分離するので、一旦半角にして、そこから、濁点のない文字を取り出し、元が、かな・カタカナのどちらかで、分岐させて、元に戻すという考え方です。ただし、半角の濁点・半濁点は、元に戻りませんでした。出力は、縦でも横でも可能です。現行では、横に出力しています。 '//標準モジュール登録 Sub Test1() Dim moji As String Dim ret As Variant  moji = ActiveCell.Value 'アクティブセルの文字を格納  If moji = "" Then Exit Sub  ret = SplitChars(moji)  ActiveCell.Offset(, 1).Resize(, UBound(ret) + 1).Value = ret '右側のセルに分配 End Sub Function SplitChars(moji As String)  Dim i As Long, j As Long  Dim a As String, b As String, s As String  Dim buf1 As String  Dim buf2 As String  Dim aChars() As Variant  For i = 1 To Len(moji)   buf1 = StrConv(Mid(moji, i, 1), vbKatakana + vbNarrow) '半角に   If Len(buf1) = 2 Then    j = j + 1    ReDim Preserve aChars(j)    a = Mid(buf1, 1, 1)    b = Mid(buf1, 2, 1)    If StrComp(b, "゜", 3) = 0 Then s = "゜"    If StrComp(b, "゛", 3) = 0 Then s = "゛"    If Mid(moji, i, 1) Like "[ァ-ン]" Then     a = StrConv(a, vbWide)    Else     a = StrConv(a, vbWide + vbHiragana)    End If    aChars(j - 1) = a    aChars(j) = s   Else    ReDim Preserve aChars(j)    buf2 = Mid(moji, i, 1)    aChars(j) = Mid(buf2, 1, 1)   End If   j = j + 1  Next i  SplitChars = aChars() End Function '//

tsukajun
質問者

お礼

回答有り難う御座います。 マクロは知識不足でよくわかりません。 ありがとうございました。

  • bunjii
  • ベストアンサー率43% (3589/8249)
回答No.3

>全て全角入力の場合はどのような変換テーブルが必要なのでしょうか? 以下のようなテーブルを作成してVLOOKUP関数で元の文字に該当する濁音、半濁音の1文字を清音と゛、゜の2文字に変換すれば良い。 テーブルをE2:G51に作成して、A1に元の文字列があったとき以下の式をB2へ入力します。 =IFERROR(VLOOKUP(MID(A$1,ROW()-1,1),E:G,2,FALSE),MID(A$1,ROW()-1,1)) C2へは次の式を入力します。 =IFERROR(VLOOKUP(MID(A$1,ROW()-1,1),E:G,3,FALSE),"") B2セルとC2セルを下へ必要な行数だけコピーすれば貼付画像のような結果が得られます。 が か ゛ ぎ き ゛ ぐ く ゛ げ け ゛ ご こ ゛ ざ さ ゛ じ し ゛ ず す ゛ ぜ せ ゛ ぞ そ ゛ だ た ゛ ぢ ち ゛ づ つ ゛ で て ゛ ど と ゛ ば は ゛ び ひ ゛ ぶ ふ ゛ べ へ ゛ ぼ ほ ゛ ぱ は ゜ ぴ ひ ゜ ぷ ふ ゜ ぺ へ ゜ ぽ ほ ゜ ガ カ ゛ ギ キ ゛ グ ク ゛ ゲ ケ ゛ ゴ コ ゛ ザ サ ゛ ジ シ ゛ ズ ス ゛ ゼ セ ゛ ゾ ソ ゛ ダ タ ゛ ヂ チ ゛ ヅ ツ ゛ デ テ ゛ ド ト ゛ バ ハ ゛ ビ ヒ ゛ ブ フ ゛ べ ヘ ゛ ボ ホ ゛ パ ハ ゜ ピ ヒ ゜ プ フ ゜ ペ ヘ ゜ ポ ホ ゜

tsukajun
質問者

お礼

回答有り難う御座います。 参考にさせていただきます。

  • bunjii
  • ベストアンサー率43% (3589/8249)
回答No.1

>例:「つくば市のガム」→「つ」「く」「は」「"」「市」「の」「カ」「"」「ム」 全角のカナ文字で濁点、半濁点は分かれていませんので分離するのは如何なものでしょう? >漢字、ひらがな、カタカナが混在ではむりなのでしょうか? 半角のカタカナは濁点と半濁点が独立していますが、全角のカナ文字(ひらがな、カタカナ)は濁点と半濁点が分離さえていませんので分離したい場合は変換テーブルが必要です。 カタカナの濁点半濁点のみ分離のときは次の式で切り出せます。 =MID(A$1,ROW()-1,1) =MID(B$1,ROW()-1,1) B列が半角カタカナ文字の例です。

tsukajun
質問者

補足

全て全角入力の場合はどのような変換テーブルが必要なのでしょうか?

関連するQ&A