エクセルで漢字(カナ)を分ける方法

このQ&Aのポイント
  • エクセルで1つのセルに入った漢字(カナ)を分ける方法について教えてください。
  • 具体的には、A1のセルに「山田 花子(ヤマダ ハナコ)」と入力されている場合に、B1のセルに「山田 花子」、C1のセルに「(ヤマダ ハナコ)」と分けてデータ化する方法を知りたいです。
  • また、C1のセルにはPHONETIC関数を使って「やまだ はなこ」に直したいですが、エラーが起きないで処理できるでしょうか?
回答を見る
  • ベストアンサー

エクセル・1つのセルに入った漢字(カナ)の分け方

エクセルにお強い方、教えてください>< A1のセルに、 山田 花子(ヤマダ ハナコ) とあるとします。 私は B1のセルに 山田 花子 C1のセルに (ヤマダ ハナコ) と、分けてデータ化させたいのですが、 どのようにマクロを組めばよいでしょうか? また、分け終わったC1の(ヤマダ ハナコ)に 置換を使って( )をとって、 カナ を かな に直すため、 PHONETICと書式のふりがな機能を使って直しても データにエラーは起きずに処理できるでしょうか? 最終的なデータとして A1セル→山田 花子(やまだ はなこ) B1セル→山田 花子 C1セル→やまだ はなこ としたいのです。 ご存知の方いらっしゃいましたら、教えてください。 宜しくお願い致します。

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

  • ベストアンサー
  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.5

No.3です! たびたびごめんなさい。 C列がカタカナの場合はひらがなに直さないといけなかったのですね? もう一度コードを載せておきます。 Sub test() Dim i As Long Dim buf As String For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row On Error Resume Next buf = WorksheetFunction.Substitute(WorksheetFunction.Substitute _ (Cells(i, 1), "(", "("), ")", ")") With Cells(i, 2) .Value = Mid(buf, 1, WorksheetFunction.Find("(", buf) - 1) .Offset(, 1) = Mid(buf, WorksheetFunction.Find _ ("(", buf) + 1, Len(buf) - Len(Cells(i, 2)) - 2) .Offset(, 2) = StrConv(Cells(i, 3), vbHiragana) End With Next i Columns(3).Delete (xlToLeft) Columns("A:C").AutoFit End Sub こんな感じではどうでしょうか? 何度も失礼しました。m(__)m

poohcats
質問者

お礼

丁寧なご説明ありがとうございました

その他の回答 (7)

  • layy
  • ベストアンサー率23% (292/1222)
回答No.8

>最終的なデータとして >A1セル→山田 花子(やまだ はなこ) 編集元のA列「山田 花子(ヤマダ ハナコ)」も上書き修正したいですか? B列とC列ができた後で連結でもいいのでは?。

poohcats
質問者

お礼

ありがとうございました

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.7

A1に山田花子とありB列に=A1&"("&PHONETIC(A1)&")"と入って、山田 花子(ヤマダ ハナコ)となっているので「ない」場合を考える。こういう場合もあるということ。 ーー ?1に山田 花子(ヤマダ ハナコ)とある場合は、データー区切り位置ーその他で( 左カッコ を指定ー完了 で出来る。 )は置換で抹消する。 これが一番簡単で安定。さらにB列で)で区切り位置にしても良い。 マクロの記録をすれば、VBAコードはわかる。 複数行分もはじめ範囲指定して始めれば良い。 ーー VBAでReplaseやInstr関数でやる手もあるが、関数などでやるのが良かろう。VBAの勉強をしているのですか。 1回限りの作業のようだし、VBAを使うまでも無いだろう。 エクセルに強い方でなくても出来ることだ。

poohcats
質問者

お礼

ありがとうございました

  • layy
  • ベストアンサー率23% (292/1222)
回答No.6

『山田 花子(ヤマダ ハナコ)』 VBAでは この文字数分(=14)ループしてもできる話です。 区切り分けたり、(括弧)を削除したり、かなに変えたり、 とすべてを処理しながらB列やC列の編集をする。

poohcats
質問者

お礼

ありがとうございました

  • kmetu
  • ベストアンサー率41% (562/1346)
回答No.4

