dポイントプレゼントキャンペーン実施中!

エクセルで入力した文字(漢字、ひらがな、カタカナが混在)を一文字づつ分離したいのですが、濁点がある場合も一文字として表示させたいのですがどうしたらいいでしょうか?

例:「つくば市のガム」→「つ」「く」「は」「"」「市」「の」「カ」「"」「ム」

漢字、ひらがな、カタカナが混在ではむりなのでしょうか?
よろしくお願いします。

A 回答 (4件)

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 列とか、適当な列数だけドラッグ。
    • good
    • 4
この回答へのお礼

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

お礼日時:2013/10/14 06:18

回答としては、質問者さんの望んでいるものではないと思いますが、関数で処理は、今の私では、解く気持ちも起こりません。

それで、マクロをと考えてみましたが、こちらも、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
'//
    • good
    • 0
この回答へのお礼

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

お礼日時:2013/10/14 09:59

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


以下のようなテーブルを作成して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セルを下へ必要な行数だけコピーすれば貼付画像のような結果が得られます。

がか゛
ぎき゛
ぐく゛
げけ゛
ごこ゛
ざさ゛
じし゛
ずす゛
ぜせ゛
ぞそ゛
だた゛
ぢち゛
づつ゛
でて゛
どと゛
ばは゛
びひ゛
ぶふ゛
べへ゛
ぼほ゛
ぱは゜
ぴひ゜
ぷふ゜
ぺへ゜
ぽほ゜
ガカ゛
ギキ゛
グク゛
ゲケ゛
ゴコ゛
ザサ゛
ジシ゛
ズス゛
ゼセ゛
ゾソ゛
ダタ゛
ヂチ゛
ヅツ゛
デテ゛
ドト゛
バハ゛
ビヒ゛
ブフ゛
べヘ゛
ボホ゛
パハ゜
ピヒ゜
プフ゜
ペヘ゜
ポホ゜
「エクセルにて濁点を分離する方法」の回答画像3
    • good
    • 0
この回答へのお礼

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

お礼日時:2013/10/14 06:18

>例:「つくば市のガム」→「つ」「く」「は」「"」「市」「の」「カ」「"」「ム」


全角のカナ文字で濁点、半濁点は分かれていませんので分離するのは如何なものでしょう?

>漢字、ひらがな、カタカナが混在ではむりなのでしょうか?
半角のカタカナは濁点と半濁点が独立していますが、全角のカナ文字(ひらがな、カタカナ)は濁点と半濁点が分離さえていませんので分離したい場合は変換テーブルが必要です。

カタカナの濁点半濁点のみ分離のときは次の式で切り出せます。

=MID(A$1,ROW()-1,1)
=MID(B$1,ROW()-1,1)

B列が半角カタカナ文字の例です。
「エクセルにて濁点を分離する方法」の回答画像1

この回答への補足

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

補足日時:2013/10/13 21:09
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています