「昇順で並び替え/降順で並び替え」の版間の差分

Sukemaru (トーク | 投稿記録)
細編集の要約なし
MSY-07 (トーク | 投稿記録)
空行の除去
 
(同じ利用者による、間の2版が非表示)
4行目: 4行目:
連続で実行すると  昇順 → 降順 → 昇順 → 降順 → ...  でトグルします。<br>
連続で実行すると  昇順 → 降順 → 昇順 → 降順 → ...  でトグルします。<br>
もとの並び順に戻す場合は Undo(Ctrl+Z)してください。
もとの並び順に戻す場合は Undo(Ctrl+Z)してください。


*並べ替えした選択範囲内のブックマークは解除されます。
*並べ替えした選択範囲内のブックマークは解除されます。
10行目: 9行目:
*並べ替えのルールを細かく指定したいばあいは「[[行並べ替え]]」マクロが便利です。
*並べ替えのルールを細かく指定したいばあいは「[[行並べ替え]]」マクロが便利です。


*Mery ver 3.0.1 以降の '''マルチカーソル/複数選択範囲''' 対応の「昇順/降順 トグル」は「[[マルチカーソル用:「昇順/降順」または「逆順」で並べ替え|マルチカーソル用:『昇順/降順』または『逆順』で並べ替え]]」マクロ
*Mery Ver 3.0.1 以降の '''マルチカーソル/複数選択範囲''' 対応の「昇順/降順 トグル」は「[[マルチカーソル用:「昇順/降順」または「逆順」で並べ替え|マルチカーソル用:『昇順/降順』または『逆順』で並べ替え]]」マクロ
 


=== ソースコード ===
=== ソースコード ===
* 2020/05/04: 行数を詰めました
* 2020/05/04: 行数を詰めました
<source lang="javascript">
<syntaxhighlight lang="javascript">
#title = "昇順/降順 トグル"
#title = "昇順/降順 トグル"
#tooltip = "昇順で並べ替え/降順で並べ替え"
#tooltip = "昇順で並べ替え/降順で並べ替え"
57行目: 55行目:
s.SetActivePos( act );
s.SetActivePos( act );
s.SetAnchorPos( anc );
s.SetAnchorPos( anc );
</source>
</syntaxhighlight>
 


== 昇順/降順トグル + 文字列反転 ==
== 昇順/降順トグル + 文字列反転 ==
68行目: 65行目:
*並べ替えした選択範囲内のブックマークは解除されます。
*並べ替えした選択範囲内のブックマークは解除されます。
* 文字列反転モードでは『[[テキスト整形]]』マクロの「文字を逆順並べ」コマンド(masme氏, 2017/06/25)のコードを移植させていただきました(結合文字への対応)。
* 文字列反転モードでは『[[テキスト整形]]』マクロの「文字を逆順並べ」コマンド(masme氏, 2017/06/25)のコードを移植させていただきました(結合文字への対応)。


<div class="warningbox">
<div class="warningbox">
74行目: 70行目:
* GetKeyState.exe を導入していない場合は「文字列反転」機能が使用できなくなります(昇順/降順トグルの機能のみ利用できます)。
* GetKeyState.exe を導入していない場合は「文字列反転」機能が使用できなくなります(昇順/降順トグルの機能のみ利用できます)。
</div>
</div>


