行並べ替え

2013年8月29日 (木) 00:25時点におけるMasme (トーク | 投稿記録)による版 (改訂版(rev.2)公開。見出し「更新履歴」追加。ページレイアウト調整。)

選択範囲の文字列を比較し、行の並べ替えを行うマクロです。

  • 通常選択・行選択・矩形選択に対応しています。
  • Unicode または Shift_JIS風の並べ替えが行えます。
  • 大文字/小文字、ひらがな/カタカナを区別するかを選択できます。
  • ※表示行での並べ替えには対応していません。論理行のみです。
  • ※数値での並べ替えには対応していません。
  • ※半角/全角を区別しない並べ替えには対応していません。
  • ※処理速度が遅い上、処理中はCPUをフルに使用します。
    (作者の環境では、1万行の処理に2秒かかりました)
     ステータスバーに処理に要した時間が表示されますので参考にしてください。

並べ替え(Unicode) Unicode順での並べ替えを実行します。
並べ替え(Shift_JIS風) Shift_JIS風での並べ替えを実行します。
※Shift_JISとは一部の並び順が異なるため「風」と付いています。
※Shift_JISにない文字は、昇順降順問わず最後尾にまとめられます。
昇順or降順 で並べる 昇順(A→Z)か降順(Z→A)かを切り替えます。
大文字/小文字を区別 大文字(ABC)と小文字(abc)を区別するかしないかを切り替えます。
区別する場合、大文字が先に並びます(昇順時)。
ひらがな/カタカナを区別 ひらがなとカタカナを区別するかしないかを切り替えます。
区別する場合、ひらがなが先に並びます(昇順時)。

Shift_JIS風の並び順

Microsoft コードページ932 (参考: Wikipedia) の文字表を基本に、以下の変更を加えています。

  • NEC/IBM記号類 ①~" は、全角記号の次。㍻は㍼の次に並ぶ。
  • ローマ数字の小文字形 ⅰ~ⅹ は、大文字形 Ⅰ~Ⅹ の次に並ぶ。

ソースコード

ダウンロード→ファイル:行並べ替え r2.zip

更新履歴

開発者メモ

  • 「数値での並べ替え」対応 →面倒くさいので予定なし

数値の判定が面倒くさいため対応予定はありません。
空白文字や通貨記号や3桁区切り(,)の処理、負数(-)や小数(.)の判定など、対処すべきことがいろいろあって力尽きました。

  • 「半角/全角を区別」対応 →面倒くさいので予定なし

半角カナの変換が面倒くさいため対応予定はありません。
Mery の Document.Selection.ChangeWidth 関数が String型 でも使えれば話は簡単なのですが、参照できなかったので諦めました。そもそも個人的に、半角カナほとんど使わないし…

  • 処理速度の改善 →お手上げ → ks 氏の助力により改善できました

処理する行数が多いほど時間がかかるのは変わらないので、ご注意ください。

  • プラグイン化

インタプリタなマクロより、コンパイルしたプラグインの方が処理が高速だと思われます。しかしながら、自分は JavaScript くらいしか組めないので実現予定はありません。

コメント

スポンサーリンク