| すぐマク YNxv9892 | Home | Search | Contents | Gallery | Introduction | Service | Support | What's New! |
| Excel95:97以上 並べ替え(ソート)の違いは? |
|
|
|||||
|
Excel97では、並べ替えのキーにハイフンが混ざっていると正しく並ばないようで、例えば 1-3 と 12-34 を昇順で並べ替えると、12-34 の方が小さいと判断されるようです。Excel95では、そんなことはありませんでした。 Excel95から 97にバージョンアップされて 「並べ替え」がどう変わったのか、くわしく教えてください。 |
|
||||||
|
並べ替えはコマンドバーの[データ]メニューから手で操作する方法と、マクロで行う方法とがあります。さっそく、比較してみましょう。 1.「並べ替え」ダイアログボックスにある「オプション」の一部変更 [ツール]メニュー[並べ替え]とクリックすると表示される「並べ替え」ダイアログボックスの、[オプション]ボタンをクリックで下図のダイアログが表示されます。 |
||||||
|
||||||
Excel95での「五十音順」と「コード順」の主な相違を、下図にまとめてみました。![]() \記号が混ざったデータの 12\34 が、コード順・昇順の場合だけ先頭になっています。 コード順では、\記号を含む全ての文字のコード順に並びます。 「2」のASCIIコードは 50、「\」は 92 ですから、1\ は 12 より大きくなります。 ハイフンが混ざったデータでは、五十音順とコード順での相違は見られません。 Excel2000での並べ替え結果は下図のとおりです。(同じデータ)
\記号が混ざったデータでは、「ふりがな」オプションを使う・使わないによる相違は見られません。(ふりがな付データではないので当然ですが)そして、Excel95の五十音順と一致しています。 ハイフンが混ざったデータでも、「ふりがな」オプションを使う・使わないによる相違は見られません。困ったことに、Excel95の並べ方と一致しません。Microsoft社は「この現象は Excelの仕様による動作になります」と、MSDNのHPのサポート技術情報で「ハイフンとコーテーションを含む並べ替えが以前のバージョンと異なる」で説明しています。 2. VBAマクロコードの改良 (1) SortSpecialメソッドの改良点 このメソッドは、東アジアでの並べ替え方法を使ってセル範囲を並べ替えます。 [構文:Excel95] object.SortSpecial(sortMethod, key1, order1, key2, type, order2, key3, order3, header, orderCustom, matchCase, orientation) [構文:Excel97以上] expression.SortSpecial(sortMethod, Key1, Order1, Key2, Type, Order2, Key3, Order3, Header, OrderCustom, MatchCase, Orientation) 構文を比較しただけでは特に変わりはありませんが、引数 sortMethod の定数が変わりました。この引数はセルを並べ替える方法を指定します。 [SortMethodの定数:Excel95] 五十音順の場合は xlSyllabary 、コードページ (文字コード) 順の場合は xlCodePage、既定値は xlSyllabary。 [SortMethodの定数:Excel97以上] 使用できる定数は、XlSortMethod クラスの xlPinYin または <xlStroke。選択またはインストールされている言語の設定 (たとえば、日本語) によって、定数が使用できない場合がある。 (2) Sortメソッドの改良点 このメソッドは、セル範囲または、セルが1つだけ選択されているときはアクティブセル領域を並べ替えます。あるいは、ピボットテーブルレポートを並べ替えます。 [構文:Excel95] ・・ セルの場合(ピボットテーブルの構文は省略) object.Sort(key1, order1, key2, order2, key3, order3, header, orderCustom, matchCase, orientation) [構文:Excel97以上] expression.Sort(Key1, Order1, Key2, Type, Order2, Key3, Order3, Header, OrderCustom, MatchCase, Orientation, sortMethod ) Excel97以上には、引数 sortMethod が追加されました。その定数は、SortSpecialメソッドと同じです。 以上が相違点です。 12-34 の方が小さいと判断される理由は、Microsoft社は「Excelの仕様による動作」と回答していますが、よく理解できません。 関連ページ「文字列中のハイフンが無視してソートされる理由」は こちら です。 |
| http://www.geocities.jp/happy_ngi/ | Home | Contents | Gallery | Introduction | Service | Support | What's New! |