• ベストアンサー

数千の単語の並び替えについて。

数千の単語(漢字・ひらがな・カタカナ・ローマ字を含む)がEXCELの各セルに一列に並んでいます。 これを、見つけやすいように、あいうえお順に並び替えたいのですが、EXCELの機能「並び替え」を使って並び替えようとすると、かなと漢字、音読み訓読みをパソコンが異なって識別することから、期待通りの配列になりません。 EXCELの機能を利用したり、マクロやVBAのプログラミングで、並び替えが簡単にできないものでしょうか。 今のところは、隣の列にひらがなを手作業で入力して、並び替えています。ものすごい作業量です。 何とかならないものでしょうか。 いい知恵がありましたら教えてください、 VBAの場合は、マクロも教えていただければ助かります。

noname#18526
noname#18526

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

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.4

こんにちは。 まず、ローマ字かな変換関数で、ここから、roma2kana 関数を手に入れてください。 http://park11.wakwak.com/~miko/Excel_Note/15-03_celldata.htm#15-03-57 標準モジュールに登録してください。私自身のローマ字変換もありますが、書き込みが長くなりますので、これを使ってください。 以下のマクロの使い方は、マウスで、変換する先頭の場所を選んでください。 フィールド名(1行目)を変換したくない場合は、2行目から選択します。そして、マクロを実行します。なお、すべての文字が、ひらがなに変換されるとは限りませんので、変換後のデータを一度点検してください。 '<標準モジュール> Sub ForSortPrepare() '要: roma2kana 関数 'http://park11.wakwak.com/~miko/Excel_Note/15-03_celldata.htm#15-03-57  Dim Rng As Range  Dim c As Range  Dim myStr As String, tmpbuf As Variant    '--------------------------------  Const 出力列 As Long = 3 '出力する列は、右へ3個目  '--------------------------------  Set Rng = Range(ActiveCell, Cells(65536, ActiveCell.Column).End(xlUp))  If Application.CountA(Rng) = 0 Then MsgBox "データがありません。": Exit Sub  If Application.CountA(Rng.Offset(, 出力列)) > 0 Then _  MsgBox "出力列にデータがありますので削除してください。": Exit Sub  Application.ScreenUpdating = False  On Error Resume Next  For Each c In Rng   If VarType(c) = vbString Then    Select Case True     Case c.Value Like "[A-z]*"      '全角ローマ字      myStr = StrConv(c.Value, vbNarrow)      myStr = StrConv(roma2kana(myStr), vbHiragana)     Case c.Value Like "[A-z]*"      '半角ローマ字      myStr = StrConv(roma2kana(c.Value), vbHiragana)     Case c.Value Like "[ァ-ヶ]*"      '全角カタカナ      myStr = StrConv(c.Value, vbHiragana)     Case c.Value Like "[一-钁]*"      '漢字      tmpbuf = Application.Phonetic(c.Value)      If IsError(tmpbuf) Then       myStr = Application.GetPhonetic(c.Value)       Else       myStr = Application.Phonetic(c.Value)      End If      myStr = StrConv(myStr, vbHiragana)     Case c.Value Like "[" & Chr(161) & "-" & Chr(223) & "]*"      '半角カタカナ      myStr = StrConv(c.Value, vbWide)      myStr = StrConv(myStr, vbHiragana)     Case Else      myStr = c.Value    End Select    Else    myStr = c.Value   End If   c.Offset(, 出力列).Value = myStr '出力は、右隣3目   'Phonetic関数のエラーの出たときに回避するため ?   myStr = vbNullString  Next  On Error GoTo 0  Application.ScreenUpdating = True End Sub

参考URL:
http://park11.wakwak.com/~miko/Excel_Note/15-03_celldata.htm#15-03-57
noname#18526
質問者

お礼

感謝。

その他の回答 (3)

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