追加です "(" の部分の「(」の半角と全角を間違うとエラーになります。

poohcats
質問者

お礼

ありがとうございました

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.3

こんばんは! 関数の方が簡単なような気がしますが、VBAをご希望のようなので・・・ 一例です。 (単に関数でやる方法をコードにしただけです) A列のデータは1行目からあり、必ず( )があるという前提です。 Sub test() Dim i As Long Dim buf As String For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row On Error Resume Next buf = WorksheetFunction.Substitute(WorksheetFunction.Substitute _ (Cells(i, 1), "(", "("), ")", ")") With Cells(i, 2) .Value = Mid(buf, 1, WorksheetFunction.Find("(", buf) - 1) .Offset(, 1) = Mid(buf, WorksheetFunction.Find _ ("(", buf) + 1, Len(buf) - Len(Cells(i, 2)) - 2) End With Next i Columns("A:C").AutoFit End Sub こんな感じではどうでしょうか?m(__)m

poohcats
質問者

お礼

ありがとうございました

  • kmetu
  • ベストアンサー率41% (562/1346)
回答No.2

B1に =LEFT(A1,FIND("(",A1)-1) で山田 花子が C1に =MID(A1,FIND("(",A1)+1,LEN(A1)-LEN(B1)-2) でヤマダ ハナコが それぞれ取り出せます 取り出した後にコピー形式を選択して貼り付けで「値」を貼り付けて その後PHONETICと書式のふりがな機能を使って直しください。

poohcats
質問者

お礼

ありがとうございました

  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.1

Sub Macro1()  Dim r As Long  r = Range("A65536").End(xlUp).Row  Range("A1:A" & r).Replace what:=")", replacement:="", matchbyte:=False  Range("A1:A" & r).Replace what:="(", replacement:="(", matchbyte:=False  Range("A1:A" & r).TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _   Other:=True, OtherChar:="(", FieldInfo:=Array(Array(1, 1), Array(2, 1))  Range("B:B").Phonetics.CharacterType = xlHiragana  Range("C1:C" & r).Formula = "=PHONETIC(B1)"  Range("A:A").Insert  Range("A1:A" & r).Formula = "=B1&""(""&D1&"")"""  Range("A1:D" & r).Value = Range("A1:D" & r).Value  Range("C:C").Delete  Range("A:C").EntireColumn.AutoFit End Sub #要らないループ処理は省いているので,見た目なんだかべたべたですね。

poohcats
質問者

お礼

ありがとうございました

関連するQ&A

  • エクセルについて

    エクセルで住所録を作っているのですが、名前とフリガナを同じセルに入力していました。フリガナだけを横のセルに移動することは可能でしょうか      A             B 1山田 太郎 ヤマダ タロウ  2山田 花子 ヤマダ ハナコ    A | B 1山田 太郎 | ヤマダ 太郎 2山田 花子 | ヤマダ ハナコ 宜しくお願いします。

  • 名前のふりがな

    こんにちわ 履歴書を書く際にいつも考えてしまうのですが、名前がひらがなの場合、ふりがなはふるほうがいいのでしょうか? たとえば「山田はなこ」サンだった場合 ふりがな→やまだ はなこ か やまだ フリガナ→ヤマダ ハナコ か ヤマダ 結局いつも振っていないのですが、正式にはどちらがよいのでしょうか?

  • エクセルでオークションのメールから発送伝票作成

    こんにちはエクセルが少しわかる老人会青年部の新米会計です。XPエクセル2003です。 ばあさん部がネット販売始めました。お客さんからメールに入力してもらって発送伝票を作ります。 住所:東京都品川 氏名:山田花子 フリガナ:ヤマダハナコ とお客さんに入力してもらいます。 これをまとめてコピーして貼り付けて 住所: 氏名: フリガナ: はいらないので 東京都品川 山田花子(ヤマダハナコ)様と宛名書きを作りたいのです。 東京都品川はできました。山田花子もできました。 フリガナに()も書式ユーザー定義でつけられました。 山田花子のセルと(ヤマダハナコ)のセルをCONCATENATEで合併すると ()が消えて山田花子ヤマダハナコになります。ユザー定義で()をつけたのが悪いのだと思いますが、正解を教えていただけると、ばあさんたちに自慢ができます。宜しくお願いします。

  • ふりがなをアルファベット化する関数ってありますか?

    A列に名前、B列にPHONETICで取り出したヨミがあります。 C列にBをアルファベット化したものを反映する関数はありますか? (A)山田 花子→(B)ヤマダ ハナコ→(C)YAMADA HANAKO としたいのです。 欲を言えば、「佐藤陽子」さんはSATOU YOUKOではなく、 SATO YOKOになると最高なんですが・・・。 よろしくお願いします。

  • Excel2010でふりがなが漢字になってしまう

    こんにちは。 Microsoft Office 2010(試用版)についての質問です。 会社でエクセルを使ったデータ入力をしていて、A列に氏名、B列にふりがなをPHONETIC関数で入れています。A列に例えば「山田 太郎」と入力した場合、B列に「ヤマダ タロウ」と出るようにしたいのですが、「山田 太郎」と漢字で出てきてしまい、いちいち「ふりがなの編集」をクリックして確定しないとカタカナに変換できません。直接入力してもいいのですが、PHONETIC関数でうまくフリガナを入力することは可能でしょうか。 OSはWindows XPです。 アドバイスをお願いします。

  • 漢字の変換方法

    ベタ打ちした文章の、漢字の変換方法を教えて下さい。 やまだはなこ→山田花子→花子を華子にしたい等 山田でエンターを押すと花子も確定してしまうので、いつも山田と華子を別々に入力後確定しています。

  • Excelの作業で困っています。

    エクセルで、データをコード管理しているのですが、下記(山田太郎と田中花子)のように、同じ人でコード(C1)を2つ所有している場合があるので、重複しているのデータを探し出し、そのデータを削除する作業をしているのですが、5000件以上のデータがあるものですから、相当時間がかかってしまいます。何か関数とか使って処理する方法がないか教えてください。ちなみに今は、データの並び替えをして1件ずつ削除しています。     C1    C2       C3 R1  100  山田 太郎  ヤマダ タロウ R2  200  田中 花子  タナカ ハナコ R3  105  山田 太郎  ヤマダ タロウ R4  300  鈴木 次郎  スズキ ジロウ R5  250  田中 花子  タナカ ハナコ  

  • Excelでデータの照合

    Excelでデータを照合して抜き出す方法が知りたいです。 (例)   A            B            C 1 氏名          シメイ         頭文字 2 山田太郎       ヤマダタロウ     ヤ 3 Michael・Williams   Michael・Williams   マ 4 鈴木花子       スズキハナコ     ス 5 ピーター・アダムス  ピーター・アダムス  ピ ※名前は適当に考えました。 上のデータで Cの頭文字とBの先頭の文字が一致するかの確認ができるようにしたいです。   A            B            C      D 1 氏名          シメイ         頭文字   正誤 2 山田太郎       ヤマダタロウ     ヤ      ○ 3 Michael・Williams   Michael・Williams   マ      × 4 鈴木花子       スズキハナコ     ス      ○ 5 ピーター・アダムス  ピーター・アダムス  ピ      ○ あるいは、   A            B            C 2 山田太郎       ヤマダタロウ     ヤ 4 鈴木花子       スズキハナコ     ス 5 ピーター・アダムス  ピーター・アダ     ピ や、   A            B            C 3 Michael・Williams   Michael・Williams   マ のように表示できるようにしたいです。 関数は簡単なのはわかりますが、マクロはさっぱりなので コードや関数は解説つきで提示していただけると幸いです。 よろしくお願いします。

  • エクセル関数 PHONETICについて

    エクセル関数について教えてください。 セルAに入れた会社名に セルBにふりがなをつけたいので セルBに  =PHONETIC(A1) といれます。 これで ちゃんとふりがながうたれるのですが 株式会社 太郎商事  有限会社 花子興業 など 株式会社や有限会社には ふりがなをつけたくありません。 (並べ替えをしたい為) 何か良い方法はありますか?

  • EXCEL フリガナが漢字になる

    EXCELでA列に漢字名を入力し、B列に=PHONETIC(A1)の関数を使って、フリガナを表示させようとしていますが、カナではなく漢字が表示されてきます。 何か設定が悪いのでしょうか。 よろしくお願いします。

専門家に質問してみよう