=== 設定項目 ===
=== 設定項目 ===
* '''選択範囲がないとき:''' <source lang="javascript" inline>autoSelection</source>
* '''選択範囲がないとき:''' <syntaxhighlight lang="javascript" inline>autoSelection</syntaxhighlight>
: 選択範囲がない状態でマクロを実行したときに自動的に範囲選択してから並べ替えをします。
: 選択範囲がない状態でマクロを実行したときに自動的に範囲選択してから並べ替えをします。
:* '''0:''' なにもしない(自動選択なし)
:* '''0:''' なにもしない(自動選択なし)
88行目: 83行目:
: ※ 初期値は <b style="color:#0000c0;">1</b> になっています。
: ※ 初期値は <b style="color:#0000c0;">1</b> になっています。


 
* '''行並べ替えのとき、行頭の半角数字を正の整数値で評価してソート:''' <syntaxhighlight lang="javascript" inline>digitsAsNumber</syntaxhighlight>
* '''行並べ替えのとき、行頭の半角数字を正の整数値で評価してソート:''' <source lang="javascript" inline>digitsAsNumber</source>
: 行頭の半角数字を正の整数値で評価して 昇順/降順 で並べ替えをします。
: 行頭の半角数字を正の整数値で評価して 昇順/降順 で並べ替えをします。
:* <b style="color:#0000c0;">true</b>:  1 < 002 < 3 < 10 < 020 (数値順)
:* <b style="color:#0000c0;">true</b>:  1 < 002 < 3 < 10 < 020 (数値順)
102行目: 96行目:
: ※ 半角数字より前の部分が完全一致しないばあいは、数値として評価しません。
: ※ 半角数字より前の部分が完全一致しないばあいは、数値として評価しません。


 
* '''Ctrl キーで「文字列反転モード」ON:''' <syntaxhighlight lang="javascript" inline>charModeEnable</syntaxhighlight>
* '''Ctrl キーで「文字列反転モード」ON:''' <source lang="javascript" inline>charModeEnable</source>
:* <b style="color:#0000c0;">true</b>: Ctrl キーで「文字列を1文字単位で反転」モードに
:* <b style="color:#0000c0;">true</b>: Ctrl キーで「文字列を1文字単位で反転」モードに
:: ''e.g.'' <source lang="javascript" inline>「あいうえお」</source> ⇒ <source lang="javascript" inline>」おえういあ「</source>
:: ''e.g.'' <syntaxhighlight lang="javascript" inline>「あいうえお」</syntaxhighlight> ⇒ <syntaxhighlight lang="javascript" inline>」おえういあ「</syntaxhighlight>
:* <b style="color:#c00;">false</b>: つねに論理行単位での「昇順/降順 トグル」で並べ替え
:* <b style="color:#c00;">false</b>: つねに論理行単位での「昇順/降順 トグル」で並べ替え
:: ※ 「文字列反転モード」をいっさい使用しない(外部実行ファイル GetKeyState.exe による Ctrlキーの ON/OFF 判定をしないことで、「昇順/降順 トグル」機能の起動を高速化)
:: ※ 「文字列反転モード」をいっさい使用しない(外部実行ファイル GetKeyState.exe による Ctrlキーの ON/OFF 判定をしないことで、「昇順/降順 トグル」機能の起動を高速化)


 
* '''「文字列反転モード」のときに行の並び順も入れ替える:''' <syntaxhighlight lang="javascript" inline>reverseVertical</syntaxhighlight>
* '''「文字列反転モード」のときに行の並び順も入れ替える:''' <source lang="javascript" inline>reverseVertical</source>
:* <b style="color:#0000c0;">true</b>: 行の並び順(上下関係)も反転
:* <b style="color:#0000c0;">true</b>: 行の並び順(上下関係)も反転
  ''e.g.'' 「あいうえお」 ⇒ 」こけくきか「
  ''e.g.'' 「あいうえお」 ⇒ 」こけくきか「
118行目: 110行目:
       「かきくけこ」 ⇒ 」こけくきか「
       「かきくけこ」 ⇒ 」こけくきか「


 
* '''GetKeyState.exe のフルパスを指定:''' <syntaxhighlight lang="javascript" inline>gksPath</syntaxhighlight>
* '''GetKeyState.exe のフルパスを指定:''' <source lang="javascript" inline>gksPath</source>
: 未指定 <syntaxhighlight lang="javascript" inline>gksPath = ""</syntaxhighlight> なら、Mery インストールフォルダの Macros\GetKeyState.exe  
: 未指定 <source lang="javascript" inline>gksPath = ""</source> なら、Mery インストールフォルダの Macros\GetKeyState.exe  
: ※ GetKeyState.exe なしのときも <syntaxhighlight lang="javascript" inline>gksPath = ""</syntaxhighlight> にします(「文字列反転モード」は利用できません)。
: ※ GetKeyState.exe なしのときも <source lang="javascript" inline>gksPath = ""</source> にします(「文字列反転モード」は利用できません)。
: ※ パス指定での区切り文字の <syntaxhighlight lang="javascript" inline>\</syntaxhighlight> 記号は、ふたつがさね '''<syntaxhighlight lang="javascript" inline>\\</syntaxhighlight>''' で記述してください。
: ※ パス指定での区切り文字の <source lang="javascript" inline>\</source> 記号は、ふたつがさね '''<source lang="javascript" inline>\\</source>''' で記述してください。
 


=== ソースコード ===
=== ソースコード ===
129行目: 119行目:


※ このマクロは実行コードに shift_JIS の範囲外の文字を使用しています
※ このマクロは実行コードに shift_JIS の範囲外の文字を使用しています
<source lang="javascript" style="height:60em; overflow:auto;">
<syntaxhighlight lang="javascript" style="height:60em; overflow:auto;">
#title = "昇順/降順トグル + 文字列反転"
#title = "昇順/降順トグル + 文字列反転"
#tooltip = "昇順で並べ替え/降順で並べ替え / Ctrl キーで文字列反転"
#tooltip = "昇順で並べ替え/降順で並べ替え / Ctrl キーで文字列反転"
325行目: 315行目:
   Status += " [ " + elapsedSec.replace( /\./, ". " ) + " 秒 ]";
   Status += " [ " + elapsedSec.replace( /\./, ". " ) + " 秒 ]";
}
}
</source>
</syntaxhighlight>
スポンサーリンク