エクセルの振り仮名機能をご存知の質問でしょうか。 メニューの書式-ふりがな-・・・とかPhonetic関数です。 それが使えないケースがあり、そのケースでしょうか。

noname#18526
質問者

お礼

感謝。

noname#18526
質問者

補足

こんにちは。回答感謝です。 >それが使えないケースがあり、そのケースでしょうか。 そうなんです。 くわしくは、#2の方への補足文をご覧ください。

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

>数千の単語(漢字・ひらがな・カタカナ・ローマ字を含む)がEXCELの各セルに一列に並んでいます。 >かなと漢字、音読み訓読みをパソコンが異なって識別することから、期待通りの配列になりません。 つまり、漢字・ひらがな・カタカナ・ローマ字を一定の基準の「読み下し」に戻すということだと思います。つまり、ひらがなにしてしまいます。そして、取り出した後に、並べ替えをすればよいのだと考えています。 カタカナや、ローマ字は、ひらがなに直せますから、後は、漢字のみだと思います。 漢字に関する限りは、ユーザーの希望するレベルに「読み(ふりがな)」を行うかというのは、かなり不可能に近い話なのです。 例えば、「幸子」というのは、「さちこ」「ゆきこ」のどちらかになるかは、コンピュータには分からないわけです。Phonetic 関数で、IMEに変換学習が残っていれば、どちらかには取り出せます。しかし、そうでない、テキストデータなどでは、GetPhonetic で取り出すというのなら、もう、パソコンのお任せになってしまいます。 Phonetic 関数で、漢字のふりがなは取り出せるのですか? つまり、データは、EXCELに直接入力したものですか?それとも、他から貼り付けて、Phonetic 関数で、ふりがなが出せないものですか? もう少し、詳しい状況を教えてくれれば、もう少し、サポートはできるかと思います。

noname#18526
質問者

お礼

ただ、私が思うに、関数処理を出来る作業は、一般に、マクロで作業させられると思います。 もし、出来るのであれば、簡単なマクロを教えていただければ、ありがたいです。 久しくVBAから離れていました。感覚が鈍っています。・・・

noname#18526
質問者

補足

こんにちは。回答感謝です。 >データは、EXCELに直接入力したものですか?それとも、他から貼り付けて、Phonetic 関数で、ふりがなが出せないものですか? 過去に収集したデータです。いろいろです。EXCEL上で貼り付け加工も繰り返しています。並び替えも。 直接入力後は、Phonetic関数で取り出せますが、これらは、漢字がそのまま出てきます。 今は、「書式」「ふりがな」を使って、ひとつづつふりがなをつけています。これも大変です。 理論上、「かなり不可能に近い話」というのは理解できます。 今の状況では、ふりがなをひとつづつ付けていくしかないのでしょうか。

  • Bonjin
  • ベストアンサー率43% (418/971)
回答No.1

文字を文字コードに変換して、それを元に並び替えをすると良いかも知れません。 手元にExcelがないので確証は持てませんが、文字から文字コードを取得するような関数があったと思います。

noname#18526
質問者

お礼

感謝。

noname#18526
質問者

補足

こんにちは。回答感謝です。 実は、以前VBAをかなり使っていましたが、長く使わなかったため、記憶が薄れています。私も、同様の関数を調べましたが、たどり着きませんでした。

