• ベストアンサー

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

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

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

  • ベストアンサー
  • ja7awu
  • ベストアンサー率62% (292/464)
回答No.4

簡単にできますよ。 なぜ並べ替えたときに漢字が、後になるかと言うと、「ネットでコピーして貼り 付けた」というのが、起因しているからです。 キーボードから直接入力した場合は、漢字と仮名が混じっていても「振り仮名を使う」 限りでは、希望どおりの並べ替えが、出来ます。 ということは、貼り付けた漢字に振り仮名がセットされていないのが原因ですから、 下記の手順で漢字に振り仮名をセットすれば出来ると思います。 但し、人名などの読み方は、様々ですので、完璧でないことは、言うまでもありません。 1. 並べ替えのキーになる漢字とかな混じりのセル範囲を選択します。 2. 使用しているシート名のタブを右クリックし、「コードの表示」を指定します。 3. 表示されたイミディエイトウィンドウ(表示されていない場合は、Ctrl+G )に   次の1行をコピーし、貼り付けて、その文字上で<Enter>を押します。 Selection.SetPhonetic 4. この操作で漢字に仮名が、設定されますので確認します。 5. Alt+Q でExcelに戻り、通常の並べ替えの操作を行います。 6. 以上ですが、もし特定の範囲において頻繁にこの操作が、必要であれば、  次のようなマクロを設定しておくと、簡単な操作で出来るかと思います。 Sub rubi_uchi() 'ルビ打ち、非表示 Dim retsu As String Dim cel_ichi As String Dim rec As Long Dim kana As Variant Dim strPhoText As Variant Dim start_rec As Long Dim end_rec As Long retsu = "A" '   列を指定 start_rec = 1 '  開始行を指定 end_rec = 10000 '   終了行を指定 For rec = start_rec To end_rec   cel_ichi = retsu & CStr(rec)   Range(cel_ichi).Select   strPhoText = ActiveCell   kana = Application.GetPhonetic(strPhoText)   ActiveCell.Characters.PhoneticCharacters = kana   If Not IsEmpty(strPhoText) Then     ActiveCell.Phonetics(1).CharacterType = xlHiragana     'ActiveCell.Phonetics(1).CharacterType = xlKatakana     Selection.Phonetics.Visible = False   End If Next rec End Sub

usubeni
質問者

お礼

みなさんどうも、ありがとうございました。 できないと思っていたのですが、ja7awuさんの方法で、できました。 感謝いたします。 一括御礼で、失礼します。

その他の回答 (3)

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

基本的に、ソートはソートキーとして指定した列(フィード)の文字コード 順にソートされます。漢字も1種の読みの順になっている 風に見えますが、2種以上の読みがあり、五十音順とは 言えません。 例外がエクセルで「振り仮名」です。(日付は見かけはそうでないように見えても、日付けもシリアル値という数でソートしているはずで、例外ではないはずです。)それはソートに入る前に、エクセルが特別の処理をしてくれるからです。 しかしコピーすると振り仮名が使えません。下記実験をして状況を納得しましょう。 エクセルのワークシートで (1)A1:A3に大阪、京都、東京と漢字で入力します。 (2)B1に=phonetic(a1)といれ、B1をB3まで複写します。B1:B3はカタカナでオオサカ、キョウト、トウキョウとなります。 (3)A1:B3を範囲指定し、データ―並べ替え-オプション-振り仮名を「使わない」にチェックを入れる。OKをクリック-OKをクリック。 (4)京都、大阪、東京の順になります。 このタイプの順(文字コード順)を、本質問者のケースは、経験しています。 (5)(3)で「ふりがなを使う」をチェックを入れて、ソートしてみてください。 (6)大阪、京都、東京の順になり、常識的なアイウエオ順になりました。 (7)さて、A1:A3をコピーします。 (8)このブック・シートを閉じて、新規ブックを開き、シートのA1:A3に貼り付けます。 (9)(3)の操作を「ふりがなを使う」をチェックを入れて、ソートしてみてください。 (10)京都、大阪、東京の順になります。五十音順に並びません。 (11)B1に=phonetic(a1)といれても、カタカナ「キョウト」は出ず 「京都」になります。このケースではエクセルはphonetic(a1)に当たる情報 を使えないわけです。 (12)=phonetic()の機能を使えないメモ帳やその他ほとんどのソフト で使ったデータは、入力時のかな-->漢字変換過程を保存する仕組みになっておらず、そのソフト内でも、またエクセルにコピーしてきても、振り仮名50音順は使えないはずです。改めて振り仮名フィールドを人力で作らねばなりません。

  • nobunojo
  • ベストアンサー率29% (122/407)
回答No.2

エクセルで文字の並び替えをするときは、 文字についている「文字コード」順で並び替えが行われます。 (文字コードとはコンピュータの中で文字をあらわす番号です) 漢字とひらがなとカタカナとアルファベットを混ぜたものを 50音順に並べたい、としたら、自分で隣の列に読み仮名を 入力し、それでソートするしか無いですね。 漢字の読み方が一つとは限らない以上、他に方法は考えられません。

  • taknt
  • ベストアンサー率19% (1556/7783)
回答No.1

ひらがなと漢字を区別せずにというのは、難しいと思います。 ソート用の項目を作って、そこに漢字のフリガナをかけば、混合でソートされるでしょう。

関連するQ&A