関連するQ&A

  • Vistaのアドレス帳の追加、並び変えの方法を教えてください

    Vistaのウィンドウズメールのアドレス帳について使い方むを教えてください。 XPのアウトルックエクスプレスのアドレス帳と内容が変わり困っています。 1.新しくアドレス者を追加する方法  (メールの受信者の登録とは違います) 2.新しいグループアドレスを追加する方法 3.アドレス帳の氏名の並べ変えの方法  アドレス帳には漢字とひらがながすべてつけてあるのですが  ひらがな基準の並び替えができないのです。  漢字の音読み訓読みの区別がうまくいきません。

  • 音読みと訓読みについて

    恥ずかしい話ながら度忘れしてしまいました。 音読みがカタカナで訓読みがひらがなだったでしょうか? 例えば「飛」という感じなら、 音読みは「ヒ」で訓読みは「とぶ」の「と」でいいのでしょうか?

  • エクセル2000の並び替え(漢字とひらがなをいっしょにして並び替えたい)

    ネットでコピーしたものをエクセルに貼付け あいうえお順に並び替えたいのですが、 漢字とひらがな、があり、並び替えると、ひらがな、ばかりが先に来て、 漢字が後になるのですが、ひらがなと漢字を区別せずび並び替えたいのですが、 方法はあるのでしょうか? よろしくお願いします。

  • 漢字→ひらがな 一括変換

    エクセルで5000件を超える住所録があります。 名前が全て漢字で横の列にひらがなを入力したいです 一括とまで行かなくてもある程度まとまって変換できないでしょうか?(なお、音読み訓読みなどはきにしなくていいです。)

  • 個人情報(名前)の表記について

    名前の表記で特定の個人を識別しずらいのは、漢字・ローマ字・ひらがな・カタカナのどれですか?順序があれば教えてください。また、漢字・ローマ字の並列表記はどうですか?

  • エクセルの並び替え

    エクセルで表中にひらがな、カタカナ、漢字を含んだ文字列を50音順にならびかえるのはどうすればいいでしょうか?(ひらがなだけ先にまとめられてしまいます・・・)

  • エクセルのような無料ソフト(並び替えがしたい)

    エクセルのようなソフトで無料のものを探しています。 使いたい機能は並び替えです。 あいうえお順に並び替えたいので、そのようなソフトでも良いです。 ご存知の方は教えてください

  • 中国語話者の方に日本語の漢字の成り立ち(読み)を

    中国語話者の方に日本語の漢字の成り立ち(読み)を説明したいのですが、 どのようにしたらよいでしょうか? 参考になるウェブサイトでも構いません。 正しいか分かりませんが、以下の様な説明が中国語でできればと思います。 日本語には、音読みと訓読みがあって、音読みは、昔中国から伝わった読み方、 訓読みは、中国語と同じ意味の日本語の一部分をおきかえた場合の読み方? 例:訓読み「美しい」うつくしい、音読み「美」びorみ。 できれば、ひらがなとカタカナの成り立ちも説明できればと思います。 説明する相手は、大人(取引先)で、国籍は中華人民共和国の方です。 よろしくお願いします。

  • エクセルVBAでの並び替えについて

    エクセルでデータの並び替えの方法が分からなくて質問します。たとえばBの列の100~999、A100~A999、B100~B999のようなデータが縦に入っているものとします。この中には150-1、150-2のようなデータも混ざってます。これをそのままエクセルで並び替えをしても100~999までは上手にできるのですがその後に150-1とかきてA100~が始まります。例えばこのデータを100~始まり149、150-1,150-2、152,153、154のように上桁から基準に並び替えを行いたいのですがいい方法はありませんか?現在はマクロを使ってVBAでSORTの引数を触ったりしたのですが上手にいきません。基本的にVBAで行っているのでVBAでお願いします。初心者なのでよろしくお願いします。

  • エクセルの並べ変え

    Excel 2003で、納品書の発行リストを作成しています。A列に納品書番号、B 列に 日付、C 列に 相手先、D 列に品名、E 列に金額を入力していますが、相手先は、カタカタの名前、漢字の名前、アルファベットの名前があり、ランダムに入力しました。同じシートを1課・2課・3課と作成し相手先で並び替えをすると、カタカナ、漢字、アルファベットの会社があいうえお順に入り乱れて並びます。そのようにしたいのですが、1つのシートだけ、カタカナ、漢字、アルファベットの種類ごとのあいうえお順にしかなりません。入力方向は、同じでやっています。どのようにすれば、あいうえお順に入り乱れて並び替えができるのでしょうか?

専門家に質問してみよう