<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ja">
	<id>https://www.haijin-boys.com/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Masme</id>
	<title>MeryWiki - 利用者の投稿記録 [ja]</title>
	<link rel="self" type="application/atom+xml" href="https://www.haijin-boys.com/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Masme"/>
	<link rel="alternate" type="text/html" href="https://www.haijin-boys.com/wiki/%E7%89%B9%E5%88%A5:%E6%8A%95%E7%A8%BF%E8%A8%98%E9%8C%B2/Masme"/>
	<updated>2026-10-09T16:39:53Z</updated>
	<subtitle>利用者の投稿記録</subtitle>
	<generator>MediaWiki 1.43.6</generator>
	<entry>
		<id>https://www.haijin-boys.com/wiki/index.php?title=%E3%83%9E%E3%82%AF%E3%83%AD%E3%83%A9%E3%82%A4%E3%83%96%E3%83%A9%E3%83%AA&amp;diff=5100</id>
		<title>マクロライブラリ</title>
		<link rel="alternate" type="text/html" href="https://www.haijin-boys.com/wiki/index.php?title=%E3%83%9E%E3%82%AF%E3%83%AD%E3%83%A9%E3%82%A4%E3%83%96%E3%83%A9%E3%83%AA&amp;diff=5100"/>
		<updated>2020-05-20T10:01:13Z</updated>

		<summary type="html">&lt;p&gt;Masme: 「行並べ替え」更新&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Mery で使用できるマクロを集めたライブラリです。&lt;br /&gt;
&lt;br /&gt;
スクリプトを拡張子「js」 (JavaScript、JScript の場合) にして「Macros」フォルダ等に保存し、マクロメニューの「選択」や「カスタマイズ」から読み込んで使用してください。&lt;br /&gt;
&lt;br /&gt;
マクロライブラリはどなたでも自由に編集できますので、みなさんが作成した便利なマクロをどんどん掲載してください。&lt;br /&gt;
&lt;br /&gt;
== テキスト操作補助 ==&lt;br /&gt;
&lt;br /&gt;
*[https://github.com/haijinboys/mery-macro-emmet Emmet] (Kuro)&lt;br /&gt;
*[[Zen Coding]] (Kuro)&lt;br /&gt;
*[[CSV のカーソル位置の列を削除]] (Kuro)&lt;br /&gt;
*[[対応する括弧に移動]] (Kuro, kurama, masme 他) update 2019/04/24 （追加コード 2019/12/05）&lt;br /&gt;
*[[選択文字列を強調]] (Kuro)&lt;br /&gt;
*[[行頭に移動]] (Kuro, 他) update 2014/03/15&lt;br /&gt;
*[[行頭か行末 または 選択範囲の始点か終点|行頭か行末 または 選択範囲の始点か終点 に移動]] (sukemaru) update 2019/03/29&lt;br /&gt;
*[[文書の先頭か末尾|文書の 先頭か末尾 に移動]] (sukemaru) update 2019/03/29&lt;br /&gt;
*[[バイト数]] (Kuro, ks)&lt;br /&gt;
*[[日付と時刻を挿入]] (n, masme, sukemaru) update 2018/12/09&lt;br /&gt;
*[[日付と時刻を挿入（カレンダー版）]] (papagoat) update 2016/05/24&lt;br /&gt;
*[[選択範囲を上下に移動]] (ks)&lt;br /&gt;
*[[行を上下に移動（Mery 2.7 用）]]　(sukemaru) 2019/05/07　※Mery 2.7 以降用（ブックマークを保持）&lt;br /&gt;
*[[行を複製 (複数行可)]] (sukemaru) update 2019/05/07&lt;br /&gt;
*[[TeraPadのCtrl↑と同じような動作をするマクロ]] (suke)&lt;br /&gt;
*[[TeraPadのCtrl↓と同じような動作をするマクロ]] (suke)&lt;br /&gt;
*[[Vz 風テキストスタック 2 ストロークキー]] (papagoat) update 2013/11/22&lt;br /&gt;
*[[非選択状態でも逆インデント]] (papagoat)&lt;br /&gt;
*[[ラクラク罫線]] (手石) Update 2012/12/22&lt;br /&gt;
*[[ファイル:XHTML.zip]] (アラフォー親父) HTMLタグを、ショートカット・キーに登録して入力するマクロ（文章挟み込み仕様）&lt;br /&gt;
*[[矩形ペースト]] (手石)&lt;br /&gt;
*[[自動箇条書き]] (手石) update 2013/03/15&lt;br /&gt;
*[[インデントを考慮した折り返し（改行挿入）]] (手石) update 2013/02/23&lt;br /&gt;
*[[青空文庫用整形補助]] (ks, 有志)&lt;br /&gt;
*[[部分編集]] (ks)&lt;br /&gt;
*[[文字カウント]] (masme) 2014/02/01, update 2020/05/17&lt;br /&gt;
*[[字下げ・字上げ]](インデント・逆インデント)  (masme) 2014/02/09, update 2019/06/01&lt;br /&gt;
:[[字下げ・字上げ#sukemaru 版|スペース×２ 追加・削除]]、[[字下げ・字上げ#インデント|インデント・逆インデント]] (sukemaru) last update 2019/12/01　※Mery 2.8.6 以上でブックマークを保持&lt;br /&gt;
*[[数値を増減]](インクリメント・デクリメント) (masme) 2014/06/17, update 2020/05/17&lt;br /&gt;
*[[少し便利な Undo/Redo]] (ks)&lt;br /&gt;
*[[自動ルビ振り]] (急急如律令)&lt;br /&gt;
*[[貼付け実行後のカーソル位置を貼付け文字列の先頭にする]] (yuko, sukemaru) update 2018/11/14&lt;br /&gt;
*[[ドイツ語特殊文字]] (鯉)&lt;br /&gt;
*[[矩形選択範囲の各行先頭に文字挿入]] (yuko)&lt;br /&gt;
*[[行の先頭に貼り付け]] (sukemaru) 2018/08/24&lt;br /&gt;
*[[文章で使用されている文字をユニーク抽出]] (Kuro)&lt;br /&gt;
*[[アウトライン用ノード追加]] (mik) 2018/06/25&lt;br /&gt;
*[[アウトラインのノードレベルを上げる]] (mik) 2018/06/25&lt;br /&gt;
*[[アウトラインのノードレベルを下げる]] (mik) 2018/06/25&lt;br /&gt;
*[[アウトラインのノードの完了/未完了を切り替える]] (mik) 2018/10/18 update&lt;br /&gt;
*[[ハルナアウトライン用の完了/未完了フラグをノード名に反映する]] (mik) 2018/10/18 update&lt;br /&gt;
*[[Markdown文書で改行時にリスト、引用ブロック開始記号を自動入力する]] (catfist, yuko) 2018/10/15 update&lt;br /&gt;
*[[Markdown 向け、リスト記号 (*) のトグル]] (yuko) 2019/04/29&lt;br /&gt;
*[[引用符／コメント]] ※ポップアップメニュー (行頭の文字列操作. 「引用の追加」マクロの増補改訂版)　(sukemaru) last modified 2019/04/07&lt;br /&gt;
*[[カッコで囲う]] (ポップアップメニューあり)　(sukemaru) last modified 2019/04/07&lt;br /&gt;
:「[[カッコで囲う#カッコで囲う (ポップアップメニューなし)|カッコで囲う (簡易版 ポップアップメニューなし)]]」&amp;lt;br&amp;gt; 「[[カッコで囲う#引用符を追加／削除|引用符を追加／削除]]」（ &amp;quot;二重引用符&amp;quot; の追加／削除トグル）&lt;br /&gt;
*[[カッコをはずす]] ＆ [[カッコをはずす#カッコを削除／追加|カッコを削除／追加]] ＆ [[カッコをはずす#カッコを追加／削除|カッコを追加／削除]] (sukemaru) fixed 2019/05/03&lt;br /&gt;
*[[定型文を挿入]]マクロ集 (sukemaru) 2018/12/03&lt;br /&gt;
*[[何年生で習う漢字？]] (シリル) 2019/03/10&lt;br /&gt;
*[[上に行挿入]] (yuko) 2019/05/11&lt;br /&gt;
*[[位置情報を保存してから「すべて選択／選択解除」(非スクロール)]] (sukemaru)&lt;br /&gt;
: update 2019/11/13： 「[[位置情報を保存してから「すべて選択／選択解除」(非スクロール)#【include 版】位置を復帰／保存|位置を復帰／保存]]」を追加&lt;br /&gt;
*[[選択範囲を広げる]] (yuko) 2020/03/22&lt;br /&gt;
&lt;br /&gt;
== ファイル操作補助 ==&lt;br /&gt;
&lt;br /&gt;
*[[ファイルのプロパティ]] (sukemaru) 2018/12/18&lt;br /&gt;
*[[文字列中のパス起動]] (ks)&lt;br /&gt;
*[[選択範囲のURL・パスを開く|ひらけゴマ！]] ※「選択範囲のURL・パスを開く」 (sukemaru) update 2019/04/07&lt;br /&gt;
*[[自動バックアップ]] (ks)&lt;br /&gt;
*[[終了時状態保持・復元]] (ks)&lt;br /&gt;
*[[上書き保存(UAC対応)]] (ks)&lt;br /&gt;
*[[含んでいるフォルダを開く]] (ks)&lt;br /&gt;
*[[パスを取得]] (Kuro)&lt;br /&gt;
*[[フォルダ内のファイルをすべて開く]] (Kuro)&lt;br /&gt;
*[[ファイルを比較]] (Kuro)&lt;br /&gt;
*[[ファイル名を引数にしてアプリ起動]] (Kuro, miso)&lt;br /&gt;
*[[ブックマーク一覧ジャンプ]] ※ポップアップメニュー (goat, sukemaru) update 2019/12/05&lt;br /&gt;
*[[拡張子の違うファイルを開く]] (n)&lt;br /&gt;
*[[フォルダを開く]] (n)&lt;br /&gt;
*[[コマンドプロンプトを開く]] (n)&lt;br /&gt;
*[[SDIウィンドウの記憶と復帰]] (papagoat) Update 2012/10/23 (説明文変更 2013/11/22)&lt;br /&gt;
*[[よく使うフォルダ]] (手石) Update 2014/02/22&lt;br /&gt;
*[[ファイル（選択範囲）の仮保存]] (手石)&lt;br /&gt;
*[[ポップアップメニューでファイル選択]] (手石)&lt;br /&gt;
*[[フォルダツリーをポップアップ表示]] (n)&lt;br /&gt;
*[[タグジャンプ]] (o)&lt;br /&gt;
*[[ウィンドウの位置とサイズを拡張子で指定]] (papagoat) Update 2014/04/17&lt;br /&gt;
*[[編集モードの自動選択]] または 「書き換え禁止で開く」 ※イベントマクロ (sukemaru, Bleat) update 2019/04/24&lt;br /&gt;
*[[書き換え禁止モード色反転]] (Bleat)&lt;br /&gt;
*[[特定のフォルダで「ファイルを開く」ダイアログ]] (sukemaru) update 2020/05/10&lt;br /&gt;
*[[すべて閉じる]]マクロ集 (sukemaru) update 2019/05/03 &amp;lt;br&amp;gt;｢他（右側／左側）のタブを閉じる｣ などを追加&lt;br /&gt;
*[[文書が変更されていなければ変更マークを消す]] (Noah)&lt;br /&gt;
*[[変更なしのタブをすべて閉じる]] (Noah)&lt;br /&gt;
*[[ファイルを読み直す・開きなおす]] ※ポップアップメニュー (sukemaru) last update 2019/11/30 &amp;lt;br&amp;gt; エンコード指定で読み直し・読み取り専用属性の変更・編集モードの変更・プロパティを開く・さいごに閉じたファイルを開く・etc...&lt;br /&gt;
*[[さいごに閉じたファイルを開く]] ※ポップアップメニュー (sukemaru) 2019/11/30&lt;br /&gt;
&lt;br /&gt;
== 変換・ソート・整形 ==&lt;br /&gt;
&lt;br /&gt;
*[[可変長を固定長に変換]] (Kuro)&lt;br /&gt;
*[[SHA でハッシュ化]] (Kuro)&lt;br /&gt;
*[[標準変換]] (Kuro)&lt;br /&gt;
*[[連続する重複行を削除]] (Kuro)&lt;br /&gt;
*[[昇順で並び替え]] (Kuro)&lt;br /&gt;
*[[降順で並び替え]] (Kuro)&lt;br /&gt;
*[[昇順で並び替え／降順で並び替え]] トグル変換 (sukemaru) last update 2020/05/04 &amp;lt;br&amp;gt;「[[昇順で並び替え／降順で並び替え#昇順／降順トグル ＋ 文字列反転|昇順／降順トグル ＋ 文字列反転]]」を追加&lt;br /&gt;
*[[ブックマーク系コマンド集]] (ks)&lt;br /&gt;
*[[テキスト変換]] (ks)&lt;br /&gt;
**[[テキスト整形]] (masme) 2013/09/15, update 2019/12/21&lt;br /&gt;
*[[旧漢字から新漢字に変換]] (furu)&lt;br /&gt;
*[[clustalw を用いてアライメントを実行]] (suke)&lt;br /&gt;
*[[連番の挿入]] (手石)&lt;br /&gt;
*[[TSV(CSV) ⇒ 固定長]] (手石) update 2013/04/16&lt;br /&gt;
*[[行並べ替え]] (masme) 2013/08/25, update 2020/05/20&lt;br /&gt;
*[[連番を挿入]] (masme) 2013/08/25, update 2020/05/17&lt;br /&gt;
*[[GFMをHTMLに変換]] (noonworks) 2014/03/09&lt;br /&gt;
*[[TrueとFalse_を切り替える|YES／NO マクロ]] (sukemaru) update 2020/05/12 ※「&amp;lt;span style=&amp;quot;color:#0000c0;&amp;quot;&amp;gt;True&amp;lt;/span&amp;gt;と&amp;lt;span style=&amp;quot;color:#c00;&amp;quot;&amp;gt;False&amp;lt;/span&amp;gt;をトグル切り替え」&lt;br /&gt;
*[[基数変換10_16]] (シリル) 2019/02/10&lt;br /&gt;
*[[スネークケース ⇔ キャメルケースの変換]] (Noah)&lt;br /&gt;
*[[罫線変換]] (シリル) 2019/03/09&lt;br /&gt;
*[[全角／半角変換]] (sukemaru) fixed 2019/05/11 ※「ＡＢＣ」→「ABC」／「ABC」→「ＡＢＣ」&lt;br /&gt;
*[[全角／半角 トグル変換]] (sukemaru) fixed 2019/05/20 ※「ＡＢＣ」⇔「ABC」&lt;br /&gt;
*[[大文字／小文字／頭文字 トグル変換]] (sukemaru) last update 2019/08/29 ※「Abc」→「ABC」→「abc」&lt;br /&gt;
*[[ひらがな／カタカナ変換]] (sukemaru) update 2020/01/03 ※「あいうえお」⇔「アイウエオ」&lt;br /&gt;
*[[文字列の順番を逆に書き出す]] (sukemaru) update 2020/01/03 ※「あいうえお」⇔「おえういあ」&lt;br /&gt;
&lt;br /&gt;
== 検索・置換 ==&lt;br /&gt;
&lt;br /&gt;
*[[文書から検索]] (Kuro)&lt;br /&gt;
*[[単語を抽出]] (Kuro)&lt;br /&gt;
*[[このファイルから検索(マッチしない行)]] (Kuro)&lt;br /&gt;
*[[このファイルから検索(マッチする行)]] (Kuro)&lt;br /&gt;
*[[タグの外側（内側）だけ置換]] (手石)&lt;br /&gt;
*[[ポップアップメニューで検索先にジャンプ]] (手石, sukemaru) Last Update 2019/04/16&lt;br /&gt;
*[[検索(SJIS以外)]] + 検索強調を解除 (masme) 2014/09/16, update 2019/06/01&lt;br /&gt;
*[https://github.com/TakamiChie/mery-scripts/blob/master/SearchWithMode.js 現在開いているファイルの言語名をつけてWeb検索] (高見知英)→[[https://vine.co/v/eeY59rFMail 実際の動作例]]&lt;br /&gt;
*[https://github.com/GunseiPaseri/Mery_macro 文字出現量ランキング] (群生系パセリ) 2015/12/28&lt;br /&gt;
*[[検索ヒット数表示]] (ks)&lt;br /&gt;
*[[検索ヒット数表示（選択文字列）]] ※イベントマクロ　(sukemaru) last update 2019/12/03 &amp;lt;br&amp;gt;「[[検索ヒット数表示（選択文字列）#機能強化バージョン|文字数・行数・バイト数・ヒット件数]]」を追加&lt;br /&gt;
*[[任意の検索エンジンで検索]] (Noah)&lt;br /&gt;
*[[任意の検索エンジンで検索ー改良版]] (Takeshi) 2019/07/12&lt;br /&gt;
*[[デフォルトの検索フラグを設定して検索ウィンドウ表示]] (yuko)&lt;br /&gt;
*[[簡易検索一覧]] (シリル) 2018/12/24&lt;br /&gt;
*[[簡易検索一覧などをアウトプット]] (シリル) 2018/12/31&lt;br /&gt;
*[[複数置換]] (Noah)&lt;br /&gt;
*[[類義語アウトプット【Python】]] (シリル) 2019/03/24&lt;br /&gt;
*[[校正支援アウトプット]] (シリル) 2019/05/01&lt;br /&gt;
*[[次／前の文字列を検索・改]] (sukemaru) last update 2020/05/12 ※複数行選択から『次／前の文字列を検索』&lt;br /&gt;
&lt;br /&gt;
== プログラミング補助 ==&lt;br /&gt;
&lt;br /&gt;
*[[Eclipse風コメントアウト]] (ks)&lt;br /&gt;
*[[Eclipse風コメントアウト(改)]] (pizz) 2020/03/15&lt;br /&gt;
*[[コメントマーク付け外し]] (手石, masme, sukemaru) last update 2019/06/01&lt;br /&gt;
:([[コメントマーク付け外し#sukemaru 版|sukemaru版]]) last update 2019/12/01 ※ブックマーク対応&lt;br /&gt;
*[[スマートインデント(C 構文)]] (ks)&lt;br /&gt;
*[[ctags.exeでtagsファイルを生成、タグジャンプを行うマクロ]] (kazy)&lt;br /&gt;
*[[タグファイルから補完]] (n)&lt;br /&gt;
*[[コードスニペットもどき]] (手石) Update 2012/12/20&lt;br /&gt;
*[[TeX文書のコンパイル]] (手石)&lt;br /&gt;
*[[TeX数式のチェック]] (手石)&lt;br /&gt;
*[[簡易数式計算]] (ks)&lt;br /&gt;
*[[定義へ移動]] (ks)&lt;br /&gt;
*[[タブの桁数]] (手石)&lt;br /&gt;
*[[行末の空白を削除]] (n) 2014/12/19&lt;br /&gt;
*[https://github.com/TakamiChie/mery-scripts/tree/master/ 開いているスクリプトファイルを実行(掲載時点ではバッチファイル・Javascript・Lua・PHP・Perl・Python・Ruby・UWSCに対応。順次追加予定)] (高見知英)&lt;br /&gt;
*[https://github.com/TakamiChie/mery-scripts/tree/master/ 開いているスクリプトファイルを構文チェック(掲載時点ではPHP・Perlに対応。順次追加予定)] (高見知英)&lt;br /&gt;
*[[説明を出力]] (s) Create 2015/08/16&lt;br /&gt;
*[[拡張子からコンソール実行]] (YOS G-spec) 2019/6/22更新&lt;br /&gt;
*[[JSON整形]](Ovis) Create 2019/03/25&lt;br /&gt;
*[[JS フォーマット]] (sukemaru) 2020/05/03　※JavaScript のソースコードの整形&lt;br /&gt;
&lt;br /&gt;
== おもしろ ==&lt;br /&gt;
*[[テキストブラウザ]] (Kuro)&lt;br /&gt;
*[[Yahoo!天気情報]] (Kuro, sukemaru) last update 2020/05/11&lt;br /&gt;
*[[メール送信]] (ks)&lt;br /&gt;
*[[あつまれ☆みんなのおもしろアイコン]] (有志)&lt;br /&gt;
&lt;br /&gt;
== 実験的マクロ・練習マクロなど ==&lt;br /&gt;
&lt;br /&gt;
*【自家用】[[ファイルのフルパスをコピーして閉じる]] ※イベント (sukemaru) update 2019/04/14&lt;br /&gt;
*【自家用】[[行の表示方法を切り替える]] (sukemaru) update 2019/08/25 ※論理行⇔表示行 トグル&lt;br /&gt;
*【自家用】[[対応する括弧に移動#sukemaru 版|対応するカッコに移動・選択]] (sukemaru) last update 2019/12/05&lt;br /&gt;
*【実験】 [[位置情報を保存してから「次の文字列を検索」]]＋復帰　(sukemaru) 2019/05/28&lt;br /&gt;
&lt;br /&gt;
== その他 ==&lt;br /&gt;
&lt;br /&gt;
*[[HSPキーワード検索]] (SSSE) 2019/08/29&lt;br /&gt;
*[[最新版を確認]] (diaphragm)&lt;br /&gt;
*[[SAPI 使って単語読み上げ]] (miso)&lt;br /&gt;
*[[フォルダ選択ダイアログ]] (手石)&lt;br /&gt;
*[[HTA(HTML)の自作ダイアログを表示]] (noonworks)&lt;br /&gt;
*[[JavaScript を実行]] (n)&lt;br /&gt;
*[[Ruby を実行]] (n)&lt;br /&gt;
*[[ポップアップメニューを手軽に扱う]] (komorebikoboshi)&lt;br /&gt;
*[[マクロ・関数をメニューで呼び出す]] (aliquis) 2013/08/19&lt;br /&gt;
*[[階層化マクロメニュー]] (ks)&lt;br /&gt;
*[[シェルコマンドを実行]] (sasaki)&lt;br /&gt;
*[[ポップアップメニューでチェックボックス]] (手石)&lt;br /&gt;
*[[ポップアップメニューでラジオボタン]] (手石)&lt;br /&gt;
*[[Editor.OpenFile()のポリフィル]](kazy)&lt;br /&gt;
*[[折り返しトグル切り替え]] (Bleat, sukemaru) update 2020/03/15&lt;br /&gt;
*[[ファイルロック (排他制御) 的なもの]] (PebblePot)&lt;br /&gt;
*[[Mery.iniのオプション値を取得]] ※組み込み用関数 (sukemaru) last update 2020/05/14&lt;br /&gt;
*[[Mery本体のバージョンチェック]] ※組み込み用関数 (sukemaru) 2019/04/17 &amp;lt;br&amp;gt;サンプルコード: 「Begin/EndUndoGroup() メソッドを使えるのは ver 2.7.0 以降」&lt;br /&gt;
*[[IO.Serialize() の JSON を参照する]] ※組み込み用関数 (sukemaru) 2019/04/17&lt;br /&gt;
*[[ポップアップメニューを「n*十件ずつ」のサブメニューに自動分割する]] ※組み込み用関数 (sukemaru) 2019/04/20 &amp;lt;br&amp;gt;サンプルコード: 「すべての論理行をポップアップメニューに表示する」&lt;br /&gt;
*[[アクティブなタブのマクロを実行する]] (sukemaru) last update 2020/04/30&lt;br /&gt;
*[[「クリップボード履歴」メニューのマクロ化]]　(sukemaru) last update 2019/11/29 &amp;lt;br&amp;gt;　※ [[プラグイン:スニペットプラグイン|スニペット]] の機能を統合 ／ ※Mery ver 2.8.1 以降用 &amp;lt;br&amp;gt;　(2020/05/02: 追加コード「n 番目から m 番目まで貼り付け」、追加マクロ「追加コピー」)&lt;br /&gt;
*[[コンパクトメニュー]] (sukemaru) last update 2020/03/29　※[https://www.haijin-boys.com/software/mery/mery-3-0-0 Mery 3.0.1] までの追加コマンドに対応&lt;br /&gt;
*[[マクロメニュー]] (sukemaru) last update 2020/05/02&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
*[[キーアサイン集]] (ks, masme, sukemaru, 有志) last update 2019/06/16&lt;br /&gt;
*[[マテリアルデザインっぽいアイコンと『小マクロ集』]] ※アイコン収録数&#039;&#039;&#039;337&#039;&#039;&#039;コ (sukemaru) last update 2020/01/04&lt;br /&gt;
*[[includeライブラリ]] (ks)&lt;br /&gt;
*[[GetKeyState.exe(キー状態取得実行ファイル)]] (pizz) 2019/03/23&lt;br /&gt;
*[[マクロ覚え書き（開発者向け）]](ks, 有志) Last Update 2019/09/08&lt;/div&gt;</summary>
		<author><name>Masme</name></author>
	</entry>
	<entry>
		<id>https://www.haijin-boys.com/wiki/index.php?title=%E8%A1%8C%E4%B8%A6%E3%81%B9%E6%9B%BF%E3%81%88&amp;diff=5099</id>
		<title>行並べ替え</title>
		<link rel="alternate" type="text/html" href="https://www.haijin-boys.com/wiki/index.php?title=%E8%A1%8C%E4%B8%A6%E3%81%B9%E6%9B%BF%E3%81%88&amp;diff=5099"/>
		<updated>2020-05-20T10:00:35Z</updated>

		<summary type="html">&lt;p&gt;Masme: マクロ更新&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;float:right&amp;quot;&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
選択範囲（矩形可）の文字列を比較し、論理行単位で並べ替えるマクロです。&lt;br /&gt;
&lt;br /&gt;
[[ファイル:SortLineBySelection.png]]&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!※全行を&lt;br /&gt;
|&amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;※非選択時に表示。&amp;lt;/b&amp;gt;文書全体が並べ替えの対象になります。&lt;br /&gt;
|-&lt;br /&gt;
!並べ替え(Unicode)&lt;br /&gt;
|Unicode順の並べ替えを実行します。&lt;br /&gt;
|-&lt;br /&gt;
!並べ替え(SJIS風)&lt;br /&gt;
|Shift_JIS風の並べ替えを実行します。→ [[#並べ替え(SJIS風)]]&lt;br /&gt;
|-&lt;br /&gt;
!昇順 - 降順&lt;br /&gt;
|昇順 (A→Z) か降順 (Z→A) かを切り替えます。&lt;br /&gt;
|-&lt;br /&gt;
!文字順 - 数値順&lt;br /&gt;
|半角数字列の並べ方を切り替えます。&amp;lt;br&amp;gt;文字順 (1＜10＜2) は、文字として一字ずつ比較します。&amp;lt;br&amp;gt;数値順 (1＜2＜10) は、非負整数（正の整数）として比較します。→ [[#数値順]]&lt;br /&gt;
|-&lt;br /&gt;
!大文字/小文字を区別する&lt;br /&gt;
|しない場合、大文字を小文字とみなします。&lt;br /&gt;
|-&lt;br /&gt;
!全角/半角英数を区別する&lt;br /&gt;
|しない場合、全角英数を半角とみなします。&lt;br /&gt;
|-&lt;br /&gt;
!半角/全角カナを区別する&lt;br /&gt;
|しない場合、半角カナを全角とみなします。&lt;br /&gt;
|-&lt;br /&gt;
!ひらがな/カタカナを区別する&lt;br /&gt;
|しない場合、ひらがなをカタカナとみなします。&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==ダウンロード==&lt;br /&gt;
[[メディア:行並べ替え.zip|行並べ替え.zip]]&lt;br /&gt;
; 内容&lt;br /&gt;
* 行並べ替え.ico&lt;br /&gt;
* 行並べ替え.js&lt;br /&gt;
&lt;br /&gt;
==更新履歴==&lt;br /&gt;
[[ファイル:行並べ替え.zip]]&lt;br /&gt;
&lt;br /&gt;
; 2020/05/20 (rev.12)&lt;br /&gt;
* 設定を一時的に記憶する機能の不具合を修正。&lt;br /&gt;
; 2020/05/17 (rev.11)&lt;br /&gt;
* .zip 内の Macros フォルダを除去。ファイルのみ収録。&lt;br /&gt;
* .ico の更新日時を .js と同期するのをやめた。&lt;br /&gt;
* 複数選択時は並べ替え不可とした（対応に手間取るため）。&lt;br /&gt;
* 元に戻すで選択範囲も戻すようにした（Mery 3.0.1 以降）。&lt;br /&gt;
** 都合上、&amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;Mery 3.0.0 は動作対象外&amp;lt;/b&amp;gt;とした。&lt;br /&gt;
* ステータスバーの表示を「行並べ替え (処理時間: xx秒)」→「行並べ替え (xx秒)」に変更。&lt;br /&gt;
* break ラベル文 → new function 式 &amp;amp; return に変更。&lt;br /&gt;
; 2019/04/12 (rev.10)&lt;br /&gt;
* Quit() → break ラベル文に変更。&lt;br /&gt;
*: Chakra エンジンでは Quit() 非対応につき Mery 2.7.0 でエラーを返していたため。&lt;br /&gt;
* 安定ソートを明文化し、スクリプトエンジンの実装に依存しないようにした。&lt;br /&gt;
; 2018/04/15 (rev.9)&lt;br /&gt;
* 64 ビット版 Mery で動作しない不具合を修正（rev.8 のみの不具合）。&lt;br /&gt;
*: PopupMenu.Add() の Id に負の値を使用しないよう変更。&lt;br /&gt;
; 2017/06/25 (rev.8)&lt;br /&gt;
* アイコンファイルに24x24・32x32・48x48の画像を追加。&lt;br /&gt;
* 非選択時、並べ替え不可 → 文書全体を対象にする仕様に変更。&lt;br /&gt;
* 折り返し行を探査する方法を変更し、高速化（1万表示行で4秒→0.1秒）。&lt;br /&gt;
* 並べ替え実行後、実行範囲を行選択する際、末尾の改行を含めるようにした。&lt;br /&gt;
* 「並べ替え(Shift_JIS風)」→「並べ替え(SJIS風)」に改称。&lt;br /&gt;
* 「辞書順」→「文字順」に改称。&lt;br /&gt;
* 「文字順」→「数値順」に初期設定を変更。&lt;br /&gt;
* 「数値順」で同値の場合、文字順 → 先頭ゼロ比較に変更し、高速化。&lt;br /&gt;
* 「半角/全角英数カナを区別」の対象から&amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;半角カナを除外&amp;lt;/b&amp;gt;し、「全角/半角英数を区別」に変更。&lt;br /&gt;
* 「半角/全角カナを区別」設定を追加。&lt;br /&gt;
* 比較用変換の処理を改造。&lt;br /&gt;
** 索引を「正規表現」と「文字列」の構成に仕様変更。&lt;br /&gt;
&amp;lt;!-- コード変換の処理を charCodeAt() 走査 → match() 配列走査 に変更。 --&amp;gt;&lt;br /&gt;
** 索引の改行文字 [LF] と半角数字 (0～9) の符号位置は変更厳禁だった仕様を解消。&lt;br /&gt;
&amp;lt;!-- U+000D [CR] をデリミタに利用し、コード変換を回避するようにした。 --&amp;gt;&lt;br /&gt;
** 索引の上限字数を 65535 と明文化し、上限以上は処理しないようにした。&lt;br /&gt;
** 数値順の上限桁数が 65519 → 65505 に 14 縮小。&lt;br /&gt;
* &amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;並べ替え(Unicode) 時、サロゲートペアの扱いが変わりました。&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;rev.7 までは、UTF-16順 (U+D7FF～E000 の間) に並びましたが、&amp;lt;br&amp;gt;rev.8 からは、Unicode順 (U+FFFF の次) に並びます。&lt;br /&gt;
* &amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;並べ替え(SJIS風) 時、Shift_JISに無い文字の扱いが変わりました。&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;rev.7 までは、未定義文字 (0xFFFF) に置き換えていましたが、&amp;lt;br&amp;gt;rev.8 からは、Unicode順と同様に並びます。&lt;br /&gt;
; 2015/12/26 (rev.7)&lt;br /&gt;
* アイコンの指定先を &amp;quot;My Macros\行並べ替え.ico&amp;quot; → &amp;quot;行並べ替え.ico&amp;quot; に変更。&lt;br /&gt;
* 矩形選択（始点or終点が左下かつ論理行頭）時、下端の行が範囲から漏れる不具合を修正。&lt;br /&gt;
; 2014/10/12 (rev.6)&lt;br /&gt;
* 「辞書順/数値順」設定を追加。&lt;br /&gt;
* 「半角/全角を区別」の対象から&amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;記号を除外&amp;lt;/b&amp;gt;し、「半角/全角英数カナを区別」に変更。&lt;br /&gt;
*: 半角/全角の対応が定義しづらく、区別の対象となる文字が分かりにくいため。&lt;br /&gt;
* ポップアップメニューにアクセラレータキー（アクセスキー）を割り当て。&lt;br /&gt;
* ポップアップメニューの「半角/全角」「大/小文字」の配置を交換。&lt;br /&gt;
* ポップアップメニューの「大/小文字」「半角/全角」「かな/カナ」をチェックボックス式に変更。&lt;br /&gt;
; 2014/07/27 (rev.5)&lt;br /&gt;
* アイコンファイルを同梱し、読み込むようにした。&lt;br /&gt;
* 並べ替え実行後、実行範囲を行選択するようにした。&lt;br /&gt;
* &amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;矩形選択時、折り返し行が含まれていると、正しく並べ替えられない不具合を修正。&amp;lt;/b&amp;gt;&lt;br /&gt;
*: ただし、折り返し行を探査する処理に時間がかかります（1万表示行で4秒）。&lt;br /&gt;
* rev.4 の処理高速化手法の一部（コード変換）を取り下げ。&lt;br /&gt;
*: マクロの処理速度では大量処理にも限界があるので、可読性を優先しておくことに。&lt;br /&gt;
* 半角/全角変換表の仕様を [&amp;quot;正規表現&amp;quot;,&amp;quot;文字&amp;quot;] → [/正規表現/,&amp;quot;文字&amp;quot;] に変更。&lt;br /&gt;
* 「半角/全角を区別」の対象に ＂ ＇ ＼ の3字を追加。&lt;br /&gt;
* 「大/小文字を区別」の処理を toLowerCase() → toLocaleLowerCase() に変更。&lt;br /&gt;
*: Mery の大文字/小文字変換と同様、OS の言語設定を考慮するようにした。&lt;br /&gt;
* 「かな/カナを区別」の処理を「半角/全角を区別」と同じ仕様に変更（ひらがなが多い場合に高速化）。&lt;br /&gt;
* 「かな/カナを区別」の対象に ゝ ゞ の2字を追加。&lt;br /&gt;
; 2013/09/19 (rev.4) [[ファイル:行並べ替え_r4.zip]]&lt;br /&gt;
* ks 氏の改善策を参考に、高速化（1万行で2秒→1秒）。&lt;br /&gt;
* &amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;並べ替え(Shift_JIS風) 時、Shift_JISに無い文字の扱いが変わりました。&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;rev.3 までは、昇順/降順を問わず最後尾に並びましたが、&amp;lt;br&amp;gt;rev.4 からは、昇順/降順に従います。&lt;br /&gt;
; 2013/09/19 (rev.3) [[ファイル:行並べ替え_r3.zip]]&lt;br /&gt;
* 「半角/全角を区別」設定を追加。&lt;br /&gt;
* 非選択時にエラーが出る不具合を修正。&lt;br /&gt;
*: ポップアップメニューに「並べ替えが行えない」旨を表示するようにした。&lt;br /&gt;
* 並べ替え(Unicode) 時においても Shift_JIS 用の準備をしていたムダを解消。&lt;br /&gt;
; 2013/08/29 (rev.2) [[ファイル:行並べ替え_r2.zip]]&lt;br /&gt;
* ks 氏の改善策を参考に、高速化（1万行で30秒→2秒）。&lt;br /&gt;
* &amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;並べ替え(Unicode) 時、水平タブが空行より前に並ぶバグがあります&amp;lt;/b&amp;gt;（rev.3 で修正）。&lt;br /&gt;
; 2013/08/25 (rev.1)&lt;br /&gt;
* 初版公開。&lt;br /&gt;
&lt;br /&gt;
==仕様==&lt;br /&gt;
&lt;br /&gt;
===並べ替え(SJIS風)===&lt;br /&gt;
Microsoft コードページ932 [http://ja.wikipedia.org/wiki/Microsoft%E3%82%B3%E3%83%BC%E3%83%89%E3%83%9A%E3%83%BC%E3%82%B8932] をベースに、下記の仕様で並べます。&lt;br /&gt;
* NEC特殊 / IBM拡張記号類 &amp;lt;code&amp;gt;①～＂&amp;lt;/code&amp;gt; は、全角記号の次に。&amp;lt;code&amp;gt;㍻&amp;lt;/code&amp;gt;は&amp;lt;code&amp;gt;㍼&amp;lt;/code&amp;gt;の次に並べる。&lt;br /&gt;
* ローマ数字の小文字形 &amp;lt;code&amp;gt;ⅰ～ⅹ&amp;lt;/code&amp;gt; は、大文字形 &amp;lt;code&amp;gt;Ⅰ～Ⅹ&amp;lt;/code&amp;gt; の次に並べる。&lt;br /&gt;
* 未定義文字 (0x80, A0, FD, FE, FF)、ユーザー定義外字 (0xF0A0～F9FC) は非対応。&lt;br /&gt;
* Shift_JIS(CP932)に無い文字は、Unicode順に並べる。&amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;(rev.8以降)&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===数値順===&lt;br /&gt;
半角数字列を非負整数（正の整数）の順に並べます。&lt;br /&gt;
* 負数&amp;lt;code&amp;gt;-12&amp;lt;/code&amp;gt; 小数&amp;lt;code&amp;gt;0.12&amp;lt;/code&amp;gt; 分数&amp;lt;code&amp;gt;1/2&amp;lt;/code&amp;gt; 指数&amp;lt;code&amp;gt;1.2e3&amp;lt;/code&amp;gt; などには対応していません。&lt;br /&gt;
* &amp;lt;b style=&amp;quot;color:#c00;&amp;gt;全角数字&amp;lt;/b&amp;gt;は「全角/半角英数を区別」設定で扱いが変わります。&amp;lt;br&amp;gt;区別する場合、全角数字は対象外となり、文字順になります。&amp;lt;br&amp;gt;区別しない場合、半角数字とみなすため、数値順になります。&lt;br /&gt;
* 同値の場合、先頭ゼロの個数で比較します。例＞ &amp;lt;code&amp;gt;001&amp;lt;/code&amp;gt;＜&amp;lt;code&amp;gt;01&amp;lt;/code&amp;gt;＜&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;。&lt;br /&gt;
* 仕様上、10の65505乗 以上の数値は扱えません。超過した数値同士は文字順で比較されます。&lt;br /&gt;
&lt;br /&gt;
===大文字/小文字を区別しない===&lt;br /&gt;
大文字を小文字とみなして並べます。&lt;br /&gt;
* &amp;lt;code&amp;gt;[ ] \ ^ _&amp;lt;/code&amp;gt; が &amp;lt;code&amp;gt;A&amp;lt;/code&amp;gt; の前に並ぶようになります。&lt;br /&gt;
* ギリシャ文字やローマ数字など、大小が存在する文字も区別しなくなります。&lt;br /&gt;
* 小さい &amp;lt;code&amp;gt;っ ぁ ゃ&amp;lt;/code&amp;gt; など仮名文字は対象外です。&lt;br /&gt;
&lt;br /&gt;
===全角/半角英数を区別しない===&lt;br /&gt;
全角英数 &amp;lt;code&amp;gt;０～９ Ａ～Ｚ ａ～ｚ&amp;lt;/code&amp;gt; を半角とみなして並べます。&lt;br /&gt;
&lt;br /&gt;
===半角/全角カナを区別しない===&lt;br /&gt;
半角カナ類 &amp;lt;code&amp;gt;ｦ～ｯ ｱ～ﾝ ｡ ｢ ｣ ､ ･ ｰ ﾞ ﾟ&amp;lt;/code&amp;gt; を全角とみなして並べます。&lt;br /&gt;
&lt;br /&gt;
===ひらがな/カタカナを区別しない===&lt;br /&gt;
ひらがなをカタカナとみなして並べます。&lt;br /&gt;
* &amp;lt;code&amp;gt;゛ ゜ ゟ&amp;lt;/code&amp;gt; が &amp;lt;code&amp;gt;ぁ&amp;lt;/code&amp;gt; の前に並ぶようになります。&lt;br /&gt;
* &amp;lt;code&amp;gt;ゔ ゕ ゖ&amp;lt;/code&amp;gt; は &amp;lt;code&amp;gt;ヴ ヵ ヶ&amp;lt;/code&amp;gt; とみなすため、Shift_JIS(CP932)に無い文字と扱われなくなります。&lt;br /&gt;
&lt;br /&gt;
==コメント==&lt;br /&gt;
* [http://merysmacro.seesaa.net/article/372975309.html 処理速度の改善を図ってみました]ので，ご参考まで (ks)&lt;br /&gt;
** ありがとうございます。おかげさまで処理速度を大幅に改善することができました。 (masme)&lt;br /&gt;
&lt;br /&gt;
* Mery 64 ビット版だと動作しないようです。マクロの 154, 155 行目ですが、PopupMenu インターフェイスの Add メソッドの Id 引数は UINT_PTR なので正の値を指定してやる必要があります。マクロリファレンスには int と記載しておりましたが間違いでした、申し訳ございません。(kuro)&lt;/div&gt;</summary>
		<author><name>Masme</name></author>
	</entry>
	<entry>
		<id>https://www.haijin-boys.com/wiki/index.php?title=%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:%E8%A1%8C%E4%B8%A6%E3%81%B9%E6%9B%BF%E3%81%88.zip&amp;diff=5098</id>
		<title>ファイル:行並べ替え.zip</title>
		<link rel="alternate" type="text/html" href="https://www.haijin-boys.com/wiki/index.php?title=%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:%E8%A1%8C%E4%B8%A6%E3%81%B9%E6%9B%BF%E3%81%88.zip&amp;diff=5098"/>
		<updated>2020-05-20T09:59:13Z</updated>

		<summary type="html">&lt;p&gt;Masme: Masme が ファイル:行並べ替え.zip の新しいバージョンを アップロードしました&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;行並べ替え.js&lt;/div&gt;</summary>
		<author><name>Masme</name></author>
	</entry>
	<entry>
		<id>https://www.haijin-boys.com/wiki/index.php?title=%E3%83%9E%E3%82%AF%E3%83%AD%E3%83%A9%E3%82%A4%E3%83%96%E3%83%A9%E3%83%AA&amp;diff=5093</id>
		<title>マクロライブラリ</title>
		<link rel="alternate" type="text/html" href="https://www.haijin-boys.com/wiki/index.php?title=%E3%83%9E%E3%82%AF%E3%83%AD%E3%83%A9%E3%82%A4%E3%83%96%E3%83%A9%E3%83%AA&amp;diff=5093"/>
		<updated>2020-05-17T01:17:11Z</updated>

		<summary type="html">&lt;p&gt;Masme: 「文字カウント」「数値を増減」「行並べ替え」「連番を挿入」更新&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Mery で使用できるマクロを集めたライブラリです。&lt;br /&gt;
&lt;br /&gt;
スクリプトを拡張子「js」 (JavaScript、JScript の場合) にして「Macros」フォルダ等に保存し、マクロメニューの「選択」や「カスタマイズ」から読み込んで使用してください。&lt;br /&gt;
&lt;br /&gt;
マクロライブラリはどなたでも自由に編集できますので、みなさんが作成した便利なマクロをどんどん掲載してください。&lt;br /&gt;
&lt;br /&gt;
== テキスト操作補助 ==&lt;br /&gt;
&lt;br /&gt;
*[https://github.com/haijinboys/mery-macro-emmet Emmet] (Kuro)&lt;br /&gt;
*[[Zen Coding]] (Kuro)&lt;br /&gt;
*[[CSV のカーソル位置の列を削除]] (Kuro)&lt;br /&gt;
*[[対応する括弧に移動]] (Kuro, kurama, masme 他) update 2019/04/24 （追加コード 2019/12/05）&lt;br /&gt;
*[[選択文字列を強調]] (Kuro)&lt;br /&gt;
*[[行頭に移動]] (Kuro, 他) update 2014/03/15&lt;br /&gt;
*[[行頭か行末 または 選択範囲の始点か終点|行頭か行末 または 選択範囲の始点か終点 に移動]] (sukemaru) update 2019/03/29&lt;br /&gt;
*[[文書の先頭か末尾|文書の 先頭か末尾 に移動]] (sukemaru) update 2019/03/29&lt;br /&gt;
*[[バイト数]] (Kuro, ks)&lt;br /&gt;
*[[日付と時刻を挿入]] (n, masme, sukemaru) update 2018/12/09&lt;br /&gt;
*[[日付と時刻を挿入（カレンダー版）]] (papagoat) update 2016/05/24&lt;br /&gt;
*[[選択範囲を上下に移動]] (ks)&lt;br /&gt;
*[[行を上下に移動（Mery 2.7 用）]]　(sukemaru) 2019/05/07　※Mery 2.7 以降用（ブックマークを保持）&lt;br /&gt;
*[[行を複製 (複数行可)]] (sukemaru) update 2019/05/07&lt;br /&gt;
*[[TeraPadのCtrl↑と同じような動作をするマクロ]] (suke)&lt;br /&gt;
*[[TeraPadのCtrl↓と同じような動作をするマクロ]] (suke)&lt;br /&gt;
*[[Vz 風テキストスタック 2 ストロークキー]] (papagoat) update 2013/11/22&lt;br /&gt;
*[[非選択状態でも逆インデント]] (papagoat)&lt;br /&gt;
*[[ラクラク罫線]] (手石) Update 2012/12/22&lt;br /&gt;
*[[ファイル:XHTML.zip]] (アラフォー親父) HTMLタグを、ショートカット・キーに登録して入力するマクロ（文章挟み込み仕様）&lt;br /&gt;
*[[矩形ペースト]] (手石)&lt;br /&gt;
*[[自動箇条書き]] (手石) update 2013/03/15&lt;br /&gt;
*[[インデントを考慮した折り返し（改行挿入）]] (手石) update 2013/02/23&lt;br /&gt;
*[[青空文庫用整形補助]] (ks, 有志)&lt;br /&gt;
*[[部分編集]] (ks)&lt;br /&gt;
*[[文字カウント]] (masme) 2014/02/01, update 2020/05/17&lt;br /&gt;
*[[字下げ・字上げ]](インデント・逆インデント)  (masme) 2014/02/09, update 2019/06/01&lt;br /&gt;
:[[字下げ・字上げ#sukemaru 版|スペース×２ 追加・削除]]、[[字下げ・字上げ#インデント|インデント・逆インデント]] (sukemaru) last update 2019/12/01　※Mery 2.8.6 以上でブックマークを保持&lt;br /&gt;
*[[数値を増減]](インクリメント・デクリメント) (masme) 2014/06/17, update 2020/05/17&lt;br /&gt;
*[[少し便利な Undo/Redo]] (ks)&lt;br /&gt;
*[[自動ルビ振り]] (急急如律令)&lt;br /&gt;
*[[貼付け実行後のカーソル位置を貼付け文字列の先頭にする]] (yuko, sukemaru) update 2018/11/14&lt;br /&gt;
*[[ドイツ語特殊文字]] (鯉)&lt;br /&gt;
*[[矩形選択範囲の各行先頭に文字挿入]] (yuko)&lt;br /&gt;
*[[行の先頭に貼り付け]] (sukemaru) 2018/08/24&lt;br /&gt;
*[[文章で使用されている文字をユニーク抽出]] (Kuro)&lt;br /&gt;
*[[アウトライン用ノード追加]] (mik) 2018/06/25&lt;br /&gt;
*[[アウトラインのノードレベルを上げる]] (mik) 2018/06/25&lt;br /&gt;
*[[アウトラインのノードレベルを下げる]] (mik) 2018/06/25&lt;br /&gt;
*[[アウトラインのノードの完了/未完了を切り替える]] (mik) 2018/10/18 update&lt;br /&gt;
*[[ハルナアウトライン用の完了/未完了フラグをノード名に反映する]] (mik) 2018/10/18 update&lt;br /&gt;
*[[Markdown文書で改行時にリスト、引用ブロック開始記号を自動入力する]] (catfist, yuko) 2018/10/15 update&lt;br /&gt;
*[[Markdown 向け、リスト記号 (*) のトグル]] (yuko) 2019/04/29&lt;br /&gt;
*[[引用符／コメント]] ※ポップアップメニュー (行頭の文字列操作. 「引用の追加」マクロの増補改訂版)　(sukemaru) last modified 2019/04/07&lt;br /&gt;
*[[カッコで囲う]] (ポップアップメニューあり)　(sukemaru) last modified 2019/04/07&lt;br /&gt;
:「[[カッコで囲う#カッコで囲う (ポップアップメニューなし)|カッコで囲う (簡易版 ポップアップメニューなし)]]」&amp;lt;br&amp;gt; 「[[カッコで囲う#引用符を追加／削除|引用符を追加／削除]]」（ &amp;quot;二重引用符&amp;quot; の追加／削除トグル）&lt;br /&gt;
*[[カッコをはずす]] ＆ [[カッコをはずす#カッコを削除／追加|カッコを削除／追加]] ＆ [[カッコをはずす#カッコを追加／削除|カッコを追加／削除]] (sukemaru) fixed 2019/05/03&lt;br /&gt;
*[[定型文を挿入]]マクロ集 (sukemaru) 2018/12/03&lt;br /&gt;
*[[何年生で習う漢字？]] (シリル) 2019/03/10&lt;br /&gt;
*[[上に行挿入]] (yuko) 2019/05/11&lt;br /&gt;
*[[位置情報を保存してから「すべて選択／選択解除」(非スクロール)]] (sukemaru)&lt;br /&gt;
: update 2019/11/13： 「[[位置情報を保存してから「すべて選択／選択解除」(非スクロール)#【include 版】位置を復帰／保存|位置を復帰／保存]]」を追加&lt;br /&gt;
*[[選択範囲を広げる]] (yuko) 2020/03/22&lt;br /&gt;
&lt;br /&gt;
== ファイル操作補助 ==&lt;br /&gt;
&lt;br /&gt;
*[[ファイルのプロパティ]] (sukemaru) 2018/12/18&lt;br /&gt;
*[[文字列中のパス起動]] (ks)&lt;br /&gt;
*[[選択範囲のURL・パスを開く|ひらけゴマ！]] ※「選択範囲のURL・パスを開く」 (sukemaru) update 2019/04/07&lt;br /&gt;
*[[自動バックアップ]] (ks)&lt;br /&gt;
*[[終了時状態保持・復元]] (ks)&lt;br /&gt;
*[[上書き保存(UAC対応)]] (ks)&lt;br /&gt;
*[[含んでいるフォルダを開く]] (ks)&lt;br /&gt;
*[[パスを取得]] (Kuro)&lt;br /&gt;
*[[フォルダ内のファイルをすべて開く]] (Kuro)&lt;br /&gt;
*[[ファイルを比較]] (Kuro)&lt;br /&gt;
*[[ファイル名を引数にしてアプリ起動]] (Kuro, miso)&lt;br /&gt;
*[[ブックマーク一覧ジャンプ]] ※ポップアップメニュー (goat, sukemaru) update 2019/12/05&lt;br /&gt;
*[[拡張子の違うファイルを開く]] (n)&lt;br /&gt;
*[[フォルダを開く]] (n)&lt;br /&gt;
*[[コマンドプロンプトを開く]] (n)&lt;br /&gt;
*[[SDIウィンドウの記憶と復帰]] (papagoat) Update 2012/10/23 (説明文変更 2013/11/22)&lt;br /&gt;
*[[よく使うフォルダ]] (手石) Update 2014/02/22&lt;br /&gt;
*[[ファイル（選択範囲）の仮保存]] (手石)&lt;br /&gt;
*[[ポップアップメニューでファイル選択]] (手石)&lt;br /&gt;
*[[フォルダツリーをポップアップ表示]] (n)&lt;br /&gt;
*[[タグジャンプ]] (o)&lt;br /&gt;
*[[ウィンドウの位置とサイズを拡張子で指定]] (papagoat) Update 2014/04/17&lt;br /&gt;
*[[編集モードの自動選択]] または 「書き換え禁止で開く」 ※イベントマクロ (sukemaru, Bleat) update 2019/04/24&lt;br /&gt;
*[[書き換え禁止モード色反転]] (Bleat)&lt;br /&gt;
*[[特定のフォルダで「ファイルを開く」ダイアログ]] (sukemaru) update 2020/05/10&lt;br /&gt;
*[[すべて閉じる]]マクロ集 (sukemaru) update 2019/05/03 &amp;lt;br&amp;gt;｢他（右側／左側）のタブを閉じる｣ などを追加&lt;br /&gt;
*[[文書が変更されていなければ変更マークを消す]] (Noah)&lt;br /&gt;
*[[変更なしのタブをすべて閉じる]] (Noah)&lt;br /&gt;
*[[ファイルを読み直す・開きなおす]] ※ポップアップメニュー (sukemaru) last update 2019/11/30 &amp;lt;br&amp;gt; エンコード指定で読み直し・読み取り専用属性の変更・編集モードの変更・プロパティを開く・さいごに閉じたファイルを開く・etc...&lt;br /&gt;
*[[さいごに閉じたファイルを開く]] ※ポップアップメニュー (sukemaru) 2019/11/30&lt;br /&gt;
&lt;br /&gt;
== 変換・ソート・整形 ==&lt;br /&gt;
&lt;br /&gt;
*[[可変長を固定長に変換]] (Kuro)&lt;br /&gt;
*[[SHA でハッシュ化]] (Kuro)&lt;br /&gt;
*[[標準変換]] (Kuro)&lt;br /&gt;
*[[連続する重複行を削除]] (Kuro)&lt;br /&gt;
*[[昇順で並び替え]] (Kuro)&lt;br /&gt;
*[[降順で並び替え]] (Kuro)&lt;br /&gt;
*[[昇順で並び替え／降順で並び替え]] トグル変換 (sukemaru) last update 2020/05/04 &amp;lt;br&amp;gt;「[[昇順で並び替え／降順で並び替え#昇順／降順トグル ＋ 文字列反転|昇順／降順トグル ＋ 文字列反転]]」を追加&lt;br /&gt;
*[[ブックマーク系コマンド集]] (ks)&lt;br /&gt;
*[[テキスト変換]] (ks)&lt;br /&gt;
**[[テキスト整形]] (masme) 2013/09/15, update 2019/12/21&lt;br /&gt;
*[[旧漢字から新漢字に変換]] (furu)&lt;br /&gt;
*[[clustalw を用いてアライメントを実行]] (suke)&lt;br /&gt;
*[[連番の挿入]] (手石)&lt;br /&gt;
*[[TSV(CSV) ⇒ 固定長]] (手石) update 2013/04/16&lt;br /&gt;
*[[行並べ替え]] (masme) 2013/08/25, update 2020/05/17&lt;br /&gt;
*[[連番を挿入]] (masme) 2013/08/25, update 2020/05/17&lt;br /&gt;
*[[GFMをHTMLに変換]] (noonworks) 2014/03/09&lt;br /&gt;
*[[TrueとFalse_を切り替える|YES／NO マクロ]] (sukemaru) update 2020/05/12 ※「&amp;lt;span style=&amp;quot;color:#0000c0;&amp;quot;&amp;gt;True&amp;lt;/span&amp;gt;と&amp;lt;span style=&amp;quot;color:#c00;&amp;quot;&amp;gt;False&amp;lt;/span&amp;gt;をトグル切り替え」&lt;br /&gt;
*[[基数変換10_16]] (シリル) 2019/02/10&lt;br /&gt;
*[[スネークケース ⇔ キャメルケースの変換]] (Noah)&lt;br /&gt;
*[[罫線変換]] (シリル) 2019/03/09&lt;br /&gt;
*[[全角／半角変換]] (sukemaru) fixed 2019/05/11 ※「ＡＢＣ」→「ABC」／「ABC」→「ＡＢＣ」&lt;br /&gt;
*[[全角／半角 トグル変換]] (sukemaru) fixed 2019/05/20 ※「ＡＢＣ」⇔「ABC」&lt;br /&gt;
*[[大文字／小文字／頭文字 トグル変換]] (sukemaru) last update 2019/08/29 ※「Abc」→「ABC」→「abc」&lt;br /&gt;
*[[ひらがな／カタカナ変換]] (sukemaru) update 2020/01/03 ※「あいうえお」⇔「アイウエオ」&lt;br /&gt;
*[[文字列の順番を逆に書き出す]] (sukemaru) update 2020/01/03 ※「あいうえお」⇔「おえういあ」&lt;br /&gt;
&lt;br /&gt;
== 検索・置換 ==&lt;br /&gt;
&lt;br /&gt;
*[[文書から検索]] (Kuro)&lt;br /&gt;
*[[単語を抽出]] (Kuro)&lt;br /&gt;
*[[このファイルから検索(マッチしない行)]] (Kuro)&lt;br /&gt;
*[[このファイルから検索(マッチする行)]] (Kuro)&lt;br /&gt;
*[[タグの外側（内側）だけ置換]] (手石)&lt;br /&gt;
*[[ポップアップメニューで検索先にジャンプ]] (手石, sukemaru) Last Update 2019/04/16&lt;br /&gt;
*[[検索(SJIS以外)]] + 検索強調を解除 (masme) 2014/09/16, update 2019/06/01&lt;br /&gt;
*[https://github.com/TakamiChie/mery-scripts/blob/master/SearchWithMode.js 現在開いているファイルの言語名をつけてWeb検索] (高見知英)→[[https://vine.co/v/eeY59rFMail 実際の動作例]]&lt;br /&gt;
*[https://github.com/GunseiPaseri/Mery_macro 文字出現量ランキング] (群生系パセリ) 2015/12/28&lt;br /&gt;
*[[検索ヒット数表示]] (ks)&lt;br /&gt;
*[[検索ヒット数表示（選択文字列）]] ※イベントマクロ　(sukemaru) last update 2019/12/03 &amp;lt;br&amp;gt;「[[検索ヒット数表示（選択文字列）#機能強化バージョン|文字数・行数・バイト数・ヒット件数]]」を追加&lt;br /&gt;
*[[任意の検索エンジンで検索]] (Noah)&lt;br /&gt;
*[[任意の検索エンジンで検索ー改良版]] (Takeshi) 2019/07/12&lt;br /&gt;
*[[デフォルトの検索フラグを設定して検索ウィンドウ表示]] (yuko)&lt;br /&gt;
*[[簡易検索一覧]] (シリル) 2018/12/24&lt;br /&gt;
*[[簡易検索一覧などをアウトプット]] (シリル) 2018/12/31&lt;br /&gt;
*[[複数置換]] (Noah)&lt;br /&gt;
*[[類義語アウトプット【Python】]] (シリル) 2019/03/24&lt;br /&gt;
*[[校正支援アウトプット]] (シリル) 2019/05/01&lt;br /&gt;
*[[次／前の文字列を検索・改]] (sukemaru) last update 2020/05/12 ※複数行選択から『次／前の文字列を検索』&lt;br /&gt;
&lt;br /&gt;
== プログラミング補助 ==&lt;br /&gt;
&lt;br /&gt;
*[[Eclipse風コメントアウト]] (ks)&lt;br /&gt;
*[[Eclipse風コメントアウト(改)]] (pizz) 2020/03/15&lt;br /&gt;
*[[コメントマーク付け外し]] (手石, masme, sukemaru) last update 2019/06/01&lt;br /&gt;
:([[コメントマーク付け外し#sukemaru 版|sukemaru版]]) last update 2019/12/01 ※ブックマーク対応&lt;br /&gt;
*[[スマートインデント(C 構文)]] (ks)&lt;br /&gt;
*[[ctags.exeでtagsファイルを生成、タグジャンプを行うマクロ]] (kazy)&lt;br /&gt;
*[[タグファイルから補完]] (n)&lt;br /&gt;
*[[コードスニペットもどき]] (手石) Update 2012/12/20&lt;br /&gt;
*[[TeX文書のコンパイル]] (手石)&lt;br /&gt;
*[[TeX数式のチェック]] (手石)&lt;br /&gt;
*[[簡易数式計算]] (ks)&lt;br /&gt;
*[[定義へ移動]] (ks)&lt;br /&gt;
*[[タブの桁数]] (手石)&lt;br /&gt;
*[[行末の空白を削除]] (n) 2014/12/19&lt;br /&gt;
*[https://github.com/TakamiChie/mery-scripts/tree/master/ 開いているスクリプトファイルを実行(掲載時点ではバッチファイル・Javascript・Lua・PHP・Perl・Python・Ruby・UWSCに対応。順次追加予定)] (高見知英)&lt;br /&gt;
*[https://github.com/TakamiChie/mery-scripts/tree/master/ 開いているスクリプトファイルを構文チェック(掲載時点ではPHP・Perlに対応。順次追加予定)] (高見知英)&lt;br /&gt;
*[[説明を出力]] (s) Create 2015/08/16&lt;br /&gt;
*[[拡張子からコンソール実行]] (YOS G-spec) 2019/6/22更新&lt;br /&gt;
*[[JSON整形]](Ovis) Create 2019/03/25&lt;br /&gt;
*[[JS フォーマット]] (sukemaru) 2020/05/03　※JavaScript のソースコードの整形&lt;br /&gt;
&lt;br /&gt;
== おもしろ ==&lt;br /&gt;
*[[テキストブラウザ]] (Kuro)&lt;br /&gt;
*[[Yahoo!天気情報]] (Kuro, sukemaru) last update 2020/05/11&lt;br /&gt;
*[[メール送信]] (ks)&lt;br /&gt;
*[[あつまれ☆みんなのおもしろアイコン]] (有志)&lt;br /&gt;
&lt;br /&gt;
== 実験的マクロ・練習マクロなど ==&lt;br /&gt;
&lt;br /&gt;
*【自家用】[[ファイルのフルパスをコピーして閉じる]] ※イベント (sukemaru) update 2019/04/14&lt;br /&gt;
*【自家用】[[行の表示方法を切り替える]] (sukemaru) update 2019/08/25 ※論理行⇔表示行 トグル&lt;br /&gt;
*【自家用】[[対応する括弧に移動#sukemaru 版|対応するカッコに移動・選択]] (sukemaru) last update 2019/12/05&lt;br /&gt;
*【実験】 [[位置情報を保存してから「次の文字列を検索」]]＋復帰　(sukemaru) 2019/05/28&lt;br /&gt;
&lt;br /&gt;
== その他 ==&lt;br /&gt;
&lt;br /&gt;
*[[HSPキーワード検索]] (SSSE) 2019/08/29&lt;br /&gt;
*[[最新版を確認]] (diaphragm)&lt;br /&gt;
*[[SAPI 使って単語読み上げ]] (miso)&lt;br /&gt;
*[[フォルダ選択ダイアログ]] (手石)&lt;br /&gt;
*[[HTA(HTML)の自作ダイアログを表示]] (noonworks)&lt;br /&gt;
*[[JavaScript を実行]] (n)&lt;br /&gt;
*[[Ruby を実行]] (n)&lt;br /&gt;
*[[ポップアップメニューを手軽に扱う]] (komorebikoboshi)&lt;br /&gt;
*[[マクロ・関数をメニューで呼び出す]] (aliquis) 2013/08/19&lt;br /&gt;
*[[階層化マクロメニュー]] (ks)&lt;br /&gt;
*[[シェルコマンドを実行]] (sasaki)&lt;br /&gt;
*[[ポップアップメニューでチェックボックス]] (手石)&lt;br /&gt;
*[[ポップアップメニューでラジオボタン]] (手石)&lt;br /&gt;
*[[Editor.OpenFile()のポリフィル]](kazy)&lt;br /&gt;
*[[折り返しトグル切り替え]] (Bleat, sukemaru) update 2020/03/15&lt;br /&gt;
*[[ファイルロック (排他制御) 的なもの]] (PebblePot)&lt;br /&gt;
*[[Mery.iniのオプション値を取得]] ※組み込み用関数 (sukemaru) last update 2020/05/14&lt;br /&gt;
*[[Mery本体のバージョンチェック]] ※組み込み用関数 (sukemaru) 2019/04/17 &amp;lt;br&amp;gt;サンプルコード: 「Begin/EndUndoGroup() メソッドを使えるのは ver 2.7.0 以降」&lt;br /&gt;
*[[IO.Serialize() の JSON を参照する]] ※組み込み用関数 (sukemaru) 2019/04/17&lt;br /&gt;
*[[ポップアップメニューを「n*十件ずつ」のサブメニューに自動分割する]] ※組み込み用関数 (sukemaru) 2019/04/20 &amp;lt;br&amp;gt;サンプルコード: 「すべての論理行をポップアップメニューに表示する」&lt;br /&gt;
*[[アクティブなタブのマクロを実行する]] (sukemaru) last update 2020/04/30&lt;br /&gt;
*[[「クリップボード履歴」メニューのマクロ化]]　(sukemaru) last update 2019/11/29 &amp;lt;br&amp;gt;　※ [[プラグイン:スニペットプラグイン|スニペット]] の機能を統合 ／ ※Mery ver 2.8.1 以降用 &amp;lt;br&amp;gt;　(2020/05/02: 追加コード「n 番目から m 番目まで貼り付け」、追加マクロ「追加コピー」)&lt;br /&gt;
*[[コンパクトメニュー]] (sukemaru) last update 2020/03/29　※[https://www.haijin-boys.com/software/mery/mery-3-0-0 Mery 3.0.1] までの追加コマンドに対応&lt;br /&gt;
*[[マクロメニュー]] (sukemaru) last update 2020/05/02&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
*[[キーアサイン集]] (ks, masme, sukemaru, 有志) last update 2019/06/16&lt;br /&gt;
*[[マテリアルデザインっぽいアイコンと『小マクロ集』]] ※アイコン収録数&#039;&#039;&#039;337&#039;&#039;&#039;コ (sukemaru) last update 2020/01/04&lt;br /&gt;
*[[includeライブラリ]] (ks)&lt;br /&gt;
*[[GetKeyState.exe(キー状態取得実行ファイル)]] (pizz) 2019/03/23&lt;br /&gt;
*[[マクロ覚え書き（開発者向け）]](ks, 有志) Last Update 2019/09/08&lt;/div&gt;</summary>
		<author><name>Masme</name></author>
	</entry>
	<entry>
		<id>https://www.haijin-boys.com/wiki/index.php?title=%E6%95%B0%E5%80%A4%E3%82%92%E5%A2%97%E6%B8%9B&amp;diff=5092</id>
		<title>数値を増減</title>
		<link rel="alternate" type="text/html" href="https://www.haijin-boys.com/wiki/index.php?title=%E6%95%B0%E5%80%A4%E3%82%92%E5%A2%97%E6%B8%9B&amp;diff=5092"/>
		<updated>2020-05-17T01:15:28Z</updated>

		<summary type="html">&lt;p&gt;Masme: マクロ更新&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;float:right&amp;quot;&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
カーソル付近 or 選択範囲に半角数字列があれば 1 増やし／減らします。&lt;br /&gt;
&lt;br /&gt;
* カーソル位置は、数字の左端・中間・右端どこでもかまいません。&amp;lt;br&amp;gt;範囲選択時は、範囲内のみが対象となります。&lt;br /&gt;
:{|class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
!  !! 左端 !!colspan=&amp;quot;2&amp;quot;|中間 !! 右端 !! 範囲選択時&lt;br /&gt;
|-&lt;br /&gt;
! 元値&lt;br /&gt;
|&amp;lt;samp&amp;gt;&amp;lt;span style=&amp;quot;border-right:2px solid;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;999&amp;lt;/samp&amp;gt;&lt;br /&gt;
|&amp;lt;samp&amp;gt;9&amp;lt;span style=&amp;quot;border-right:2px solid;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;99&amp;lt;/samp&amp;gt;&lt;br /&gt;
|&amp;lt;samp&amp;gt;99&amp;lt;span style=&amp;quot;border-right:2px solid;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;9&amp;lt;/samp&amp;gt;&lt;br /&gt;
|&amp;lt;samp&amp;gt;999&amp;lt;span style=&amp;quot;border-right:2px solid;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/samp&amp;gt;&lt;br /&gt;
|&amp;lt;samp&amp;gt;9&amp;lt;span style=&amp;quot;border-right:2px solid; background:#bfdfff;&amp;quot;&amp;gt;99,99&amp;lt;/span&amp;gt;9&amp;lt;/samp&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! 増やす&lt;br /&gt;
|&amp;lt;samp&amp;gt;&amp;lt;span style=&amp;quot;border-right:2px solid;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;1000&amp;lt;/samp&amp;gt;&lt;br /&gt;
|&amp;lt;samp&amp;gt;10&amp;lt;span style=&amp;quot;border-right:2px solid;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;00&amp;lt;/samp&amp;gt;&lt;br /&gt;
|&amp;lt;samp&amp;gt;100&amp;lt;span style=&amp;quot;border-right:2px solid;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;0&amp;lt;/samp&amp;gt;&lt;br /&gt;
|&amp;lt;samp&amp;gt;1000&amp;lt;span style=&amp;quot;border-right:2px solid;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/samp&amp;gt;&lt;br /&gt;
|&amp;lt;samp&amp;gt;9&amp;lt;span style=&amp;quot;border-right:2px solid; background:#bfdfff;&amp;quot;&amp;gt;100,100&amp;lt;/span&amp;gt;9&amp;lt;/samp&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
* 0 埋め (ゼロパディング／ゼロフィル) された数値は桁数を維持して増減します。&lt;br /&gt;
* 負数 (-1)／小数 (0.1)／指数 (1.2e3) などには対応していません。&lt;br /&gt;
:{|class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot;|ゼロなし/あり !!colspan=&amp;quot;2&amp;quot;|負数の例 !! 小数の例 !! 指数の例&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;samp&amp;gt;99&amp;lt;/samp&amp;gt;&lt;br /&gt;
|&amp;lt;samp&amp;gt;&amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;00&amp;lt;/b&amp;gt;99&amp;lt;/samp&amp;gt;&lt;br /&gt;
|&amp;lt;samp&amp;gt;&amp;lt;span style=&amp;quot;border-left:2px solid;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;-1&amp;lt;/samp&amp;gt;&lt;br /&gt;
|&amp;lt;samp&amp;gt;-&amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;0&amp;lt;/b&amp;gt;&amp;lt;span style=&amp;quot;border-left:2px solid;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/samp&amp;gt;&lt;br /&gt;
|&amp;lt;samp&amp;gt;0.&amp;lt;span style=&amp;quot;border-left:2px solid;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;9&amp;lt;/b&amp;gt;&amp;lt;/samp&amp;gt;&lt;br /&gt;
|&amp;lt;samp&amp;gt;&amp;lt;span style=&amp;quot;border-left:2px solid; background:#bfdfff;&amp;quot;&amp;gt;9.8e1&amp;lt;/span&amp;gt;&amp;lt;/samp&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;samp&amp;gt;100&amp;lt;/samp&amp;gt;&lt;br /&gt;
|&amp;lt;samp&amp;gt;&amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;0&amp;lt;/b&amp;gt;100&amp;lt;/samp&amp;gt;&lt;br /&gt;
|&amp;lt;samp&amp;gt;&amp;lt;span style=&amp;quot;border-left:2px solid;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;-1&amp;lt;/samp&amp;gt;&lt;br /&gt;
|&amp;lt;samp&amp;gt;-&amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;1&amp;lt;/b&amp;gt;&amp;lt;span style=&amp;quot;border-left:2px solid;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/samp&amp;gt;&lt;br /&gt;
|&amp;lt;samp&amp;gt;0.&amp;lt;span style=&amp;quot;border-left:2px solid;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;10&amp;lt;/b&amp;gt;&amp;lt;/samp&amp;gt;&lt;br /&gt;
|&amp;lt;samp&amp;gt;&amp;lt;span style=&amp;quot;border-left:2px solid; background:#bfdfff;&amp;quot;&amp;gt;10.9e2&amp;lt;/span&amp;gt;&amp;lt;/samp&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;samp&amp;gt;101&amp;lt;/samp&amp;gt;&lt;br /&gt;
|&amp;lt;samp&amp;gt;&amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;0&amp;lt;/b&amp;gt;101&amp;lt;/samp&amp;gt;&lt;br /&gt;
|&amp;lt;samp&amp;gt;&amp;lt;span style=&amp;quot;border-left:2px solid;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;-1&amp;lt;/samp&amp;gt;&lt;br /&gt;
|&amp;lt;samp&amp;gt;-&amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;2&amp;lt;/b&amp;gt;&amp;lt;span style=&amp;quot;border-left:2px solid;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/samp&amp;gt;&lt;br /&gt;
|&amp;lt;samp&amp;gt;0.&amp;lt;span style=&amp;quot;border-left:2px solid;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;11&amp;lt;/b&amp;gt;&amp;lt;/samp&amp;gt;&lt;br /&gt;
|&amp;lt;samp&amp;gt;&amp;lt;span style=&amp;quot;border-left:2px solid; background:#bfdfff;&amp;quot;&amp;gt;11.10e3&amp;lt;/span&amp;gt;&amp;lt;/samp&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==ダウンロード==&lt;br /&gt;
[[メディア:数値を増減.zip|数値を増減.zip]]&lt;br /&gt;
; 内容&lt;br /&gt;
* 数値を減らす.ico&lt;br /&gt;
* 数値を減らす.js&lt;br /&gt;
* 数値を増やす.ico&lt;br /&gt;
* 数値を増やす.js&lt;br /&gt;
* 数値を増減.lib.js&lt;br /&gt;
&lt;br /&gt;
==更新履歴==&lt;br /&gt;
; 2020/05/17&lt;br /&gt;
* ダウンロード版を追加。&lt;br /&gt;
* 数値を増減.lib.js にコードの共通部をまとめ、#include する仕様に変更。&lt;br /&gt;
* 複数選択に試験対応（Mery 3.0.1 以降）。&lt;br /&gt;
** 矩形選択に試験対応（要 ☑マルチ カーソルを有効にする）。&lt;br /&gt;
**: 複数選択化して（選択範囲を行に分けて）から処理します。&lt;br /&gt;
* Document.TextLength が使える場合は使うようにした（Mery 3.0.1 以降）。&lt;br /&gt;
* 都合上、&amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;Mery 3.0.0 は動作対象外&amp;lt;/b&amp;gt;とした。&lt;br /&gt;
; 2016/02/28&lt;br /&gt;
* (数値を増やす) 正規表現を ([0-8]?)(9*) → ([0-9])(9*) に一部変更。他微調整。&lt;br /&gt;
*: 空文字マッチが発生し、処理にムダができていたのを改善。&lt;br /&gt;
* 文字数変化量を Document.Text.length の変化から算出するようにして単純化。&lt;br /&gt;
* 数値の増減処理を変更（二段階 replace していた処理を一段階に）。&lt;br /&gt;
; 2014/06/19&lt;br /&gt;
* 非選択時、探索終了位置(bx)の算出方法を変更。&lt;br /&gt;
* 数値の増減処理を変更（繰り上げ・繰り下げの場合分けを不要に）。&lt;br /&gt;
; 2014/06/17&lt;br /&gt;
* 初版公開。&lt;br /&gt;
&lt;br /&gt;
==ソースコード==&lt;br /&gt;
===数値を増やす.js===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;quot;数値を増減.lib.js&amp;quot;&lt;br /&gt;
&lt;br /&gt;
数値を増減(function(str){&lt;br /&gt;
 return str.replace(/([0-9])(9*)(?![0-9])/g,function($0,a,z){&lt;br /&gt;
  return (+a+1) + Array(z.length+1).join(&amp;quot;0&amp;quot;);&lt;br /&gt;
 });&lt;br /&gt;
});&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===数値を減らす.js===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;quot;数値を増減.lib.js&amp;quot;&lt;br /&gt;
&lt;br /&gt;
数値を増減(function(str){&lt;br /&gt;
 return str.replace(/([0-9]?)([1-9])(0*)(?![0-9])/g,function($0,y,a,z){&lt;br /&gt;
  return ((!y &amp;amp;&amp;amp; a==1 &amp;amp;&amp;amp; z)? &amp;quot;&amp;quot;: y+(a-1)) + Array(z.length+1).join(&amp;quot;9&amp;quot;);&lt;br /&gt;
  //桁下がり　    　y/a/z 　y/a/z&lt;br /&gt;
  //◆　する＞100 ⇒ /1/00⇒ / /99⇒99&lt;br /&gt;
  //◆しない＞1100⇒1/1/00⇒1/0/99⇒1099&lt;br /&gt;
 });&lt;br /&gt;
});&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===数値を増減.lib.js===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
function 数値を増減(ope) {&lt;br /&gt;
//　2014/06/15-2020/05/17&lt;br /&gt;
//・カーソル付近or選択範囲の半角数字を 1 増やす／減らす。&lt;br /&gt;
//※このファイルはマクロ登録する必要はありません。&lt;br /&gt;
doMultiAction(function(){&lt;br /&gt;
&lt;br /&gt;
var Document = Editor.ActiveDocument;&lt;br /&gt;
var Sel = Document.Selection;&lt;br /&gt;
var gap = Document.TextLength || Document.Text.length;&lt;br /&gt;
var anc = Sel.GetAnchorPos();&lt;br /&gt;
var act = Sel.GetActivePos();&lt;br /&gt;
var invert = (act&amp;lt;anc); //カーソルがアンカーより前か？&lt;br /&gt;
var isEmpty = Sel.IsEmpty;&lt;br /&gt;
if (isEmpty) { //非選択時、文字を探索して範囲選択&lt;br /&gt;
  var px = Sel.GetActivePointX(mePosLogical);&lt;br /&gt;
  var py = Sel.GetActivePointY(mePosLogical);&lt;br /&gt;
  var ln = Document.GetLine(py,0);&lt;br /&gt;
  var tx = 1 + ln.slice(0,px-1).match(/[0-9]*$/).index;&lt;br /&gt;
  var bx = tx + ln.slice(tx-1).match(/[0-9]*/)[0].length;&lt;br /&gt;
//  var bx = (px!==tx)? px: tx + ln.slice(tx-1).match(/[0-9]*/)[0].length; //★位取り対応&lt;br /&gt;
  Sel.SetActivePoint(mePosLogical,bx,py);&lt;br /&gt;
  Sel.SetAnchorPoint(mePosLogical,tx,py);&lt;br /&gt;
  invert = (px===tx); //カーソルは数値の先頭か？&lt;br /&gt;
}&lt;br /&gt;
Sel.Text = ope(Sel.Text);&lt;br /&gt;
gap = (Document.TextLength || Document.Text.length) - gap; //文字数変化量&lt;br /&gt;
Sel.SetAnchorPos(anc+(invert? gap: 0));&lt;br /&gt;
Sel.SetActivePos(act+(invert? 0: gap), !isEmpty);&lt;br /&gt;
&lt;br /&gt;
});&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
function doMultiAction(fn) {&lt;br /&gt;
  var Document = Editor.ActiveDocument;&lt;br /&gt;
  var Sel = Document.Selection;&lt;br /&gt;
  if (Sel.Mode == null) { fn(); return; } //◆Mery 2 以前&lt;br /&gt;
  &lt;br /&gt;
  BeginUndoGroup(); AddUndo();&lt;br /&gt;
  if (Sel.Mode===meModeBox) {&lt;br /&gt;
    Editor.ExecuteCommandById(2254); //範囲を行に分ける&lt;br /&gt;
    if (Sel.Mode===meModeBox) {&lt;br /&gt;
      EndUndoGroup(); Document.Undo();&lt;br /&gt;
      Status = &amp;quot;マルチカーソルを有効にしてください&amp;quot;; return;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  var len = Document.TextLength;&lt;br /&gt;
  var sels = [], anc, act;&lt;br /&gt;
  for (var i=0, n=Sel.Count||1; i&amp;lt;n; i++) {&lt;br /&gt;
    anc = Sel.GetAnchorPos(i), act = Sel.GetActivePos(i);&lt;br /&gt;
    sels[i] = {anc:anc-len, act:act-len}; //選択範囲をオフセットで記憶&lt;br /&gt;
  }&lt;br /&gt;
  Sel.Clear(); //選択解除&lt;br /&gt;
  for (var i=0, s; s=sels[i]; i++) {&lt;br /&gt;
    Sel.SetActivePos(s.act+len);&lt;br /&gt;
    Sel.SetAnchorPos(s.anc+len); //シングル選択&lt;br /&gt;
    fn(); //本処理&lt;br /&gt;
    anc = Sel.GetAnchorPos(), act = Sel.GetActivePos();&lt;br /&gt;
    sels[i] = {anc:anc, act:act}; //選択範囲を更新&lt;br /&gt;
    len = Document.TextLength;&lt;br /&gt;
  }&lt;br /&gt;
  for (var i=0, s; s=sels[i]; i++) Sel.AddPos(s.anc, s.act); //選択範囲を復元&lt;br /&gt;
  EndUndoGroup();&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==位取り対応==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
//  var bx = tx + ln.slice(tx-1).match(/[0-9]*/)[0].length;&lt;br /&gt;
  var bx = (px!==tx)? px: tx + ln.slice(tx-1).match(/[0-9]*/)[0].length; //★位取り対応&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
* 数値を増減.lib.js の内容を上記のように書き換えると、カーソル左側を基準に増減するようになります。&amp;lt;br&amp;gt;※カーソルが数字の左端にある場合／範囲選択時は、通常どおり増減します。&lt;br /&gt;
:{|class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
! ※左端 !! 千の位 !! 百の位 !! 十の位 !! 一の位 !! ※範囲選択時&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;samp&amp;gt;&amp;lt;span style=&amp;quot;border-left:2px solid;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;999&amp;lt;/b&amp;gt;&amp;lt;/samp&amp;gt;&lt;br /&gt;
|&amp;lt;samp&amp;gt;&amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;0&amp;lt;/b&amp;gt;&amp;lt;span style=&amp;quot;border-left:2px solid;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;000&amp;lt;/samp&amp;gt;&lt;br /&gt;
|&amp;lt;samp&amp;gt;&amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;9&amp;lt;/b&amp;gt;&amp;lt;span style=&amp;quot;border-left:2px solid;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;00&amp;lt;/samp&amp;gt;&lt;br /&gt;
|&amp;lt;samp&amp;gt;&amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;99&amp;lt;/b&amp;gt;&amp;lt;span style=&amp;quot;border-left:2px solid;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;0&amp;lt;/samp&amp;gt;&lt;br /&gt;
|&amp;lt;samp&amp;gt;&amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;999&amp;lt;/b&amp;gt;&amp;lt;span style=&amp;quot;border-left:2px solid;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/samp&amp;gt;&lt;br /&gt;
|&amp;lt;samp&amp;gt;9&amp;lt;span style=&amp;quot;border-right:2px solid; background:#bfdfff;&amp;quot;&amp;gt;99,99&amp;lt;/span&amp;gt;9&amp;lt;/samp&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;samp&amp;gt;&amp;lt;span style=&amp;quot;border-left:2px solid;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;1000&amp;lt;/b&amp;gt;&amp;lt;/samp&amp;gt;&lt;br /&gt;
|&amp;lt;samp&amp;gt;&amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;1&amp;lt;/b&amp;gt;&amp;lt;span style=&amp;quot;border-left:2px solid;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;000&amp;lt;/samp&amp;gt;&lt;br /&gt;
|&amp;lt;samp&amp;gt;&amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;10&amp;lt;/b&amp;gt;&amp;lt;span style=&amp;quot;border-left:2px solid;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;00&amp;lt;/samp&amp;gt;&lt;br /&gt;
|&amp;lt;samp&amp;gt;&amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;100&amp;lt;/b&amp;gt;&amp;lt;span style=&amp;quot;border-left:2px solid;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;0&amp;lt;/samp&amp;gt;&lt;br /&gt;
|&amp;lt;samp&amp;gt;&amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;1000&amp;lt;/b&amp;gt;&amp;lt;span style=&amp;quot;border-left:2px solid;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/samp&amp;gt;&lt;br /&gt;
|&amp;lt;samp&amp;gt;9&amp;lt;span style=&amp;quot;border-right:2px solid; background:#bfdfff;&amp;quot;&amp;gt;100,100&amp;lt;/span&amp;gt;9&amp;lt;/samp&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;samp&amp;gt;&amp;lt;span style=&amp;quot;border-left:2px solid;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;1001&amp;lt;/b&amp;gt;&amp;lt;/samp&amp;gt;&lt;br /&gt;
|&amp;lt;samp&amp;gt;&amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;2&amp;lt;/b&amp;gt;&amp;lt;span style=&amp;quot;border-left:2px solid;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;000&amp;lt;/samp&amp;gt;&lt;br /&gt;
|&amp;lt;samp&amp;gt;&amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;11&amp;lt;/b&amp;gt;&amp;lt;span style=&amp;quot;border-left:2px solid;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;00&amp;lt;/samp&amp;gt;&lt;br /&gt;
|&amp;lt;samp&amp;gt;&amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;101&amp;lt;/b&amp;gt;&amp;lt;span style=&amp;quot;border-left:2px solid;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;0&amp;lt;/samp&amp;gt;&lt;br /&gt;
|&amp;lt;samp&amp;gt;&amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;1001&amp;lt;/b&amp;gt;&amp;lt;span style=&amp;quot;border-left:2px solid;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/samp&amp;gt;&lt;br /&gt;
|&amp;lt;samp&amp;gt;9&amp;lt;span style=&amp;quot;border-right:2px solid; background:#bfdfff;&amp;quot;&amp;gt;101,101&amp;lt;/span&amp;gt;9&amp;lt;/samp&amp;gt;&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Masme</name></author>
	</entry>
	<entry>
		<id>https://www.haijin-boys.com/wiki/index.php?title=%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:%E6%95%B0%E5%80%A4%E3%82%92%E5%A2%97%E6%B8%9B.zip&amp;diff=5091</id>
		<title>ファイル:数値を増減.zip</title>
		<link rel="alternate" type="text/html" href="https://www.haijin-boys.com/wiki/index.php?title=%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:%E6%95%B0%E5%80%A4%E3%82%92%E5%A2%97%E6%B8%9B.zip&amp;diff=5091"/>
		<updated>2020-05-17T01:13:13Z</updated>

		<summary type="html">&lt;p&gt;Masme: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Masme</name></author>
	</entry>
	<entry>
		<id>https://www.haijin-boys.com/wiki/index.php?title=%E9%80%A3%E7%95%AA%E3%82%92%E6%8C%BF%E5%85%A5&amp;diff=5090</id>
		<title>連番を挿入</title>
		<link rel="alternate" type="text/html" href="https://www.haijin-boys.com/wiki/index.php?title=%E9%80%A3%E7%95%AA%E3%82%92%E6%8C%BF%E5%85%A5&amp;diff=5090"/>
		<updated>2020-05-17T01:11:35Z</updated>

		<summary type="html">&lt;p&gt;Masme: マクロ更新&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;float:right&amp;quot;&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
連番を挿入するマクロです。&lt;br /&gt;
&lt;br /&gt;
[[ファイル:InsertSequentialNumber_Popup.png]]&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 連番を挿入&lt;br /&gt;
| 連番の挿入を実行します。&amp;lt;br&amp;gt;非選択時は、個数分の連番行を挿入します。&amp;lt;br&amp;gt;通常選択／矩形選択時は、&amp;lt;b&amp;gt;論理行頭&amp;lt;/b&amp;gt;に連番を挿入します。&amp;lt;br&amp;gt;複数選択時は、&amp;lt;b&amp;gt;範囲先頭&amp;lt;/b&amp;gt;に連番を挿入します。&lt;br /&gt;
|-&lt;br /&gt;
! 設定の記憶&lt;br /&gt;
| 設定の一時的な記憶。&amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;Mery 3.0.0 以降で表示・利用できます。&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;挿入実行時か &amp;lt;b&amp;gt;[今すぐ記憶]&amp;lt;/b&amp;gt; で記憶され、&amp;lt;b&amp;gt;[記憶を消去]&amp;lt;/b&amp;gt; で消去します。&lt;br /&gt;
|-&lt;br /&gt;
! 形式&lt;br /&gt;
| 連番の種類（スタイル）。&amp;lt;br&amp;gt;プリセット（あらかじめ用意した設定）の適応もここで行います。&lt;br /&gt;
|-&lt;br /&gt;
! 開始&lt;br /&gt;
| 開始番号（0以上の整数）。&lt;br /&gt;
|-&lt;br /&gt;
! 個数&lt;br /&gt;
| 個数（1以上の整数）。&amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;非選択時のみ変更できます。&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;..数値&amp;lt;/code&amp;gt; と入力すると、数値を終了番号とみなします。&amp;lt;br&amp;gt;たとえば、&amp;lt;code&amp;gt;..9&amp;lt;/code&amp;gt; なら9までで終わる連番になるよう個数を逆算します。&lt;br /&gt;
|-&lt;br /&gt;
! 増分&lt;br /&gt;
| 増加幅（0以上の整数）。&lt;br /&gt;
|-&lt;br /&gt;
! 桁数&lt;br /&gt;
| 最低桁数（0以上の整数。0 で最長桁揃え）。&amp;lt;br&amp;gt;桁埋めしたくない場合、1 を指定してください。&lt;br /&gt;
|-&lt;br /&gt;
! 桁埋&lt;br /&gt;
| 桁埋め文字（1文字）。&amp;lt;b&amp;gt;結合文字列には対応していません。&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;空欄にすると、スタイル既定の桁埋め文字が適用されます。&lt;br /&gt;
|-&lt;br /&gt;
! 接頭&amp;lt;br&amp;gt;接尾&lt;br /&gt;
| 連番の前後に付加する文字列。下記の特殊記法が使えます。&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;%t&amp;lt;/code&amp;gt; (タブ)、&amp;lt;code&amp;gt;%%&amp;lt;/code&amp;gt; (文字 %)、&amp;lt;code&amp;gt;%A&amp;lt;/code&amp;gt; (始値)、&amp;lt;code&amp;gt;%Z&amp;lt;/code&amp;gt; (終値)&lt;br /&gt;
|-&lt;br /&gt;
! (プレビュー)&amp;lt;br&amp;gt;もっと見る&lt;br /&gt;
| 連番の内容（最初と最後）の下見です。&amp;lt;br&amp;gt;&amp;lt;b&amp;gt;[もっと見る]&amp;lt;/b&amp;gt; で最初6個と最後6個を下見できます。&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==注意点==&lt;br /&gt;
* 連番の限度は &amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;9007兆&amp;lt;/b&amp;gt;1992億5474万0991 (2&amp;lt;sup&amp;gt;53&amp;lt;/sup&amp;gt;−1) です。&amp;lt;br&amp;gt;JavaScript の仕様では、この数値を超えると整数の取り扱いに不都合が生じます。&lt;br /&gt;
* 個数の限度は初期設定で&amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;10万&amp;lt;/b&amp;gt;個です。&lt;br /&gt;
* 桁埋・接頭・接尾の入力時にキャンセルすると、前の状態に戻るのではなく、空欄となります。&amp;lt;br&amp;gt;これは仕様上解決できませんので、ご了承ください。&lt;br /&gt;
* 桁埋・接頭・接尾・プレビューでは、下記のような代替表示が行われます。&lt;br /&gt;
** 半角空白 (U+0020) → &amp;lt;code&amp;gt;␣&amp;lt;/code&amp;gt; (U+2423) と表示&lt;br /&gt;
** 全角空白 (U+3000) → &amp;lt;code&amp;gt;〼&amp;lt;/code&amp;gt; (U+303C) と表示&lt;br /&gt;
** 水平タブ (U+0009) → &amp;lt;code&amp;gt;&amp;amp;nbsp;›&amp;amp;nbsp;&amp;lt;/code&amp;gt; (U+203A) と表示&lt;br /&gt;
* プレビューでは、最長桁数を実際より少なく見積もることがあります。&lt;br /&gt;
* 設定の記憶は、同窓で記憶を共有・保持します（＝別窓になると別記憶になる）。&lt;br /&gt;
** 個数については、非選択時のみ更新されます。&lt;br /&gt;
&lt;br /&gt;
==ダウンロード==&lt;br /&gt;
[[メディア:連番を挿入.zip|連番を挿入.zip]]&lt;br /&gt;
; 内容&lt;br /&gt;
* 連番を挿入.ico&lt;br /&gt;
* 連番を挿入.js&lt;br /&gt;
&lt;br /&gt;
==更新履歴==&lt;br /&gt;
[[ファイル:連番を挿入.zip]]&lt;br /&gt;
&lt;br /&gt;
; 2020/05/17 (rev.4)&lt;br /&gt;
* .zip 内の Macros フォルダを除去。ファイルのみ収録。&lt;br /&gt;
* 複数選択に試験対応（Mery 3.0.1 以降）。&lt;br /&gt;
*: 選択範囲の数を個数として、範囲先頭に連番を挿入します。&lt;br /&gt;
* 元に戻すで選択範囲も戻すようにした（Mery 3.0.1 以降）。&lt;br /&gt;
** 都合上、&amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;Mery 3.0.0 は動作対象外&amp;lt;/b&amp;gt;とした。&lt;br /&gt;
* 設定を一時的ながら記憶できるようにした（Mery 3.0.0 以降）。&lt;br /&gt;
** メニューに「設定の記憶」を追加。&lt;br /&gt;
* 個数の限度を指定できるようにした（初期値10万個）。&lt;br /&gt;
*: 個数が多いと PC の性能によってはクラッシュするため。&lt;br /&gt;
** 個数の入力ダイアログに限度の表示を追加。&lt;br /&gt;
* 連番の挿入を実行後、ステータスバーに処理時間を表示するようにした。&lt;br /&gt;
* スタイルの定義 range を廃止し、min と max に分離。&lt;br /&gt;
* 指定した style が存在しない場合、初期設定の style に戻す仕様に変更。&lt;br /&gt;
; 2019/12/30 (rev.3)&lt;br /&gt;
* 1億以上の漢数字連番で万億の文字が出力されない場合がある不具合を修正。&lt;br /&gt;
*: 例＞ 「一億二万三」が「一億二三」に、「一兆九億八万」が「一兆九八」になる。&lt;br /&gt;
; 2019/12/21 (rev.2)&lt;br /&gt;
* アイコンファイルを同梱し、読み込むようにした。&lt;br /&gt;
* 連番の挿入を実行後、実行範囲を行選択するようにした。&lt;br /&gt;
* 「プレビュー」を一番下に移動し、「もっと見る」を追加。&lt;br /&gt;
* スタイルの概念を導入（英字・仮名・ローマ数字・漢数字連番などに対応）。&lt;br /&gt;
** メニューに「形式」を追加。「プリセット」は削除。&lt;br /&gt;
* 個数で、&amp;lt;code&amp;gt;..数値&amp;lt;/code&amp;gt; と入力すると終了番号とみなすようにした。&lt;br /&gt;
* 指定した桁数までしか桁埋めしない仕様に変更。&lt;br /&gt;
** 桁数を 0 にすると最長桁揃えができるようにした。&lt;br /&gt;
* 桁埋を空欄にした場合、スタイルの既定を適用する仕様に変更。&lt;br /&gt;
* 接頭・接尾で、% による特殊記法を導入。&lt;br /&gt;
* 入力ダイアログの見出しを「項目名:」→「項目名: 現在値」に変更。&lt;br /&gt;
* 開始・個数・増分・桁数で、限度を超過した数値を受け付けないようにした。&lt;br /&gt;
* 桁埋で、2文字以上を指定した場合、最初の1文字のみ受け付けるようにした。&lt;br /&gt;
* 桁埋・接頭・接尾・プレビューで、文字 &amp;amp;amp; が正常に表示されないのを修正。&lt;br /&gt;
* 代替表示の対象に全角空白を追加。空欄を除外。&lt;br /&gt;
* サロゲートペアに対応。&lt;br /&gt;
; 2013/08/25 (rev.1)&lt;br /&gt;
* 初版公開。&lt;br /&gt;
&lt;br /&gt;
==連番の形式==&lt;br /&gt;
「形式」の内容は、ソースコードの最初あたりで定義されています。&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
//■形式&lt;br /&gt;
// ----------------- ↓ここより下に定義を追加&lt;br /&gt;
/* スタイル切替の例 */&lt;br /&gt;
,{text:&amp;quot;%{style.text}\t%{style.pad}埋&amp;quot;, style:&amp;quot;dec&amp;quot;}&lt;br /&gt;
,{text:&amp;quot;%{style.text}\t%{style.pad}埋&amp;quot;, style:&amp;quot;up-roman&amp;quot;}&lt;br /&gt;
,{text:&amp;quot;%{style.text}\t%{style.pad}埋&amp;quot;, style:&amp;quot;up-latin&amp;quot;}&lt;br /&gt;
,{text:&amp;quot;%{style.text}\t%{style.pad}埋&amp;quot;, style:&amp;quot;hira&amp;quot;}&lt;br /&gt;
,{text:&amp;quot;%{style.text}\t%{style.pad}埋&amp;quot;, style:&amp;quot;kanji&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
/* プリセットの例 */&lt;br /&gt;
,{text:&amp;quot;(1),(2),(3) ...&amp;quot;, style:&amp;quot;dec&amp;quot;, prefix:&amp;quot;(&amp;quot;, suffix:&amp;quot;)&amp;quot;}&lt;br /&gt;
,{text:&amp;quot;1.␣,2.␣,3.␣ ...&amp;quot;, style:&amp;quot;dec&amp;quot;, prefix:&amp;quot;&amp;quot;, suffix:&amp;quot;. &amp;quot;}&lt;br /&gt;
,{text:&amp;quot;1/Z › ,2/Z › ,3/Z › ... (Z:終値)&amp;quot;, style:&amp;quot;dec&amp;quot;, prefix:&amp;quot;&amp;quot;, suffix:&amp;quot;/%Z%t&amp;quot;}&lt;br /&gt;
,{text:&amp;quot;A ... Z [%{count}個]&amp;quot;, style:&amp;quot;up-latin&amp;quot;, start:&amp;quot;1&amp;quot;, count:&amp;quot;26&amp;quot;, step:&amp;quot;1&amp;quot;}&lt;br /&gt;
,{text:&amp;quot;あ ... ん [%{count}個]&amp;quot;, style:&amp;quot;hira&amp;quot;, start:&amp;quot;1&amp;quot;, count:&amp;quot;48&amp;quot;, step:&amp;quot;1&amp;quot;}&lt;br /&gt;
,{text:&amp;quot;北海道 ... 沖縄県 [%{count}個]&amp;quot;, style:&amp;quot;pref&amp;quot;, start:&amp;quot;1&amp;quot;, count:&amp;quot;47&amp;quot;, step:&amp;quot;1&amp;quot;}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
,{text:&amp;quot;表示文&amp;quot;, style:&amp;quot;スタイル&amp;quot;, start:&amp;quot;開始&amp;quot;, count:&amp;quot;個数&amp;quot;, step:&amp;quot;増分&amp;quot;, digit:&amp;quot;桁数&amp;quot;, pad:&amp;quot;桁埋&amp;quot;, prefix:&amp;quot;接頭&amp;quot;, suffix:&amp;quot;接尾&amp;quot;}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; style, start, count, step, digit, pad, prefix, suffix&lt;br /&gt;
: 適用する設定。&lt;br /&gt;
: ※&amp;lt;code&amp;gt;style&amp;lt;/code&amp;gt; に存在しないスタイル名を指定すると、適用時にエラーになります。&lt;br /&gt;
: ※範囲選択時は個数が固定されるため、&amp;lt;code&amp;gt;count&amp;lt;/code&amp;gt; の指定は無視されます。&lt;br /&gt;
; text&lt;br /&gt;
: メニューに表示する文章。下記の特殊記法が使えます。&lt;br /&gt;
:* &amp;lt;code&amp;gt;%{xxx}&amp;lt;/code&amp;gt;：適用する設定 xxx の値。たとえば、&amp;lt;code&amp;gt;%{start}&amp;lt;/code&amp;gt; など。&lt;br /&gt;
:* &amp;lt;code&amp;gt;%{style.xxx}&amp;lt;/code&amp;gt;：適用する style の xxx の値。たとえば、&amp;lt;code&amp;gt;%{style.text}&amp;lt;/code&amp;gt; など。&lt;br /&gt;
: ※ xxx が存在しない場合、&amp;lt;code&amp;gt;%{...}&amp;lt;/code&amp;gt; 部分は置換されず、そのまま表示されます。&lt;br /&gt;
: ※&amp;lt;code&amp;gt;pad&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;prefix&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;suffix&amp;lt;/code&amp;gt; の値には代替表示が適用されます。&lt;br /&gt;
&lt;br /&gt;
===定義済みスタイル===&lt;br /&gt;
初期状態で定義されているスタイルです。&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! style !! 形式表示 !! 例 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| dec || 1,2,3 || 0,1,2,3 ... 9,10,11 ... || 算用数字（アラビア数字）。&lt;br /&gt;
|-&lt;br /&gt;
| dec-full || １,２,３ || ０,１,２,３ ... ９,１０,１１ ... || 全角算用数字。&lt;br /&gt;
|-&lt;br /&gt;
| dec-kanji || 一,二,三 || 〇,一,二,三 ... 九,一〇,一一 ... || 漢数字・位取り表記。&lt;br /&gt;
|-&lt;br /&gt;
| up-roman || I,II,III || I,II,III ... IX,X,XI ... ||rowspan=&amp;quot;2&amp;quot;| ローマ数字（英字表記）。1から3999まで。&amp;lt;br&amp;gt;0と4000以上は算用数字になります。&lt;br /&gt;
|-&lt;br /&gt;
| lo-roman || i,ii,iii || i,ii,iii ... ix,x,xi ...&lt;br /&gt;
|-&lt;br /&gt;
| up-latin || A,B,C || A,B,C ... Z,AA,AB ... ||rowspan=&amp;quot;2&amp;quot;| 英字（ラテン・アルファベット）。26種。&lt;br /&gt;
|-&lt;br /&gt;
| lo-latin || a,b,c || a,b,c ... z,aa,ab ...&lt;br /&gt;
|-&lt;br /&gt;
| up-latin-full || Ａ,Ｂ,Ｃ || Ａ,Ｂ,Ｃ ... Ｚ,ＡＡ,ＡＢ ... ||rowspan=&amp;quot;2&amp;quot;| 全角英字。&lt;br /&gt;
|-&lt;br /&gt;
| lo-latin-full || ａ,ｂ,ｃ || ａ,ｂ,ｃ ... ｚ,ａａ,ａｂ ...&lt;br /&gt;
|-&lt;br /&gt;
| up-greek || Α,Β,Γ || Α,Β,Γ ... Ω,ΑΑ,ΑΒ ... ||rowspan=&amp;quot;2&amp;quot;| ギリシャ文字。24種。&lt;br /&gt;
|-&lt;br /&gt;
| lo-greek || α,β,γ || α,β,γ ... ω,αα,αβ ...&lt;br /&gt;
|-&lt;br /&gt;
| hira || あ,い,う || あ,い,う ... ん,ああ,あい ... ||rowspan=&amp;quot;2&amp;quot;| 仮名文字・五十音順。48種。&lt;br /&gt;
|-&lt;br /&gt;
| kata || ア,イ,ウ || ア,イ,ウ ... ン,アア,アイ ...&lt;br /&gt;
|-&lt;br /&gt;
| kata-half || ｱ,ｲ,ｳ || ｱ,ｲ,ｳ ... ﾝ,ｱｱ,ｱｲ ... || 半角カタカナ・五十音順。46種（「ヰヱ」が無い）。&lt;br /&gt;
|-&lt;br /&gt;
| hira-iroha || い,ろ,は || い,ろ,は ... す,いい,いろ ... ||rowspan=&amp;quot;2&amp;quot;| 仮名文字・いろは順。47種（「ン」が無い）。&lt;br /&gt;
|-&lt;br /&gt;
| kata-iroha || イ,ロ,ハ || イ,ロ,ハ ... ス,イイ,イロ ...&lt;br /&gt;
|-&lt;br /&gt;
| kanji || 一,十,百 || 〇,一,二,三 ... 九,十,十一 ... || 漢数字。&lt;br /&gt;
|-&lt;br /&gt;
| daiji || 壱,拾,百 || 零,壱,弐,参 ... 九,拾,拾壱 ... || 漢数字・大字。&lt;br /&gt;
|-&lt;br /&gt;
| circled-num || ①,②,③ || ①,②,③ ... ⑨,⑩,⑪ ... || 丸数字。1から20まで。&lt;br /&gt;
|-&lt;br /&gt;
| stem || 十干 || 甲,乙,丙 ... 癸,甲,乙 ... || 十干（天干 / Heavenly Stems）。10種ループ。&lt;br /&gt;
|-&lt;br /&gt;
| branch || 十二支 || 子,丑,寅 ... 亥,子,丑 ... || 十二支（地支 / Earthly Branches）。12種ループ。&lt;br /&gt;
|-&lt;br /&gt;
| stem-branch || 六十干支 || 甲子,乙丑,丙寅 ... || 六十干支。60種ループ。&lt;br /&gt;
|-&lt;br /&gt;
| pref || 都道府県 || 北海道,青森県,岩手県 ... || 都道府県（prefecture）。47種ループ。&lt;br /&gt;
|-&lt;br /&gt;
| hitotsu || 一 || 一,一,一 ... || 一つ書き。1種ループ。&lt;br /&gt;
|-&lt;br /&gt;
| naka || ・ || ・,・,・ ... || 中黒・中点。和文の箇条書きで用いられる。&lt;br /&gt;
|-&lt;br /&gt;
| disc || • || •,•,• ... || Bullet（ビュレット）。欧文の箇条書きで用いる。&lt;br /&gt;
|-&lt;br /&gt;
| none || 無し || || 連番無し。&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
|-&lt;br /&gt;
| up-hex || 1,F,10 || 0,1,2,3 ... F,10,11 ... ||rowspan=&amp;quot;2&amp;quot;| 十六進数（hexadecimal）。&lt;br /&gt;
|-&lt;br /&gt;
| lo-hex || 1,f,10 || 0,1,2,3 ... f,10,11 ...&lt;br /&gt;
|-&lt;br /&gt;
| up-latin-add || A,Z,ZA || A,B,C ... Z,ZA,ZB ... ||rowspan=&amp;quot;2&amp;quot;| 英字（ローマ数字式）。260まで。&lt;br /&gt;
|-&lt;br /&gt;
| lo-latin-add || a,z,za || a,b,c ... z,za,zb ...&lt;br /&gt;
|-&lt;br /&gt;
| up-roman-full || Ｉ,Ｍ || Ｉ,ＩＩ,ＩＩＩ ... ||rowspan=&amp;quot;2&amp;quot;| ローマ数字（全角英字表記）。&lt;br /&gt;
|-&lt;br /&gt;
| lo-roman-full || ｉ,ｍ || ｉ,ｉｉ,ｉｉｉ ...&lt;br /&gt;
|-&lt;br /&gt;
| up-roman-num || Ⅰ,Ⅹ || Ⅰ,ⅠⅠ,ⅠⅠⅠ ... ||rowspan=&amp;quot;2&amp;quot;| ローマ数字。1から39まで。&lt;br /&gt;
|-&lt;br /&gt;
| lo-roman-num || ⅰ,ⅹ || ⅰ,ⅰⅰ,ⅰⅰⅰ ...&lt;br /&gt;
|-&lt;br /&gt;
| up-roman-lig || Ⅰ,Ⅱ,Ⅲ || Ⅰ,Ⅱ,Ⅲ ... Ⅸ,Ⅹ,ⅩⅠ ... ||rowspan=&amp;quot;2&amp;quot;| ローマ数字（合字表記）。1から39まで。&lt;br /&gt;
|-&lt;br /&gt;
| lo-roman-lig || ⅰ,ⅱ,ⅲ || ⅰ,ⅱ,ⅲ ... ⅸ,ⅹ,ⅹⅰ ...&lt;br /&gt;
|-&lt;br /&gt;
| circled-num || ①,②,③ || ⓪,①,②,③ ... ⑨,⑩,⑪ ... || 丸数字。0から50まで。⓪と㉑以上は Unicode 文字。&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===スタイルの定義===&lt;br /&gt;
スタイルについては HTML / CSS の @counter-style を一部参考にしています。&lt;br /&gt;
* [https://www.w3.org/TR/css-counter-styles-3/ W3C - CSS Counter Styles Level 3] / [https://triple-underscore.github.io/css-counter-styles-ja.html 非公式日本語訳]&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
//■スタイル&lt;br /&gt;
// ----------------- ↓ここより下に定義を追加&lt;br /&gt;
/* system:&amp;quot;numeric&amp;quot; の例 */&lt;br /&gt;
,&amp;quot;dec-full&amp;quot;:{label:&amp;quot;１,２,３&amp;quot;, text:&amp;quot;１,２,３ ... ９,１０,１１ ...&amp;quot;,&lt;br /&gt;
 system:&amp;quot;numeric&amp;quot;, pad:&amp;quot;０&amp;quot;, zero:&amp;quot;０&amp;quot;, symbols:&amp;quot;０１２３４５６７８９&amp;quot;.split(&amp;quot;&amp;quot;)}&lt;br /&gt;
&lt;br /&gt;
/* system:&amp;quot;alphabetic&amp;quot; の例 */&lt;br /&gt;
,&amp;quot;up-latin&amp;quot;:{label:&amp;quot;A,B,C&amp;quot;, text:&amp;quot;A,B,C ... Z,AA,AB ... (26種)&amp;quot;,&lt;br /&gt;
 system:&amp;quot;alphabetic&amp;quot;, pad:&amp;quot; &amp;quot;, symbols:&amp;quot;ABCDEFGHIJKLMNOPQRSTUVWXYZ&amp;quot;.split(&amp;quot;&amp;quot;)}&lt;br /&gt;
&lt;br /&gt;
/* system:&amp;quot;cyclic&amp;quot; の例 */&lt;br /&gt;
,&amp;quot;stem&amp;quot;:{label:&amp;quot;十干&amp;quot;, text:&amp;quot;甲,乙,丙 ... 癸,甲,乙 ... (10種)&amp;quot;,&lt;br /&gt;
 system:&amp;quot;cyclic&amp;quot;, pad:&amp;quot;　&amp;quot;, symbols:&amp;quot;甲乙丙丁戊己庚辛壬癸&amp;quot;.split(&amp;quot;&amp;quot;)}&lt;br /&gt;
&lt;br /&gt;
/* system:&amp;quot;additive&amp;quot; の例 */&lt;br /&gt;
,&amp;quot;up-roman&amp;quot;:{label:&amp;quot;I,II,III&amp;quot;, text:&amp;quot;I,II,III ... IX,X,XI ... (～3999)&amp;quot;, max:3999,&lt;br /&gt;
 system:&amp;quot;additive&amp;quot;, pad:&amp;quot; &amp;quot;, symbols:[1000,&amp;quot;M&amp;quot;,900,&amp;quot;CM&amp;quot;,500,&amp;quot;D&amp;quot;,400,&amp;quot;CD&amp;quot;,100,&amp;quot;C&amp;quot;,90,&amp;quot;XC&amp;quot;,50,&amp;quot;L&amp;quot;,40,&amp;quot;XL&amp;quot;,10,&amp;quot;X&amp;quot;,9,&amp;quot;IX&amp;quot;,5,&amp;quot;V&amp;quot;,4,&amp;quot;IV&amp;quot;,1,&amp;quot;I&amp;quot;]}&lt;br /&gt;
&lt;br /&gt;
/* system:&amp;quot;kanji&amp;quot; の例 */&lt;br /&gt;
,&amp;quot;daiji&amp;quot;:{label:&amp;quot;壱,拾,百&amp;quot;, text:&amp;quot;壱,弐,参 ... 九,拾,拾壱 ...&amp;quot;,&lt;br /&gt;
 system:&amp;quot;kanji&amp;quot;, pad:&amp;quot;　&amp;quot;, zero:&amp;quot;零&amp;quot;, symbols:[[&amp;quot;&amp;quot;,&amp;quot;壱&amp;quot;,&amp;quot;弐&amp;quot;,&amp;quot;参&amp;quot;,&amp;quot;四&amp;quot;,&amp;quot;五&amp;quot;,&amp;quot;六&amp;quot;,&amp;quot;七&amp;quot;,&amp;quot;八&amp;quot;,&amp;quot;九&amp;quot;],[&amp;quot;&amp;quot;,&amp;quot;拾&amp;quot;,&amp;quot;百&amp;quot;,&amp;quot;千&amp;quot;],[&amp;quot;&amp;quot;,&amp;quot;万&amp;quot;,&amp;quot;億&amp;quot;,&amp;quot;兆&amp;quot;]]}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
,&amp;quot;スタイル名&amp;quot;:{label:&amp;quot;形式表示&amp;quot;, text:&amp;quot;表示文&amp;quot;, min:下限値, max:上限値,&lt;br /&gt;
 system:&amp;quot;生成方式&amp;quot;, pad:&amp;quot;桁埋&amp;quot;, zero:&amp;quot;ゼロの表現&amp;quot;, symbols:配列}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
; label&lt;br /&gt;
: 形式表示。メニューの「形式: ○○○」の ○○○ 部分に使用されます。&lt;br /&gt;
; text&lt;br /&gt;
: 表示文。&amp;lt;code&amp;gt;%{style.text}&amp;lt;/code&amp;gt; で表示される文章。&lt;br /&gt;
; min, max&lt;br /&gt;
: 生成できる連番の限度。限度を超えると算用数字の連番に移行します。&lt;br /&gt;
; pad&lt;br /&gt;
: スタイル既定の桁埋め文字。&lt;br /&gt;
; zero&lt;br /&gt;
: ゼロの表現。省略するとゼロ非対応とみなし、算用数字の &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; を出力します。&lt;br /&gt;
; system, symbols&lt;br /&gt;
:{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! system !! 説明・例示&lt;br /&gt;
|-&lt;br /&gt;
| numeric || 位取り記数法式の連番を生成します。&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;symbols:[&amp;quot;0&amp;quot;,&amp;quot;1&amp;quot;,&amp;quot;2&amp;quot;]&amp;lt;/code&amp;gt; → 1, 2, 10, 11, 12, 20, 21 ...&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;symbols:[&amp;quot;a&amp;quot;,&amp;quot;b&amp;quot;,&amp;quot;c&amp;quot;]&amp;lt;/code&amp;gt; → b, c, ba, bb, bc, ca, cb ...&lt;br /&gt;
|-&lt;br /&gt;
| alphabetic || アルファベット式の連番を生成します。&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;symbols:[&amp;quot;a&amp;quot;,&amp;quot;b&amp;quot;,&amp;quot;c&amp;quot;]&amp;lt;/code&amp;gt; → a, b, c, aa, ab, ac, ba ...&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;symbols:[&amp;quot;0&amp;quot;,&amp;quot;1&amp;quot;,&amp;quot;2&amp;quot;]&amp;lt;/code&amp;gt; → 0, 1, 2, 00, 01, 02, 10 ...&lt;br /&gt;
|-&lt;br /&gt;
| cyclic || 巡回する連番を生成します。&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;symbols:[&amp;quot;a&amp;quot;,&amp;quot;b&amp;quot;,&amp;quot;c&amp;quot;]&amp;lt;/code&amp;gt; → a, b, c, a, b, c, a ...&lt;br /&gt;
|-&lt;br /&gt;
| symbolic || 段々重ねとなる連番を生成します。&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;symbols:[&amp;quot;a&amp;quot;,&amp;quot;b&amp;quot;,&amp;quot;c&amp;quot;]&amp;lt;/code&amp;gt; → a, b, c, aa, bb, cc, aaa ...&lt;br /&gt;
|-&lt;br /&gt;
| additive || ローマ数字式の連番を生成します。&lt;br /&gt;
|-&lt;br /&gt;
| kanji || 漢数字式の連番を生成します。&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Masme</name></author>
	</entry>
	<entry>
		<id>https://www.haijin-boys.com/wiki/index.php?title=%E8%A1%8C%E4%B8%A6%E3%81%B9%E6%9B%BF%E3%81%88&amp;diff=5089</id>
		<title>行並べ替え</title>
		<link rel="alternate" type="text/html" href="https://www.haijin-boys.com/wiki/index.php?title=%E8%A1%8C%E4%B8%A6%E3%81%B9%E6%9B%BF%E3%81%88&amp;diff=5089"/>
		<updated>2020-05-17T01:09:39Z</updated>

		<summary type="html">&lt;p&gt;Masme: マクロ更新&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;float:right&amp;quot;&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
選択範囲（矩形可）の文字列を比較し、論理行単位で並べ替えるマクロです。&lt;br /&gt;
&lt;br /&gt;
[[ファイル:SortLineBySelection.png]]&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!※全行を&lt;br /&gt;
|&amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;※非選択時に表示。&amp;lt;/b&amp;gt;文書全体が並べ替えの対象になります。&lt;br /&gt;
|-&lt;br /&gt;
!並べ替え(Unicode)&lt;br /&gt;
|Unicode順の並べ替えを実行します。&lt;br /&gt;
|-&lt;br /&gt;
!並べ替え(SJIS風)&lt;br /&gt;
|Shift_JIS風の並べ替えを実行します。→ [[#並べ替え(SJIS風)]]&lt;br /&gt;
|-&lt;br /&gt;
!昇順 - 降順&lt;br /&gt;
|昇順 (A→Z) か降順 (Z→A) かを切り替えます。&lt;br /&gt;
|-&lt;br /&gt;
!文字順 - 数値順&lt;br /&gt;
|半角数字列の並べ方を切り替えます。&amp;lt;br&amp;gt;文字順 (1＜10＜2) は、文字として一字ずつ比較します。&amp;lt;br&amp;gt;数値順 (1＜2＜10) は、非負整数（正の整数）として比較します。→ [[#数値順]]&lt;br /&gt;
|-&lt;br /&gt;
!大文字/小文字を区別する&lt;br /&gt;
|しない場合、大文字を小文字とみなします。&lt;br /&gt;
|-&lt;br /&gt;
!全角/半角英数を区別する&lt;br /&gt;
|しない場合、全角英数を半角とみなします。&lt;br /&gt;
|-&lt;br /&gt;
!半角/全角カナを区別する&lt;br /&gt;
|しない場合、半角カナを全角とみなします。&lt;br /&gt;
|-&lt;br /&gt;
!ひらがな/カタカナを区別する&lt;br /&gt;
|しない場合、ひらがなをカタカナとみなします。&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==ダウンロード==&lt;br /&gt;
[[メディア:行並べ替え.zip|行並べ替え.zip]]&lt;br /&gt;
; 内容&lt;br /&gt;
* 行並べ替え.ico&lt;br /&gt;
* 行並べ替え.js&lt;br /&gt;
&lt;br /&gt;
==更新履歴==&lt;br /&gt;
[[ファイル:行並べ替え.zip]]&lt;br /&gt;
&lt;br /&gt;
; 2020/05/17 (rev.11)&lt;br /&gt;
* .zip 内の Macros フォルダを除去。ファイルのみ収録。&lt;br /&gt;
* .ico の更新日時を .js と同期するのをやめた。&lt;br /&gt;
* 複数選択時は並べ替え不可とした（対応に手間取るため）。&lt;br /&gt;
* 元に戻すで選択範囲も戻すようにした（Mery 3.0.1 以降）。&lt;br /&gt;
** 都合上、&amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;Mery 3.0.0 は動作対象外&amp;lt;/b&amp;gt;とした。&lt;br /&gt;
* ステータスバーの表示を「行並べ替え (処理時間: xx秒)」→「行並べ替え (xx秒)」に変更。&lt;br /&gt;
* break ラベル文 → new function 式 &amp;amp; return に変更。&lt;br /&gt;
; 2019/04/12 (rev.10)&lt;br /&gt;
* Quit() → break ラベル文に変更。&lt;br /&gt;
*: Chakra エンジンでは Quit() 非対応につき Mery 2.7.0 でエラーを返していたため。&lt;br /&gt;
* 安定ソートを明文化し、スクリプトエンジンの実装に依存しないようにした。&lt;br /&gt;
; 2018/04/15 (rev.9)&lt;br /&gt;
* 64 ビット版 Mery で動作しない不具合を修正（rev.8 のみの不具合）。&lt;br /&gt;
*: PopupMenu.Add() の Id に負の値を使用しないよう変更。&lt;br /&gt;
; 2017/06/25 (rev.8)&lt;br /&gt;
* アイコンファイルに24x24・32x32・48x48の画像を追加。&lt;br /&gt;
* 非選択時、並べ替え不可 → 文書全体を対象にする仕様に変更。&lt;br /&gt;
* 折り返し行を探査する方法を変更し、高速化（1万表示行で4秒→0.1秒）。&lt;br /&gt;
* 並べ替え実行後、実行範囲を行選択する際、末尾の改行を含めるようにした。&lt;br /&gt;
* 「並べ替え(Shift_JIS風)」→「並べ替え(SJIS風)」に改称。&lt;br /&gt;
* 「辞書順」→「文字順」に改称。&lt;br /&gt;
* 「文字順」→「数値順」に初期設定を変更。&lt;br /&gt;
* 「数値順」で同値の場合、文字順 → 先頭ゼロ比較に変更し、高速化。&lt;br /&gt;
* 「半角/全角英数カナを区別」の対象から&amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;半角カナを除外&amp;lt;/b&amp;gt;し、「全角/半角英数を区別」に変更。&lt;br /&gt;
* 「半角/全角カナを区別」設定を追加。&lt;br /&gt;
* 比較用変換の処理を改造。&lt;br /&gt;
** 索引を「正規表現」と「文字列」の構成に仕様変更。&lt;br /&gt;
&amp;lt;!-- コード変換の処理を charCodeAt() 走査 → match() 配列走査 に変更。 --&amp;gt;&lt;br /&gt;
** 索引の改行文字 [LF] と半角数字 (0～9) の符号位置は変更厳禁だった仕様を解消。&lt;br /&gt;
&amp;lt;!-- U+000D [CR] をデリミタに利用し、コード変換を回避するようにした。 --&amp;gt;&lt;br /&gt;
** 索引の上限字数を 65535 と明文化し、上限以上は処理しないようにした。&lt;br /&gt;
** 数値順の上限桁数が 65519 → 65505 に 14 縮小。&lt;br /&gt;
* &amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;並べ替え(Unicode) 時、サロゲートペアの扱いが変わりました。&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;rev.7 までは、UTF-16順 (U+D7FF～E000 の間) に並びましたが、&amp;lt;br&amp;gt;rev.8 からは、Unicode順 (U+FFFF の次) に並びます。&lt;br /&gt;
* &amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;並べ替え(SJIS風) 時、Shift_JISに無い文字の扱いが変わりました。&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;rev.7 までは、未定義文字 (0xFFFF) に置き換えていましたが、&amp;lt;br&amp;gt;rev.8 からは、Unicode順と同様に並びます。&lt;br /&gt;
; 2015/12/26 (rev.7)&lt;br /&gt;
* アイコンの指定先を &amp;quot;My Macros\行並べ替え.ico&amp;quot; → &amp;quot;行並べ替え.ico&amp;quot; に変更。&lt;br /&gt;
* 矩形選択（始点or終点が左下かつ論理行頭）時、下端の行が範囲から漏れる不具合を修正。&lt;br /&gt;
; 2014/10/12 (rev.6)&lt;br /&gt;
* 「辞書順/数値順」設定を追加。&lt;br /&gt;
* 「半角/全角を区別」の対象から&amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;記号を除外&amp;lt;/b&amp;gt;し、「半角/全角英数カナを区別」に変更。&lt;br /&gt;
*: 半角/全角の対応が定義しづらく、区別の対象となる文字が分かりにくいため。&lt;br /&gt;
* ポップアップメニューにアクセラレータキー（アクセスキー）を割り当て。&lt;br /&gt;
* ポップアップメニューの「半角/全角」「大/小文字」の配置を交換。&lt;br /&gt;
* ポップアップメニューの「大/小文字」「半角/全角」「かな/カナ」をチェックボックス式に変更。&lt;br /&gt;
; 2014/07/27 (rev.5)&lt;br /&gt;
* アイコンファイルを同梱し、読み込むようにした。&lt;br /&gt;
* 並べ替え実行後、実行範囲を行選択するようにした。&lt;br /&gt;
* &amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;矩形選択時、折り返し行が含まれていると、正しく並べ替えられない不具合を修正。&amp;lt;/b&amp;gt;&lt;br /&gt;
*: ただし、折り返し行を探査する処理に時間がかかります（1万表示行で4秒）。&lt;br /&gt;
* rev.4 の処理高速化手法の一部（コード変換）を取り下げ。&lt;br /&gt;
*: マクロの処理速度では大量処理にも限界があるので、可読性を優先しておくことに。&lt;br /&gt;
* 半角/全角変換表の仕様を [&amp;quot;正規表現&amp;quot;,&amp;quot;文字&amp;quot;] → [/正規表現/,&amp;quot;文字&amp;quot;] に変更。&lt;br /&gt;
* 「半角/全角を区別」の対象に ＂ ＇ ＼ の3字を追加。&lt;br /&gt;
* 「大/小文字を区別」の処理を toLowerCase() → toLocaleLowerCase() に変更。&lt;br /&gt;
*: Mery の大文字/小文字変換と同様、OS の言語設定を考慮するようにした。&lt;br /&gt;
* 「かな/カナを区別」の処理を「半角/全角を区別」と同じ仕様に変更（ひらがなが多い場合に高速化）。&lt;br /&gt;
* 「かな/カナを区別」の対象に ゝ ゞ の2字を追加。&lt;br /&gt;
; 2013/09/19 (rev.4) [[ファイル:行並べ替え_r4.zip]]&lt;br /&gt;
* ks 氏の改善策を参考に、高速化（1万行で2秒→1秒）。&lt;br /&gt;
* &amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;並べ替え(Shift_JIS風) 時、Shift_JISに無い文字の扱いが変わりました。&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;rev.3 までは、昇順/降順を問わず最後尾に並びましたが、&amp;lt;br&amp;gt;rev.4 からは、昇順/降順に従います。&lt;br /&gt;
; 2013/09/19 (rev.3) [[ファイル:行並べ替え_r3.zip]]&lt;br /&gt;
* 「半角/全角を区別」設定を追加。&lt;br /&gt;
* 非選択時にエラーが出る不具合を修正。&lt;br /&gt;
*: ポップアップメニューに「並べ替えが行えない」旨を表示するようにした。&lt;br /&gt;
* 並べ替え(Unicode) 時においても Shift_JIS 用の準備をしていたムダを解消。&lt;br /&gt;
; 2013/08/29 (rev.2) [[ファイル:行並べ替え_r2.zip]]&lt;br /&gt;
* ks 氏の改善策を参考に、高速化（1万行で30秒→2秒）。&lt;br /&gt;
* &amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;並べ替え(Unicode) 時、水平タブが空行より前に並ぶバグがあります&amp;lt;/b&amp;gt;（rev.3 で修正）。&lt;br /&gt;
; 2013/08/25 (rev.1)&lt;br /&gt;
* 初版公開。&lt;br /&gt;
&lt;br /&gt;
==仕様==&lt;br /&gt;
&lt;br /&gt;
===並べ替え(SJIS風)===&lt;br /&gt;
Microsoft コードページ932 [http://ja.wikipedia.org/wiki/Microsoft%E3%82%B3%E3%83%BC%E3%83%89%E3%83%9A%E3%83%BC%E3%82%B8932] をベースに、下記の仕様で並べます。&lt;br /&gt;
* NEC特殊 / IBM拡張記号類 &amp;lt;code&amp;gt;①～＂&amp;lt;/code&amp;gt; は、全角記号の次に。&amp;lt;code&amp;gt;㍻&amp;lt;/code&amp;gt;は&amp;lt;code&amp;gt;㍼&amp;lt;/code&amp;gt;の次に並べる。&lt;br /&gt;
* ローマ数字の小文字形 &amp;lt;code&amp;gt;ⅰ～ⅹ&amp;lt;/code&amp;gt; は、大文字形 &amp;lt;code&amp;gt;Ⅰ～Ⅹ&amp;lt;/code&amp;gt; の次に並べる。&lt;br /&gt;
* 未定義文字 (0x80, A0, FD, FE, FF)、ユーザー定義外字 (0xF0A0～F9FC) は非対応。&lt;br /&gt;
* Shift_JIS(CP932)に無い文字は、Unicode順に並べる。&amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;(rev.8以降)&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===数値順===&lt;br /&gt;
半角数字列を非負整数（正の整数）の順に並べます。&lt;br /&gt;
* 負数&amp;lt;code&amp;gt;-12&amp;lt;/code&amp;gt; 小数&amp;lt;code&amp;gt;0.12&amp;lt;/code&amp;gt; 分数&amp;lt;code&amp;gt;1/2&amp;lt;/code&amp;gt; 指数&amp;lt;code&amp;gt;1.2e3&amp;lt;/code&amp;gt; などには対応していません。&lt;br /&gt;
* &amp;lt;b style=&amp;quot;color:#c00;&amp;gt;全角数字&amp;lt;/b&amp;gt;は「全角/半角英数を区別」設定で扱いが変わります。&amp;lt;br&amp;gt;区別する場合、全角数字は対象外となり、文字順になります。&amp;lt;br&amp;gt;区別しない場合、半角数字とみなすため、数値順になります。&lt;br /&gt;
* 同値の場合、先頭ゼロの個数で比較します。例＞ &amp;lt;code&amp;gt;001&amp;lt;/code&amp;gt;＜&amp;lt;code&amp;gt;01&amp;lt;/code&amp;gt;＜&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;。&lt;br /&gt;
* 仕様上、10の65505乗 以上の数値は扱えません。超過した数値同士は文字順で比較されます。&lt;br /&gt;
&lt;br /&gt;
===大文字/小文字を区別しない===&lt;br /&gt;
大文字を小文字とみなして並べます。&lt;br /&gt;
* &amp;lt;code&amp;gt;[ ] \ ^ _&amp;lt;/code&amp;gt; が &amp;lt;code&amp;gt;A&amp;lt;/code&amp;gt; の前に並ぶようになります。&lt;br /&gt;
* ギリシャ文字やローマ数字など、大小が存在する文字も区別しなくなります。&lt;br /&gt;
* 小さい &amp;lt;code&amp;gt;っ ぁ ゃ&amp;lt;/code&amp;gt; など仮名文字は対象外です。&lt;br /&gt;
&lt;br /&gt;
===全角/半角英数を区別しない===&lt;br /&gt;
全角英数 &amp;lt;code&amp;gt;０～９ Ａ～Ｚ ａ～ｚ&amp;lt;/code&amp;gt; を半角とみなして並べます。&lt;br /&gt;
&lt;br /&gt;
===半角/全角カナを区別しない===&lt;br /&gt;
半角カナ類 &amp;lt;code&amp;gt;ｦ～ｯ ｱ～ﾝ ｡ ｢ ｣ ､ ･ ｰ ﾞ ﾟ&amp;lt;/code&amp;gt; を全角とみなして並べます。&lt;br /&gt;
&lt;br /&gt;
===ひらがな/カタカナを区別しない===&lt;br /&gt;
ひらがなをカタカナとみなして並べます。&lt;br /&gt;
* &amp;lt;code&amp;gt;゛ ゜ ゟ&amp;lt;/code&amp;gt; が &amp;lt;code&amp;gt;ぁ&amp;lt;/code&amp;gt; の前に並ぶようになります。&lt;br /&gt;
* &amp;lt;code&amp;gt;ゔ ゕ ゖ&amp;lt;/code&amp;gt; は &amp;lt;code&amp;gt;ヴ ヵ ヶ&amp;lt;/code&amp;gt; とみなすため、Shift_JIS(CP932)に無い文字と扱われなくなります。&lt;br /&gt;
&lt;br /&gt;
==コメント==&lt;br /&gt;
* [http://merysmacro.seesaa.net/article/372975309.html 処理速度の改善を図ってみました]ので，ご参考まで (ks)&lt;br /&gt;
** ありがとうございます。おかげさまで処理速度を大幅に改善することができました。 (masme)&lt;br /&gt;
&lt;br /&gt;
* Mery 64 ビット版だと動作しないようです。マクロの 154, 155 行目ですが、PopupMenu インターフェイスの Add メソッドの Id 引数は UINT_PTR なので正の値を指定してやる必要があります。マクロリファレンスには int と記載しておりましたが間違いでした、申し訳ございません。(kuro)&lt;/div&gt;</summary>
		<author><name>Masme</name></author>
	</entry>
	<entry>
		<id>https://www.haijin-boys.com/wiki/index.php?title=%E6%96%87%E5%AD%97%E3%82%AB%E3%82%A6%E3%83%B3%E3%83%88&amp;diff=5088</id>
		<title>文字カウント</title>
		<link rel="alternate" type="text/html" href="https://www.haijin-boys.com/wiki/index.php?title=%E6%96%87%E5%AD%97%E3%82%AB%E3%82%A6%E3%83%B3%E3%83%88&amp;diff=5088"/>
		<updated>2020-05-17T01:08:17Z</updated>

		<summary type="html">&lt;p&gt;Masme: マクロ更新&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;float:right&amp;quot;&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
選択範囲 or 文書全体の字数を算出するマクロです。&lt;br /&gt;
&lt;br /&gt;
[[ファイル:CharacterCounter.png|border]]&lt;br /&gt;
&lt;br /&gt;
==注意点==&lt;br /&gt;
* 範囲選択時は選択範囲の字数を、&amp;lt;b&amp;gt;非選択時は文書全体&amp;lt;/b&amp;gt;の字数をカウントします。&lt;br /&gt;
* 改行・半角文字・全角文字、すべて1文字とカウントします。&lt;br /&gt;
* 文字の分類は Shift_JIS (CP932) を基準にしています。&lt;br /&gt;
* Unicode 対応は一部に留まります。&lt;br /&gt;
** サロゲートペアは、Mery では仕様上2文字とカウントされますが、このマクロでは1文字とカウントします。&lt;br /&gt;
** 結合文字列や異体字セレクタなどには対応していません。他の文字と同じようにカウントされます。&lt;br /&gt;
* 文字数や文字種が増えるほど処理に時間がかかります（作者の環境では100万字の処理に約1.5秒かかりました）。&amp;lt;br&amp;gt;マクロ実行後、ステータスバーに処理時間が表示されるので参考にしてください。&lt;br /&gt;
&lt;br /&gt;
==ダウンロード==&lt;br /&gt;
[[メディア:文字カウント.zip|文字カウント.zip]]&lt;br /&gt;
; 内容&lt;br /&gt;
* 文字カウント.ico&lt;br /&gt;
* 文字カウント.js&lt;br /&gt;
&lt;br /&gt;
==更新履歴==&lt;br /&gt;
[[ファイル:文字カウント.zip]]&lt;br /&gt;
&lt;br /&gt;
; 2020/05/17&lt;br /&gt;
* .zip 内の Macros フォルダを除去。ファイルのみ収録。&lt;br /&gt;
* .ico の更新日時を .js と同期するのをやめた。&lt;br /&gt;
* 複数選択時は「xx個の選択範囲」と表示するようにした（Mery 3.0.0 以降）。&lt;br /&gt;
* ステータスバーの表示を「文字カウント (処理時間: xx秒)」→「文字カウント (xx秒)」に変更。&lt;br /&gt;
; 2019/06/16&lt;br /&gt;
* 容量は ADODB.Stream を利用して算出するようにした（マクロ「[[バイト数]]」の ks 氏版を参考）。&lt;br /&gt;
* 文字分類を改訂。&lt;br /&gt;
** 容量の定義を撤廃し、統合できる項目を統合。&lt;br /&gt;
** 分類「階層」を削除。&lt;br /&gt;
** 分類「空白」に「改行」を含めるようにした。&lt;br /&gt;
** 分類「半カナ」を「半ｶﾅ」に改称。&lt;br /&gt;
** 分類「MS依存」を追加。&lt;br /&gt;
** CP932 未定義文字の分類を &amp;quot;総数,MS外字&amp;quot; → &amp;quot;総数,MS依存&amp;quot; に変更。&lt;br /&gt;
* 結果表示を改訂。&lt;br /&gt;
** 「段落」を復活。&lt;br /&gt;
** 「仮名」を追加（仮名文字の数と、「字数」に占める割合を表示）。&lt;br /&gt;
** 「サイズ」を追加（現在のエンコードでの容量を表示）。&lt;br /&gt;
** 「UTF-16」「UTF-8」「SJIS」は非表示に変更。&lt;br /&gt;
** 「原稿」「漢字」「UTF-7」「EUC」「JIS」を追加（非表示）。&lt;br /&gt;
* アイコンのカラーパレットを調整。48x48の画像を一部変更（1と3）。&lt;br /&gt;
; 2018/08/04&lt;br /&gt;
* Document.LineEnding が使える場合は使うようにした（Mery 2.6.10 以降）。&lt;br /&gt;
*: 改行コードの判別でクリップボードを使わずに済むため、難点が解消されます。&lt;br /&gt;
; 2017/06/25&lt;br /&gt;
* アイコンファイルに24x24・32x32・48x48の画像を追加。&lt;br /&gt;
; 2015/12/26&lt;br /&gt;
* アイコンの指定先を &amp;quot;My Macros\文字カウント.ico&amp;quot; → &amp;quot;文字カウント.ico&amp;quot; に変更。&lt;br /&gt;
; 2015/09/30&lt;br /&gt;
* 改行コードを判別し、容量に反映するようにした。ただし、判別にクリップボードを使うため、難点があります。&lt;br /&gt;
** 計測範囲に改行が存在しない場合は判別できない。&lt;br /&gt;
** クリップボード履歴が重複してしまう。&lt;br /&gt;
* 結果表示を改訂。&lt;br /&gt;
** 「段落」は非表示に変更（後述の定義変更による）。&lt;br /&gt;
** 「拡張」を「依存」に改称し、MS拡張 → MS拡張+MS外字 の数に変更。&lt;br /&gt;
** 「ｻﾛｹﾞｰﾄ」を「ペア」に改称。&lt;br /&gt;
** 「SJIS」の内容を「数値 bytes」→「数値 バイト」に変更。&lt;br /&gt;
** 「UTF-16」の内容を「数値 bytes (BOM無)」→「数値+2(BOM) バイト」に変更。&lt;br /&gt;
** 「UTF-8」の内容を「数値 bytes (BOM無)」→「数値+3(BOM) バイト」に変更。&lt;br /&gt;
* 文字分類を改訂。&lt;br /&gt;
** 分類「段落」の定義を変更。 /^(?=　[^　\s])/gm → /^(?![ 　\t]*$)/gm&lt;br /&gt;
** 分類「英単」を「半英単」に改称し、定義を変更。 /\b(?=\w)/g → /(?=[!-~](?![!-~]))/g&lt;br /&gt;
**: Microsoft Word の文字カウント仕様（段落数、半角英数の単語数）に近づけた。&amp;lt;br&amp;gt;※仕様が不明なため、完全再現は目指していません。&lt;br /&gt;
** 分類「会話」を削除。&lt;br /&gt;
** ユーザー定義外字の分類を &amp;quot;総数,MS外字&amp;quot; → &amp;quot;総数,MS外字,全角&amp;quot; に変更。&lt;br /&gt;
** 文字 U+0080 の分類を &amp;quot;総数,Uni&amp;quot; → &amp;quot;総数,MS外字&amp;quot; に変更。&lt;br /&gt;
** Shift_JIS で保存すると似た字に化ける文字群を追加。&lt;br /&gt;
; 2014/02/17&lt;br /&gt;
* アウトラインやアウトプットにフォーカスがある場合、カウントできないのを修正。&lt;br /&gt;
*: 文書の取得を Document → Editor.ActiveDocument に変更。&lt;br /&gt;
* 分類「段落」の正規表現を短縮。 /^(?=　[^　\s]+)/gm → /^(?=　[^　\s])/gm&lt;br /&gt;
* 分類「会話」の定義を変更。 /^(?=「.+」$)/gm → /^(?=「.*」$)/gm&lt;br /&gt;
; 2014/02/01&lt;br /&gt;
* 初版公開。&lt;br /&gt;
&lt;br /&gt;
==文字分類==&lt;br /&gt;
現在の定義は下表のとおりです。分類は Shift_JIS (CP932) を基準にしています。&lt;br /&gt;
* &amp;lt;b style=&amp;quot;background:#fcc;&amp;quot;&amp;gt;赤地&amp;lt;/b&amp;gt; の項目は、初期状態で結果表示される項目です。&lt;br /&gt;
* 「字数」は &amp;lt;b style=&amp;quot;background:#fcc;&amp;quot;&amp;gt;総数&amp;lt;/b&amp;gt; − &amp;lt;b style=&amp;quot;background:#ccf;&amp;quot;&amp;gt;空白&amp;lt;/b&amp;gt; で算出されます。&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;4&amp;quot;| 分類 (type) !! 正規表現 (re) !! 備考&lt;br /&gt;
|-&lt;br /&gt;
!rowspan=&amp;quot;2&amp;quot; style=&amp;quot;background:#ccc;&amp;quot;|&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot;| 半英単&lt;br /&gt;
| /(?=[!-~](?![!-~]))/g || ASCII文字の単語（半角英数の単語）&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot; style=&amp;quot;background:#fcc;&amp;quot;| 段落&lt;br /&gt;
| /^(?![ 　\t]*$)/gm || 空白行でない論理行&lt;br /&gt;
|-&lt;br /&gt;
!rowspan=&amp;quot;28&amp;quot; style=&amp;quot;background:#fcc;&amp;quot;| 総数&lt;br /&gt;
|-&lt;br /&gt;
!rowspan=&amp;quot;3&amp;quot;| 制御&lt;br /&gt;
!rowspan=&amp;quot;2&amp;quot; style=&amp;quot;background:#ccf;&amp;quot;| 空白&lt;br /&gt;
!style=&amp;quot;background:#fcc;&amp;quot;| 改行&lt;br /&gt;
| /\n/g || ASCII制御文字（改行）&lt;br /&gt;
|-&lt;br /&gt;
! タブ&lt;br /&gt;
| /\t/g || ASCII制御文字（水平タブ）&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot; style=&amp;quot;background:#ccc;&amp;quot;|&lt;br /&gt;
| /[\u0000-\u001F\u007F]/g || 上記以外のASCII制御文字&lt;br /&gt;
|-&lt;br /&gt;
!rowspan=&amp;quot;6&amp;quot; style=&amp;quot;background:#fcc;&amp;quot;| 半角&lt;br /&gt;
!style=&amp;quot;background:#ccf;&amp;quot;| 空白 !! 半空&lt;br /&gt;
| / /g || ASCII文字（半角空白）&lt;br /&gt;
|-&lt;br /&gt;
! 数字 !! 半数&lt;br /&gt;
| /[0-9]/g || ASCII文字（半角数字）&lt;br /&gt;
|-&lt;br /&gt;
! 英字 !! 半英&lt;br /&gt;
| /[A-Za-z]/g || ASCII文字（半角英字）&lt;br /&gt;
|-&lt;br /&gt;
!rowspan=&amp;quot;2&amp;quot;| 記号&lt;br /&gt;
!style=&amp;quot;background:#ccc;&amp;quot;|&lt;br /&gt;
| /[\u0020-\u007E]/g || 上記以外のASCII文字&lt;br /&gt;
|-&lt;br /&gt;
!rowspan=&amp;quot;2&amp;quot; style=&amp;quot;background:#fcc;&amp;quot;| 半ｶﾅ&lt;br /&gt;
| /[｡｢｣､･ｰﾞﾟ]/g ||&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;background:#fcc;&amp;quot;| 仮名&lt;br /&gt;
| /[ｦ-ｯｱ-ﾝ]/g ||&lt;br /&gt;
|-&lt;br /&gt;
!rowspan=&amp;quot;15&amp;quot; style=&amp;quot;background:#fcc;&amp;quot;| 全角&lt;br /&gt;
!style=&amp;quot;background:#ccf;&amp;quot;| 空白 !! 全空&lt;br /&gt;
| /　/g ||&lt;br /&gt;
|-&lt;br /&gt;
! 数字 !! 全数&lt;br /&gt;
| /[０-９]/g ||&lt;br /&gt;
|-&lt;br /&gt;
! 英字 !! 全英&lt;br /&gt;
| /[Ａ-Ｚａ-ｚ]/g ||&lt;br /&gt;
|-&lt;br /&gt;
!rowspan=&amp;quot;2&amp;quot; style=&amp;quot;background:#fcc;&amp;quot;| 仮名&lt;br /&gt;
! かな&lt;br /&gt;
| /[ぁ-ん]/g || ※SJISでは ゔ ゕ ゖ などは扱えない&lt;br /&gt;
|-&lt;br /&gt;
! カナ&lt;br /&gt;
| /[ァ-ヶ]/g || ※長音符や踊り字は記号扱い&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot;| ギリシャ&lt;br /&gt;
| /[Α-ΡΣ-Ωα-ρσ-ω]/g || ※SJISではシグマの語末形 ς は扱えない&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot;| キリル&lt;br /&gt;
| /[ЁА-Яа-яё]/g || ※Unicodeでは Ё ё の配置がJISと異なる&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot;| 記号&lt;br /&gt;
| /[、。， (中略) ‡¶◯]/g || 記号 (146字)&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot;| 罫線&lt;br /&gt;
| /[─│┌ (中略) ┥┸╂]/g || 罫線素片 (32字)&lt;br /&gt;
|-&lt;br /&gt;
!rowspan=&amp;quot;3&amp;quot;| 漢字&lt;br /&gt;
! 第一&lt;br /&gt;
| /[亜唖娃 (中略) 湾碗腕]/g || JIS第一水準漢字 (2965字)&lt;br /&gt;
|-&lt;br /&gt;
! 第二&lt;br /&gt;
| /[弌丐丕 (中略) 瑤凜熙]/g || JIS第二水準漢字 (3390字)&lt;br /&gt;
|-&lt;br /&gt;
!rowspan=&amp;quot;2&amp;quot;| MS拡張&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot;| /[纊褜鍈 (中略) 鶴鸙黑]/g ||rowspan=&amp;quot;2&amp;quot;| IBM拡張文字 (漢字360字)&lt;br /&gt;
|-&lt;br /&gt;
!rowspan=&amp;quot;4&amp;quot; style=&amp;quot;background:#fcc;&amp;quot;| MS依存&lt;br /&gt;
|-&lt;br /&gt;
! MS拡張&lt;br /&gt;
| /[①-⑳ (中略) ￤＇＂]/g || NEC特殊文字/IBM拡張文字 (記号等87字)&lt;br /&gt;
|-&lt;br /&gt;
! MS外字&lt;br /&gt;
| /[\uE000-\uE757]/g || Microsoft ユーザー定義外字 (1880字)&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;background:#ccc;&amp;quot;|&lt;br /&gt;
!style=&amp;quot;background:#ccc;&amp;quot;|&lt;br /&gt;
| /[\u0080\uF8F0-\uF8F3]/g || CP932 未定義文字 (5字)&lt;br /&gt;
|-&lt;br /&gt;
!rowspan=&amp;quot;2&amp;quot; style=&amp;quot;background:#fcc;&amp;quot;| Uni&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot; style=&amp;quot;background:#fcc;&amp;quot;| SP&lt;br /&gt;
| /[\uD800-\uDBFF][\uDC00-\uDFFF]/g || サロゲートペア (U+10000～10FFFF)&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot; style=&amp;quot;background:#ccc;&amp;quot;|&lt;br /&gt;
| /[\u0000-\uFFFF]/g || 上記以外の全文字&lt;br /&gt;
|}&lt;br /&gt;
* &amp;lt;b style=&amp;quot;background:#fcc;&amp;quot;&amp;gt;Uni&amp;lt;/b&amp;gt; に分類される文字は、Shift_JIS では正常に保存できません。保存を強行した場合、似た文字や &amp;lt;code&amp;gt;?&amp;lt;/code&amp;gt; に化けます。&lt;br /&gt;
* &amp;lt;b style=&amp;quot;background:#fcc;&amp;quot;&amp;gt;MS依存&amp;lt;/b&amp;gt; に分類される文字は、Shift_JIS では「環境依存文字」に該当します。&lt;br /&gt;
* 改行の定義が &amp;lt;code&amp;gt;/\n/g&amp;lt;/code&amp;gt; なのは Mery の内部改行コードが [LF] で統一されているためです。&lt;br /&gt;
&lt;br /&gt;
===文字分類の仕様===&lt;br /&gt;
文字分類は、ソースコードの最初あたりにある「■文字分類」以下で定義されています。&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
//■文字分類&lt;br /&gt;
{type:&amp;quot;総数,全角,カナ&amp;quot;, re:/[ァ-ヶ]/g},  //一例&lt;br /&gt;
/* 以下略 */&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! re&lt;br /&gt;
| カウントする対象を正規表現で記述します。&amp;lt;br&amp;gt;たとえば全角カタカナなら、&amp;lt;code style=&amp;quot;color:#c00;&amp;quot;&amp;gt;re:/[ァ-ヶ]/g&amp;lt;/code&amp;gt; という具合です。&amp;lt;br&amp;gt;利用できる正規表現は、実行環境 JScript (JavaScript) の仕様に依存します。&lt;br /&gt;
|-&lt;br /&gt;
! type&lt;br /&gt;
| 分類名です。複数設定する場合はコンマで区切ります。&amp;lt;br&amp;gt;たとえば、&amp;lt;code style=&amp;quot;color:#c00;&amp;quot;&amp;gt;type:&amp;quot;総数,全角,カナ&amp;quot;&amp;lt;/code&amp;gt; という具合です。&amp;lt;br&amp;gt;この場合、type[&amp;quot;総数&amp;quot;], type[&amp;quot;全角&amp;quot;], type[&amp;quot;カナ&amp;quot;] の各変数にカウントが加算されます。&lt;br /&gt;
|}&lt;br /&gt;
「文字カウント」マクロは、この定義を上から順に見て、該当する箇所を数えます。&lt;br /&gt;
&lt;br /&gt;
==結果表示==&lt;br /&gt;
現在の定義は下表のとおりです。&lt;br /&gt;
* &amp;lt;b style=&amp;quot;background:#fcc;&amp;quot;&amp;gt;赤地&amp;lt;/b&amp;gt; の項目は、初期状態で表示される項目です。&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 項目名 !! 表示例 !! 関係する分類 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;background:#fcc;&amp;quot;| 総字数&lt;br /&gt;
| 12345 (文書全体)&amp;lt;br&amp;gt;12345 (選択範囲)&lt;br /&gt;
| 総数 || スペースを含む文字数と、計測範囲&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;background:#fcc;&amp;quot;| 字数&lt;br /&gt;
| 12345 (改行･空白抜き)&lt;br /&gt;
| 総数−空白 || スペースを含まない文字数&lt;br /&gt;
|-&lt;br /&gt;
! 原稿&lt;br /&gt;
| 12～16枚 (12分)&amp;lt;br&amp;gt;123～164枚 (1.2時間)&lt;br /&gt;
| 総数、字数 || 原稿用紙枚数（400～300字/枚）と、読了時間（400字/分）&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;background:#fcc;&amp;quot;| 改行&lt;br /&gt;
| 12345 (CR+LF)&lt;br /&gt;
| 改行 || 改行の数と、改行コード&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;background:#fcc;&amp;quot;| 段落&lt;br /&gt;
| 12345&lt;br /&gt;
| 段落 || 空白行でない論理行数&lt;br /&gt;
|-&lt;br /&gt;
! 半英単&lt;br /&gt;
| 12345&lt;br /&gt;
| 半英単 || ASCII文字（半角英数）の単語数&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;background:#fcc;&amp;quot;| 半角&lt;br /&gt;
| 12345 (半ｶﾅ 12345)&lt;br /&gt;
| 半角、半ｶﾅ || 半角文字の数と、半角カナの数&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;background:#fcc;&amp;quot;| 全角&lt;br /&gt;
| 12345 (依存 12345)&lt;br /&gt;
| 全角、MS依存 || 全角文字の数と、Shift_JIS での環境依存文字の数&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;background:#fcc;&amp;quot;| 仮名&lt;br /&gt;
| 12345 (12.3%/字数)&lt;br /&gt;
| 仮名 || 仮名文字の数と、「字数」に占める割合&lt;br /&gt;
|-&lt;br /&gt;
! 漢字&lt;br /&gt;
| 12345 (12.3%/字数)&lt;br /&gt;
| 漢字 || 漢字の数と、「字数」に占める割合&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;background:#fcc;&amp;quot;| Unicode&lt;br /&gt;
| 12345 (ペア 12345)&lt;br /&gt;
| Uni、SP || Shift_JIS では保存できない文字の数と、サロゲートペアの数&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;background:#fcc;&amp;quot;| サイズ&lt;br /&gt;
| 12,345 バイト&lt;br /&gt;
| || 現在のエンコードでの容量&lt;br /&gt;
|-&lt;br /&gt;
! UTF-16&lt;br /&gt;
| 12,345+2(BOM) バイト&lt;br /&gt;
| || UTF-16 での容量&lt;br /&gt;
|-&lt;br /&gt;
! UTF-8&lt;br /&gt;
| 12,345+3(BOM) バイト&lt;br /&gt;
| || UTF-8 での容量&lt;br /&gt;
|-&lt;br /&gt;
! UTF-7&lt;br /&gt;
| 12,345 バイト&lt;br /&gt;
| || UTF-7 での容量&lt;br /&gt;
|-&lt;br /&gt;
! EUC&lt;br /&gt;
| 12,345 バイト&lt;br /&gt;
| || 日本語 (EUC) / EUC-JP (CP51932) での容量&lt;br /&gt;
|-&lt;br /&gt;
! JIS&lt;br /&gt;
| 12,345 バイト&lt;br /&gt;
| || 日本語 (JIS) / ISO-2022-JP (CP50222) での容量&lt;br /&gt;
|-&lt;br /&gt;
! SJIS&lt;br /&gt;
| 12,345 バイト&lt;br /&gt;
| || 日本語 (シフトJIS) / Shift_JIS (CP932) での容量&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===結果表示の仕様===&lt;br /&gt;
結果表示は、ソースコードの最後あたりにある「▼結果表示」以下で定義されています。&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
//▼結果表示&lt;br /&gt;
/* 中略 */&lt;br /&gt;
Alert( [&amp;quot;&amp;quot;&lt;br /&gt;
// ----------------- ↓ここから表示&lt;br /&gt;
,&amp;quot;総字数\t: &amp;quot;+(type[&amp;quot;総数&amp;quot;])+&amp;quot; (&amp;quot;+ RANGE +&amp;quot;)&amp;quot;&lt;br /&gt;
,&amp;quot;　字数\t: &amp;quot;+(type[&amp;quot;字数&amp;quot;])+&amp;quot; (改行･空白抜き)&amp;quot;&lt;br /&gt;
//,&amp;quot;　原稿\t: &amp;quot;+paper(type[&amp;quot;総数&amp;quot;])+&amp;quot; (&amp;quot;+time(type[&amp;quot;字数&amp;quot;])+&amp;quot;)&amp;quot;&lt;br /&gt;
,&amp;quot;　改行\t: &amp;quot;+(type[&amp;quot;改行&amp;quot;])+&amp;quot; (&amp;quot;+ BREAK +&amp;quot;)&amp;quot;&lt;br /&gt;
,&amp;quot;　段落\t: &amp;quot;+(type[&amp;quot;段落&amp;quot;])&lt;br /&gt;
//,&amp;quot;半英単\t: &amp;quot;+(type[&amp;quot;半英単&amp;quot;])&lt;br /&gt;
,&amp;quot;　半角\t: &amp;quot;+(type[&amp;quot;半角&amp;quot;])+&amp;quot; (半ｶﾅ &amp;quot;+(type[&amp;quot;半ｶﾅ&amp;quot;])+&amp;quot;)&amp;quot;&lt;br /&gt;
,&amp;quot;　全角\t: &amp;quot;+(type[&amp;quot;全角&amp;quot;])+&amp;quot; (依存 &amp;quot;+(type[&amp;quot;MS依存&amp;quot;])+&amp;quot;)&amp;quot;&lt;br /&gt;
,&amp;quot;　仮名\t: &amp;quot;+(type[&amp;quot;仮名&amp;quot;])+&amp;quot; (&amp;quot;+per(type[&amp;quot;仮名&amp;quot;],type[&amp;quot;字数&amp;quot;])+&amp;quot;/字数)&amp;quot;&lt;br /&gt;
//,&amp;quot;　漢字\t: &amp;quot;+(type[&amp;quot;漢字&amp;quot;])+&amp;quot; (&amp;quot;+per(type[&amp;quot;漢字&amp;quot;],type[&amp;quot;字数&amp;quot;])+&amp;quot;/字数)&amp;quot;&lt;br /&gt;
,&amp;quot;Unicode\t: &amp;quot;+(type[&amp;quot;Uni&amp;quot;])+&amp;quot; (ペア &amp;quot;+(type[&amp;quot;SP&amp;quot;])+&amp;quot;)&amp;quot;&lt;br /&gt;
,&amp;quot;&amp;quot;&lt;br /&gt;
,&amp;quot;サイズ\t: &amp;quot;+(bytes())+&amp;quot; バイト&amp;quot;&lt;br /&gt;
//,&amp;quot;UTF-16\t: &amp;quot;+(bytes(&amp;quot;utf-16&amp;quot;))+&amp;quot;+2(BOM) バイト&amp;quot;&lt;br /&gt;
//,&amp;quot;UTF-8 \t: &amp;quot;+(bytes(&amp;quot;utf-8&amp;quot;,-3))+&amp;quot;+3(BOM) バイト&amp;quot;&lt;br /&gt;
//,&amp;quot;UTF-7 \t: &amp;quot;+(bytes(&amp;quot;utf-7&amp;quot;))+&amp;quot; バイト&amp;quot;&lt;br /&gt;
//,&amp;quot;EUC   \t: &amp;quot;+(bytes(&amp;quot;euc-jp&amp;quot;))+&amp;quot; バイト&amp;quot;&lt;br /&gt;
//,&amp;quot;JIS   \t: &amp;quot;+(bytes(&amp;quot;iso-2022-jp&amp;quot;))+&amp;quot; バイト&amp;quot;&lt;br /&gt;
//,&amp;quot;SJIS  \t: &amp;quot;+(bytes(&amp;quot;shift_jis&amp;quot;))+&amp;quot; バイト&amp;quot;&lt;br /&gt;
// ----------------- ↑ここまで表示&lt;br /&gt;
].join(&amp;quot;\n&amp;quot;).replace(/^\n+|\n+$/g,&amp;quot;&amp;quot;) );&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! type[分類名]&lt;br /&gt;
| カウント結果。たとえば「総数」に該当した数は type[&amp;quot;総数&amp;quot;] で得られます。&lt;br /&gt;
|-&lt;br /&gt;
! paper(n)&lt;br /&gt;
| 原稿用紙枚数を求める関数（1枚400～300字で概算）。&amp;lt;br&amp;gt;単純に n÷400 と n÷300（切り上げ）で算出します。&lt;br /&gt;
|-&lt;br /&gt;
! time(n)&lt;br /&gt;
| 読了時間を求める関数（1分400字で概算）。&amp;lt;br&amp;gt;60分未満は「分」表示（切り上げ）、60分以上は「時間」表示（小数第1位まで四捨五入）です。&lt;br /&gt;
|-&lt;br /&gt;
! per(n,m)&lt;br /&gt;
| m に占める n の割合（百分率）を求める関数。&amp;lt;br&amp;gt;10%未満は小数第2位まで切り捨て、100%未満は第1位まで切り捨て、100%以上は切り上げです。&lt;br /&gt;
|-&lt;br /&gt;
! bytes(enc)&lt;br /&gt;
| 容量（バイト数）を求める関数。&amp;lt;br&amp;gt;enc には[[マクロリファレンス:エンコード定数|エンコード定数]] または ADODB.Stream の Charset プロパティに渡す文字列を指定します。&amp;lt;br&amp;gt;指定しない場合、現在のエンコードになります。&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===表示項目を増やす===&lt;br /&gt;
初期状態で表示されない項目を表示するには、ソースコードの行頭の &amp;lt;code&amp;gt;//&amp;lt;/code&amp;gt; を削除してください。&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
,&amp;quot;サイズ\t: &amp;quot;+(bytes())+&amp;quot; バイト&amp;quot;&lt;br /&gt;
//,&amp;quot;UTF-16\t: &amp;quot;+(bytes(&amp;quot;utf-16&amp;quot;))+&amp;quot;+2(BOM) バイト&amp;quot;&lt;br /&gt;
//,&amp;quot;UTF-8 \t: &amp;quot;+(bytes(&amp;quot;utf-8&amp;quot;,-3))+&amp;quot;+3(BOM) バイト&amp;quot;&lt;br /&gt;
//,&amp;quot;UTF-7 \t: &amp;quot;+(bytes(&amp;quot;utf-7&amp;quot;))+&amp;quot; バイト&amp;quot;&lt;br /&gt;
//,&amp;quot;EUC   \t: &amp;quot;+(bytes(&amp;quot;euc-jp&amp;quot;))+&amp;quot; バイト&amp;quot;&lt;br /&gt;
//,&amp;quot;JIS   \t: &amp;quot;+(bytes(&amp;quot;iso-2022-jp&amp;quot;))+&amp;quot; バイト&amp;quot;&lt;br /&gt;
//,&amp;quot;SJIS  \t: &amp;quot;+(bytes(&amp;quot;shift_jis&amp;quot;))+&amp;quot; バイト&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
:↓「サイズ」を非表示、「UTF-16」「UTF-8」「SJIS」を表示する場合&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
//,&amp;quot;サイズ\t: &amp;quot;+(bytes())+&amp;quot; バイト&amp;quot;&lt;br /&gt;
,&amp;quot;UTF-16\t: &amp;quot;+(bytes(&amp;quot;utf-16&amp;quot;))+&amp;quot;+2(BOM) バイト&amp;quot;&lt;br /&gt;
,&amp;quot;UTF-8 \t: &amp;quot;+(bytes(&amp;quot;utf-8&amp;quot;,-3))+&amp;quot;+3(BOM) バイト&amp;quot;&lt;br /&gt;
//,&amp;quot;UTF-7 \t: &amp;quot;+(bytes(&amp;quot;utf-7&amp;quot;))+&amp;quot; バイト&amp;quot;&lt;br /&gt;
//,&amp;quot;EUC   \t: &amp;quot;+(bytes(&amp;quot;euc-jp&amp;quot;))+&amp;quot; バイト&amp;quot;&lt;br /&gt;
//,&amp;quot;JIS   \t: &amp;quot;+(bytes(&amp;quot;iso-2022-jp&amp;quot;))+&amp;quot; バイト&amp;quot;&lt;br /&gt;
,&amp;quot;SJIS  \t: &amp;quot;+(bytes(&amp;quot;shift_jis&amp;quot;))+&amp;quot; バイト&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==教育漢字を数える==&lt;br /&gt;
応用例として、小学校で学年別に習う漢字のカウントを追加する方法を紹介します。&lt;br /&gt;
&lt;br /&gt;
[[ファイル:CharacterCounter_EducationKanji.png|border]]&lt;br /&gt;
&lt;br /&gt;
; 参考文献&lt;br /&gt;
* [https://www.mext.go.jp/content/1413522_001.pdf 文部科学省 - 小学校学習指導要領(平成29年告示) (PDF 5.8MB)] pp.42–45 学年別漢字配当表&lt;br /&gt;
* [https://ja.wikipedia.org/wiki/%E5%AD%A6%E5%B9%B4%E5%88%A5%E6%BC%A2%E5%AD%97%E9%85%8D%E5%BD%93%E8%A1%A8 Wikipedia - 学年別漢字配当表]&lt;br /&gt;
&lt;br /&gt;
===文字分類への追加===&lt;br /&gt;
; 2017(平成29)年改定版&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{type:&amp;quot;総数,全角,罫線&amp;quot; /* 中略 */ },&lt;br /&gt;
// ↓ここより下に追加してください&lt;br /&gt;
&lt;br /&gt;
  //★学年別漢字配当表 1026字 2017(平成29)年改定&lt;br /&gt;
{type:&amp;quot;総数,全角,漢字,第一,小学,小一&amp;quot;, re:/[一右雨円王音下火花貝学気九休玉金空月犬見五口校左三山子四糸字耳七車手十出女小上森人水正生青夕石赤千川先早草足村大男竹中虫町天田土二日入年白八百文木本名目立力林六]/g},&lt;br /&gt;
{type:&amp;quot;総数,全角,漢字,第一,小学,小二&amp;quot;, re:/[引羽雲園遠何科夏家歌画回会海絵外角楽活間丸岩顔汽記帰弓牛魚京強教近兄形計元言原戸古午後語工公広交光考行高黄合谷国黒今才細作算止市矢姉思紙寺自時室社弱首秋週春書少場色食心新親図数西声星晴切雪船線前組走多太体台地池知茶昼長鳥朝直通弟店点電刀冬当東答頭同道読内南肉馬売買麦半番父風分聞米歩母方北毎妹万明鳴毛門夜野友用曜来里理話]/g},&lt;br /&gt;
{type:&amp;quot;総数,全角,漢字,第一,小学,小三&amp;quot;, re:/[悪安暗医委意育員院飲運泳駅央横屋温化荷界開階寒感漢館岸起期客究急級宮球去橋業曲局銀区苦具君係軽血決研県庫湖向幸港号根祭皿仕死使始指歯詩次事持式実写者主守取酒受州拾終習集住重宿所暑助昭消商章勝乗植申身神真深進世整昔全相送想息速族他打対待代第題炭短談着注柱丁帳調追定庭笛鉄転都度投豆島湯登等動童農波配倍箱畑発反坂板皮悲美鼻筆氷表秒病品負部服福物平返勉放味命面問役薬由油有遊予羊洋葉陽様落流旅両緑礼列練路和]/g},&lt;br /&gt;
{type:&amp;quot;総数,全角,漢字,第一,小学,小四&amp;quot;, re:/[愛案以衣位茨印英栄媛塩岡億加果貨課芽賀改械害街各覚潟完官管関観願岐希季旗器機議求泣給挙漁共協鏡競極熊訓軍郡群径景芸欠結建健験固功好香候康佐差菜最埼材崎昨札刷察参産散残氏司試児治滋辞鹿失借種周祝順初松笑唱焼照城縄臣信井成省清静席積折節説浅戦選然争倉巣束側続卒孫帯隊達単置仲沖兆低底的典伝徒努灯働特徳栃奈梨熱念敗梅博阪飯飛必票標不夫付府阜富副兵別辺変便包法望牧末満未民無約勇要養浴利陸良料量輪類令冷例連老労録]/g},&lt;br /&gt;
{type:&amp;quot;総数,全角,漢字,第一,小学,小五&amp;quot;, re:/[圧囲移因永営衛易益液演応往桜可仮価河過快解格確額刊幹慣眼紀基寄規喜技義逆久旧救居許境均禁句型経潔件険検限現減故個護効厚耕航鉱構興講告混査再災妻採際在財罪殺雑酸賛士支史志枝師資飼示似識質舎謝授修述術準序招証象賞条状常情織職制性政勢精製税責績接設絶祖素総造像増則測属率損貸態団断築貯張停提程適統堂銅導得毒独任燃能破犯判版比肥非費備評貧布婦武復複仏粉編弁保墓報豊防貿暴脈務夢迷綿輸余容略留領歴]/g},&lt;br /&gt;
{type:&amp;quot;総数,全角,漢字,第一,小学,小六&amp;quot;, re:/[胃異遺域宇映延沿恩我灰拡革閣割株干巻看簡危机揮貴疑吸供胸郷勤筋系敬警劇激穴券絹権憲源厳己呼誤后孝皇紅降鋼刻穀骨困砂座済裁策冊蚕至私姿視詞誌磁射捨尺若樹収宗就衆従縦縮熟純処署諸除承将傷障蒸針仁垂推寸盛聖誠舌宣専泉洗染銭善奏窓創装層操蔵臓存尊退宅担探誕段暖値宙忠著庁頂腸潮賃痛敵展討党糖届難乳認納脳派拝背肺俳班晩否批秘俵腹奮並陛閉片補暮宝訪亡忘棒枚幕密盟模訳郵優預幼欲翌乱卵覧裏律臨朗論]/g},&lt;br /&gt;
&lt;br /&gt;
// ↑ここより上に追加してください&lt;br /&gt;
{type:&amp;quot;総数,全角,漢字,第一&amp;quot; /* 中略 */ },&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; 1989(平成元)年改定版&lt;br /&gt;
: ※小学1～3年は2017(平成29)年改定版と同一なので省略。&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
  //★学年別漢字配当表 1006字 1989(平成元)年改定&lt;br /&gt;
{type:&amp;quot;総数,全角,漢字,第一,小学,小四&amp;quot;, re:/[愛案以衣位囲胃印英栄塩億加果貨課芽改械害街各覚完官管関観願希季紀喜旗器機議求泣救給挙漁共協鏡競極訓軍郡径型景芸欠結建健験固功好候航康告差菜最材昨札刷殺察参産散残士氏史司試児治辞失借種周祝順初松笑唱焼象照賞臣信成省清静席積折節説浅戦選然争倉巣束側続卒孫帯隊達単置仲貯兆腸低底停的典伝徒努灯堂働特得毒熱念敗梅博飯飛費必票標不夫付府副粉兵別辺変便包法望牧末満未脈民無約勇要養浴利陸良料量輪類令冷例歴連老労録]/g},&lt;br /&gt;
{type:&amp;quot;総数,全角,漢字,第一,小学,小五&amp;quot;, re:/[圧移因永営衛易益液演応往桜恩可仮価河過賀快解格確額刊幹慣眼基寄規技義逆久旧居許境均禁句群経潔件券険検限現減故個護効厚耕鉱構興講混査再災妻採際在財罪雑酸賛支志枝師資飼示似識質舎謝授修述術準序招承証条状常情織職制性政勢精製税責績接設舌絶銭祖素総造像増則測属率損退貸態団断築張提程適敵統銅導徳独任燃能破犯判版比肥非備俵評貧布婦富武復複仏編弁保墓報豊防貿暴務夢迷綿輸余預容略留領]/g},&lt;br /&gt;
{type:&amp;quot;総数,全角,漢字,第一,小学,小六&amp;quot;, re:/[異遺域宇映延沿我灰拡革閣割株干巻看簡危机揮貴疑吸供胸郷勤筋系敬警劇激穴絹権憲源厳己呼誤后孝皇紅降鋼刻穀骨困砂座済裁策冊蚕至私姿視詞誌磁射捨尺若樹収宗就衆従縦縮熟純処署諸除将傷障城蒸針仁垂推寸盛聖誠宣専泉洗染善奏窓創装層操蔵臓存尊宅担探誕段暖値宙忠著庁頂潮賃痛展討党糖届難乳認納脳派拝背肺俳班晩否批秘腹奮並陛閉片補暮宝訪亡忘棒枚幕密盟模訳郵優幼欲翌乱卵覧裏律臨朗論]/g},&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===結果表示への追加例===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
,&amp;quot;　漢字\t: &amp;quot;+(type[&amp;quot;漢字&amp;quot;])+&amp;quot; (&amp;quot;+per(type[&amp;quot;漢字&amp;quot;],type[&amp;quot;字数&amp;quot;])+&amp;quot;/字数)&amp;quot;&lt;br /&gt;
// ↓ここより下に追加してください&lt;br /&gt;
&lt;br /&gt;
,&amp;quot;　小学\t: &amp;quot;+(type[&amp;quot;小学&amp;quot;])+&amp;quot; (&amp;quot;+per(type[&amp;quot;小学&amp;quot;],type[&amp;quot;漢字&amp;quot;])+&amp;quot;/漢字)&amp;quot;&lt;br /&gt;
,&amp;quot;　一 &amp;quot;+per(type[&amp;quot;小一&amp;quot;],type[&amp;quot;小学&amp;quot;])&lt;br /&gt;
+&amp;quot;　二 &amp;quot;+per(type[&amp;quot;小二&amp;quot;],type[&amp;quot;小学&amp;quot;])&lt;br /&gt;
+&amp;quot;　三 &amp;quot;+per(type[&amp;quot;小三&amp;quot;],type[&amp;quot;小学&amp;quot;])&lt;br /&gt;
,&amp;quot;　四 &amp;quot;+per(type[&amp;quot;小四&amp;quot;],type[&amp;quot;小学&amp;quot;])&lt;br /&gt;
+&amp;quot;　五 &amp;quot;+per(type[&amp;quot;小五&amp;quot;],type[&amp;quot;小学&amp;quot;])&lt;br /&gt;
+&amp;quot;　六 &amp;quot;+per(type[&amp;quot;小六&amp;quot;],type[&amp;quot;小学&amp;quot;])&lt;br /&gt;
&lt;br /&gt;
// ↑ここより上に追加してください&lt;br /&gt;
,&amp;quot;Unicode\t: &amp;quot;+(type[&amp;quot;Uni&amp;quot;])+&amp;quot; (ペア &amp;quot;+(type[&amp;quot;SP&amp;quot;])+&amp;quot;)&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Masme</name></author>
	</entry>
	<entry>
		<id>https://www.haijin-boys.com/wiki/index.php?title=%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:%E9%80%A3%E7%95%AA%E3%82%92%E6%8C%BF%E5%85%A5.zip&amp;diff=5087</id>
		<title>ファイル:連番を挿入.zip</title>
		<link rel="alternate" type="text/html" href="https://www.haijin-boys.com/wiki/index.php?title=%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:%E9%80%A3%E7%95%AA%E3%82%92%E6%8C%BF%E5%85%A5.zip&amp;diff=5087"/>
		<updated>2020-05-17T01:06:14Z</updated>

		<summary type="html">&lt;p&gt;Masme: Masme が ファイル:連番を挿入.zip の新しいバージョンを アップロードしました&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;連番を挿入.js&lt;/div&gt;</summary>
		<author><name>Masme</name></author>
	</entry>
	<entry>
		<id>https://www.haijin-boys.com/wiki/index.php?title=%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:%E8%A1%8C%E4%B8%A6%E3%81%B9%E6%9B%BF%E3%81%88.zip&amp;diff=5086</id>
		<title>ファイル:行並べ替え.zip</title>
		<link rel="alternate" type="text/html" href="https://www.haijin-boys.com/wiki/index.php?title=%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:%E8%A1%8C%E4%B8%A6%E3%81%B9%E6%9B%BF%E3%81%88.zip&amp;diff=5086"/>
		<updated>2020-05-17T01:05:26Z</updated>

		<summary type="html">&lt;p&gt;Masme: Masme が ファイル:行並べ替え.zip の新しいバージョンを アップロードしました&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;行並べ替え.js&lt;/div&gt;</summary>
		<author><name>Masme</name></author>
	</entry>
	<entry>
		<id>https://www.haijin-boys.com/wiki/index.php?title=%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:%E6%96%87%E5%AD%97%E3%82%AB%E3%82%A6%E3%83%B3%E3%83%88.zip&amp;diff=5085</id>
		<title>ファイル:文字カウント.zip</title>
		<link rel="alternate" type="text/html" href="https://www.haijin-boys.com/wiki/index.php?title=%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:%E6%96%87%E5%AD%97%E3%82%AB%E3%82%A6%E3%83%B3%E3%83%88.zip&amp;diff=5085"/>
		<updated>2020-05-17T01:04:22Z</updated>

		<summary type="html">&lt;p&gt;Masme: Masme が ファイル:文字カウント.zip の新しいバージョンを アップロードしました&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;文字カウント.js&lt;/div&gt;</summary>
		<author><name>Masme</name></author>
	</entry>
	<entry>
		<id>https://www.haijin-boys.com/wiki/index.php?title=%E3%83%9E%E3%82%AF%E3%83%AD%E3%83%A9%E3%82%A4%E3%83%96%E3%83%A9%E3%83%AA&amp;diff=4900</id>
		<title>マクロライブラリ</title>
		<link rel="alternate" type="text/html" href="https://www.haijin-boys.com/wiki/index.php?title=%E3%83%9E%E3%82%AF%E3%83%AD%E3%83%A9%E3%82%A4%E3%83%96%E3%83%A9%E3%83%AA&amp;diff=4900"/>
		<updated>2019-12-30T01:39:38Z</updated>

		<summary type="html">&lt;p&gt;Masme: 「連番を挿入」更新&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Mery で使用できるマクロを集めたライブラリです。&lt;br /&gt;
&lt;br /&gt;
スクリプトを拡張子「js」 (JavaScript、JScript の場合) にして「Macros」フォルダ等に保存し、マクロメニューの「選択」や「カスタマイズ」から読み込んで使用してください。&lt;br /&gt;
&lt;br /&gt;
マクロライブラリはどなたでも自由に編集できますので、みなさんが作成した便利なマクロをどんどん掲載してください。&lt;br /&gt;
&lt;br /&gt;
== テキスト操作補助 ==&lt;br /&gt;
&lt;br /&gt;
*[https://github.com/haijinboys/mery-macro-emmet Emmet] (Kuro)&lt;br /&gt;
*[[Zen Coding]] (Kuro)&lt;br /&gt;
*[[CSV のカーソル位置の列を削除]] (Kuro)&lt;br /&gt;
*[[対応する括弧に移動]] (Kuro, kurama, masme 他) update 2019/04/24 （追加コード 2019/12/05）&lt;br /&gt;
*[[選択文字列を強調]] (Kuro)&lt;br /&gt;
*[[行頭に移動]] (Kuro, 他) update 2014/03/15&lt;br /&gt;
*[[行頭か行末 または 選択範囲の始点か終点|行頭か行末 または 選択範囲の始点か終点 に移動]] (sukemaru) update 2019/03/29&lt;br /&gt;
*[[文書の先頭か末尾|文書の 先頭か末尾 に移動]] (sukemaru) update 2019/03/29&lt;br /&gt;
*[[バイト数]] (Kuro, ks)&lt;br /&gt;
*[[日付と時刻を挿入]] (n, masme, sukemaru) update 2018/12/09&lt;br /&gt;
*[[日付と時刻を挿入（カレンダー版）]] (papagoat) update 2016/05/24&lt;br /&gt;
*[[選択範囲を上下に移動]] (ks)&lt;br /&gt;
*[[行を上下に移動（Mery 2.7 用）]]　(sukemaru) 2019/05/07　※ Mery 2.7 以降用（ブックマークを保持）&lt;br /&gt;
*[[行を複製 (複数行可)]] (sukemaru) update 2019/05/07&lt;br /&gt;
*[[TeraPadのCtrl↑と同じような動作をするマクロ]] (suke)&lt;br /&gt;
*[[TeraPadのCtrl↓と同じような動作をするマクロ]] (suke)&lt;br /&gt;
*[[Vz 風テキストスタック 2 ストロークキー]] (papagoat) update 2013/11/22&lt;br /&gt;
*[[非選択状態でも逆インデント]] (papagoat)&lt;br /&gt;
*[[ラクラク罫線]] (手石) Update 2012/12/22&lt;br /&gt;
*[[ファイル:XHTML.zip]] (アラフォー親父) HTMLタグを、ショートカット・キーに登録して入力するマクロ（文章挟み込み仕様）&lt;br /&gt;
*[[矩形ペースト]] (手石)&lt;br /&gt;
*[[自動箇条書き]] (手石) update 2013/03/15&lt;br /&gt;
*[[インデントを考慮した折り返し（改行挿入）]] (手石) update 2013/02/23&lt;br /&gt;
*[[青空文庫用整形補助]] (ks, 有志)&lt;br /&gt;
*[[部分編集]] (ks)&lt;br /&gt;
*[[文字カウント]] (masme) 2014/02/01, update 2019/12/21&lt;br /&gt;
*[[字下げ・字上げ]](インデント・逆インデント)  (masme) 2014/02/09, update 2019/06/01&lt;br /&gt;
:[[字下げ・字上げ#sukemaru 版|スペース×２ 追加・削除]]、[[字下げ・字上げ#インデント|インデント・逆インデント]] (sukemaru) last update 2019/12/01　※ Mery 2.8.6 以上でブックマークを保持&lt;br /&gt;
*[[数値を増減]](インクリメント・デクリメント) (masme) 2014/06/17, update 2016/02/28&lt;br /&gt;
*[[少し便利な Undo/Redo]] (ks)&lt;br /&gt;
*[[自動ルビ振り]] (急急如律令)&lt;br /&gt;
*[[貼付け実行後のカーソル位置を貼付け文字列の先頭にする]] (yuko, sukemaru) update 2018/11/14&lt;br /&gt;
*[[ドイツ語特殊文字]] (鯉)&lt;br /&gt;
*[[矩形選択範囲の各行先頭に文字挿入]] (yuko)&lt;br /&gt;
*[[行の先頭に貼り付け]] (sukemaru) 2018/08/24&lt;br /&gt;
*[[文章で使用されている文字をユニーク抽出]] (Kuro)&lt;br /&gt;
*[[アウトライン用ノード追加]] (mik) 2018/06/25&lt;br /&gt;
*[[アウトラインのノードレベルを上げる]] (mik) 2018/06/25&lt;br /&gt;
*[[アウトラインのノードレベルを下げる]] (mik) 2018/06/25&lt;br /&gt;
*[[アウトラインのノードの完了/未完了を切り替える]] (mik) 2018/10/18 update&lt;br /&gt;
*[[ハルナアウトライン用の完了/未完了フラグをノード名に反映する]] (mik) 2018/10/18 update&lt;br /&gt;
*[[Markdown文書で改行時にリスト、引用ブロック開始記号を自動入力する]] (catfist, yuko) 2018/10/15 update&lt;br /&gt;
*[[Markdown 向け、リスト記号 (*) のトグル]] (yuko) 2019/04/29&lt;br /&gt;
*[[引用符／コメント]] ※ポップアップメニュー (行頭の文字列操作. 「引用の追加」マクロの増補改訂版)　(sukemaru) last modified 2019/04/07&lt;br /&gt;
*[[カッコで囲う]] (ポップアップメニューあり)　(sukemaru) last modified 2019/04/07&lt;br /&gt;
:「[[カッコで囲う#カッコで囲う (ポップアップメニューなし)|カッコで囲う (簡易版 ポップアップメニューなし)]]」&amp;lt;br&amp;gt; 「[[カッコで囲う#引用符を追加／削除|引用符を追加／削除]]」（ &amp;quot;二重引用符&amp;quot; の追加／削除トグル）&lt;br /&gt;
*[[定型文を挿入]]マクロ集 (sukemaru) 2018/12/03&lt;br /&gt;
*[[何年生で習う漢字？]] (シリル) 2019/03/10&lt;br /&gt;
*[[上に行挿入]] (yuko) 2019/05/11&lt;br /&gt;
&lt;br /&gt;
== ファイル操作補助 ==&lt;br /&gt;
&lt;br /&gt;
*[[ファイルのプロパティ]] (sukemaru) 2018/12/18&lt;br /&gt;
*[[文字列中のパス起動]] (ks)&lt;br /&gt;
*[[選択範囲のURL・パスを開く|ひらけゴマ！]] ※「選択範囲のURL・パスを開く」 (sukemaru) update 2019/04/07&lt;br /&gt;
*[[自動バックアップ]] (ks)&lt;br /&gt;
*[[終了時状態保持・復元]] (ks)&lt;br /&gt;
*[[上書き保存(UAC対応)]] (ks)&lt;br /&gt;
*[[含んでいるフォルダを開く]] (ks)&lt;br /&gt;
*[[パスを取得]] (Kuro)&lt;br /&gt;
*[[フォルダ内のファイルをすべて開く]] (Kuro)&lt;br /&gt;
*[[ファイルを比較]] (Kuro)&lt;br /&gt;
*[[ファイル名を引数にしてアプリ起動]] (Kuro, miso)&lt;br /&gt;
*[[ブックマーク一覧ジャンプ]] ※ポップアップメニュー (goat, sukemaru) update 2019/12/05&lt;br /&gt;
*[[拡張子の違うファイルを開く]] (n)&lt;br /&gt;
*[[フォルダを開く]] (n)&lt;br /&gt;
*[[コマンドプロンプトを開く]] (n)&lt;br /&gt;
*[[SDIウィンドウの記憶と復帰]] (papagoat) Update 2012/10/23 (説明文変更 2013/11/22)&lt;br /&gt;
*[[よく使うフォルダ]] (手石) Update 2014/02/22&lt;br /&gt;
*[[ファイル（選択範囲）の仮保存]] (手石)&lt;br /&gt;
*[[ポップアップメニューでファイル選択]] (手石)&lt;br /&gt;
*[[フォルダツリーをポップアップ表示]] (n)&lt;br /&gt;
*[[タグジャンプ]] (o)&lt;br /&gt;
*[[ウィンドウの位置とサイズを拡張子で指定]] (papagoat) Update 2014/04/17&lt;br /&gt;
*[[編集モードの自動選択]] または &#039;&#039;&#039;書き換え禁止で開く&#039;&#039;&#039; ※イベントマクロ (sukemaru, Bleat) update 2019/04/24&lt;br /&gt;
*[[書き換え禁止モード色反転]] (Bleat)&lt;br /&gt;
*[[特定のフォルダで「ファイルを開く」ダイアログ]] (sukemaru) fixed 2018/12/19&lt;br /&gt;
*[[すべて閉じる]]マクロ集 (sukemaru) update 2019/05/03 &amp;lt;br&amp;gt;｢他（右側／左側）のタブを閉じる｣ などを追加&lt;br /&gt;
*[[文書が変更されていなければ変更マークを消す]] (Noah)&lt;br /&gt;
*[[変更なしのタブをすべて閉じる]] (Noah)&lt;br /&gt;
*[[ファイルを読み直す・開きなおす]] ※ポップアップメニュー (sukemaru) last update 2019/11/30 &amp;lt;br&amp;gt; エンコード指定で読み直し・読み取り専用属性の変更・編集モードの変更・プロパティを開く・さいごに閉じたファイルを開く・etc...&lt;br /&gt;
*[[さいごに閉じたファイルを開く]] ※ポップアップメニュー (sukemaru) 2019/11/30&lt;br /&gt;
&lt;br /&gt;
== 変換・ソート・整形 ==&lt;br /&gt;
&lt;br /&gt;
*[[可変長を固定長に変換]] (Kuro)&lt;br /&gt;
*[[SHA でハッシュ化]] (Kuro)&lt;br /&gt;
*[[標準変換]] (Kuro)&lt;br /&gt;
*[[連続する重複行を削除]] (Kuro)&lt;br /&gt;
*[[昇順で並び替え]] (Kuro)&lt;br /&gt;
*[[降順で並び替え]] (Kuro)&lt;br /&gt;
*[[昇順で並び替え／降順で並び替え]] トグル変換 (sukemaru) 2019/06/03&lt;br /&gt;
*[[ブックマーク系コマンド集]] (ks)&lt;br /&gt;
*[[テキスト変換]] (ks)&lt;br /&gt;
**[[テキスト整形]] (masme) 2013/09/15, update 2019/12/21&lt;br /&gt;
*[[旧漢字から新漢字に変換]] (furu)&lt;br /&gt;
*[[clustalw を用いてアライメントを実行]] (suke)&lt;br /&gt;
*[[連番の挿入]] (手石)&lt;br /&gt;
*[[TSV(CSV) ⇒ 固定長]] (手石) update 2013/04/16&lt;br /&gt;
*[[行並べ替え]] (masme) 2013/08/25, update 2019/04/12&lt;br /&gt;
*[[連番を挿入]] (masme) 2013/08/25, update 2019/12/30&lt;br /&gt;
*[[GFMをHTMLに変換]] (noonworks) 2014/03/09&lt;br /&gt;
*[[TrueとFalse_を切り替える|YES／NO マクロ]] (sukemaru) update 2018/11/27 ※「&amp;lt;span style=&amp;quot;color:#0000c0;&amp;quot;&amp;gt;True&amp;lt;/span&amp;gt;と&amp;lt;span style=&amp;quot;color:#c00;&amp;quot;&amp;gt;False&amp;lt;/span&amp;gt;をトグル切り替え」 &amp;lt;br&amp;gt;＋ 改造版「ToDoリストモード」 (sukemaru) Added 2019/05/06&lt;br /&gt;
*[[基数変換10_16]] (シリル) 2019/02/10&lt;br /&gt;
*[[スネークケース ⇔ キャメルケースの変換]] (Noah)&lt;br /&gt;
*[[罫線変換]] (シリル) 2019/03/09&lt;br /&gt;
*[[全角／半角 トグル変換]] (sukemaru) fixed 2019/05/20&lt;br /&gt;
*[[大文字／小文字／頭文字 トグル変換]] (sukemaru) last update 2019/08/29 ※「Abc」→「ABC」→「abc」&lt;br /&gt;
*[[ひらがな／カタカナ変換]] (sukemaru) 2019/07/06 ※「あいうえお」⇔「アイウエオ」&lt;br /&gt;
*[[文字列の順番を逆に書き出す]] (sukemaru) 2019/07/06 ※「あいうえお」→「おえういあ」&lt;br /&gt;
&lt;br /&gt;
== 検索・置換 ==&lt;br /&gt;
&lt;br /&gt;
*[[文書から検索]] (Kuro)&lt;br /&gt;
*[[単語を抽出]] (Kuro)&lt;br /&gt;
*[[このファイルから検索(マッチしない行)]] (Kuro)&lt;br /&gt;
*[[このファイルから検索(マッチする行)]] (Kuro)&lt;br /&gt;
*[[タグの外側（内側）だけ置換]] (手石)&lt;br /&gt;
*[[ポップアップメニューで検索先にジャンプ]] (手石, sukemaru) Last Update 2019/04/16&lt;br /&gt;
*[[検索(SJIS以外)]] + 検索強調を解除 (masme) 2014/09/16, update 2019/06/01&lt;br /&gt;
*[https://github.com/TakamiChie/mery-scripts/blob/master/SearchWithMode.js 現在開いているファイルの言語名をつけてWeb検索] (高見知英)→[[https://vine.co/v/eeY59rFMail 実際の動作例]]&lt;br /&gt;
*[https://github.com/GunseiPaseri/Mery_macro 文字出現量ランキング] (群生系パセリ) 2015/12/28&lt;br /&gt;
*[[検索ヒット数表示]] (ks)&lt;br /&gt;
*[[検索ヒット数表示（選択文字列）]] ※イベントマクロ　(sukemaru) last update 2019/12/03 &amp;lt;br&amp;gt;「[[検索ヒット数表示（選択文字列）#機能強化バージョン|文字数・行数・バイト数・ヒット件数]]」を追加&lt;br /&gt;
*[[任意の検索エンジンで検索]] (Noah)&lt;br /&gt;
*[[任意の検索エンジンで検索ー改良版]] (Takeshi) 2019/07/12&lt;br /&gt;
*[[デフォルトの検索フラグを設定して検索ウィンドウ表示]] (yuko)&lt;br /&gt;
*[[簡易検索一覧]] (シリル) 2018/12/24&lt;br /&gt;
*[[簡易検索一覧などをアウトプット]] (シリル) 2018/12/31&lt;br /&gt;
*[[複数置換]] (Noah)&lt;br /&gt;
*[[類義語アウトプット【Python】]] (シリル) 2019/03/24&lt;br /&gt;
*[[校正支援アウトプット]] (シリル) 2019/05/01&lt;br /&gt;
*[[次／前の文字列を検索・改]] (sukemaru) last update 2019/12/03　※複数行選択から『次／前の文字列を検索』&lt;br /&gt;
&lt;br /&gt;
== プログラミング補助 ==&lt;br /&gt;
&lt;br /&gt;
*[[Eclipse風コメントアウト]] (ks)&lt;br /&gt;
*[[Eclipse風コメントアウト(改)]] (pizz) 2019/04/12&lt;br /&gt;
*[[コメントマーク付け外し]] (手石, masme, sukemaru) last update 2019/06/01&lt;br /&gt;
:([[コメントマーク付け外し#sukemaru 版|sukemaru版]]) last update 2019/12/01　※ ブックマーク対応&lt;br /&gt;
*[[スマートインデント(C 構文)]] (ks)&lt;br /&gt;
*[[ctags.exeでtagsファイルを生成、タグジャンプを行うマクロ]] (kazy)&lt;br /&gt;
*[[タグファイルから補完]] (n)&lt;br /&gt;
*[[コードスニペットもどき]] (手石) Update 2012/12/20&lt;br /&gt;
*[[TeX文書のコンパイル]] (手石)&lt;br /&gt;
*[[TeX数式のチェック]] (手石)&lt;br /&gt;
*[[簡易数式計算]] (ks)&lt;br /&gt;
*[[定義へ移動]] (ks)&lt;br /&gt;
*[[タブの桁数]] (手石)&lt;br /&gt;
*[[行末の空白を削除]] (n) 2014/12/19&lt;br /&gt;
*[https://github.com/TakamiChie/mery-scripts/tree/master/ 開いているスクリプトファイルを実行(掲載時点ではバッチファイル・Javascript・Lua・PHP・Perl・Python・Ruby・UWSCに対応。順次追加予定)] (高見知英)&lt;br /&gt;
*[https://github.com/TakamiChie/mery-scripts/tree/master/ 開いているスクリプトファイルを構文チェック(掲載時点ではPHP・Perlに対応。順次追加予定)] (高見知英)&lt;br /&gt;
*[[説明を出力]] (s) Create 2015/08/16&lt;br /&gt;
*[[拡張子からコンソール実行]] (YOS G-spec) 2019/6/22更新&lt;br /&gt;
*[[JSON整形]](Ovis) Create 2019/03/25&lt;br /&gt;
&lt;br /&gt;
== おもしろ ==&lt;br /&gt;
&lt;br /&gt;
*[[テキストブラウザ]] (Kuro)&lt;br /&gt;
*[[Yahoo!天気情報]] (Kuro)&lt;br /&gt;
*[[メール送信]] (ks)&lt;br /&gt;
*[[あつまれ☆みんなのおもしろアイコン]] (有志)&lt;br /&gt;
&lt;br /&gt;
== 実験的マクロ・練習マクロなど ==&lt;br /&gt;
&lt;br /&gt;
*【自家用】[[カッコをはずす]] ＆ [[カッコをはずす#カッコを削除／追加|カッコを削除／追加]] ＆ [[カッコをはずす#カッコを追加／削除|カッコを追加／削除]] (sukemaru) fixed 2019/05/03&lt;br /&gt;
*【自家用】[[ファイルのフルパスをコピーして閉じる]] ※イベント (sukemaru) update 2019/04/14&lt;br /&gt;
*【自家用】[[全角／半角変換]] (sukemaru) fixed 2019/05/11&lt;br /&gt;
*【自家用】[[行の表示方法を切り替える]] (sukemaru) update 2019/08/25　※論理行／表示行 トグル&lt;br /&gt;
*【自家用】[[位置情報を保存してから「すべて選択／選択解除」(非スクロール)]] (sukemaru)&lt;br /&gt;
: update 2019/11/13： 「[[位置情報を保存してから「すべて選択／選択解除」(非スクロール)#【include 版】位置を復帰／保存|位置を復帰／保存]]」を追加&lt;br /&gt;
*【自家用】[[対応する括弧に移動#sukemaru 版|対応するカッコに移動・選択]] (sukemaru) last update 2019/12/05&lt;br /&gt;
*【実験】 [[位置情報を保存してから「次の文字列を検索」]]＋復帰　(sukemaru) 2019/05/28&lt;br /&gt;
*【実験】 [[タブが「縦書き」モードかチェックする]] ※組み込み用関数 (sukemaru) 2019/04/29 &amp;lt;br&amp;gt;サンプルコード: 「特定の条件で縦書きモードに切りかえる」（※ ver 2.6.5 - 2.7.5 用）&lt;br /&gt;
*【実験】 [[「クリップボード履歴」メニューのマクロ化]]　(sukemaru) last update 2019/11/29 &amp;lt;br&amp;gt;　※ [[プラグイン:スニペットプラグイン|スニペット]] の機能を統合 ／ ※ver 2.8.1 以降用&lt;br /&gt;
*【実験】 [[コンパクトメニュー]] (sukemaru) last update 2019/11/21&lt;br /&gt;
&lt;br /&gt;
== その他 ==&lt;br /&gt;
&lt;br /&gt;
*[[HSPキーワード検索]] (SSSE) 2019/08/29&lt;br /&gt;
*[[最新版を確認]] (diaphragm)&lt;br /&gt;
*[[SAPI 使って単語読み上げ]] (miso)&lt;br /&gt;
*[[フォルダ選択ダイアログ]] (手石)&lt;br /&gt;
*[[HTA(HTML)の自作ダイアログを表示]] (noonworks)&lt;br /&gt;
*[[JavaScript を実行]] (n)&lt;br /&gt;
*[[ポップアップメニューを手軽に扱う]] (komorebikoboshi)&lt;br /&gt;
*[[マクロ・関数をメニューで呼び出す]] (aliquis) 2013/08/19&lt;br /&gt;
*[[階層化マクロメニュー]] (ks)&lt;br /&gt;
*[[シェルコマンドを実行]] (sasaki)&lt;br /&gt;
*[[ポップアップメニューでチェックボックス]] (手石)&lt;br /&gt;
*[[ポップアップメニューでラジオボタン]] (手石)&lt;br /&gt;
*[[Editor.OpenFile()のポリフィル]](kazy)&lt;br /&gt;
*[[折り返しトグル切り替え]] (Bleat, sukemaru) update 2019/02/19&lt;br /&gt;
*[[ファイルロック (排他制御) 的なもの]] (PebblePot)&lt;br /&gt;
*[[Mery.iniのオプション値を取得]] ※組み込み用関数 (sukemaru) last update 2019/11/15&lt;br /&gt;
*[[Mery本体のバージョンチェック]] ※組み込み用関数 (sukemaru) 2019/04/17 &amp;lt;br&amp;gt;サンプルコード: 「Begin/EndUndoGroup() メソッドを使えるのは ver 2.7.0 以降」&lt;br /&gt;
*[[IO.Serialize() の JSON を参照する]] ※組み込み用関数 (sukemaru) 2019/04/17&lt;br /&gt;
*[[ポップアップメニューを「n*十件ずつ」のサブメニューに自動分割する]] ※組み込み用関数 (sukemaru) 2019/04/20 &amp;lt;br&amp;gt;サンプルコード: 「すべての論理行をポップアップメニューに表示する」&lt;br /&gt;
*[[アクティブなタブのマクロを実行する]] (sukemaru) 2019/08/12&lt;br /&gt;
*[[マクロメニュー]] (sukemaru) 2019/11/02&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
*[[キーアサイン集]] (ks, masme, sukemaru, 有志) last update 2019/06/16&lt;br /&gt;
*[[マテリアルデザインっぽいアイコンと『小マクロ集』]] ※アイコン収録数&#039;&#039;&#039;300&#039;&#039;&#039;コ (sukemaru) last update 2019/05/01&lt;br /&gt;
*[[includeライブラリ]] (ks)&lt;br /&gt;
*[[GetKeyState.exe(キー状態取得実行ファイル)]] (pizz) 2019/03/23&lt;br /&gt;
*[[マクロ覚え書き（開発者向け）]](ks, 有志) Last Update 2019/09/08&lt;/div&gt;</summary>
		<author><name>Masme</name></author>
	</entry>
	<entry>
		<id>https://www.haijin-boys.com/wiki/index.php?title=%E9%80%A3%E7%95%AA%E3%82%92%E6%8C%BF%E5%85%A5&amp;diff=4899</id>
		<title>連番を挿入</title>
		<link rel="alternate" type="text/html" href="https://www.haijin-boys.com/wiki/index.php?title=%E9%80%A3%E7%95%AA%E3%82%92%E6%8C%BF%E5%85%A5&amp;diff=4899"/>
		<updated>2019-12-30T01:38:41Z</updated>

		<summary type="html">&lt;p&gt;Masme: マクロ更新&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;float:right&amp;quot;&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
カーソル行頭 or 選択範囲行頭に連番を挿入するマクロです。&lt;br /&gt;
&lt;br /&gt;
[[ファイル:InsertSequentialNumber_Popup.png]]&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 連番を挿入&lt;br /&gt;
| 連番の挿入を実行します。&lt;br /&gt;
|-&lt;br /&gt;
! 形式&lt;br /&gt;
| 連番の種類（スタイル）。&amp;lt;br&amp;gt;プリセット（あらかじめ用意した設定）の適応もここで行います。&lt;br /&gt;
|-&lt;br /&gt;
! 開始&lt;br /&gt;
| 開始番号（0以上の整数）。&lt;br /&gt;
|-&lt;br /&gt;
! 個数&lt;br /&gt;
| 行数（1以上の整数）。&amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;範囲選択時は変更できません。&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;..数値&amp;lt;/code&amp;gt; と入力すると、数値を終了番号とみなします。&amp;lt;br&amp;gt;たとえば、&amp;lt;code&amp;gt;..9&amp;lt;/code&amp;gt; なら9までで終わる連番になるよう個数を逆算します。&lt;br /&gt;
|-&lt;br /&gt;
! 増分&lt;br /&gt;
| 増加幅（0以上の整数）。&lt;br /&gt;
|-&lt;br /&gt;
! 桁数&lt;br /&gt;
| 最低桁数（0以上の整数。0 で最長桁揃え）。&amp;lt;br&amp;gt;桁埋めしたくない場合、1 を指定してください。&lt;br /&gt;
|-&lt;br /&gt;
! 桁埋&lt;br /&gt;
| 桁埋め文字（1文字）。&amp;lt;b&amp;gt;結合文字列には対応していません。&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;空欄にすると、スタイル既定の桁埋め文字が適用されます。&lt;br /&gt;
|-&lt;br /&gt;
! 接頭&amp;lt;br&amp;gt;接尾&lt;br /&gt;
| 連番の前後に付加する文字列。下記の特殊記法が使えます。&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;%t&amp;lt;/code&amp;gt; (タブ)、&amp;lt;code&amp;gt;%%&amp;lt;/code&amp;gt; (文字 %)、&amp;lt;code&amp;gt;%A&amp;lt;/code&amp;gt; (始値)、&amp;lt;code&amp;gt;%Z&amp;lt;/code&amp;gt; (終値)&lt;br /&gt;
|-&lt;br /&gt;
! (プレビュー)&amp;lt;br&amp;gt;もっと見る&lt;br /&gt;
| 連番の内容（最初と最後）の下見です。&amp;lt;br&amp;gt;&amp;lt;b&amp;gt;[もっと見る]&amp;lt;/b&amp;gt; で最初6個と最後6個を下見できます。&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==注意点==&lt;br /&gt;
* 範囲選択時は行全体を選択してから、論理行頭（論理座標）に連番を挿入します。&lt;br /&gt;
* 連番の限度は &amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;9007兆&amp;lt;/b&amp;gt;1992億5474万0991 (2&amp;lt;sup&amp;gt;53&amp;lt;/sup&amp;gt;−1) です。超過した場合の動作は保証しません。&amp;lt;br&amp;gt;JavaScript の仕様では、この数値を超えると整数の取り扱いに不都合が生じます。&lt;br /&gt;
* 個数の限度は &amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;42億&amp;lt;/b&amp;gt;9496万7295 (2&amp;lt;sup&amp;gt;32&amp;lt;/sup&amp;gt;−1) です。メモリ不足の場合の動作は保証しません。&lt;br /&gt;
* 桁埋・接頭・接尾の入力時にキャンセルすると、前の状態に戻るのではなく、空欄となります。&amp;lt;br&amp;gt;これは仕様上解決できませんので、ご了承ください。&lt;br /&gt;
* 桁埋・接頭・接尾・プレビューでは、下記のような代替表示が行われます。&lt;br /&gt;
** 半角空白 (U+0020) → &amp;lt;code&amp;gt;␣&amp;lt;/code&amp;gt; (U+2423) と表示&lt;br /&gt;
** 全角空白 (U+3000) → &amp;lt;code&amp;gt;〼&amp;lt;/code&amp;gt; (U+303C) と表示&lt;br /&gt;
** 水平タブ (U+0009) → &amp;lt;code&amp;gt;&amp;amp;nbsp;›&amp;amp;nbsp;&amp;lt;/code&amp;gt; (U+203A) と表示&lt;br /&gt;
* プレビューでは、最長桁数を実際より少なく見積もることがあります。&lt;br /&gt;
&lt;br /&gt;
==ソースコード==&lt;br /&gt;
ダウンロード→ [[メディア:連番を挿入.zip|連番を挿入.zip]]&lt;br /&gt;
&lt;br /&gt;
* 拙作ですがアイコンファイル (連番を挿入.ico) を同梱してあります。&amp;lt;br&amp;gt;Mery 2.4.7 以降の場合、マクロ (連番を挿入.js) と同じフォルダに、&amp;lt;br&amp;gt;Mery 2.4.6 以前の場合、Mery.exe と同じフォルダに、&amp;lt;br&amp;gt;アイコンファイルを配置しておくとツールバーにアイコンが読み込まれます。&lt;br /&gt;
&lt;br /&gt;
==更新履歴==&lt;br /&gt;
[[ファイル:連番を挿入.zip]]&lt;br /&gt;
&lt;br /&gt;
; 2019/12/30 (rev.3)&lt;br /&gt;
* 1億以上の漢数字連番で万億の文字が出力されない場合がある不具合を修正。&lt;br /&gt;
** 例＞ 「一億一万一」が「一億一一」になる。&lt;br /&gt;
** 例＞ 「一兆九億九万」が「一兆九九」になる。&lt;br /&gt;
; 2019/12/21 (rev.2)&lt;br /&gt;
* アイコンファイルを同梱し、読み込むようにした。&lt;br /&gt;
* 連番の挿入を実行後、実行範囲を行選択するようにした。&lt;br /&gt;
* 「プレビュー」を一番下に移動し、「もっと見る」を追加。&lt;br /&gt;
* スタイルの概念を導入（英字・仮名・ローマ数字・漢数字連番などに対応）。&lt;br /&gt;
** 「形式」を追加。「プリセット」は削除。&lt;br /&gt;
* 個数で、&amp;lt;code&amp;gt;..数値&amp;lt;/code&amp;gt; と入力すると終了番号とみなすようにした。&lt;br /&gt;
* 指定した桁数までしか桁埋めしない仕様に変更。&lt;br /&gt;
** 桁数を 0 にすると、最長桁揃えができるようにした。&lt;br /&gt;
* 桁埋を空欄にした場合、スタイルの既定を適用する仕様に変更。&lt;br /&gt;
* 接頭・接尾で、% による特殊記法を導入。&lt;br /&gt;
* 入力ダイアログの見出しを「項目名:」→「項目名: 現在値」に変更。&lt;br /&gt;
* 開始・個数・増分・桁数で、限度を超過した数値を受け付けないようにした。&lt;br /&gt;
* 桁埋で、2文字以上を指定した場合、最初の1文字のみ受け付けるようにした。&lt;br /&gt;
* 桁埋・接頭・接尾・プレビューで、文字 &amp;amp;amp; が正常に表示されないのを修正。&lt;br /&gt;
* 代替表示の対象に全角空白を追加。空欄を除外。&lt;br /&gt;
* サロゲートペアに対応。&lt;br /&gt;
; 2013/08/25 (rev.1)&lt;br /&gt;
* 初版公開。&lt;br /&gt;
&lt;br /&gt;
==連番の形式==&lt;br /&gt;
「形式」の内容は、ソースコードの最初あたりで定義されています。&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
//■形式&lt;br /&gt;
// ----------------- ↓ここより下に定義を追加&lt;br /&gt;
/* スタイル切替の例 */&lt;br /&gt;
,{text:&amp;quot;%{style.text}\t%{style.pad}埋&amp;quot;, style:&amp;quot;dec&amp;quot;}&lt;br /&gt;
,{text:&amp;quot;%{style.text}\t%{style.pad}埋&amp;quot;, style:&amp;quot;up-roman&amp;quot;}&lt;br /&gt;
,{text:&amp;quot;%{style.text}\t%{style.pad}埋&amp;quot;, style:&amp;quot;up-latin&amp;quot;}&lt;br /&gt;
,{text:&amp;quot;%{style.text}\t%{style.pad}埋&amp;quot;, style:&amp;quot;hira&amp;quot;}&lt;br /&gt;
,{text:&amp;quot;%{style.text}\t%{style.pad}埋&amp;quot;, style:&amp;quot;kanji&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
/* プリセットの例 */&lt;br /&gt;
,{text:&amp;quot;(1),(2),(3) ...&amp;quot;, style:&amp;quot;dec&amp;quot;, prefix:&amp;quot;(&amp;quot;, suffix:&amp;quot;)&amp;quot;}&lt;br /&gt;
,{text:&amp;quot;1.␣,2.␣,3.␣ ...&amp;quot;, style:&amp;quot;dec&amp;quot;, prefix:&amp;quot;&amp;quot;, suffix:&amp;quot;. &amp;quot;}&lt;br /&gt;
,{text:&amp;quot;1/Z › ,2/Z › ,3/Z › ... (Z:終値)&amp;quot;, style:&amp;quot;dec&amp;quot;, prefix:&amp;quot;&amp;quot;, suffix:&amp;quot;/%Z%t&amp;quot;}&lt;br /&gt;
,{text:&amp;quot;A ... Z [%{count}個]&amp;quot;, style:&amp;quot;up-latin&amp;quot;, start:&amp;quot;1&amp;quot;, count:&amp;quot;26&amp;quot;, step:&amp;quot;1&amp;quot;}&lt;br /&gt;
,{text:&amp;quot;あ ... ん [%{count}個]&amp;quot;, style:&amp;quot;hira&amp;quot;, start:&amp;quot;1&amp;quot;, count:&amp;quot;48&amp;quot;, step:&amp;quot;1&amp;quot;}&lt;br /&gt;
,{text:&amp;quot;北海道 ... 沖縄県 [%{count}個]&amp;quot;, style:&amp;quot;pref&amp;quot;, start:&amp;quot;1&amp;quot;, count:&amp;quot;47&amp;quot;, step:&amp;quot;1&amp;quot;}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
,{text:&amp;quot;表示文&amp;quot;, style:&amp;quot;スタイル&amp;quot;, start:&amp;quot;開始&amp;quot;, count:&amp;quot;個数&amp;quot;, step:&amp;quot;増分&amp;quot;, digit:&amp;quot;桁数&amp;quot;, pad:&amp;quot;桁埋&amp;quot;, prefix:&amp;quot;接頭&amp;quot;, suffix:&amp;quot;接尾&amp;quot;}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; style, start, count, step, digit, pad, prefix, suffix&lt;br /&gt;
: 適用する設定。&lt;br /&gt;
: ※&amp;lt;code&amp;gt;style&amp;lt;/code&amp;gt; に存在しないスタイル名を指定すると、適用時にエラーになります。&lt;br /&gt;
: ※範囲選択時は個数が固定されるため、&amp;lt;code&amp;gt;count&amp;lt;/code&amp;gt; の指定は無視されます。&lt;br /&gt;
; text&lt;br /&gt;
: メニューに表示する文章。下記の特殊記法が使えます。&lt;br /&gt;
:* &amp;lt;code&amp;gt;%{xxx}&amp;lt;/code&amp;gt;：適用する設定 xxx の値。たとえば、&amp;lt;code&amp;gt;%{start}&amp;lt;/code&amp;gt; など。&lt;br /&gt;
:* &amp;lt;code&amp;gt;%{style.xxx}&amp;lt;/code&amp;gt;：適用する style の xxx の値。たとえば、&amp;lt;code&amp;gt;%{style.text}&amp;lt;/code&amp;gt; など。&lt;br /&gt;
: ※ xxx が存在しない場合、&amp;lt;code&amp;gt;%{...}&amp;lt;/code&amp;gt; 部分は置換されず、そのまま表示されます。&lt;br /&gt;
: ※&amp;lt;code&amp;gt;pad&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;prefix&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;suffix&amp;lt;/code&amp;gt; の値には代替表示が適用されます。&lt;br /&gt;
&lt;br /&gt;
===定義済みスタイル===&lt;br /&gt;
初期状態で定義されているスタイルです。&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! style !! 形式表示 !! 例 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| dec || 1,2,3 || 0,1,2,3 ... 9,10,11 ... || 算用数字（アラビア数字）。&lt;br /&gt;
|-&lt;br /&gt;
| dec-full || １,２,３ || ０,１,２,３ ... ９,１０,１１ ... || 全角算用数字。&lt;br /&gt;
|-&lt;br /&gt;
| dec-kanji || 一,二,三 || 〇,一,二,三 ... 九,一〇,一一 ... || 漢数字・位取り表記。&lt;br /&gt;
|-&lt;br /&gt;
| up-roman || I,II,III || I,II,III ... IX,X,XI ... ||rowspan=&amp;quot;2&amp;quot;| ローマ数字（英字表記）。1から3999まで。&amp;lt;br&amp;gt;0と4000以上は算用数字になります。&lt;br /&gt;
|-&lt;br /&gt;
| lo-roman || i,ii,iii || i,ii,iii ... ix,x,xi ...&lt;br /&gt;
|-&lt;br /&gt;
| up-latin || A,B,C || A,B,C ... Z,AA,AB ... ||rowspan=&amp;quot;2&amp;quot;| 英字（ラテン・アルファベット）。26種。&lt;br /&gt;
|-&lt;br /&gt;
| lo-latin || a,b,c || a,b,c ... z,aa,ab ...&lt;br /&gt;
|-&lt;br /&gt;
| up-latin-full || Ａ,Ｂ,Ｃ || Ａ,Ｂ,Ｃ ... Ｚ,ＡＡ,ＡＢ ... ||rowspan=&amp;quot;2&amp;quot;| 全角英字。&lt;br /&gt;
|-&lt;br /&gt;
| lo-latin-full || ａ,ｂ,ｃ || ａ,ｂ,ｃ ... ｚ,ａａ,ａｂ ...&lt;br /&gt;
|-&lt;br /&gt;
| up-greek || Α,Β,Γ || Α,Β,Γ ... Ω,ΑΑ,ΑΒ ... ||rowspan=&amp;quot;2&amp;quot;| ギリシャ文字。24種。&lt;br /&gt;
|-&lt;br /&gt;
| lo-greek || α,β,γ || α,β,γ ... ω,αα,αβ ...&lt;br /&gt;
|-&lt;br /&gt;
| hira || あ,い,う || あ,い,う ... ん,ああ,あい ... ||rowspan=&amp;quot;2&amp;quot;| 仮名文字・五十音順。48種。&lt;br /&gt;
|-&lt;br /&gt;
| kata || ア,イ,ウ || ア,イ,ウ ... ン,アア,アイ ...&lt;br /&gt;
|-&lt;br /&gt;
| kata-half || ｱ,ｲ,ｳ || ｱ,ｲ,ｳ ... ﾝ,ｱｱ,ｱｲ ... || 半角カタカナ・五十音順。46種（「ヰヱ」が無い）。&lt;br /&gt;
|-&lt;br /&gt;
| hira-iroha || い,ろ,は || い,ろ,は ... す,いい,いろ ... ||rowspan=&amp;quot;2&amp;quot;| 仮名文字・いろは順。47種（「ン」が無い）。&lt;br /&gt;
|-&lt;br /&gt;
| kata-iroha || イ,ロ,ハ || イ,ロ,ハ ... ス,イイ,イロ ...&lt;br /&gt;
|-&lt;br /&gt;
| kanji || 一,十,百 || 〇,一,二,三 ... 九,十,十一 ... || 漢数字。&lt;br /&gt;
|-&lt;br /&gt;
| daiji || 壱,拾,百 || 零,壱,弐,参 ... 九,拾,拾壱 ... || 漢数字・大字。&lt;br /&gt;
|-&lt;br /&gt;
| circled-num || ①,②,③ || ①,②,③ ... ⑨,⑩,⑪ ... || 丸数字。1から20まで。&lt;br /&gt;
|-&lt;br /&gt;
| stem || 十干 || 甲,乙,丙 ... 癸,甲,乙 ... || 十干（天干 / Heavenly Stems）。10種ループ。&lt;br /&gt;
|-&lt;br /&gt;
| branch || 十二支 || 子,丑,寅 ... 亥,子,丑 ... || 十二支（地支 / Earthly Branches）。12種ループ。&lt;br /&gt;
|-&lt;br /&gt;
| stem-branch || 六十干支 || 甲子,乙丑,丙寅 ... || 六十干支。60種ループ。&lt;br /&gt;
|-&lt;br /&gt;
| pref || 都道府県 || 北海道,青森県,岩手県 ... || 都道府県（prefecture）。47種ループ。&lt;br /&gt;
|-&lt;br /&gt;
| hitotsu || 一 || 一,一,一 ... || 一つ書き。1種ループ。&lt;br /&gt;
|-&lt;br /&gt;
| naka || ・ || ・,・,・ ... || 中黒・中点。和文の箇条書きで用いられる。&lt;br /&gt;
|-&lt;br /&gt;
| disc || • || •,•,• ... || Bullet（ビュレット）。欧文の箇条書きで用いる。&lt;br /&gt;
|-&lt;br /&gt;
| none || 無し || || 連番無し。&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
|-&lt;br /&gt;
| up-hex || 1,F,10 || 0,1,2,3 ... F,10,11 ... ||rowspan=&amp;quot;2&amp;quot;| 十六進数（hexadecimal）。&lt;br /&gt;
|-&lt;br /&gt;
| lo-hex || 1,f,10 || 0,1,2,3 ... f,10,11 ...&lt;br /&gt;
|-&lt;br /&gt;
| up-roman-full || Ｉ,Ｍ || Ｉ,ＩＩ,ＩＩＩ ... ||rowspan=&amp;quot;2&amp;quot;| ローマ数字（全角英字表記）。&lt;br /&gt;
|-&lt;br /&gt;
| lo-roman-full || ｉ,ｍ || ｉ,ｉｉ,ｉｉｉ ...&lt;br /&gt;
|-&lt;br /&gt;
| up-roman-num || Ⅰ,Ⅹ || Ⅰ,ⅠⅠ,ⅠⅠⅠ ... ||rowspan=&amp;quot;2&amp;quot;| ローマ数字。1から39まで。&lt;br /&gt;
|-&lt;br /&gt;
| lo-roman-num || ⅰ,ⅹ || ⅰ,ⅰⅰ,ⅰⅰⅰ ...&lt;br /&gt;
|-&lt;br /&gt;
| up-roman-lig || Ⅰ,Ⅱ,Ⅲ || Ⅰ,Ⅱ,Ⅲ ... Ⅸ,Ⅹ,ⅩⅠ ... ||rowspan=&amp;quot;2&amp;quot;| ローマ数字（合字表記）。1から39まで。&lt;br /&gt;
|-&lt;br /&gt;
| lo-roman-lig || ⅰ,ⅱ,ⅲ || ⅰ,ⅱ,ⅲ ... ⅸ,ⅹ,ⅹⅰ ...&lt;br /&gt;
|-&lt;br /&gt;
| circled-num || ①,②,③ || ⓪,①,②,③ ... ⑨,⑩,⑪ ... || 丸数字。0から50まで。⓪と㉑以上は Unicode 文字。&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===スタイルの定義===&lt;br /&gt;
スタイルについては HTML / CSS の @counter-style を一部参考にしています。&lt;br /&gt;
* [https://www.w3.org/TR/css-counter-styles-3/ W3C - CSS Counter Styles Level 3] / [https://triple-underscore.github.io/css-counter-styles-ja.html 非公式日本語訳]&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
//■スタイル&lt;br /&gt;
// ----------------- ↓ここより下に定義を追加&lt;br /&gt;
/* system:&amp;quot;numeric&amp;quot; の例 */&lt;br /&gt;
,&amp;quot;dec&amp;quot;:{label:&amp;quot;1,2,3&amp;quot;, text:&amp;quot;1,2,3 ... 9,10,11 ...&amp;quot;,&lt;br /&gt;
 system:&amp;quot;numeric&amp;quot;, pad:&amp;quot;0&amp;quot;, zero:&amp;quot;0&amp;quot;, symbols:&amp;quot;0123456789&amp;quot;.split(&amp;quot;&amp;quot;)}&lt;br /&gt;
&lt;br /&gt;
/* system:&amp;quot;alphabetic&amp;quot; の例 */&lt;br /&gt;
,&amp;quot;up-latin&amp;quot;:{label:&amp;quot;A,B,C&amp;quot;, text:&amp;quot;A,B,C ... Z,AA,AB ... (26種)&amp;quot;,&lt;br /&gt;
 system:&amp;quot;alphabetic&amp;quot;, pad:&amp;quot; &amp;quot;, symbols:&amp;quot;ABCDEFGHIJKLMNOPQRSTUVWXYZ&amp;quot;.split(&amp;quot;&amp;quot;)}&lt;br /&gt;
&lt;br /&gt;
/* system:&amp;quot;cyclic&amp;quot; の例 */&lt;br /&gt;
,&amp;quot;stem&amp;quot;:{label:&amp;quot;十干&amp;quot;, text:&amp;quot;甲,乙,丙 ... 癸,甲,乙 ... (10種)&amp;quot;,&lt;br /&gt;
 system:&amp;quot;cyclic&amp;quot;, pad:&amp;quot;　&amp;quot;, symbols:&amp;quot;甲乙丙丁戊己庚辛壬癸&amp;quot;.split(&amp;quot;&amp;quot;)}&lt;br /&gt;
&lt;br /&gt;
/* system:&amp;quot;additive&amp;quot; の例 */&lt;br /&gt;
,&amp;quot;up-roman&amp;quot;:{label:&amp;quot;I,II,III&amp;quot;, text:&amp;quot;I,II,III ... IX,X,XI ... (～3999)&amp;quot;, range:[1,3999],&lt;br /&gt;
 system:&amp;quot;additive&amp;quot;, pad:&amp;quot; &amp;quot;, symbols:[1000,&amp;quot;M&amp;quot;,900,&amp;quot;CM&amp;quot;,500,&amp;quot;D&amp;quot;,400,&amp;quot;CD&amp;quot;,100,&amp;quot;C&amp;quot;,90,&amp;quot;XC&amp;quot;,50,&amp;quot;L&amp;quot;,40,&amp;quot;XL&amp;quot;,10,&amp;quot;X&amp;quot;,9,&amp;quot;IX&amp;quot;,5,&amp;quot;V&amp;quot;,4,&amp;quot;IV&amp;quot;,1,&amp;quot;I&amp;quot;]}&lt;br /&gt;
&lt;br /&gt;
/* system:&amp;quot;kanji&amp;quot; の例 */&lt;br /&gt;
,&amp;quot;daiji&amp;quot;:{label:&amp;quot;壱,拾,百&amp;quot;, text:&amp;quot;壱,弐,参 ... 九,拾,拾壱 ...&amp;quot;,&lt;br /&gt;
 system:&amp;quot;kanji&amp;quot;, pad:&amp;quot;　&amp;quot;, zero:&amp;quot;零&amp;quot;, symbols:[[&amp;quot;&amp;quot;,&amp;quot;壱&amp;quot;,&amp;quot;弐&amp;quot;,&amp;quot;参&amp;quot;,&amp;quot;四&amp;quot;,&amp;quot;五&amp;quot;,&amp;quot;六&amp;quot;,&amp;quot;七&amp;quot;,&amp;quot;八&amp;quot;,&amp;quot;九&amp;quot;],[&amp;quot;&amp;quot;,&amp;quot;拾&amp;quot;,&amp;quot;百&amp;quot;,&amp;quot;千&amp;quot;],[&amp;quot;&amp;quot;,&amp;quot;万&amp;quot;,&amp;quot;億&amp;quot;,&amp;quot;兆&amp;quot;]]}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
,&amp;quot;スタイル名&amp;quot;:{label:&amp;quot;形式表示&amp;quot;, text:&amp;quot;表示文&amp;quot;, range:[下限値,上限値],&lt;br /&gt;
 system:&amp;quot;生成方式&amp;quot;, pad:&amp;quot;桁埋&amp;quot;, zero:&amp;quot;ゼロの表現&amp;quot;, symbols:配列}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
; label&lt;br /&gt;
: 形式表示。メニューの「形式: ○○○」の ○○○ 部分に使用されます。&lt;br /&gt;
; text&lt;br /&gt;
: 表示文。&amp;lt;code&amp;gt;%{style.text}&amp;lt;/code&amp;gt; で表示される文章。&lt;br /&gt;
; range&lt;br /&gt;
: 生成できる連番の範囲。範囲を超えると算用数字の連番に移行します。&lt;br /&gt;
; pad&lt;br /&gt;
: スタイル既定の桁埋め文字。&lt;br /&gt;
; zero&lt;br /&gt;
: ゼロの表現。省略するとゼロ非対応とみなし、算用数字の &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; を出力します。&lt;br /&gt;
; system, symbols&lt;br /&gt;
:{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! system !! 説明・例示&lt;br /&gt;
|-&lt;br /&gt;
| numeric || 位取り記数法式の連番を生成します。&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;symbols:[&amp;quot;0&amp;quot;,&amp;quot;1&amp;quot;,&amp;quot;2&amp;quot;]&amp;lt;/code&amp;gt; → 1, 2, 10, 11, 12, 20, 21 ...&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;symbols:[&amp;quot;a&amp;quot;,&amp;quot;b&amp;quot;,&amp;quot;c&amp;quot;]&amp;lt;/code&amp;gt; → b, c, ba, bb, bc, ca, cb ...&lt;br /&gt;
|-&lt;br /&gt;
| alphabetic || アルファベット式の連番を生成します。&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;symbols:[&amp;quot;a&amp;quot;,&amp;quot;b&amp;quot;,&amp;quot;c&amp;quot;]&amp;lt;/code&amp;gt; → a, b, c, aa, ab, ac, ba ...&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;symbols:[&amp;quot;0&amp;quot;,&amp;quot;1&amp;quot;,&amp;quot;2&amp;quot;]&amp;lt;/code&amp;gt; → 0, 1, 2, 00, 01, 02, 10 ...&lt;br /&gt;
|-&lt;br /&gt;
| cyclic || 巡回する連番を生成します。&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;symbols:[&amp;quot;a&amp;quot;,&amp;quot;b&amp;quot;,&amp;quot;c&amp;quot;]&amp;lt;/code&amp;gt; → a, b, c, a, b, c, a ...&lt;br /&gt;
|-&lt;br /&gt;
| symbolic || 段々重ねとなる連番を生成します。&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;symbols:[&amp;quot;a&amp;quot;,&amp;quot;b&amp;quot;,&amp;quot;c&amp;quot;]&amp;lt;/code&amp;gt; → a, b, c, aa, bb, cc, aaa ...&lt;br /&gt;
|-&lt;br /&gt;
| additive || ローマ数字式の連番を生成します。&lt;br /&gt;
|-&lt;br /&gt;
| kanji || 漢数字式の連番を生成します。&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Masme</name></author>
	</entry>
	<entry>
		<id>https://www.haijin-boys.com/wiki/index.php?title=%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:%E9%80%A3%E7%95%AA%E3%82%92%E6%8C%BF%E5%85%A5.zip&amp;diff=4898</id>
		<title>ファイル:連番を挿入.zip</title>
		<link rel="alternate" type="text/html" href="https://www.haijin-boys.com/wiki/index.php?title=%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:%E9%80%A3%E7%95%AA%E3%82%92%E6%8C%BF%E5%85%A5.zip&amp;diff=4898"/>
		<updated>2019-12-30T01:36:31Z</updated>

		<summary type="html">&lt;p&gt;Masme: Masme が ファイル:連番を挿入.zip の新しいバージョンを アップロードしました&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;連番を挿入.js&lt;/div&gt;</summary>
		<author><name>Masme</name></author>
	</entry>
	<entry>
		<id>https://www.haijin-boys.com/wiki/index.php?title=%E5%88%A9%E7%94%A8%E8%80%85:Masme&amp;diff=4897</id>
		<title>利用者:Masme</title>
		<link rel="alternate" type="text/html" href="https://www.haijin-boys.com/wiki/index.php?title=%E5%88%A9%E7%94%A8%E8%80%85:Masme&amp;diff=4897"/>
		<updated>2019-12-21T13:42:59Z</updated>

		<summary type="html">&lt;p&gt;Masme: 抽出コマンドのアンパサンド対策。word-wrapを除去。&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=マクロ「テキスト整形」の仕様変更について (2019/05/01)=&lt;br /&gt;
マクロ「テキスト整形」の処理の流れを「前処理」「本処理」「後処理」の3段階に分けて考えたとき、モード (F/R/RS) 別に異なっていた流れを統合し、モードを廃止しようと考えています。&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;4&amp;quot;| 旧仕様&lt;br /&gt;
|-&lt;br /&gt;
! モード !! 前処理 !! 本処理 !! 後処理&lt;br /&gt;
|-&lt;br /&gt;
! F&lt;br /&gt;
| なし&lt;br /&gt;
| 引数に Selection を渡して処理&lt;br /&gt;
| なし&lt;br /&gt;
|-&lt;br /&gt;
! R&lt;br /&gt;
| なし&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot;| 引数に Selection.Text を渡して処理&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot;| 戻り値で選択範囲を置換、再選択&lt;br /&gt;
|-&lt;br /&gt;
! RS&lt;br /&gt;
| 選択範囲を行全体に拡張&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;4&amp;quot;| 新仕様&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| オプションで指定&lt;br /&gt;
| 第1引数に Selection.Text を、&amp;lt;br&amp;gt;第2引数に Selection を渡して処理&lt;br /&gt;
| 戻り値で置換・再選択を制御&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==後処理：戻り値による選択範囲の置換・再選択の制御==&lt;br /&gt;
Mery 2.7.0 にて「マクロで Chakra (jscript9.dll) における [[マクロリファレンス:Window_インターフェイス#Quit_メソッド|Quit メソッド]]をサポート外にした」（[https://www.haijin-boys.com/software/mery/mery-2-7-0 公式記事]）ことを受け、戻り値により後処理（選択範囲の置換・再選択）を制御できる仕組みを導入します。&lt;br /&gt;
&lt;br /&gt;
String (文字列) か Array (配列) を return すると、選択範囲を置換してカーソルを移動します。それ以外 (undefined など) の場合は、選択範囲に対し何もしません。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;Quit();&amp;lt;/code&amp;gt; (処理を中断) の代替策として &amp;lt;code&amp;gt;return;&amp;lt;/code&amp;gt; (undefined を返す) などとすることで処理を終了させることができます。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
f.push([&amp;quot;例1&amp;quot;,&amp;quot;&amp;quot;,function(){&lt;br /&gt;
  return &amp;quot;abcd&amp;quot; }]);&lt;br /&gt;
f.push([&amp;quot;例2&amp;quot;,&amp;quot;&amp;quot;,function(){&lt;br /&gt;
  return [&amp;quot;ab&amp;quot;,&amp;quot;cd&amp;quot;] }]);&lt;br /&gt;
f.push([&amp;quot;例3&amp;quot;,&amp;quot;&amp;quot;,function(){&lt;br /&gt;
  return [&amp;quot;ab&amp;quot;,&amp;quot;cd&amp;quot;,&amp;quot;&amp;quot;] }]);&lt;br /&gt;
f.push([&amp;quot;例4&amp;quot;,&amp;quot;&amp;quot;,function(){&lt;br /&gt;
  return; }]);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 例 !! 動作&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;quot;abcd&amp;quot;&amp;lt;/code&amp;gt; || abcd に置換後、abcd を選択 = &amp;lt;code&amp;gt;[&amp;quot;&amp;quot;,&amp;quot;abcd&amp;quot;,&amp;quot;&amp;quot;]&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;[&amp;quot;ab&amp;quot;,&amp;quot;cd&amp;quot;]&amp;lt;/code&amp;gt; || abcd に置換後、ab と cd の間に移動&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;[&amp;quot;ab&amp;quot;,&amp;quot;cd&amp;quot;,&amp;quot;&amp;quot;]&amp;lt;/code&amp;gt; || abcd に置換後、cd を選択&lt;br /&gt;
|-&lt;br /&gt;
| String / Array 以外 || 選択範囲に対し何もしない&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==本処理：第2引数を復活==&lt;br /&gt;
マクロ「[[テキスト変換]]」の第2引数を復活し、第1引数に Document.Selection.Text を、第2引数に Document.Selection を渡すようにします。&lt;br /&gt;
&lt;br /&gt;
「テキスト整形」で第2引数を削除したのは、「テキスト変換」で Selection を利用したコマンドが無かったこと、戻り値で選択範囲が置換されるため Selection を利用しづらいと感じたことが理由でした。&lt;br /&gt;
&lt;br /&gt;
「テキスト整形」でモード F を設け分離したのも、そうした理由によりますが、戻り値で選択範囲を置換するかしないか制御できるようになったため状況が変わりました。&lt;br /&gt;
&lt;br /&gt;
==前処理：モードを廃止、オプションに変更==&lt;br /&gt;
「モード」を「オプション」に変更し、機能を追加します。&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
| &amp;lt;code&amp;gt;s&amp;lt;/code&amp;gt; || 実行に範囲選択を要求 (require selection)&amp;lt;br&amp;gt;非選択時はメニュー項目がグレーになり実行不可&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;c&amp;lt;/code&amp;gt; || 実行にクリップボードを要求 (require clipboard)&amp;lt;br&amp;gt;貼り付けが行えない状況では同上&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;L&amp;lt;/code&amp;gt; || 行選択してから処理 (select Line)&amp;lt;br&amp;gt;モード RS はオプション L に変更&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;O&amp;lt;/code&amp;gt; || 非選択時はすべて選択してから処理 (select OR all)&amp;lt;br&amp;gt;※実験的機能（変更・廃止の可能性あり）&lt;br /&gt;
|}&lt;br /&gt;
* 複数指定する場合、空白で区切ります。順序は問いません。&lt;br /&gt;
* モードは必須でしたが、オプションは任意です。&lt;br /&gt;
* 上記以外の文字（オプション）を指定してもエラーにはなりません。&amp;lt;br&amp;gt;モード F/R/RS はオプション F/R/RS と認識されるが効果は無い、ということになります。&lt;br /&gt;
&lt;br /&gt;
==旧仕様から新仕様への移行方法==&lt;br /&gt;
移行を補助するコマンドを用意しました。&lt;br /&gt;
&lt;br /&gt;
※新仕様の基本コード用。旧仕様で使用する場合は、オプション &amp;quot;L&amp;quot; をモード &amp;quot;RS&amp;quot; に書き換えてください。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;拡張コードを旧→新仕様に変換&amp;quot;,&amp;quot;L&amp;quot;,function(_){ //2019/06/01&lt;br /&gt;
  return _.replace(/^(\s*(?:\/\/[\/\s]*)?)f\.push\(\[(&amp;quot;[^\\&amp;quot;]*(?:\\.[^\\&amp;quot;]*)*&amp;quot;|&#039;[^\\&#039;]*(?:\\.[^\\&#039;]*)*&#039;),&amp;quot;(RS?|F)&amp;quot;,function\(([$0-9A-Za-z_]*)\)/gm,function(_,cmnt,name,mode,arg){return cmnt+&#039;f.push([&#039;+name+&#039;,&amp;quot;&#039;+(mode===&amp;quot;RS&amp;quot;?&amp;quot;L&amp;quot;:&amp;quot;&amp;quot;)+&#039;&amp;quot;,function(&#039;+(mode===&amp;quot;F&amp;quot;&amp;amp;&amp;amp;arg?&amp;quot;_,&amp;quot;:&amp;quot;&amp;quot;)+arg+&#039;)&#039;}) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
旧仕様のコマンドに対し、上記のコマンドを実行すると、以下のように置換され、新仕様の基本コードで問題なく動作するようになります。&lt;br /&gt;
;モード F&lt;br /&gt;
&amp;lt;p style=&amp;quot;background:#f9f9f9; border:1px dashed #999; padding:6px;&amp;quot;&amp;gt;&amp;lt;samp&amp;gt;f.push([&amp;quot;コマンド名&amp;quot;,&amp;quot;&amp;lt;span style=&amp;quot;background:#fcc;&amp;quot;&amp;gt;F&amp;lt;/span&amp;gt;&amp;quot;,function(a) 以下略&amp;lt;/samp&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
:↓&lt;br /&gt;
&amp;lt;p style=&amp;quot;background:#f9f9f9; border:1px dashed #999; padding:6px;&amp;quot;&amp;gt;&amp;lt;samp&amp;gt;f.push([&amp;quot;コマンド名&amp;quot;,&amp;quot;&amp;quot;,function(&amp;lt;span style=&amp;quot;background:#fcc;&amp;quot;&amp;gt;_,&amp;lt;/span&amp;gt;a) 以下略&amp;lt;/samp&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
;モード R&lt;br /&gt;
&amp;lt;p style=&amp;quot;background:#f9f9f9; border:1px dashed #999; padding:6px;&amp;quot;&amp;gt;&amp;lt;samp&amp;gt;f.push([&amp;quot;コマンド名&amp;quot;,&amp;quot;&amp;lt;span style=&amp;quot;background:#fcc;&amp;quot;&amp;gt;R&amp;lt;/span&amp;gt;&amp;quot;,function(a) 以下略&amp;lt;/samp&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
:↓&lt;br /&gt;
&amp;lt;p style=&amp;quot;background:#f9f9f9; border:1px dashed #999; padding:6px;&amp;quot;&amp;gt;&amp;lt;samp&amp;gt;f.push([&amp;quot;コマンド名&amp;quot;,&amp;quot;&amp;quot;,function(a) 以下略&amp;lt;/samp&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
;モード RS&lt;br /&gt;
&amp;lt;p style=&amp;quot;background:#f9f9f9; border:1px dashed #999; padding:6px;&amp;quot;&amp;gt;&amp;lt;samp&amp;gt;f.push([&amp;quot;コマンド名&amp;quot;,&amp;quot;&amp;lt;span style=&amp;quot;background:#fcc;&amp;quot;&amp;gt;RS&amp;lt;/span&amp;gt;&amp;quot;,function(a) 以下略&amp;lt;/samp&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
:↓&lt;br /&gt;
&amp;lt;p style=&amp;quot;background:#f9f9f9; border:1px dashed #999; padding:6px;&amp;quot;&amp;gt;&amp;lt;samp&amp;gt;f.push([&amp;quot;コマンド名&amp;quot;,&amp;quot;&amp;lt;span style=&amp;quot;background:#fcc;&amp;quot;&amp;gt;L&amp;lt;/span&amp;gt;&amp;quot;,function(a) 以下略&amp;lt;/samp&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==変更点まとめ==&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 機能 !! 旧仕様 !! 新仕様 !! 備考&lt;br /&gt;
|-&lt;br /&gt;
! モード F&lt;br /&gt;
|style=&amp;quot;background:#cfc;&amp;quot;| 利用可 ||style=&amp;quot;background:#fc6;&amp;quot;| 動作不良&lt;br /&gt;
| 引数を利用しているものは動作しなくなります&lt;br /&gt;
|-&lt;br /&gt;
! モード R&lt;br /&gt;
|style=&amp;quot;background:#cfc;&amp;quot;| 利用可 ||style=&amp;quot;background:#fc6;&amp;quot;| 動作可&lt;br /&gt;
| 動作しますが、モード名の R は不要です（削除推奨）&lt;br /&gt;
|-&lt;br /&gt;
! モード RS&lt;br /&gt;
|style=&amp;quot;background:#cfc;&amp;quot;| 利用可 ||style=&amp;quot;background:#fc6;&amp;quot;| 動作不良&lt;br /&gt;
| 動作しますが、行選択はされなくなります&lt;br /&gt;
|-&lt;br /&gt;
! 戻り値制御&lt;br /&gt;
|style=&amp;quot;background:#fc6;&amp;quot;| 動作不良 ||style=&amp;quot;background:#cfc;&amp;quot;| 利用可&lt;br /&gt;
| 旧仕様では文字列以外に非対応、モード F では利用不可&lt;br /&gt;
|-&lt;br /&gt;
! 第2引数&lt;br /&gt;
|style=&amp;quot;background:#fcc;&amp;quot;| 利用不可 ||style=&amp;quot;background:#cfc;&amp;quot;| 利用可&lt;br /&gt;
| モード F は第2引数利用に移行&lt;br /&gt;
|-&lt;br /&gt;
! オプション&lt;br /&gt;
|style=&amp;quot;background:#fcc;&amp;quot;| 利用不可 ||style=&amp;quot;background:#cfc;&amp;quot;| 利用可&lt;br /&gt;
| モード RS はオプション L に移行&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==記事ソースから拡張コードを抽出==&lt;br /&gt;
「テキスト整形」の記事ソースから拡張コードを抽出するコマンドを用意しました。&lt;br /&gt;
&lt;br /&gt;
※新仕様の基本コード用。文書全体を対象に置換が行われます。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;記事ソースから拡張コードを抽出&amp;quot;,&amp;quot;&amp;quot;,function(_,$){ //2019/12/21&lt;br /&gt;
  $.SelectAll(); var src=$.Text.match(/(?:^|\n)=拡張コード=\n[\s\S]*?(\n==[\s\S]*?)(?:\n=拡張コード：書式=\n|$)/); if(src)$.Text=src[1].replace(/\n==([^=]+)==\n([\s\S]*?)(?=\n==[^=]|$)/g,function(_,ctg,src){var cmd=[], res, re=new RegExp(/^&amp;lt;pre(?: [^&amp;gt;]*)?&amp;gt;\s*(f\.push\(\[[\s\S]*?\]\);)\s*&amp;lt;\/pre&amp;gt;/gm); while(res=re.exec(src)){cmd.push(res[1].replace(/&amp;amp;amp;amp;/g,&amp;quot;&amp;amp;&amp;quot;))} return &#039;f.push([&amp;quot;&#039;+ctg+&#039;&amp;quot;,function(f){\n\n&#039;+ cmd.join(&amp;quot;\n\n&amp;quot;) +&#039;\n\n}]);\n\n&#039;}).slice(0,-1) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;使用手順&amp;lt;/b&amp;gt;&lt;br /&gt;
# 「[[テキスト整形]]」の記事上部にある [編集] タブをクリックする。&amp;lt;br&amp;gt;または、記事の「[[テキスト整形#拡張コード|拡張コード]]」見出しの [編集] リンクをクリックする。&lt;br /&gt;
# 記事編集ページに移動するので、テキストボックス内の文章をすべて選択し、コピーする。&amp;lt;br&amp;gt;※テキストボックス内を右クリックしてメニューから実行するのが一番わかりやすいと思われます。&lt;br /&gt;
#* コピーした後は戻る（ブラウザバック）か閉じるかして記事編集ページから離れてください。&lt;br /&gt;
# Mery で文書を新規作成し、コピーした文章を貼り付ける。&lt;br /&gt;
# 「テキスト整形」マクロを起動し、「記事ソースから拡張コードを抽出」コマンドを実行する。&lt;br /&gt;
&lt;br /&gt;
=マクロ「テキスト整形」の仕様変更について (2015/02/14)=&lt;br /&gt;
&lt;br /&gt;
==モード R/RS 実行後、処理した範囲を選択し直すように==&lt;br /&gt;
&amp;lt;p style=&amp;quot;background:#f9f9f9; border:1px dashed #999; padding:6px;&amp;quot;&amp;gt;旧仕様では、コマンド実行後は&amp;lt;span style=&amp;quot;background:#bfdfff; border-right:2px solid;&amp;quot;&amp;gt;範囲選択が　解　除　されました。↵&amp;lt;br&amp;gt;新仕様では、コマンド実行前に選択範囲を　記　憶　し、実行後に　復　元　します。↵&amp;lt;br&amp;gt;処理の結果、字数が　増　減　した場合は、選択範囲が　調　整　&amp;lt;/span&amp;gt;されます。↵&amp;lt;/p&amp;gt;&lt;br /&gt;
:↓　コマンド「空白文字を除去」実行&lt;br /&gt;
&amp;lt;p style=&amp;quot;background:#f9f9f9; border:1px dashed #999; padding:6px;&amp;quot;&amp;gt;旧仕様では、コマンド実行後は&amp;lt;span style=&amp;quot;background:#bfdfff; border-right:2px solid;&amp;quot;&amp;gt;範囲選択が解除されました。↵&amp;lt;br&amp;gt;新仕様では、コマンド実行前に選択範囲を記憶し、実行後に復元します。↵&amp;lt;br&amp;gt;処理の結果、字数が増減した場合は、選択範囲が調整&amp;lt;/span&amp;gt;されます。↵&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
この変更により、コマンドの効果範囲が目視できるようになり、また、選択し直す手間なく別の処理に移ることができるようになります。&lt;br /&gt;
* モード R では、選択範囲の始点終点の位置関係が維持されます。&lt;br /&gt;
* モード RS では、選択範囲を行頭行末まで拡張した状態が記憶されます。始点は上端行頭、終点は下端行末となります。&lt;br /&gt;
* コマンド実行中にカーソル位置を移動させる処理がある場合には対応できません。&lt;br /&gt;
&lt;br /&gt;
==モード RM を廃止==&lt;br /&gt;
モード RM (一行ごとに処理) は、マクロ「[[テキスト変換]]」の関数タイプ replaceL に相当し、モード RS で実現可能な処理をより簡素に記述するために設けられた機能です。&amp;lt;br&amp;gt;&lt;br /&gt;
しかし、以下のような難点が見受けられることから、廃止を考えるに至りました。&lt;br /&gt;
* モード RS より簡素に記述できるとは必ずしも限らない。&lt;br /&gt;
* モード RS で実現可能＝代替可能であり、RM ならではの利点が無い。&lt;br /&gt;
* モード R/RS に比べ処理が異質で、コマンドを作る際はそれを考慮しなければならない。&amp;lt;br&amp;gt;※異質＝R/RS が「選択範囲の文字列」を対象に処理を行うのに対し、RM は「選択範囲の各行の文字列」を対象に処理を行う。&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
//※モード RM では「クロージャ」という仕組みを使用する必要があり難解&lt;br /&gt;
f.push([&amp;quot;各行行頭に文字列付加...&amp;quot;,&amp;quot;RM&amp;quot;,(function(a){&lt;br /&gt;
  var p=null; return function(a){ if(!p){ if(!(p=Prompt(&amp;quot;各行行頭に付加する文字列:&amp;quot;,&amp;quot;&amp;quot;))){Quit()} } return p+a } })()]);&lt;br /&gt;
//※モード RS で replace(正規表現) を使用するほうが簡素に記述できる&lt;br /&gt;
f.push([&amp;quot;各行行頭に文字列付加...&amp;quot;,&amp;quot;RS&amp;quot;,function(a){&lt;br /&gt;
  var p=Prompt(&amp;quot;各行行頭に付加する文字列:&amp;quot;,&amp;quot;&amp;quot;); if(!p)Quit(); return a.replace(/^/gm,p) }]);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
//※モード RM でも、&lt;br /&gt;
f.push([&amp;quot;空白行を削除&amp;quot;,&amp;quot;RM&amp;quot;,function(a){&lt;br /&gt;
  return a.match(/^[ 　\t]*$/)? null:a }]);&lt;br /&gt;
//※モード RS でも、必要な知識や字数がほぼ変わらない時がある&lt;br /&gt;
f.push([&amp;quot;空白行を削除&amp;quot;,&amp;quot;RS&amp;quot;,function(a){&lt;br /&gt;
  return a.replace(/^[ 　\t]*$\n?/gm,&amp;quot;&amp;quot;) }]);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
//※モード RM なら正規表現に頼らず簡素に記述できるコマンドもあるが、&lt;br /&gt;
f.push([&amp;quot;インデント(半角空白2個)&amp;quot;,&amp;quot;RM&amp;quot;,function(a){&lt;br /&gt;
  return &amp;quot;  &amp;quot;+a }]);&lt;br /&gt;
f.push([&amp;quot;インデント(半角空白2個)&amp;quot;,&amp;quot;RS&amp;quot;,function(a){&lt;br /&gt;
  return a.replace(/^/gm,&amp;quot;  &amp;quot;) }]);&lt;br /&gt;
//※正規表現を利用したコマンドも数多くあり、利点になりづらい&lt;br /&gt;
f.push([&amp;quot;行頭 \/\/ を付加/削除&amp;quot;,&amp;quot;RM&amp;quot;,function(a){&lt;br /&gt;
  return a.match(/^\/\/.*$/)? a.slice(2): &amp;quot;\/\/&amp;quot;+a }]);&lt;br /&gt;
f.push([&amp;quot;行頭 \/\/ を付加/削除&amp;quot;,&amp;quot;RS&amp;quot;,function(a){&lt;br /&gt;
  return a.replace(/^(\/\/)?/gm,function(s){return s? &amp;quot;&amp;quot;: &amp;quot;\/\/&amp;quot;}) }]);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==モード CR を廃止、replaceBatch メソッドを追加==&lt;br /&gt;
モード CR (連続置換) は、&amp;lt;code&amp;gt;replace&amp;lt;/code&amp;gt; を連鎖させる記法（メソッドチェーン）をより簡素に記述するために設けられた機能です。&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
f.push([&amp;quot;コマンド名&amp;quot;,&amp;quot;R&amp;quot;,function(a){&lt;br /&gt;
  return a.replace(/ABC/g,&amp;quot;DEF&amp;quot;).replace(/\(1\)/g,&amp;quot;①&amp;quot;).replace(/GHI/gi,&amp;quot;JKL&amp;quot;) }]);&lt;br /&gt;
//↓簡素化&lt;br /&gt;
f.push([&amp;quot;コマンド名&amp;quot;,&amp;quot;CR&amp;quot;,function(a){&lt;br /&gt;
  return [ [&amp;quot;ABC&amp;quot;,&amp;quot;DEF&amp;quot;],[&amp;quot;(1)&amp;quot;,&amp;quot;①&amp;quot;],[/GHI/gi,&amp;quot;JKL&amp;quot;] ]}]);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
しかし、モードの一種としたがゆえに、他のモードでは利用できない事、&amp;lt;code&amp;gt;replace&amp;lt;/code&amp;gt; のような使い方ができない事が難点としてありました。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;replaceBatch&amp;lt;/code&amp;gt; メソッドは、この難点を解消するために設けられる機能です。&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
//※モード R で利用する(基本形)&lt;br /&gt;
f.push([&amp;quot;コマンド名&amp;quot;,&amp;quot;R&amp;quot;,function(a){&lt;br /&gt;
  return a.replaceBatch([ [&amp;quot;ABC&amp;quot;,&amp;quot;DEF&amp;quot;],[&amp;quot;(1)&amp;quot;,&amp;quot;①&amp;quot;],[/GHI/gi,&amp;quot;JKL&amp;quot;] ]) }]);&lt;br /&gt;
//※モード RS で利用する(選択範囲を拡張)&lt;br /&gt;
f.push([&amp;quot;コマンド名&amp;quot;,&amp;quot;RS&amp;quot;,function(a){&lt;br /&gt;
  return a.replaceBatch([ [&amp;quot;ABC&amp;quot;,&amp;quot;DEF&amp;quot;],[&amp;quot;(1)&amp;quot;,&amp;quot;①&amp;quot;],[/GHI/gi,&amp;quot;JKL&amp;quot;] ]) }]);&lt;br /&gt;
//※モード F で利用する(▲非推奨)&lt;br /&gt;
f.push([&amp;quot;コマンド名&amp;quot;,&amp;quot;F&amp;quot;,function(a){&lt;br /&gt;
  a.Text = a.Text.replaceBatch([ [&amp;quot;ABC&amp;quot;,&amp;quot;DEF&amp;quot;],[&amp;quot;(1)&amp;quot;,&amp;quot;①&amp;quot;],[/GHI/gi,&amp;quot;JKL&amp;quot;] ]) }]);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
//※replace のようにメソッドチェーンが可能&lt;br /&gt;
f.push([&amp;quot;コマンド名&amp;quot;,&amp;quot;R&amp;quot;,function(a){&lt;br /&gt;
  return a.replace(省略).replaceBatch([ 省略 ]).replace(省略) }]);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===モード CR → R (replaceBatch) への移行方法===&lt;br /&gt;
以下のように書き換えることで移行が可能です。&lt;br /&gt;
&amp;lt;p style=&amp;quot;background:#f9f9f9; border:1px dashed #999; padding:6px;&amp;quot;&amp;gt;&amp;lt;samp&amp;gt;f.push([&amp;quot;コマンド名&amp;quot;,&amp;quot;&amp;lt;span style=&amp;quot;background:#fcc;&amp;quot;&amp;gt;CR&amp;lt;/span&amp;gt;&amp;quot;,function(a){&amp;lt;br&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;return &amp;lt;span style=&amp;quot;background:#fcc;&amp;quot;&amp;gt;[&amp;lt;/span&amp;gt; [検索1,置換1],[検索2,置換2] 中略 &amp;lt;span style=&amp;quot;background:#fcc;&amp;quot;&amp;gt;]&amp;lt;/span&amp;gt;}]);&amp;lt;/samp&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
:↓&lt;br /&gt;
&amp;lt;p style=&amp;quot;background:#f9f9f9; border:1px dashed #999; padding:6px;&amp;quot;&amp;gt;&amp;lt;samp&amp;gt;f.push([&amp;quot;コマンド名&amp;quot;,&amp;quot;&amp;lt;span style=&amp;quot;background:#fcc;&amp;quot;&amp;gt;R&amp;lt;/span&amp;gt;&amp;quot;,function(a){&amp;lt;br&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;return &amp;lt;span style=&amp;quot;background:#fcc;&amp;quot;&amp;gt;a.replaceBatch([&amp;lt;/span&amp;gt; [検索1,置換1],[検索2,置換2] 中略 &amp;lt;span style=&amp;quot;background:#fcc;&amp;quot;&amp;gt;]) &amp;lt;/span&amp;gt;}]);&amp;lt;/samp&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==変更点まとめ==&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 機能 !! 旧仕様 !! 新仕様 !! 備考&lt;br /&gt;
|-&lt;br /&gt;
! モード F&lt;br /&gt;
|style=&amp;quot;background:#cfc;&amp;quot;| 利用可 ||style=&amp;quot;background:#cfc;&amp;quot;| 利用可&lt;br /&gt;
| 変更なし&lt;br /&gt;
|-&lt;br /&gt;
! モード R&lt;br /&gt;
|style=&amp;quot;background:#cfc;&amp;quot;| 利用可 ||style=&amp;quot;background:#cfc;&amp;quot;| 利用可&lt;br /&gt;
| 選択範囲を維持・調整するように&lt;br /&gt;
|-&lt;br /&gt;
! モード RS&lt;br /&gt;
|style=&amp;quot;background:#cfc;&amp;quot;| 利用可 ||style=&amp;quot;background:#cfc;&amp;quot;| 利用可&lt;br /&gt;
| 選択範囲を維持・調整するように&lt;br /&gt;
|-&lt;br /&gt;
! モード RM&lt;br /&gt;
|style=&amp;quot;background:#cfc;&amp;quot;| 利用可 ||style=&amp;quot;background:#fcc;&amp;quot;| 廃止&lt;br /&gt;
| モード RS で作り直し&lt;br /&gt;
|-&lt;br /&gt;
! モード CR&lt;br /&gt;
|style=&amp;quot;background:#cfc;&amp;quot;| 利用可 ||style=&amp;quot;background:#fcc;&amp;quot;| 廃止&lt;br /&gt;
| replaceBatch メソッドに移行&lt;br /&gt;
|-&lt;br /&gt;
! replaceBatch&lt;br /&gt;
|style=&amp;quot;background:#fcc;&amp;quot;| エラー ||style=&amp;quot;background:#cfc;&amp;quot;| 利用可&lt;br /&gt;
| 旧仕様ではコマンド実行時にエラーが発生する&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Masme</name></author>
	</entry>
	<entry>
		<id>https://www.haijin-boys.com/wiki/index.php?title=%E3%83%9E%E3%82%AF%E3%83%AD%E3%83%A9%E3%82%A4%E3%83%96%E3%83%A9%E3%83%AA&amp;diff=4896</id>
		<title>マクロライブラリ</title>
		<link rel="alternate" type="text/html" href="https://www.haijin-boys.com/wiki/index.php?title=%E3%83%9E%E3%82%AF%E3%83%AD%E3%83%A9%E3%82%A4%E3%83%96%E3%83%A9%E3%83%AA&amp;diff=4896"/>
		<updated>2019-12-21T13:30:36Z</updated>

		<summary type="html">&lt;p&gt;Masme: 「文字カウント」「テキスト整形」「連番を挿入」更新&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Mery で使用できるマクロを集めたライブラリです。&lt;br /&gt;
&lt;br /&gt;
スクリプトを拡張子「js」 (JavaScript、JScript の場合) にして「Macros」フォルダ等に保存し、マクロメニューの「選択」や「カスタマイズ」から読み込んで使用してください。&lt;br /&gt;
&lt;br /&gt;
マクロライブラリはどなたでも自由に編集できますので、みなさんが作成した便利なマクロをどんどん掲載してください。&lt;br /&gt;
&lt;br /&gt;
== テキスト操作補助 ==&lt;br /&gt;
&lt;br /&gt;
*[https://github.com/haijinboys/mery-macro-emmet Emmet] (Kuro)&lt;br /&gt;
*[[Zen Coding]] (Kuro)&lt;br /&gt;
*[[CSV のカーソル位置の列を削除]] (Kuro)&lt;br /&gt;
*[[対応する括弧に移動]] (Kuro, kurama, masme 他) update 2019/04/24 （追加コード 2019/12/05）&lt;br /&gt;
*[[選択文字列を強調]] (Kuro)&lt;br /&gt;
*[[行頭に移動]] (Kuro, 他) update 2014/03/15&lt;br /&gt;
*[[行頭か行末 または 選択範囲の始点か終点|行頭か行末 または 選択範囲の始点か終点 に移動]] (sukemaru) update 2019/03/29&lt;br /&gt;
*[[文書の先頭か末尾|文書の 先頭か末尾 に移動]] (sukemaru) update 2019/03/29&lt;br /&gt;
*[[バイト数]] (Kuro, ks)&lt;br /&gt;
*[[日付と時刻を挿入]] (n, masme, sukemaru) update 2018/12/09&lt;br /&gt;
*[[日付と時刻を挿入（カレンダー版）]] (papagoat) update 2016/05/24&lt;br /&gt;
*[[選択範囲を上下に移動]] (ks)&lt;br /&gt;
*[[行を上下に移動（Mery 2.7 用）]]　(sukemaru) 2019/05/07　※ Mery 2.7 以降用（ブックマークを保持）&lt;br /&gt;
*[[行を複製 (複数行可)]] (sukemaru) update 2019/05/07&lt;br /&gt;
*[[TeraPadのCtrl↑と同じような動作をするマクロ]] (suke)&lt;br /&gt;
*[[TeraPadのCtrl↓と同じような動作をするマクロ]] (suke)&lt;br /&gt;
*[[Vz 風テキストスタック 2 ストロークキー]] (papagoat) update 2013/11/22&lt;br /&gt;
*[[非選択状態でも逆インデント]] (papagoat)&lt;br /&gt;
*[[ラクラク罫線]] (手石) Update 2012/12/22&lt;br /&gt;
*[[ファイル:XHTML.zip]] (アラフォー親父) HTMLタグを、ショートカット・キーに登録して入力するマクロ（文章挟み込み仕様）&lt;br /&gt;
*[[矩形ペースト]] (手石)&lt;br /&gt;
*[[自動箇条書き]] (手石) update 2013/03/15&lt;br /&gt;
*[[インデントを考慮した折り返し（改行挿入）]] (手石) update 2013/02/23&lt;br /&gt;
*[[青空文庫用整形補助]] (ks, 有志)&lt;br /&gt;
*[[部分編集]] (ks)&lt;br /&gt;
*[[文字カウント]] (masme) 2014/02/01, update 2019/12/21&lt;br /&gt;
*[[字下げ・字上げ]](インデント・逆インデント)  (masme) 2014/02/09, update 2019/06/01&lt;br /&gt;
:[[字下げ・字上げ#sukemaru 版|スペース×２ 追加・削除]]、[[字下げ・字上げ#インデント|インデント・逆インデント]] (sukemaru) last update 2019/12/01　※ Mery 2.8.6 以上でブックマークを保持&lt;br /&gt;
*[[数値を増減]](インクリメント・デクリメント) (masme) 2014/06/17, update 2016/02/28&lt;br /&gt;
*[[少し便利な Undo/Redo]] (ks)&lt;br /&gt;
*[[自動ルビ振り]] (急急如律令)&lt;br /&gt;
*[[貼付け実行後のカーソル位置を貼付け文字列の先頭にする]] (yuko, sukemaru) update 2018/11/14&lt;br /&gt;
*[[ドイツ語特殊文字]] (鯉)&lt;br /&gt;
*[[矩形選択範囲の各行先頭に文字挿入]] (yuko)&lt;br /&gt;
*[[行の先頭に貼り付け]] (sukemaru) 2018/08/24&lt;br /&gt;
*[[文章で使用されている文字をユニーク抽出]] (Kuro)&lt;br /&gt;
*[[アウトライン用ノード追加]] (mik) 2018/06/25&lt;br /&gt;
*[[アウトラインのノードレベルを上げる]] (mik) 2018/06/25&lt;br /&gt;
*[[アウトラインのノードレベルを下げる]] (mik) 2018/06/25&lt;br /&gt;
*[[アウトラインのノードの完了/未完了を切り替える]] (mik) 2018/10/18 update&lt;br /&gt;
*[[ハルナアウトライン用の完了/未完了フラグをノード名に反映する]] (mik) 2018/10/18 update&lt;br /&gt;
*[[Markdown文書で改行時にリスト、引用ブロック開始記号を自動入力する]] (catfist, yuko) 2018/10/15 update&lt;br /&gt;
*[[Markdown 向け、リスト記号 (*) のトグル]] (yuko) 2019/04/29&lt;br /&gt;
*[[引用符／コメント]] ※ポップアップメニュー (行頭の文字列操作. 「引用の追加」マクロの増補改訂版)　(sukemaru) last modified 2019/04/07&lt;br /&gt;
*[[カッコで囲う]] (ポップアップメニューあり)　(sukemaru) last modified 2019/04/07&lt;br /&gt;
:「[[カッコで囲う#カッコで囲う (ポップアップメニューなし)|カッコで囲う (簡易版 ポップアップメニューなし)]]」&amp;lt;br&amp;gt; 「[[カッコで囲う#引用符を追加／削除|引用符を追加／削除]]」（ &amp;quot;二重引用符&amp;quot; の追加／削除トグル）&lt;br /&gt;
*[[定型文を挿入]]マクロ集 (sukemaru) 2018/12/03&lt;br /&gt;
*[[何年生で習う漢字？]] (シリル) 2019/03/10&lt;br /&gt;
*[[上に行挿入]] (yuko) 2019/05/11&lt;br /&gt;
&lt;br /&gt;
== ファイル操作補助 ==&lt;br /&gt;
&lt;br /&gt;
*[[ファイルのプロパティ]] (sukemaru) 2018/12/18&lt;br /&gt;
*[[文字列中のパス起動]] (ks)&lt;br /&gt;
*[[選択範囲のURL・パスを開く|ひらけゴマ！]] ※「選択範囲のURL・パスを開く」 (sukemaru) update 2019/04/07&lt;br /&gt;
*[[自動バックアップ]] (ks)&lt;br /&gt;
*[[終了時状態保持・復元]] (ks)&lt;br /&gt;
*[[上書き保存(UAC対応)]] (ks)&lt;br /&gt;
*[[含んでいるフォルダを開く]] (ks)&lt;br /&gt;
*[[パスを取得]] (Kuro)&lt;br /&gt;
*[[フォルダ内のファイルをすべて開く]] (Kuro)&lt;br /&gt;
*[[ファイルを比較]] (Kuro)&lt;br /&gt;
*[[ファイル名を引数にしてアプリ起動]] (Kuro, miso)&lt;br /&gt;
*[[ブックマーク一覧ジャンプ]] ※ポップアップメニュー (goat, sukemaru) update 2019/12/05&lt;br /&gt;
*[[拡張子の違うファイルを開く]] (n)&lt;br /&gt;
*[[フォルダを開く]] (n)&lt;br /&gt;
*[[コマンドプロンプトを開く]] (n)&lt;br /&gt;
*[[SDIウィンドウの記憶と復帰]] (papagoat) Update 2012/10/23 (説明文変更 2013/11/22)&lt;br /&gt;
*[[よく使うフォルダ]] (手石) Update 2014/02/22&lt;br /&gt;
*[[ファイル（選択範囲）の仮保存]] (手石)&lt;br /&gt;
*[[ポップアップメニューでファイル選択]] (手石)&lt;br /&gt;
*[[フォルダツリーをポップアップ表示]] (n)&lt;br /&gt;
*[[タグジャンプ]] (o)&lt;br /&gt;
*[[ウィンドウの位置とサイズを拡張子で指定]] (papagoat) Update 2014/04/17&lt;br /&gt;
*[[編集モードの自動選択]] または &#039;&#039;&#039;書き換え禁止で開く&#039;&#039;&#039; ※イベントマクロ (sukemaru, Bleat) update 2019/04/24&lt;br /&gt;
*[[書き換え禁止モード色反転]] (Bleat)&lt;br /&gt;
*[[特定のフォルダで「ファイルを開く」ダイアログ]] (sukemaru) fixed 2018/12/19&lt;br /&gt;
*[[すべて閉じる]]マクロ集 (sukemaru) update 2019/05/03 &amp;lt;br&amp;gt;｢他（右側／左側）のタブを閉じる｣ などを追加&lt;br /&gt;
*[[文書が変更されていなければ変更マークを消す]] (Noah)&lt;br /&gt;
*[[変更なしのタブをすべて閉じる]] (Noah)&lt;br /&gt;
*[[ファイルを読み直す・開きなおす]] ※ポップアップメニュー (sukemaru) last update 2019/11/30 &amp;lt;br&amp;gt; エンコード指定で読み直し・読み取り専用属性の変更・編集モードの変更・プロパティを開く・さいごに閉じたファイルを開く・etc...&lt;br /&gt;
*[[さいごに閉じたファイルを開く]] ※ポップアップメニュー (sukemaru) 2019/11/30&lt;br /&gt;
&lt;br /&gt;
== 変換・ソート・整形 ==&lt;br /&gt;
&lt;br /&gt;
*[[可変長を固定長に変換]] (Kuro)&lt;br /&gt;
*[[SHA でハッシュ化]] (Kuro)&lt;br /&gt;
*[[標準変換]] (Kuro)&lt;br /&gt;
*[[連続する重複行を削除]] (Kuro)&lt;br /&gt;
*[[昇順で並び替え]] (Kuro)&lt;br /&gt;
*[[降順で並び替え]] (Kuro)&lt;br /&gt;
*[[昇順で並び替え／降順で並び替え]] トグル変換 (sukemaru) 2019/06/03&lt;br /&gt;
*[[ブックマーク系コマンド集]] (ks)&lt;br /&gt;
*[[テキスト変換]] (ks)&lt;br /&gt;
**[[テキスト整形]] (masme) 2013/09/15, update 2019/12/21&lt;br /&gt;
*[[旧漢字から新漢字に変換]] (furu)&lt;br /&gt;
*[[clustalw を用いてアライメントを実行]] (suke)&lt;br /&gt;
*[[連番の挿入]] (手石)&lt;br /&gt;
*[[TSV(CSV) ⇒ 固定長]] (手石) update 2013/04/16&lt;br /&gt;
*[[行並べ替え]] (masme) 2013/08/25, update 2019/04/12&lt;br /&gt;
*[[連番を挿入]] (masme) 2013/08/25, update 2019/12/21&lt;br /&gt;
*[[GFMをHTMLに変換]] (noonworks) 2014/03/09&lt;br /&gt;
*[[TrueとFalse_を切り替える|YES／NO マクロ]] (sukemaru) update 2018/11/27 ※「&amp;lt;span style=&amp;quot;color:#0000c0;&amp;quot;&amp;gt;True&amp;lt;/span&amp;gt;と&amp;lt;span style=&amp;quot;color:#c00;&amp;quot;&amp;gt;False&amp;lt;/span&amp;gt;をトグル切り替え」 &amp;lt;br&amp;gt;＋ 改造版「ToDoリストモード」 (sukemaru) Added 2019/05/06&lt;br /&gt;
*[[基数変換10_16]] (シリル) 2019/02/10&lt;br /&gt;
*[[スネークケース ⇔ キャメルケースの変換]] (Noah)&lt;br /&gt;
*[[罫線変換]] (シリル) 2019/03/09&lt;br /&gt;
*[[全角／半角 トグル変換]] (sukemaru) fixed 2019/05/20&lt;br /&gt;
*[[大文字／小文字／頭文字 トグル変換]] (sukemaru) last update 2019/08/29 ※「Abc」→「ABC」→「abc」&lt;br /&gt;
*[[ひらがな／カタカナ変換]] (sukemaru) 2019/07/06 ※「あいうえお」⇔「アイウエオ」&lt;br /&gt;
*[[文字列の順番を逆に書き出す]] (sukemaru) 2019/07/06 ※「あいうえお」→「おえういあ」&lt;br /&gt;
&lt;br /&gt;
== 検索・置換 ==&lt;br /&gt;
&lt;br /&gt;
*[[文書から検索]] (Kuro)&lt;br /&gt;
*[[単語を抽出]] (Kuro)&lt;br /&gt;
*[[このファイルから検索(マッチしない行)]] (Kuro)&lt;br /&gt;
*[[このファイルから検索(マッチする行)]] (Kuro)&lt;br /&gt;
*[[タグの外側（内側）だけ置換]] (手石)&lt;br /&gt;
*[[ポップアップメニューで検索先にジャンプ]] (手石, sukemaru) Last Update 2019/04/16&lt;br /&gt;
*[[検索(SJIS以外)]] + 検索強調を解除 (masme) 2014/09/16, update 2019/06/01&lt;br /&gt;
*[https://github.com/TakamiChie/mery-scripts/blob/master/SearchWithMode.js 現在開いているファイルの言語名をつけてWeb検索] (高見知英)→[[https://vine.co/v/eeY59rFMail 実際の動作例]]&lt;br /&gt;
*[https://github.com/GunseiPaseri/Mery_macro 文字出現量ランキング] (群生系パセリ) 2015/12/28&lt;br /&gt;
*[[検索ヒット数表示]] (ks)&lt;br /&gt;
*[[検索ヒット数表示（選択文字列）]] ※イベントマクロ　(sukemaru) last update 2019/12/03 &amp;lt;br&amp;gt;「[[検索ヒット数表示（選択文字列）#機能強化バージョン|文字数・行数・バイト数・ヒット件数]]」を追加&lt;br /&gt;
*[[任意の検索エンジンで検索]] (Noah)&lt;br /&gt;
*[[任意の検索エンジンで検索ー改良版]] (Takeshi) 2019/07/12&lt;br /&gt;
*[[デフォルトの検索フラグを設定して検索ウィンドウ表示]] (yuko)&lt;br /&gt;
*[[簡易検索一覧]] (シリル) 2018/12/24&lt;br /&gt;
*[[簡易検索一覧などをアウトプット]] (シリル) 2018/12/31&lt;br /&gt;
*[[複数置換]] (Noah)&lt;br /&gt;
*[[類義語アウトプット【Python】]] (シリル) 2019/03/24&lt;br /&gt;
*[[校正支援アウトプット]] (シリル) 2019/05/01&lt;br /&gt;
*[[次／前の文字列を検索・改]] (sukemaru) last update 2019/12/03　※複数行選択から『次／前の文字列を検索』&lt;br /&gt;
&lt;br /&gt;
== プログラミング補助 ==&lt;br /&gt;
&lt;br /&gt;
*[[Eclipse風コメントアウト]] (ks)&lt;br /&gt;
*[[Eclipse風コメントアウト(改)]] (pizz) 2019/04/12&lt;br /&gt;
*[[コメントマーク付け外し]] (手石, masme, sukemaru) last update 2019/06/01&lt;br /&gt;
:([[コメントマーク付け外し#sukemaru 版|sukemaru版]]) last update 2019/12/01　※ ブックマーク対応&lt;br /&gt;
*[[スマートインデント(C 構文)]] (ks)&lt;br /&gt;
*[[ctags.exeでtagsファイルを生成、タグジャンプを行うマクロ]] (kazy)&lt;br /&gt;
*[[タグファイルから補完]] (n)&lt;br /&gt;
*[[コードスニペットもどき]] (手石) Update 2012/12/20&lt;br /&gt;
*[[TeX文書のコンパイル]] (手石)&lt;br /&gt;
*[[TeX数式のチェック]] (手石)&lt;br /&gt;
*[[簡易数式計算]] (ks)&lt;br /&gt;
*[[定義へ移動]] (ks)&lt;br /&gt;
*[[タブの桁数]] (手石)&lt;br /&gt;
*[[行末の空白を削除]] (n) 2014/12/19&lt;br /&gt;
*[https://github.com/TakamiChie/mery-scripts/tree/master/ 開いているスクリプトファイルを実行(掲載時点ではバッチファイル・Javascript・Lua・PHP・Perl・Python・Ruby・UWSCに対応。順次追加予定)] (高見知英)&lt;br /&gt;
*[https://github.com/TakamiChie/mery-scripts/tree/master/ 開いているスクリプトファイルを構文チェック(掲載時点ではPHP・Perlに対応。順次追加予定)] (高見知英)&lt;br /&gt;
*[[説明を出力]] (s) Create 2015/08/16&lt;br /&gt;
*[[拡張子からコンソール実行]] (YOS G-spec) 2019/6/22更新&lt;br /&gt;
*[[JSON整形]](Ovis) Create 2019/03/25&lt;br /&gt;
&lt;br /&gt;
== おもしろ ==&lt;br /&gt;
&lt;br /&gt;
*[[テキストブラウザ]] (Kuro)&lt;br /&gt;
*[[Yahoo!天気情報]] (Kuro)&lt;br /&gt;
*[[メール送信]] (ks)&lt;br /&gt;
*[[あつまれ☆みんなのおもしろアイコン]] (有志)&lt;br /&gt;
&lt;br /&gt;
== 実験的マクロ・練習マクロなど ==&lt;br /&gt;
&lt;br /&gt;
*【自家用】[[カッコをはずす]] ＆ [[カッコをはずす#カッコを削除／追加|カッコを削除／追加]] ＆ [[カッコをはずす#カッコを追加／削除|カッコを追加／削除]] (sukemaru) fixed 2019/05/03&lt;br /&gt;
*【自家用】[[ファイルのフルパスをコピーして閉じる]] ※イベント (sukemaru) update 2019/04/14&lt;br /&gt;
*【自家用】[[全角／半角変換]] (sukemaru) fixed 2019/05/11&lt;br /&gt;
*【自家用】[[行の表示方法を切り替える]] (sukemaru) update 2019/08/25　※論理行／表示行 トグル&lt;br /&gt;
*【自家用】[[位置情報を保存してから「すべて選択／選択解除」(非スクロール)]] (sukemaru)&lt;br /&gt;
: update 2019/11/13： 「[[位置情報を保存してから「すべて選択／選択解除」(非スクロール)#【include 版】位置を復帰／保存|位置を復帰／保存]]」を追加&lt;br /&gt;
*【自家用】[[対応する括弧に移動#sukemaru 版|対応するカッコに移動・選択]] (sukemaru) last update 2019/12/05&lt;br /&gt;
*【実験】 [[位置情報を保存してから「次の文字列を検索」]]＋復帰　(sukemaru) 2019/05/28&lt;br /&gt;
*【実験】 [[タブが「縦書き」モードかチェックする]] ※組み込み用関数 (sukemaru) 2019/04/29 &amp;lt;br&amp;gt;サンプルコード: 「特定の条件で縦書きモードに切りかえる」（※ ver 2.6.5 - 2.7.5 用）&lt;br /&gt;
*【実験】 [[「クリップボード履歴」メニューのマクロ化]]　(sukemaru) last update 2019/11/29 &amp;lt;br&amp;gt;　※ [[プラグイン:スニペットプラグイン|スニペット]] の機能を統合 ／ ※ver 2.8.1 以降用&lt;br /&gt;
*【実験】 [[コンパクトメニュー]] (sukemaru) last update 2019/11/21&lt;br /&gt;
&lt;br /&gt;
== その他 ==&lt;br /&gt;
&lt;br /&gt;
*[[HSPキーワード検索]] (SSSE) 2019/08/29&lt;br /&gt;
*[[最新版を確認]] (diaphragm)&lt;br /&gt;
*[[SAPI 使って単語読み上げ]] (miso)&lt;br /&gt;
*[[フォルダ選択ダイアログ]] (手石)&lt;br /&gt;
*[[HTA(HTML)の自作ダイアログを表示]] (noonworks)&lt;br /&gt;
*[[JavaScript を実行]] (n)&lt;br /&gt;
*[[ポップアップメニューを手軽に扱う]] (komorebikoboshi)&lt;br /&gt;
*[[マクロ・関数をメニューで呼び出す]] (aliquis) 2013/08/19&lt;br /&gt;
*[[階層化マクロメニュー]] (ks)&lt;br /&gt;
*[[シェルコマンドを実行]] (sasaki)&lt;br /&gt;
*[[ポップアップメニューでチェックボックス]] (手石)&lt;br /&gt;
*[[ポップアップメニューでラジオボタン]] (手石)&lt;br /&gt;
*[[Editor.OpenFile()のポリフィル]](kazy)&lt;br /&gt;
*[[折り返しトグル切り替え]] (Bleat, sukemaru) update 2019/02/19&lt;br /&gt;
*[[ファイルロック (排他制御) 的なもの]] (PebblePot)&lt;br /&gt;
*[[Mery.iniのオプション値を取得]] ※組み込み用関数 (sukemaru) last update 2019/11/15&lt;br /&gt;
*[[Mery本体のバージョンチェック]] ※組み込み用関数 (sukemaru) 2019/04/17 &amp;lt;br&amp;gt;サンプルコード: 「Begin/EndUndoGroup() メソッドを使えるのは ver 2.7.0 以降」&lt;br /&gt;
*[[IO.Serialize() の JSON を参照する]] ※組み込み用関数 (sukemaru) 2019/04/17&lt;br /&gt;
*[[ポップアップメニューを「n*十件ずつ」のサブメニューに自動分割する]] ※組み込み用関数 (sukemaru) 2019/04/20 &amp;lt;br&amp;gt;サンプルコード: 「すべての論理行をポップアップメニューに表示する」&lt;br /&gt;
*[[アクティブなタブのマクロを実行する]] (sukemaru) 2019/08/12&lt;br /&gt;
*[[マクロメニュー]] (sukemaru) 2019/11/02&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
*[[キーアサイン集]] (ks, masme, sukemaru, 有志) last update 2019/06/16&lt;br /&gt;
*[[マテリアルデザインっぽいアイコンと『小マクロ集』]] ※アイコン収録数&#039;&#039;&#039;300&#039;&#039;&#039;コ (sukemaru) last update 2019/05/01&lt;br /&gt;
*[[includeライブラリ]] (ks)&lt;br /&gt;
*[[GetKeyState.exe(キー状態取得実行ファイル)]] (pizz) 2019/03/23&lt;br /&gt;
*[[マクロ覚え書き（開発者向け）]](ks, 有志) Last Update 2019/09/08&lt;/div&gt;</summary>
		<author><name>Masme</name></author>
	</entry>
	<entry>
		<id>https://www.haijin-boys.com/wiki/index.php?title=%E3%83%86%E3%82%AD%E3%82%B9%E3%83%88%E6%95%B4%E5%BD%A2&amp;diff=4895</id>
		<title>テキスト整形</title>
		<link rel="alternate" type="text/html" href="https://www.haijin-boys.com/wiki/index.php?title=%E3%83%86%E3%82%AD%E3%82%B9%E3%83%88%E6%95%B4%E5%BD%A2&amp;diff=4895"/>
		<updated>2019-12-21T13:29:00Z</updated>

		<summary type="html">&lt;p&gt;Masme: コマンド追加1個・変更1個・改名1個。&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;float:right&amp;quot;&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ks 氏作のマクロ「&amp;lt;b&amp;gt;[[テキスト変換]]&amp;lt;/b&amp;gt;」の改造版です。&lt;br /&gt;
&lt;br /&gt;
;主な改造点&lt;br /&gt;
* &amp;lt;b&amp;gt;[[#拡張コード：書式|拡張コードの書式]]&amp;lt;/b&amp;gt;を変更。&lt;br /&gt;
** 簡易書式をベースに単純化。view フラグは削除。&lt;br /&gt;
** 「関数タイプ」は「オプション」に変更。&lt;br /&gt;
* 処理の戻り値により選択範囲を置換するか、再選択するかを制御できるようにした。&lt;br /&gt;
* 行選択してから処理する際、範囲終端の改行は範囲に含めないようにした（正規表現 &amp;lt;code&amp;gt;^ $&amp;lt;/code&amp;gt; の使い勝手を考え）。&lt;br /&gt;
* メソッド &amp;lt;code&amp;gt;&amp;lt;i&amp;gt;String&amp;lt;/i&amp;gt;.replaceBatch&amp;lt;/code&amp;gt; を追加。&lt;br /&gt;
* 範囲選択時に対象範囲を選ぶメニューを廃止（毎回選ぶのが面倒なため）。&lt;br /&gt;
;注意点&lt;br /&gt;
* &amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;表示行での処理には対応していません。&amp;lt;/b&amp;gt;&lt;br /&gt;
* マクロの仕様上、&amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;矩形選択での処理には原則対応していません。&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=お知らせ (2019/06/01)=&lt;br /&gt;
&amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;仕様変更によりモードは廃止されました。&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
詳しくは [[#更新履歴]] または [[利用者:Masme]] のページをご覧ください。&amp;lt;br&amp;gt;&lt;br /&gt;
旧仕様の利用者はお手数ですが基本コードおよび拡張コードの更新をお願いいたします。&lt;br /&gt;
&lt;br /&gt;
=スターターパック=&lt;br /&gt;
ダウンロード→ [[メディア:テキスト整形.zip|テキスト整形.zip]] (2019/06/01)&lt;br /&gt;
&lt;br /&gt;
* 基本コードと拡張コード(★印の項目)をまとめて、すぐ使えるようにした入門用セットです。→ [[:ファイル:テキスト整形.zip|収録コマンド一覧]]&lt;br /&gt;
* 拙作ですがアイコンファイル (テキスト整形.ico) を同梱してあります。&amp;lt;br&amp;gt;Mery 2.4.7 以降の場合、マクロ (テキスト整形.js) と同じフォルダに、&amp;lt;br&amp;gt;Mery 2.4.6 以前の場合、Mery.exe と同じフォルダに、&amp;lt;br&amp;gt;アイコンファイルを配置しておくとツールバーにアイコンが読み込まれます。&lt;br /&gt;
&lt;br /&gt;
=更新履歴=&lt;br /&gt;
&amp;lt;code style=&amp;quot;background:#fe0;&amp;quot;&amp;gt;//2019/12/21&amp;lt;/code&amp;gt; でページ内検索すると、その日付で更新されたコマンドを検索できます。&lt;br /&gt;
&amp;lt;div style=&amp;quot;height:40em; overflow:auto; border:1px dashed #999;&amp;quot;&amp;gt;&lt;br /&gt;
; 2019/12/21&lt;br /&gt;
* 追加 - 全角仮名+濁点を合成&lt;br /&gt;
* 改名 - 行頭に連番挿入 (#/Z)&lt;br /&gt;
*: 「#/Σ」→「#/Z」に変更。&lt;br /&gt;
* 変更 - Base64エンコード／デコード&lt;br /&gt;
*: 変数名を asc, b64, A, B → bin, asc, B, A に変更。&amp;lt;br&amp;gt;関数 btoa() の由来 binary to ascii(=Base64) に倣った。&lt;br /&gt;
; 2019/06/01&lt;br /&gt;
* &amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;仕様変更 - 戻り値により選択範囲の置換・再選択を制御するようにした。&amp;lt;/b&amp;gt;&lt;br /&gt;
* &amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;仕様変更 - [[#コマンド|コマンドの書式]]を変更。&amp;lt;/b&amp;gt;&lt;br /&gt;
** マクロ「[[テキスト変換]]」の第2引数を復活。モード F は第2引数利用に変更。&lt;br /&gt;
** モードを廃止し、オプションに変更。モード RS はオプション L に変更。&lt;br /&gt;
** 実行に範囲選択/クリップボードを要求するコマンドにオプション s/c を設定。&lt;br /&gt;
* &amp;lt;b&amp;gt;仕様変更 - メニュー作成処理を変更。&amp;lt;/b&amp;gt;falsy な要素があるとループ終了。&lt;br /&gt;
* &amp;lt;b&amp;gt;コード整理 - 第2引数追加に伴い、引数名を a → _ と $ に変更。&amp;lt;/b&amp;gt;&lt;br /&gt;
* &amp;lt;b&amp;gt;コード整理 - 不使用の引数は極力省略するようにした。&amp;lt;/b&amp;gt;&lt;br /&gt;
* 改名 - ★行頭／行末に貼り付け ¦ 行頭／行末から数文字削除&lt;br /&gt;
*: 「各行～」を除去。&lt;br /&gt;
* 改名 - ★行頭／行末に挿入&lt;br /&gt;
*: 「各行～」を除去。「文字列付加」→「挿入」に変更。&lt;br /&gt;
* 改名 - 各行先頭／末尾に挿入 ¦ 行頭に連番挿入 ¦ 行末に&amp;amp;lt;br&amp;amp;gt;を挿入 ¦ ★行頭 // を挿入/削除&lt;br /&gt;
*: 「（文字列）付加」→「挿入」に変更。&lt;br /&gt;
* 変更 - 複製貼り付け ¦ ★行頭／行末に挿入 ¦ 各行先頭／末尾に挿入 ¦ ★入力文字列を含む／含まない行を削除 ¦ 正規表現に一致する／しない行を削除 ¦ 行頭／行末から数文字削除&lt;br /&gt;
*: 入力判定を中止条件 → 実行条件に変更。&lt;br /&gt;
*: 戻り値の仕様を利用し、中止時は Quit() → 戻り値なし (undefined) に変更。&lt;br /&gt;
* 修正 - 複製貼り付け ¦ 行頭／行末から数文字削除&lt;br /&gt;
*: キャンセルまたは数字以外を入力した場合、正常に中止できていないのを修正（NaN&amp;lt;1 は false）。&lt;br /&gt;
* 変更 - ★数値参照を文字に変換&lt;br /&gt;
*: 正規表現を &amp;lt;code&amp;gt;/&amp;amp;#([0-9]{1,7});|&amp;amp;#[Xx]([0-9A-Fa-f]{1,6});/g&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;/&amp;amp;#(?:([0-9]{1,7})|x([0-9a-f]{1,6}));/gi&amp;lt;/code&amp;gt; に短縮。&lt;br /&gt;
* 変更 - 挿入 Confirm(|)&lt;br /&gt;
*: 戻り値の仕様を利用したものに変更。&lt;br /&gt;
* 変更 - Base64エンコード／デコード&lt;br /&gt;
*: 引数名を txt → _ に統一。変数名を変更。&lt;br /&gt;
* 追加 - ★このマクロを編集 ¦ 連番を出力 ¦ 文字数カウント(空白は除く) ¦ ステータスバーの表示をコピー ¦ 行を文字数順並べ ¦ 数行毎に／数行一組で逆順並べ ¦ 空行毎に／空行一組で逆順並べ ¦ 指定見出しで逆順並べ&lt;br /&gt;
* 変更 - 総字行数カウント&lt;br /&gt;
*: GetLines() → GetLines(meGetLineView) に変更（引数を明示）。&lt;br /&gt;
*: 符号点数＆論理行数版を削除。&lt;br /&gt;
* 変更 - 選択範囲を eval で評価 ¦ 選択文字列を検索 ¦ 選択文字列をすべて削除&lt;br /&gt;
*: オプション s の設定に伴い、選択判定を削除。&lt;br /&gt;
* 変更 - 拡張コード テンプレート&lt;br /&gt;
*: 仕様変更に伴う改訂。&lt;br /&gt;
*: サブメニューは、挿入後にメニュー名を選択するようにした。&lt;br /&gt;
; 2019/05/01&lt;br /&gt;
* 削除 - 大文字／小文字に変換 ¦ 半角／全角に変換&lt;br /&gt;
*: Mery 側のメソッドを使う一例として掲載していたが、結構かと判断。&lt;br /&gt;
* 削除 - 行を昇順／降順並べ(UTF-16)&lt;br /&gt;
* 改名 - \x{hex} エンコード／デコード&lt;br /&gt;
*: コマンド名のエスケープミスを修正。&lt;br /&gt;
* 改名 - 拡張コード テンプレート&lt;br /&gt;
*: 「コマンド～」→「拡張コード～」に変更。&lt;br /&gt;
; 2018/01/15&lt;br /&gt;
* 削除 - ☆インデント(半角空白2個)&lt;br /&gt;
* スターター追加 - ★行を昇順／降順並べ(Unicode) ¦ ★行を逆順並べ&lt;br /&gt;
* 追加 - CJK互換漢字を検索&lt;br /&gt;
* 修正 - Base64デコード&lt;br /&gt;
*: 最大50字ずつ処理する箇所で、異常なデータ 0xF8～FF をスルーしていたのを改修。&lt;br /&gt;
* 修正 - 挿入 Confirm(|)&lt;br /&gt;
*: 折り返しが発生した場合、カーソル位置がズレる不具合を修正（カーソル移動を CharLeft(false,移動量) → SetActivePos(GetActivePos()-移動量) に変更）。&lt;br /&gt;
* 変更 - ★重複行を単一化 ¦ 重複する／しない行を抽出&lt;br /&gt;
*: &amp;lt;code&amp;gt;for(var i=0,n=a.length;i&amp;lt;n;i++)&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;for(var i=0;i&amp;lt;a.length;i++)&amp;lt;/code&amp;gt; に単純化。&lt;br /&gt;
; 2017/06/25&lt;br /&gt;
* &amp;lt;b&amp;gt;仕様変更 - アイコンファイルに24x24・32x32・48x48の画像を追加。&amp;lt;/b&amp;gt;&lt;br /&gt;
* &amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;仕様変更 - &amp;lt;samp&amp;gt;replaceBatch&amp;lt;/samp&amp;gt; メソッドで配列先頭/末尾のコンマを許容するようにした。&amp;lt;/b&amp;gt;&lt;br /&gt;
*: 例＞ &amp;lt;code&amp;gt;&amp;lt;i&amp;gt;String&amp;lt;/i&amp;gt;.replaceBatch([ &amp;lt;b style=&amp;quot;background:#fcc;&amp;quot;&amp;gt;,&amp;lt;/b&amp;gt;[省略],[省略],[省略]&amp;lt;b style=&amp;quot;background:#fcc;&amp;quot;&amp;gt;,&amp;lt;/b&amp;gt; ])&amp;lt;/code&amp;gt;&lt;br /&gt;
* コード整理 - 基本コードを改訂。&lt;br /&gt;
* 追加 - 行を昇順／降順並べ(Unicode) ¦ ★！？を半角/全角に整形 ¦ 空白行の空白を除去 ¦ 行頭／行末から数文字削除 ¦ 重複する／しない行を抽出 ¦ 表外漢字→代替&lt;br /&gt;
* 改名 - 行を昇順／降順並べ(UTF-16) ¦ 行を逆順並べ ¦ 文字を逆順並べ&lt;br /&gt;
*: 「～の並べ替え(○順)」→「～を○順並べ」に変更。&lt;br /&gt;
*: 従来の「行を昇順／降順並べ(Unicode)」は (UTF-16) に訂正。&lt;br /&gt;
* 改名 - ★重複行を単一化 ¦ ★連続する重複行を単一化&lt;br /&gt;
*: 「～を削除」→「～を単一化」に変更。&lt;br /&gt;
* 修正 - ★重複行を単一化&lt;br /&gt;
*: 下記の7行を削除してしまう不具合を修正（重複の判定は Object.prototype.hasOwnProperty.call() で行うようにした）。&lt;br /&gt;
*: 「constructor」「hasOwnProperty」「isPrototypeOf」「propertyIsEnumerable」「toLocaleString」「toString」「valueOf」&lt;br /&gt;
* 変更 - ★全角ダッシュ(――)に整形&lt;br /&gt;
*: 罫線(横) ── を変換対象から除外。&lt;br /&gt;
* 変更 - ★数値参照を文字に変換 ¦ ★16→10進数 ¦ &amp;amp;#xHEX; デコード&lt;br /&gt;
*: 0Xff, &amp;amp;amp;#Xff; など X が大文字の場合に対応。&lt;br /&gt;
* 変更 - 文字を逆順並べ ¦ 文字をシャッフル ¦ \uHHHH, \u4H \U8H, \x{hex}, &amp;amp;#dec;, &amp;amp;#xHEX; エンコード&lt;br /&gt;
*: 正規表現を . → [^\n] に統一。&lt;br /&gt;
* 変更 - 文字を逆順並べ ¦ 文字をシャッフル&lt;br /&gt;
*: UAX #29 に一部対応し、\p{Zl}, {Zp}, {Cc}, U+00AD, FEFF は結合不可にした。&lt;br /&gt;
* 変更 - 選択文字列を検索&lt;br /&gt;
*: カーソル位置・スクロール位置を移動しないようにした。&lt;br /&gt;
* 変更 - 選択文字列を検索 ¦ 選択文字列をすべて削除 ¦ &amp;lt;samp&amp;gt;replaceBatch&amp;lt;/samp&amp;gt; メソッド&lt;br /&gt;
*: 特殊文字のエスケープ処理を &amp;lt;code&amp;gt;/([$()*+.?[\\\]^{|}])/g,&amp;quot;\\$1&amp;quot;&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;/[$()*+.?\[\\\]^{|}]/g,&amp;quot;\\$&amp;amp;&amp;quot;&amp;lt;/code&amp;gt; に統一。&lt;br /&gt;
* 変更 - 拡張コード テンプレート（分割）&lt;br /&gt;
*: 配列先頭のコンマの仕様に対応（末尾は実質対応済）。&lt;br /&gt;
; 2017/05/28&lt;br /&gt;
* 追加 - 結合文字列を検索&lt;br /&gt;
* 修正 - CP932依存文字を検索&lt;br /&gt;
*: Wiki が &amp;amp;#xFA19; → 神 などの正規化(NFC)を行う影響で、漢字22字が意図どおりに検索されないミスを修正。&lt;br /&gt;
* 変更 - ASCII文字, 半角カナ, 全角英数, CJK漢字, ひらがな, カタカナを単語検索&lt;br /&gt;
*: 変数を使用せず、正規表現 \g&amp;lt;名前&amp;gt; を使用する形式に統一。&lt;br /&gt;
; 2015/12/26&lt;br /&gt;
* &amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;仕様変更 - アイコンの指定先を &amp;quot;My Macros\テキスト整形.ico&amp;quot; → &amp;quot;テキスト整形.ico&amp;quot; に変更。&amp;lt;/b&amp;gt;&lt;br /&gt;
* 変更 - マクロフォルダを開く&lt;br /&gt;
*: 「My Macros フォルダを開く」→「マクロフォルダを開く」に変更。&lt;br /&gt;
*: 「テキスト整形」マクロがあるフォルダを開くようにした（Mery 2.4.7 での Macros フォルダ改名に対処）。&lt;br /&gt;
; 2015/09/30&lt;br /&gt;
* 追加 - CP932依存文字を検索 ¦ サロゲートペアを検索 ¦ 行頭に連番挿入 (#) ¦ 行頭に連番挿入 (#/Z) ¦ 行頭に連番挿入 (0#) ¦ \u4H \U8H エンコード／デコード&lt;br /&gt;
* 修正 - ひらがなを単語検索 ¦ カタカナを単語検索&lt;br /&gt;
*: 選択範囲が記号の前後で途切れる問題に対処（記号2連続まで対応）。&lt;br /&gt;
* 変更 - 青空文庫 ルビを除去&lt;br /&gt;
*: 正規表現を [^《]+ → [^《\n]+ に変更し、改行を跨がないようにした。&lt;br /&gt;
* 変更 - ★HTMLタグを除去&lt;br /&gt;
*: 正規表現を .*? → [^&amp;lt;i&amp;gt;文字&amp;lt;/i&amp;gt;]* に変更し、改行を跨ぐようにした。&lt;br /&gt;
* 変更 - 文字を逆順並べ ¦ 文字をシャッフル&lt;br /&gt;
*: 処理方法を split() → match() に変更。対応文字に結合文字 (U+1AB0～FF, 1DC0～FF, 20D0～FF, FE20～F)、制御文字 (U+200C～D)、絵文字の国旗 (U+1F1E6～FF)、肌色指定 (U+1F3FB～F) を追加。&lt;br /&gt;
* 改名 - \uHHHH, \x{hex}, &amp;amp;#dec;, &amp;amp;#xHEX; エンコード／デコード&lt;br /&gt;
*: 「Unicode 文字 → ○○」→「○○ エンコード」に変更。&lt;br /&gt;
*: 「Unicode ○○ → 文字」→「○○ デコード」に変更。&lt;br /&gt;
; 2015/03/26&lt;br /&gt;
* 変更 - CJK漢字を単語検索&lt;br /&gt;
*: 異体字セレクタを考慮するようにした（ただし組合せが適正かは考慮しえない）。&lt;br /&gt;
* 変更 - 複製貼り付け&lt;br /&gt;
*: 処理中止の条件を 非数字(NaN) or 1 未満 → クリップボードがカラ or 1 未満 に変更。&lt;br /&gt;
; 2015/03/14&lt;br /&gt;
* &amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;仕様変更 - モード R/RS 実行後、処理した範囲を選択し直すようにした。&amp;lt;/b&amp;gt;&lt;br /&gt;
* &amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;仕様変更 - モード RM を廃止。&amp;lt;/b&amp;gt;既存コマンドはモード RS に移行。&lt;br /&gt;
*: ★行頭 // を挿入/削除 ¦ ★インデント(半角空白2個) ¦ ★空白行を削除 ¦ ★行頭／行末に貼り付け ¦ ★行頭／行末に挿入 ¦ ★入力文字列を含む／含まない行を削除 ¦ 正規表現に一致する／しない行を削除&lt;br /&gt;
* &amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;仕様変更 - モード CR を廃止し、&amp;lt;code&amp;gt;&amp;lt;i&amp;gt;String&amp;lt;/i&amp;gt;.replaceBatch&amp;lt;/code&amp;gt; メソッドを追加。&amp;lt;/b&amp;gt;既存コマンドは &amp;lt;samp&amp;gt;replaceBatch&amp;lt;/samp&amp;gt; メソッド利用に移行。&lt;br /&gt;
*: ★連続する！？を整形 ¦ ★実体参照 &amp;amp;&amp;quot;&amp;lt;&amp;gt; → &amp;amp;xxx; ¦ ★実体参照 &amp;amp;xxx; → ␣&amp;gt;&amp;lt;&amp;quot;&amp;amp; ¦ ★半角カナ→全角 ¦ ★全角カナ→半角 ¦ 標準変換&lt;br /&gt;
* &amp;lt;b&amp;gt;コード整理 - コマンド各々に更新年月日を付けるようにした。&amp;lt;/b&amp;gt;&lt;br /&gt;
* スターター除外 - ☆検索強調をすべて解除&lt;br /&gt;
* 削除 - ☆全角英数を検索 ¦ ☆半角カナを検索 ¦ ☆CJK漢字を検索&lt;br /&gt;
* 追加 - ASCII文字を単語検索 ¦ 半角カナを単語検索 ¦ 全角英数を単語検索 ¦ CJK漢字を単語検索 ¦ ひらがなを単語検索 ¦ カタカナを単語検索 ¦ 検索結果カウント ¦ 総字行数カウント&lt;br /&gt;
* 変更 - 編集中のファイルのパスをコピー ¦ 編集中の全ファイルのパスをコピー&lt;br /&gt;
*: パスが存在しない場合の名前を、無題 → &amp;lt;無題&amp;gt; に変更。&lt;br /&gt;
* 変更 - ★数値参照を文字に変換 ¦ \x{hex}, &amp;amp;#dec;, &amp;amp;#xHEX; デコード&lt;br /&gt;
*: サロゲートペアの計算を + → | に変更し、不要な括弧を除去（演算子の優先順が + - → &amp;gt;&amp;gt; → &amp;amp; → | である事による）。&lt;br /&gt;
* 変更 - Base64エンコード／デコード&lt;br /&gt;
*: 不要な括弧を除去（同上、演算子の優先順による）。&lt;br /&gt;
* 変更 - 拡張コード テンプレート&lt;br /&gt;
*: 仕様変更に伴う改訂。&lt;br /&gt;
*: コマンドおよびセパレーターは、表示行頭に挿入するようにした。&lt;br /&gt;
; 2015/02/14&lt;br /&gt;
* &amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;仕様修正 - モード RS/RM で、矩形選択（始点or終点が左下かつ論理行頭）時、下端の行が範囲から漏れる不具合を修正。&amp;lt;/b&amp;gt;&lt;br /&gt;
* &amp;lt;b&amp;gt;コード整理 - 文字入力など追加操作を求めるコマンドは、名称末尾に目印 ... を付けた。&amp;lt;/b&amp;gt;&lt;br /&gt;
*: 複製貼り付け ¦ ★行頭／行末に挿入 ¦ 各行先頭／末尾に挿入 ¦ ★入力文字列を含む／含まない行を削除 ¦ 正規表現に一致する／しない行を削除&lt;br /&gt;
* 削除 - 丸数字 ⑳ → (20) ¦ 丸数字 (20) → ⑳&lt;br /&gt;
* 追加 - 行末に&amp;amp;lt;br&amp;amp;gt;を挿入 ¦ &amp;amp;lt;br&amp;amp;gt;を改行に変換 ¦ ★行頭／行末の空白を除去 ¦ 空白行を減量 ¦ 重複行を単一化(空白行は除く) ¦ ★連続する重複行を単一化 ¦ 文字のシャッフル&lt;br /&gt;
* 修正 - 各行先頭／末尾に挿入&lt;br /&gt;
*: 正規表現が意味的に不適切だったのを修正。&lt;br /&gt;
* 変更 - 空白行を圧縮&lt;br /&gt;
*: モード R → RS に。空白行内の空白を除去してから改行を処理するように変更。&lt;br /&gt;
* 変更 - 文字を逆順並べ&lt;br /&gt;
*: サロゲートペアの対処方法を変更。結合文字の一部 (U+0300～6F, 3099～A) および異体字セレクタに対応した。&lt;br /&gt;
* 変更 - 2進接頭辞換算&lt;br /&gt;
*: 正規表現を &amp;lt;code&amp;gt;[0-9]+(,?[0-9]{3})+(\.[0-9]+)?&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;[0-9]+(,?[0-9]{3})+&amp;lt;/code&amp;gt; に変更（小数は非対応とした）。&lt;br /&gt;
* 変更 - Base64デコード&lt;br /&gt;
*: JScript 5.x の decodeURIComponent() は字数が多すぎると能率が悪くなるようなので、最大50字ずつ処理するようにした（高速化）。&lt;br /&gt;
; 2014/10/12&lt;br /&gt;
* スターター除外 - ☆正規表現に一致する／しない行を削除&lt;br /&gt;
*: Mery (鬼車) と JScript (ECMAScript) では正規表現の仕様が異なり、意図しない結果を招く怖れがあるため。&lt;br /&gt;
* スターター追加 - ★数値参照 &amp;amp;#dec; に変換 ¦ ★数値参照 &amp;amp;#xHEX; に変換&lt;br /&gt;
* 追加 - ★数値参照を文字に変換 ¦ 行を逆順並べ ¦ 行をシャッフル ¦ &amp;amp;#xHEX; エンコード／デコード&lt;br /&gt;
* 修正 - 選択文字列を検索&lt;br /&gt;
*: 引数不一致により動作しないミスを修正。&lt;br /&gt;
* 修正 - 編集中の全ファイルのパスをコピー ¦ ★検索強調をすべて解除&lt;br /&gt;
*: 対象範囲を 同ウィンドウ内の全文書 → 全ウィンドウの全文書 に改修。&lt;br /&gt;
* 変更 - 複製貼り付け&lt;br /&gt;
*: 処理方法を for → while に変更。処理中止の条件を 未入力 → 非数字(NaN) or 1 未満に変更。&lt;br /&gt;
* 変更 - \x{hex}, &amp;amp;#dec; エンコード&lt;br /&gt;
*: 処理方法を 配列連結 join(&amp;quot;&amp;quot;) → 文字列連結 += に変更。&lt;br /&gt;
* 変更 - \x{hex}, &amp;amp;#dec; デコード&lt;br /&gt;
*: 下位サロゲートの計算を (n-0x10000&amp;amp;0x3FF) → (n&amp;amp;0x3FF) に短縮。&lt;br /&gt;
; 2014/07/27&lt;br /&gt;
* 修正 - Base64デコード&lt;br /&gt;
*: 終端の余分な [NUL] を除去する処理が手抜きだったのを修正。&lt;br /&gt;
; 2014/05/31&lt;br /&gt;
* 削除 - Base64エンコード(Unicode)&lt;br /&gt;
*: Mery の「Base64デコード」機能と同じ方式の Base64エンコード(UTF-8) に差し替え。&lt;br /&gt;
* 追加 - Base64エンコード／デコード(UTF-8)&lt;br /&gt;
* 変更 - ★数値を3桁,区切りに&lt;br /&gt;
*: 数字列を抽出して処理するように変更（高速化）。&lt;br /&gt;
* 変更 - ★数値を3桁,区切りに ¦ 丸数字 (20) → ⑳ ¦ ★10→16進数 ¦ 2進接頭辞換算&lt;br /&gt;
*: 正規表現を \d → [0-9] に統一。&lt;br /&gt;
* 修正 - 拡張コード テンプレート（モード CR 交換/分割）&lt;br /&gt;
*: エスケープ文字 \ をより正確に判定できる正規表現に改修。&lt;br /&gt;
; 2014/05/24&lt;br /&gt;
* 修正 - 各行末尾に挿入&lt;br /&gt;
*: 選択範囲の次行先頭にも挿入してしまう問題に対処。&lt;br /&gt;
* 変更 - 複製貼り付け&lt;br /&gt;
*: クリップボードの内容を変数に格納しておくように変更（高速化）。&lt;br /&gt;
* 変更 - 複製貼り付け ¦ 各行先頭／末尾に挿入&lt;br /&gt;
*: Prompt() 関連の処理を単純化（モード RM 以外では冗長だった）。&lt;br /&gt;
; 2014/05/22&lt;br /&gt;
* 追加 - 2進接頭辞換算&lt;br /&gt;
* 変更 - \x{hex}, &amp;amp;#dec; デコード&lt;br /&gt;
*: サロゲートペアの String.fromCharCode() の引数を複数指定に改修、ビット演算に一部変更。&lt;br /&gt;
; 2014/05/16&lt;br /&gt;
* 変更 - \x{hex}, &amp;amp;#dec; エンコード&lt;br /&gt;
*: 処理方法を replace(for ループ) に統一。&lt;br /&gt;
; 2014/04/27&lt;br /&gt;
* 追加 - &amp;amp;#dec; エンコード／デコード&lt;br /&gt;
; 2014/03/14&lt;br /&gt;
* 追加 - 青空文庫 ルビを除去 ¦ 青空文庫 注記を除去&lt;br /&gt;
; 2014/03/08&lt;br /&gt;
* 追加 - 選択文字列を検索 ¦ 選択文字列をすべて削除&lt;br /&gt;
* 変更 - ★全角英数を検索 ¦ ★半角カナを検索 ¦ ★CJK漢字を検索&lt;br /&gt;
*: 検索方向を 前 → 次 に変更。念の為「大文字と小文字を区別」フラグを追加。&lt;br /&gt;
; 2014/03/01&lt;br /&gt;
* 追加 - ★連続する！？を整形 ¦ ★全角ダッシュ(――)に整形&lt;br /&gt;
* 変更 - ★括弧前の句読点を除去&lt;br /&gt;
*: 全角コンマ ， /全角ピリオド ． を除去対象に追加。&lt;br /&gt;
* 変更 - ★三点リーダー(……)に整形&lt;br /&gt;
*: 全角コンマ ， /全角ピリオド ． /半角中黒 ･ /三点リーダー … /二点リーダー ‥ を変換対象に追加。&lt;br /&gt;
* 変更 - マクロフォルダを開く&lt;br /&gt;
*: 処理方法を WScript.Shell.Run(&amp;quot;explorer&amp;quot;) → Shell.Application.Explore() に変更。&lt;br /&gt;
; 2014/02/22&lt;br /&gt;
* 追加 - 丸数字 ⑳ → (20) ¦ 丸数字 (20) → ⑳&lt;br /&gt;
* 変更 - 文字を逆順並べ ¦ \uHHHH, \x{hex} エンコード&lt;br /&gt;
*: 処理方法を for ループ → replace() に変更（字数削減）。&lt;br /&gt;
* 変更 - 拡張コード テンプレート&lt;br /&gt;
*: モード CR 作成補助コマンドを追加。モード CR テンプレートを変更。&lt;br /&gt;
; 2014/02/17&lt;br /&gt;
* 修正 - ★行頭／行末に貼り付け&lt;br /&gt;
*: クリップボード終端の改行文字を除去する正規表現を修正。\r\n|\r|\n$ → (\r\n|\r|\n)$&lt;br /&gt;
; 2014/02/16&lt;br /&gt;
* &amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;仕様修正 - モード CR で、正規表現の特殊文字があると誤動作する不具合を修正。&amp;lt;/b&amp;gt;&lt;br /&gt;
* &amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;仕様変更 - モード CR で、正規表現 (JScript) による検索置換に対応。&amp;lt;/b&amp;gt;&lt;br /&gt;
* コード整理 - コメントアウトしていた基本コードを削除。&lt;br /&gt;
* コード整理 - 下記の6カテゴリを3カテゴリに統合。コマンドの名称や配置を見直した。&lt;br /&gt;
*: (空白の追加 + 各行に追加) (空白の削除 + 行の削除) (数値の変換 + 文字種変換)&lt;br /&gt;
* スターター除外 - ☆標準変換&lt;br /&gt;
* 追加 - 複製貼り付け ¦ 文字を逆順並べ ¦ ★半角カナ→全角 ¦ ★全角カナ→半角&lt;br /&gt;
* 変更 - ★行頭／行末に貼り付け&lt;br /&gt;
*: クリップボード終端の改行文字は除去するようにした（行切り取り・行コピーとの相性を考え）。&lt;br /&gt;
* 変更 - 拡張コード テンプレート&lt;br /&gt;
*: モード CR テンプレートを刷新。&lt;br /&gt;
; 2014/02/10&lt;br /&gt;
* スターター除外 - ☆空白行を圧縮&lt;br /&gt;
* 追加 - ★空白行を削除 ¦ \uHHHH デコード ¦ \x{hex} エンコード／デコード&lt;br /&gt;
* 変更 - 挿入 Confirm(|)&lt;br /&gt;
*: 接尾辞の長さ(s.length)でカーソル移動量を決めるようにした。&lt;br /&gt;
; 2014/02/01&lt;br /&gt;
* 追加 - \uHHHH エンコード&lt;br /&gt;
* 変更 - ★全角かな→カナ ¦ ★全角カナ→かな&lt;br /&gt;
*: 踊り字（繰り返し記号） ゝゞヽヾ を変換対象に追加。&lt;br /&gt;
; 2014/01/24&lt;br /&gt;
* 追加 - ★半角/全角の間を空ける ¦ ★半角英数/全角の間を空ける&lt;br /&gt;
* 変更 - ★全角カナ→かな&lt;br /&gt;
*: ヴヵヶ は対象外とした（Shift_JIS では保存できない文字のため）。&lt;br /&gt;
; 2014/01/12&lt;br /&gt;
* &amp;lt;b&amp;gt;仕様変更 - スターターパックにアイコンファイルを同梱。&amp;lt;/b&amp;gt;&lt;br /&gt;
* 修正 - 編集中のファイルのパスをコピー ¦ 編集中の全ファイルのパスをコピー&lt;br /&gt;
*: 改行を LF → CR+LF に変更し、メモ帳でも正しく改行されるようにした。&lt;br /&gt;
* 修正 - ★数値を3桁,区切りに&lt;br /&gt;
*: 小数点以下（ピリオド以降）は桁区切りしないようにした。&lt;br /&gt;
; 2014/01/08&lt;br /&gt;
* &amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;仕様変更 - コマンド実行時、スクロール位置を記憶・復元しないように（コメントアウト）した。&amp;lt;/b&amp;gt;&lt;br /&gt;
*: 検索系コマンドと相性が悪く、Mery の検索機能と挙動が合っていないため。&lt;br /&gt;
* スターター追加 - ★CJK漢字を検索 ¦ ★検索強調をすべて解除&lt;br /&gt;
* 追加 - ★全角英数を検索 ¦ ★半角カナを検索&lt;br /&gt;
* 修正 - ★16→10進数&lt;br /&gt;
*: 16進数に使用しない英字 G～Z を変換対象に含めていたミスを修正。&lt;br /&gt;
; 2013/12/30&lt;br /&gt;
* 追加 - 挿入 Confirm(|) ¦ ★数値を3桁,区切りに ¦ ★10→16進数 ¦ ★16→10進数&lt;br /&gt;
* 修正 - My Macros フォルダを開く (現「マクロフォルダを開く」)&lt;br /&gt;
*: 「テキスト整形」マクロのあるフォルダではなく Mery.exe 直下の My Macros フォルダを開くようにした。&lt;br /&gt;
; 2013/09/15&lt;br /&gt;
* 初版公開。&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=基本コード=&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot; style=&amp;quot;height:35em; overflow:auto;&amp;quot;&amp;gt;&lt;br /&gt;
//■テキスト整形&lt;br /&gt;
//　2013/09/15-2019/06/01&lt;br /&gt;
&lt;br /&gt;
//■拡張コード：リスト&lt;br /&gt;
var f = [];&lt;br /&gt;
// ----------------- ↓ここより下に拡張コードを追加&lt;br /&gt;
&lt;br /&gt;
// ----------------- ↑ここより上に拡張コードを追加&lt;br /&gt;
/*■拡張コード：書式&lt;br /&gt;
//▼コマンド&lt;br /&gt;
f.push([&amp;quot;コマンド名&amp;quot;,&amp;quot;オプション&amp;quot;,function(引数){ 処理 }]);&lt;br /&gt;
//▽オプション&lt;br /&gt;
  s : 実行に範囲選択を要求 (require selection)&lt;br /&gt;
  c : 実行にクリップボードを要求 (require clipboard)&lt;br /&gt;
  L : 行選択してから処理 (select Line)&lt;br /&gt;
  O : 非選択時はすべて選択してから処理 (select OR all) ※実験的&lt;br /&gt;
//▽引数(arguments)&lt;br /&gt;
  第1引数 = Document.Selection.Text&lt;br /&gt;
  第2引数 = Document.Selection&lt;br /&gt;
//▽処理の戻り値(return value)&lt;br /&gt;
  String/Array以外 : 選択範囲に対し何もしない&lt;br /&gt;
  &amp;quot;abcd&amp;quot;           : abcd に置換後、abcd を選択&lt;br /&gt;
  [&amp;quot;ab&amp;quot;,&amp;quot;cd&amp;quot;]      : abcd に置換後、ab と cd の間に移動&lt;br /&gt;
  [&amp;quot;ab&amp;quot;,&amp;quot;cd&amp;quot;,&amp;quot;&amp;quot;]   : abcd に置換後、cd を選択&lt;br /&gt;
//▼サブメニュー&lt;br /&gt;
f.push([&amp;quot;メニュー名&amp;quot;,function(f){ コマンドなど }]);&lt;br /&gt;
//▼セパレーター&lt;br /&gt;
f.push([&amp;quot;--------&amp;quot;]);&lt;br /&gt;
// ----------------- */&lt;br /&gt;
&lt;br /&gt;
//■メソッド：連続置換&lt;br /&gt;
//&amp;quot;string&amp;quot;.replaceBatch([ [検索1,置換1],[検索2,置換2],… ]);&lt;br /&gt;
String.prototype.replaceBatch = function(a){ //▲引数の型はチェックしてない&lt;br /&gt;
  var _this=this, i=0, n=a.length;&lt;br /&gt;
  if (!a[0]) i++;&lt;br /&gt;
  if (!a[n-1]) n--;&lt;br /&gt;
  for (; i&amp;lt;n; i++) {&lt;br /&gt;
    if (typeof a[i][0]===&amp;quot;string&amp;quot;) //◆特殊文字をエスケープし、&amp;quot;g&amp;quot;フラグを付加&lt;br /&gt;
      a[i][0] = new RegExp(a[i][0].replace(/[$()*+.?\[\\\]^{|}]/g,&amp;quot;\\$&amp;amp;&amp;quot;),&amp;quot;g&amp;quot;);&lt;br /&gt;
    _this = _this.replace(a[i][0],a[i][1]);&lt;br /&gt;
  }&lt;br /&gt;
  return _this;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
(function(){&lt;br /&gt;
//■実行コード&lt;br /&gt;
var Sel = Document.Selection;&lt;br /&gt;
var isSelEmpty = Sel.IsEmpty;&lt;br /&gt;
var isClipEmpty = !ClipboardData.GetData();&lt;br /&gt;
var cmd = [], cid = 0; //コマンド, ID&lt;br /&gt;
//リストからメニュー作成&lt;br /&gt;
var Menu = CreatePopupMenu();&lt;br /&gt;
(function ListToMenu(List, Menu) {&lt;br /&gt;
  for (var i=0,_L; _L=List[i]; i++) {&lt;br /&gt;
    if (typeOf(_L[0]) !== &amp;quot;String&amp;quot;) continue;&lt;br /&gt;
    switch (_L.length) {&lt;br /&gt;
    case 3: //◆コマンド      _L = [&amp;quot;コマンド名&amp;quot;,&amp;quot;オプション&amp;quot;,function]&lt;br /&gt;
      if (typeOf(_L[1]) !== &amp;quot;String&amp;quot;) break;&lt;br /&gt;
      if (typeOf(_L[2]) !== &amp;quot;Function&amp;quot;) break;&lt;br /&gt;
      ++cid;&lt;br /&gt;
      var isGray = (/\bs\b/.test(_L[1]) &amp;amp;&amp;amp; isSelEmpty)&lt;br /&gt;
                || (/\bc\b/.test(_L[1]) &amp;amp;&amp;amp; isClipEmpty) ;&lt;br /&gt;
      Menu.Add(_L[0]+&amp;quot;\t&amp;quot;+_L[1], cid, isGray? meMenuGrayed: 0);&lt;br /&gt;
      if (isGray) break;&lt;br /&gt;
      cmd[cid] = { func: _L[2]&lt;br /&gt;
      , selLine:  /\bL\b/.test(_L[1])&lt;br /&gt;
      , selOrAll: /\bO\b/.test(_L[1])&lt;br /&gt;
      };&lt;br /&gt;
    break;&lt;br /&gt;
    case 2: //◆サブメニュー  _L = [&amp;quot;メニュー名&amp;quot;,function]&lt;br /&gt;
      if (typeOf(_L[1]) !== &amp;quot;Function&amp;quot;) break;&lt;br /&gt;
      var sub_f = [], sub_Menu = CreatePopupMenu();&lt;br /&gt;
      _L[1](sub_f);&lt;br /&gt;
      Menu.AddPopup(_L[0], sub_Menu);&lt;br /&gt;
      ListToMenu(sub_f, sub_Menu); //再帰：サブメニュー作成&lt;br /&gt;
    break;&lt;br /&gt;
    case 1: //◆セパレーター  _L = [&amp;quot;--------&amp;quot;]&lt;br /&gt;
      if (!/^-+$/.test(_L[0])) break;&lt;br /&gt;
      Menu.Add(&amp;quot;&amp;quot;, 0, meMenuSeparator);&lt;br /&gt;
    break;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}(f, Menu));&lt;br /&gt;
//ポップアップメニューを表示して処理&lt;br /&gt;
main: if (cid = Menu.Track(mePosMouse)) { //※キャンセル(Esc)時は 0 で終了&lt;br /&gt;
  var invertPos = Sel.GetActivePos() &amp;lt; Sel.GetAnchorPos();&lt;br /&gt;
  if (cmd[cid].selLine) selectLine(Sel);&lt;br /&gt;
  if (cmd[cid].selOrAll &amp;amp;&amp;amp; isSelEmpty) Sel.SelectAll();&lt;br /&gt;
  var res = cmd[cid].func(Sel.Text, Sel);&lt;br /&gt;
  if (typeOf(res) === &amp;quot;String&amp;quot;) res = [&amp;quot;&amp;quot;,res,&amp;quot;&amp;quot;];&lt;br /&gt;
  if (typeOf(res) !== &amp;quot;Array&amp;quot;) break main;&lt;br /&gt;
  &lt;br /&gt;
  var head = res.shift(), tail = res.pop() || &amp;quot;&amp;quot;, body = res.join(&amp;quot;&amp;quot;);&lt;br /&gt;
  Sel.Text = head + body + tail;&lt;br /&gt;
  var acp = Sel.GetActivePos() - tail.replace(/\r\n/g,&amp;quot;\n&amp;quot;).length;&lt;br /&gt;
  var anp = acp                - body.replace(/\r\n/g,&amp;quot;\n&amp;quot;).length;&lt;br /&gt;
    //※クリップボードなどCR+LFが含まれる場合、1字と数えなければズレる&lt;br /&gt;
  Sel.SetActivePos(invertPos? anp: acp);&lt;br /&gt;
  Sel.SetAnchorPos(invertPos? acp: anp);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
//■型判別&lt;br /&gt;
function typeOf(obj) {&lt;br /&gt;
  return (obj===null)? &amp;quot;Null&amp;quot;: (obj==null)? &amp;quot;Undefined&amp;quot;:&lt;br /&gt;
    Object.prototype.toString.call(obj).slice(8,-1); //&amp;quot;[object Type]&amp;quot;.slice&lt;br /&gt;
};&lt;br /&gt;
//■論理行選択&lt;br /&gt;
function selectLine(Sel) {&lt;br /&gt;
  var ty = Sel.GetTopPointY(mePosLogical);&lt;br /&gt;
  var by = Sel.GetBottomPointY(mePosLogical);&lt;br /&gt;
  var bx = Sel.GetBottomPointX(mePosLogical);&lt;br /&gt;
  var nn =(Sel.Text.match(/\n/g)||[]).length;&lt;br /&gt;
  if (bx===1 &amp;amp;&amp;amp; nn&amp;lt;=by-ty &amp;amp;&amp;amp; nn) by--; //末尾改行対策&lt;br /&gt;
    //下端が論理行頭 &amp;amp;&amp;amp; 矩形選択でない &amp;amp;&amp;amp; 複数行&lt;br /&gt;
  Sel.SetActivePoint(mePosLogical, 1, by);&lt;br /&gt;
  Sel.EndOfLine(false, mePosLogical);&lt;br /&gt;
  Sel.SetAnchorPoint(mePosLogical, 1, ty);&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
}());&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=拡張コード=&lt;br /&gt;
★印の項目は、スターターパックに収録されているコマンドです。&lt;br /&gt;
&lt;br /&gt;
==小説/作文==&lt;br /&gt;
&lt;br /&gt;
;★地の文の行頭を字下げ&lt;br /&gt;
:開き括弧類 &amp;lt;code&amp;gt;‘ “ （ 〔 ［ ｛ 〈 《 「 『 【&amp;lt;/code&amp;gt; または 半角空白/全角空白/水平タブ/改行 &amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;以外&amp;lt;/b&amp;gt;の文字で始まる行を「地の文」とみなし、行頭に全角空白を挿入します。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;地の文の行頭を字下げ&amp;quot;,&amp;quot;L&amp;quot;,function(_){ //2015/02/14&lt;br /&gt;
  return _.replace(/^([^‘“（〔［｛〈《「『【 　\t\n])/gm,&amp;quot;　$1&amp;quot;) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;★括弧前の句読点を除去&lt;br /&gt;
:閉じ括弧類 &amp;lt;code&amp;gt;’ ” ） 〕 ］ ｝ 〉 》 」 』 】&amp;lt;/code&amp;gt; の直前に句読点 &amp;lt;code&amp;gt;、 。 ， ．&amp;lt;/code&amp;gt; がある場合、除去します。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;括弧前の句読点を除去&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2014/03/01&lt;br /&gt;
  return _.replace(/[、。，．](?=[’”）〕］｝〉》」』】])/g,&amp;quot;&amp;quot;) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;★！？を半角/全角に整形&lt;br /&gt;
:感嘆符・疑問符を、直前の文字が半角なら半角に、全角なら全角に整形します。&lt;br /&gt;
:直前の文字がない場合（範囲先頭か行頭）は何もしません。&lt;br /&gt;
:※&amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;半角文字&amp;lt;/b&amp;gt;＝ASCII文字＋半角カナ、&amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;全角文字&amp;lt;/b&amp;gt;＝それ以外の文字、を意味しています。&lt;br /&gt;
:例＞ &amp;lt;span style=&amp;quot;background:#bfdfff;&amp;quot;&amp;gt;Wha&amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;t&amp;lt;/b&amp;gt;！？／あ&amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;れ&amp;lt;/b&amp;gt;!?&amp;lt;/span&amp;gt; → What!?／あれ！？（※&amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;赤字&amp;lt;/b&amp;gt;が直前の文字）&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;！？を半角/全角に整形&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2017/06/25&lt;br /&gt;
  return _.replace(/[!?！？]+/g,function(s,i,c){c=c.charAt(i-1); return (!c||c===&amp;quot;\n&amp;quot;)? s: /[ -~｡-ﾟ]/.test(c)? s.replace(/！/g,&amp;quot;!&amp;quot;).replace(/？/g,&amp;quot;?&amp;quot;): s.replace(/\!/g,&amp;quot;！&amp;quot;).replace(/\?/g,&amp;quot;？&amp;quot;)}) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;★連続する！？を整形&lt;br /&gt;
:2文字以上連続する感嘆符・疑問符を半角2文字に整形します。&lt;br /&gt;
:例＞ &amp;lt;span style=&amp;quot;background:#bfdfff;&amp;quot;&amp;gt;！！／！！？／?!!!／?!!!?&amp;lt;/span&amp;gt; → !!／!?／?!／??&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;連続する！？を整形&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2015/03/14&lt;br /&gt;
  return _.replaceBatch([ [/[!！][!?！？]*[!！]/g,&amp;quot;!!&amp;quot;],[/[!！][!?！？]*[?？]/g,&amp;quot;!?&amp;quot;],[/[?？][!?！？]*[!！]/g,&amp;quot;?!&amp;quot;],[/[?？][!?！？]*[?？]/g,&amp;quot;??&amp;quot;] ]) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;★三点リーダー(……)に整形&lt;br /&gt;
:1～3文字以上連続する中黒・句点・読点などを、三点リーダー2文字 …… に整形します。&lt;br /&gt;
:例＞ &amp;lt;span style=&amp;quot;background:#bfdfff;&amp;quot;&amp;gt;そんな・・・・。&amp;lt;/span&amp;gt; → そんな……。&lt;br /&gt;
:※変換対象となるのは以下の8パターンです。&lt;br /&gt;
:{|class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
! 名称 !! 連続字数 !! 例 !! Shift_JIS !! Unicode&lt;br /&gt;
|-&lt;br /&gt;
| 全角読点 ||rowspan=&amp;quot;6&amp;quot;| 3字以上 || 、、、 || 0x8141 || U+3001&lt;br /&gt;
|-&lt;br /&gt;
| 全角句点 || 。。。 || 0x8142 || U+3002&lt;br /&gt;
|-&lt;br /&gt;
| 全角コンマ || ，，， || 0x8143 || U+FF0C&lt;br /&gt;
|-&lt;br /&gt;
| 全角ピリオド || ．．． || 0x8144 || U+FF0E&lt;br /&gt;
|-&lt;br /&gt;
| 全角中黒 || ・・・ || 0x8145 || U+30FB&lt;br /&gt;
|-&lt;br /&gt;
| 半角中黒 || ･･･ || 0xA5 || U+FF65&lt;br /&gt;
|-&lt;br /&gt;
| 三点リーダー ||rowspan=&amp;quot;2&amp;quot;| 1字以上 || … || 0x8163 || U+2026&lt;br /&gt;
|-&lt;br /&gt;
| 二点リーダー || ‥ || 0x8164 || U+2025&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;三点リーダー(……)に整形&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2014/03/01&lt;br /&gt;
  return _.replace(/、{3,}|。{3,}|，{3,}|．{3,}|・{3,}|･{3,}|…{1,}|‥{1,}/g,&amp;quot;……&amp;quot;) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;★全角ダッシュ(――)に整形&lt;br /&gt;
:2文字以上連続する長音などを、全角ダッシュ2文字 ―― に整形します。&lt;br /&gt;
:例＞ &amp;lt;span style=&amp;quot;background:#bfdfff;&amp;quot;&amp;gt;そんなーーー。&amp;lt;/span&amp;gt; → そんな――。&lt;br /&gt;
:※変換対象となるのは以下の4パターンです。&lt;br /&gt;
:{|class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
! 名称 !! 連続字数 !! 例 !! Shift_JIS !! Unicode&lt;br /&gt;
|-&lt;br /&gt;
| 全角長音符 ||rowspan=&amp;quot;5&amp;quot;| 2字以上 || ーー || 0x815B || U+30FC&lt;br /&gt;
|-&lt;br /&gt;
| em ダッシュ&amp;lt;br&amp;gt;(全角ダッシュ) || —— || - || U+2014&lt;br /&gt;
|-&lt;br /&gt;
| 全角ダッシュ&amp;lt;br&amp;gt;(水平線) || ―― || 0x815C || U+2015&lt;br /&gt;
|-&lt;br /&gt;
| 全角マイナス || －－ || 0x817C || U+FF0D&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;全角ダッシュ(――)に整形&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2017/06/25&lt;br /&gt;
  return _.replace(/ー{2,}|\u2014{2,}|―{2,}|－{2,}/g,&amp;quot;――&amp;quot;) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;青空文庫 ルビを除去&lt;br /&gt;
:&amp;lt;code&amp;gt;《&amp;lt;/code&amp;gt; で始まり &amp;lt;code&amp;gt;》&amp;lt;/code&amp;gt; で終わる箇所を除去します。ルビ開始位置を表す &amp;lt;code&amp;gt;｜&amp;lt;/code&amp;gt; がある場合、&amp;lt;code&amp;gt;｜&amp;lt;/code&amp;gt; も除去します。&lt;br /&gt;
:例＞ &amp;lt;span style=&amp;quot;background:#bfdfff;&amp;quot;&amp;gt;一応《いちおう》何時《いつ》もの／霧の｜ロンドン警視庁《スコットランドヤード》&amp;lt;/span&amp;gt; → 一応何時もの／霧のロンドン警視庁&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;青空文庫 ルビを除去&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2015/09/30&lt;br /&gt;
  return _.replace(/(?:｜([^《\n]+))?《.*?》/g,&amp;quot;$1&amp;quot;) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;青空文庫 注記を除去&lt;br /&gt;
:&amp;lt;code&amp;gt;［＃&amp;lt;/code&amp;gt; で始まり &amp;lt;code&amp;gt;］&amp;lt;/code&amp;gt; で終わる箇所を除去します。&lt;br /&gt;
:例＞ &amp;lt;span style=&amp;quot;background:#bfdfff;&amp;quot;&amp;gt;［＃注記付き］名※［＃二の字点、1-2-22］［＃「（銘々）」の注記付き終わり］&amp;lt;/span&amp;gt; → 名※&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;青空文庫 注記を除去&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2014/03/14&lt;br /&gt;
  return _.replace(/［＃.*?］/g,&amp;quot;&amp;quot;) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
;青空文庫 注記(外字以外)を除去&lt;br /&gt;
:外字を表す注記 &amp;lt;code&amp;gt;※［＃ ～ ］&amp;lt;/code&amp;gt; は例外とし、除去しません。&lt;br /&gt;
:例＞ &amp;lt;span style=&amp;quot;background:#bfdfff;&amp;quot;&amp;gt;［＃注記付き］名※［＃二の字点、1-2-22］［＃「（銘々）」の注記付き終わり］&amp;lt;/span&amp;gt; → 名※［＃二の字点、1-2-22］&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;青空文庫 注記(外字以外)を除去&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2014/03/14&lt;br /&gt;
  return _.replace(/(※［＃.*?］)|［＃.*?］/g,&amp;quot;$1&amp;quot;) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Web/HTML==&lt;br /&gt;
&lt;br /&gt;
;★HTMLタグを除去&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;HTMLタグを除去&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2015/09/30&lt;br /&gt;
  return _.replace(/&amp;lt;(&amp;quot;[^&amp;quot;]*&amp;quot;|&#039;[^&#039;]*&#039;|[^&amp;quot;&#039;&amp;gt;])*&amp;gt;/g,&amp;quot;&amp;quot;) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;行末に&amp;amp;lt;br&amp;amp;gt;を挿入&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;行末に&amp;lt;br&amp;gt;を挿入&amp;quot;,&amp;quot;L&amp;quot;,function(_){ //2015/02/14&lt;br /&gt;
  return _.replace(/$/gm,&amp;quot;&amp;lt;br&amp;gt;&amp;quot;) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
;&amp;amp;lt;br&amp;amp;gt;を改行に変換&lt;br /&gt;
:改行タグを改行に変換します。ただし、改行タグ直後に改行が含まれている場合は、二重改行にならないようタグのみ削除します。&lt;br /&gt;
:※対応タグは &amp;lt;code&amp;gt;&amp;amp;lt;br&amp;amp;gt; &amp;amp;lt;br/&amp;amp;gt; &amp;amp;lt;br /&amp;amp;gt;&amp;lt;/code&amp;gt; の3種類です。英字の大小は問いません。&lt;br /&gt;
:&amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;※属性付きには対応していません。&amp;lt;/b&amp;gt;例＞ &amp;lt;code&amp;gt;&amp;amp;lt;br clear=&amp;quot;all&amp;quot;&amp;amp;gt;&amp;lt;/code&amp;gt; など&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;&amp;lt;br&amp;gt;を改行に変換&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2015/02/14&lt;br /&gt;
  return _.replace(/&amp;lt;br( ?\/)?&amp;gt;\n?/gi,&amp;quot;\n&amp;quot;) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;★実体参照 &amp;amp;&amp;quot;&amp;lt;&amp;gt; → &amp;amp;xxx;&lt;br /&gt;
;★実体参照 &amp;amp;xxx; → ␣&amp;gt;&amp;lt;&amp;quot;&amp;amp;&lt;br /&gt;
:HTML で使用される文字実体参照の変換を行います。&lt;br /&gt;
:{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 文字 !! 実体参照 !! 備考&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| &amp;amp;lt; || &amp;amp;amp;lt; || 小なり不等号 (less-than sign)&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| &amp;amp;gt; || &amp;amp;amp;gt; || 大なり不等号 (greater-than sign)&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| &amp;amp;quot; || &amp;amp;amp;quot; || 引用符 (quotation mark)&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| &amp;amp;amp; || &amp;amp;amp;amp; || アンド (ampersand)&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| &amp;amp;nbsp; || &amp;amp;amp;nbsp; || 折り返し禁止空白 (no-break space)&lt;br /&gt;
|}&lt;br /&gt;
:&amp;amp;amp;nbsp; は U+00A0 (No-Break Space) ではなく、U+0020 (半角空白) に変換します。&lt;br /&gt;
:空白文字 → &amp;amp;amp;nbsp; の変換は、実用上不都合が多いため行いません。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&#039;実体参照 &amp;amp;&amp;amp;&amp;quot;&amp;lt;&amp;gt; → &amp;amp;&amp;amp;xxx;&#039;,&amp;quot;s&amp;quot;,function(_){ //2015/03/14&lt;br /&gt;
  return _.replaceBatch([ [&amp;quot;&amp;amp;&amp;quot;,&amp;quot;&amp;amp;amp;amp;&amp;quot;],[&#039;&amp;quot;&#039;,&amp;quot;&amp;amp;amp;quot;&amp;quot;],[&amp;quot;&amp;lt;&amp;quot;,&amp;quot;&amp;amp;amp;lt;&amp;quot;],[&amp;quot;&amp;gt;&amp;quot;,&amp;quot;&amp;amp;amp;gt;&amp;quot;] ]) }]);&lt;br /&gt;
f.push([&#039;実体参照 &amp;amp;&amp;amp;xxx; → \u2423&amp;gt;&amp;lt;&amp;quot;&amp;amp;&amp;amp;&#039;,&amp;quot;s&amp;quot;,function(_){ //2015/03/14&lt;br /&gt;
  return _.replaceBatch([ [&amp;quot;&amp;amp;amp;nbsp;&amp;quot;,&amp;quot; &amp;quot;],[&amp;quot;&amp;amp;amp;gt;&amp;quot;,&amp;quot;&amp;gt;&amp;quot;],[&amp;quot;&amp;amp;amp;lt;&amp;quot;,&amp;quot;&amp;lt;&amp;quot;],[&amp;quot;&amp;amp;amp;quot;&amp;quot;,&#039;&amp;quot;&#039;],[&amp;quot;&amp;amp;amp;amp;&amp;quot;,&amp;quot;&amp;amp;&amp;quot;] ]) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
:半角空白 → &amp;amp;amp;nbsp; の変換も行う場合は、下記の内容に差し替えてください。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&#039;実体参照 &amp;amp;&amp;amp;&amp;quot;&amp;lt;&amp;gt;\u2423 → &amp;amp;&amp;amp;xxx;&#039;,&amp;quot;s&amp;quot;,function(_){ //2015/03/14&lt;br /&gt;
  return _.replaceBatch([ [&amp;quot;&amp;amp;&amp;quot;,&amp;quot;&amp;amp;amp;amp;&amp;quot;],[&#039;&amp;quot;&#039;,&amp;quot;&amp;amp;amp;quot;&amp;quot;],[&amp;quot;&amp;lt;&amp;quot;,&amp;quot;&amp;amp;amp;lt;&amp;quot;],[&amp;quot;&amp;gt;&amp;quot;,&amp;quot;&amp;amp;amp;gt;&amp;quot;],[&amp;quot; &amp;quot;,&amp;quot;&amp;amp;amp;nbsp;&amp;quot;] ]) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;★数値参照 &amp;amp;#dec; に変換&lt;br /&gt;
:文字列を数値文字参照(10進)形式に変換します。(dec＝decimal／十進法)&lt;br /&gt;
:例＞ &amp;lt;span style=&amp;quot;background:#bfdfff;&amp;quot;&amp;gt;Aわ𩸽&amp;lt;/span&amp;gt; → &amp;amp;amp;#65;&amp;amp;amp;#12431;&amp;amp;amp;#171581;&lt;br /&gt;
:→ &amp;lt;b&amp;gt;[[#符号化/復号化]]&amp;lt;/b&amp;gt; の節の &amp;lt;b&amp;gt;&amp;amp;#dec; エンコード&amp;lt;/b&amp;gt; を参照&lt;br /&gt;
&lt;br /&gt;
;★数値参照 &amp;amp;#xHEX; に変換&lt;br /&gt;
:文字列を数値文字参照(16進)形式に変換します。(HEX＝hexadecimal／十六進法)&lt;br /&gt;
:例＞ &amp;lt;span style=&amp;quot;background:#bfdfff;&amp;quot;&amp;gt;Aわ𩸽&amp;lt;/span&amp;gt; → &amp;amp;amp;#x41;&amp;amp;amp;#x308F;&amp;amp;amp;#x29E3D;&lt;br /&gt;
:→ &amp;lt;b&amp;gt;[[#符号化/復号化]]&amp;lt;/b&amp;gt; の節の &amp;lt;b&amp;gt;&amp;amp;#xHEX; エンコード&amp;lt;/b&amp;gt; を参照&lt;br /&gt;
&lt;br /&gt;
;★数値参照を文字に変換&lt;br /&gt;
:数値文字参照(10進/16進)を文字列に変換します。&lt;br /&gt;
:例＞ &amp;lt;span style=&amp;quot;background:#bfdfff;&amp;quot;&amp;gt;&amp;amp;amp;#65;&amp;amp;amp;#x308F;&amp;amp;amp;#x29e3d;&amp;lt;/span&amp;gt; → Aわ𩸽&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;数値参照を文字に変換&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2019/06/01&lt;br /&gt;
  return _.replace(/&amp;amp;#(?:([0-9]{1,7})|x([0-9a-f]{1,6}));/gi,function(s,d,x){var n=Number(d||&amp;quot;0x&amp;quot;+x); return (n&amp;lt;=0xFFFF)?String.fromCharCode(n): (n&amp;lt;=0x10FFFF)?String.fromCharCode(n-0x10000&amp;gt;&amp;gt;10|0xD800,n&amp;amp;0x3FF|0xDC00): s}) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==マクロ/コード==&lt;br /&gt;
&lt;br /&gt;
;★行頭 // を挿入/削除&lt;br /&gt;
:行頭に // が無い行なら // を挿入し、有る行なら // を削除します。&lt;br /&gt;
:※このコマンドをよく利用される場合は「&amp;lt;b&amp;gt;[[コメントマーク付け外し]]&amp;lt;/b&amp;gt;」マクロの導入をオススメします。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;行頭 \/\/ を挿入/削除&amp;quot;,&amp;quot;L&amp;quot;,function(_){ //2015/03/14&lt;br /&gt;
  return _.replace(/^(\/\/)?/gm,function(s){return s? &amp;quot;&amp;quot;: &amp;quot;\/\/&amp;quot;}) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;★このマクロを編集&lt;br /&gt;
:実行中のマクロ（テキスト整形）を Mery で開きます。&lt;br /&gt;
:※マクロを実行後、[マクロ]→[編集] でファイルを開くのと同様です。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;このマクロを編集&amp;quot;,&amp;quot;&amp;quot;,function(){ //2019/06/01&lt;br /&gt;
  Editor.OpenFile(ScriptFullName, meEncodingNone, meOpenAllowNewWindow) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;マクロフォルダを開く&lt;br /&gt;
:エクスプローラを起動し、実行中のマクロ（テキスト整形）があるフォルダを開きます。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;マクロフォルダを開く&amp;quot;,&amp;quot;&amp;quot;,function(){ //2015/12/26&lt;br /&gt;
  new ActiveXObject(&amp;quot;Shell.Application&amp;quot;).Explore(new ActiveXObject(&amp;quot;Scripting.FileSystemObject&amp;quot;).GetParentFolderName(ScriptFullName)) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;挿入 Confirm(|)&lt;br /&gt;
:文字列 &amp;lt;code&amp;gt;if(!Confirm(&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;))Quit();&amp;lt;/code&amp;gt; を挿入します。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;挿入 Confirm(|)&amp;quot;,&amp;quot;&amp;quot;,function(_){ //2019/06/01&lt;br /&gt;
  return [&amp;quot;if(!Confirm(&amp;quot; , _ , &amp;quot;))Quit();&amp;quot;] }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;選択範囲を eval で評価&lt;br /&gt;
:ステータスバーに eval(&amp;lt;i&amp;gt;選択範囲&amp;lt;/i&amp;gt;) の結果を表示します。&lt;br /&gt;
:たとえば、選択範囲が &amp;lt;code style=&amp;quot;background:#bfdfff;&amp;quot;&amp;gt;10*(5+20)&amp;lt;/code&amp;gt; なら、250 と表示されます。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;選択範囲を eval で評価&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2019/06/01&lt;br /&gt;
  Status=eval(_) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==挿入/貼付==&lt;br /&gt;
&lt;br /&gt;
;★半角/全角の間を空ける&lt;br /&gt;
;★半角英数/全角の間を空ける&lt;br /&gt;
:半角文字/半角英数と全角文字の間に半角空白を挿入します。&lt;br /&gt;
:※&amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;半角文字&amp;lt;/b&amp;gt;＝ASCII文字＋半角カナ、&amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;全角文字&amp;lt;/b&amp;gt;＝それ以外の文字、を意味しています。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;半角/全角の間を空ける&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2014/02/16&lt;br /&gt;
  return _.replace(/([!-~｡-ﾟ](?=[^!-~｡-ﾟ 　\t\n])|[^!-~｡-ﾟ 　\t\n](?=[!-~｡-ﾟ]))/g,&amp;quot;$1 &amp;quot;) }]);&lt;br /&gt;
f.push([&amp;quot;半角英数/全角の間を空ける&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2014/02/16&lt;br /&gt;
  return _.replace(/([0-9A-Za-z](?=[^!-~｡-ﾟ 　\t\n])|[^!-~｡-ﾟ 　\t\n](?=[0-9A-Za-z]))/g,&amp;quot;$1 &amp;quot;) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;★数値を3桁,区切りに&lt;br /&gt;
:半角数字列を3桁毎にコンマで区切ります。小数点以下（ピリオド以降）は区切りません。&lt;br /&gt;
:例＞ &amp;lt;span style=&amp;quot;background:#bfdfff;&amp;quot;&amp;gt;87654321／0.12345／54321.12345&amp;lt;/span&amp;gt; → 87,654,321／0.12345／54,321.12345&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;数値を3桁,区切りに&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2014/10/12&lt;br /&gt;
  return _.replace(/([^.0-9]|^)([0-9]+)/g,function(_,p,n){return p+n.replace(/([0-9])(?=(?:[0-9]{3})+$)/g,&amp;quot;$1,&amp;quot;)}) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;複製貼り付け...&lt;br /&gt;
:クリップボードの文字列を、入力した回数分複製してから貼り付けます。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;複製貼り付け...&amp;quot;,&amp;quot;c&amp;quot;,function(){ //2019/06/01&lt;br /&gt;
  var r=[],c=ClipboardData.GetData(),n=parseInt(Prompt(&amp;quot;複製回数: ※半角数字&amp;quot;,&amp;quot;&amp;quot;)); if(n&amp;gt;0){ while(n--){r.push(c)} return r.join(&amp;quot;&amp;quot;) } }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;★行頭／行末に貼り付け&lt;br /&gt;
:クリップボードの文字列を、各行の行頭/行末に貼り付けます。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;行頭に貼り付け&amp;quot;,&amp;quot;L c&amp;quot;,function(_){ //2015/09/30&lt;br /&gt;
  var c=ClipboardData.GetData().replace(/(\r\n|[\r\n])$/,&amp;quot;&amp;quot;); return _.replace(/^/gm,c) }]);&lt;br /&gt;
f.push([&amp;quot;行末に貼り付け&amp;quot;,&amp;quot;L c&amp;quot;,function(_){ //2015/09/30&lt;br /&gt;
  var c=ClipboardData.GetData().replace(/(\r\n|[\r\n])$/,&amp;quot;&amp;quot;); return _.replace(/$/gm,c) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;★行頭／行末に挿入...&lt;br /&gt;
:入力した文字列を、各行の行頭/行末に挿入します。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;行頭に挿入...&amp;quot;,&amp;quot;L&amp;quot;,function(_){ //2019/06/01&lt;br /&gt;
  var p=Prompt(&amp;quot;行頭に挿入する文字列:&amp;quot;,&amp;quot;&amp;quot;); if(p)return _.replace(/^/gm,p) }]);&lt;br /&gt;
f.push([&amp;quot;行末に挿入...&amp;quot;,&amp;quot;L&amp;quot;,function(_){ //2019/06/01&lt;br /&gt;
  var p=Prompt(&amp;quot;行末に挿入する文字列:&amp;quot;,&amp;quot;&amp;quot;); if(p)return _.replace(/$/gm,p) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;各行先頭／末尾に挿入...&lt;br /&gt;
:下記の条件で置換を行い、入力した文字列を各行の先頭/末尾に挿入します。&lt;br /&gt;
:&amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;※矩形対応には Mery 2.1.0 以降が必要です。&amp;lt;/b&amp;gt;&lt;br /&gt;
:&amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;※Mery の仕様上、ゼロ幅には対応していません。&amp;lt;/b&amp;gt;ゼロ幅で実行すると、&amp;lt;b&amp;gt;表示行頭&amp;lt;/b&amp;gt;に文字列が挿入されます。&lt;br /&gt;
:{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 検索文字列 (先頭)&lt;br /&gt;
| &amp;lt;code&amp;gt;^(?=.&amp;amp;#x7C;\n)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! 検索文字列 (末尾)&lt;br /&gt;
| &amp;lt;code&amp;gt;(?&amp;lt;=.)$&amp;amp;#x7C;^(?=\n)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! 置換文字列&lt;br /&gt;
| ※入力した文字列&lt;br /&gt;
|-&lt;br /&gt;
! フラグ&lt;br /&gt;
| 正規表現を使用する (meFindReplaceRegExp)&amp;lt;br&amp;gt;選択した範囲のみ (meReplaceSelOnly)&amp;lt;br&amp;gt;すべて置換 (meReplaceAll)&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;各行先頭に挿入...&amp;quot;,&amp;quot;&amp;quot;,function(_,$){ //2019/06/01&lt;br /&gt;
  var p=Prompt(&amp;quot;各行先頭に挿入する文字列:&amp;quot;,&amp;quot;&amp;quot;); if(p)$.Replace(&amp;quot;^(?=.|\\n)&amp;quot;, p, meFindReplaceRegExp+meReplaceSelOnly+meReplaceAll) }]);&lt;br /&gt;
f.push([&amp;quot;各行末尾に挿入...&amp;quot;,&amp;quot;&amp;quot;,function(_,$){ //2019/06/01&lt;br /&gt;
  var p=Prompt(&amp;quot;各行末尾に挿入する文字列:&amp;quot;,&amp;quot;&amp;quot;); if(p)$.Replace(&amp;quot;(?&amp;lt;=.)$|^(?=\\n)&amp;quot;, p, meFindReplaceRegExp+meReplaceSelOnly+meReplaceAll) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;行頭に連番挿入 (#)&lt;br /&gt;
:行頭に連番 (1), (2), (3) … を挿入します。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;行頭に連番挿入 (#)&amp;quot;,&amp;quot;L&amp;quot;,function(_){ //2015/09/30&lt;br /&gt;
  var re=/^/gm, n=1, pf=&amp;quot;(&amp;quot;, sf=&amp;quot;)&amp;quot;; return _.replace(re,function(){return pf+(n++)+sf}) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
;行頭に連番挿入 (#/Z)&lt;br /&gt;
:選択行数を Z として、連番 (1/Z), (2/Z), (3/Z) … を挿入します。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;行頭に連番挿入 (#/Z)&amp;quot;,&amp;quot;L&amp;quot;,function(_){ //2015/09/30&lt;br /&gt;
  var re=/^/gm, n=1, m=(_.match(re)||[]).length, pf=&amp;quot;(&amp;quot;, sf=&amp;quot;/&amp;quot;+m+&amp;quot;)&amp;quot;; return _.replace(re,function(){return pf+(n++)+sf}) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
;行頭に連番挿入 (0#)&lt;br /&gt;
:連番が2桁以上になる場合、桁揃えした連番 (01), (02), (03) … を挿入します。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;行頭に連番挿入 (0#)&amp;quot;,&amp;quot;L&amp;quot;,function(_){ //2015/09/30&lt;br /&gt;
  var re=/^/gm, n=1, m=(_.match(re)||[]).length, pf=&amp;quot;(&amp;quot;, sf=&amp;quot;)&amp;quot;, sp=&amp;quot;0&amp;quot;, k=String(m).length, sp=new Array(k).join(sp); return _.replace(re,function(){return pf+(sp+(n++)).slice(-k)+sf}) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;※行頭に連番挿入系コマンドの比較&lt;br /&gt;
:{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 例文 !! (#) !! (#/Z) !! (0#)&lt;br /&gt;
|-&lt;br /&gt;
| 1行目&amp;lt;br&amp;gt;2行目&amp;lt;br&amp;gt;…&amp;lt;br&amp;gt;9行目&amp;lt;br&amp;gt;10行目&amp;lt;br&amp;gt;11行目&amp;lt;br&amp;gt;…&amp;lt;br&amp;gt;99行目&amp;lt;br&amp;gt;100行目&lt;br /&gt;
| (1)1行目&amp;lt;br&amp;gt;(2)2行目&amp;lt;br&amp;gt;…&amp;lt;br&amp;gt;(9)9行目&amp;lt;br&amp;gt;(10)10行目&amp;lt;br&amp;gt;(11)11行目&amp;lt;br&amp;gt;…&amp;lt;br&amp;gt;(99)99行目&amp;lt;br&amp;gt;(100)100行目&lt;br /&gt;
| (1/100)1行目&amp;lt;br&amp;gt;(2/100)2行目&amp;lt;br&amp;gt;…&amp;lt;br&amp;gt;(9/100)9行目&amp;lt;br&amp;gt;(10/100)10行目&amp;lt;br&amp;gt;(11/100)11行目&amp;lt;br&amp;gt;…&amp;lt;br&amp;gt;(99/100)99行目&amp;lt;br&amp;gt;(100/100)100行目&lt;br /&gt;
| (001)1行目&amp;lt;br&amp;gt;(002)2行目&amp;lt;br&amp;gt;…&amp;lt;br&amp;gt;(009)9行目&amp;lt;br&amp;gt;(010)10行目&amp;lt;br&amp;gt;(011)11行目&amp;lt;br&amp;gt;…&amp;lt;br&amp;gt;(099)99行目&amp;lt;br&amp;gt;(100)100行目&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
;連番を出力...&lt;br /&gt;
:&amp;lt;code&amp;gt;&amp;lt;i&amp;gt;数値&amp;lt;/i&amp;gt;..&amp;lt;i&amp;gt;数値&amp;lt;/i&amp;gt;&amp;lt;/code&amp;gt;を含む文字列（数値は 0 以上の整数）を入力すると、連番に展開して書き出します。&lt;br /&gt;
:{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 例&lt;br /&gt;
| &amp;lt;code&amp;gt;8..10&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;10..8&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;第01..3章&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;第1..003章&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;1..3..9&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! 結果&lt;br /&gt;
| 8&amp;lt;br&amp;gt;9&amp;lt;br&amp;gt;10&lt;br /&gt;
| 10&amp;lt;br&amp;gt;9&amp;lt;br&amp;gt;8&lt;br /&gt;
| 第01章&amp;lt;br&amp;gt;第02章&amp;lt;br&amp;gt;第03章&lt;br /&gt;
| 第001章&amp;lt;br&amp;gt;第002章&amp;lt;br&amp;gt;第003章&lt;br /&gt;
| 1..9&amp;lt;br&amp;gt;2..9&amp;lt;br&amp;gt;3..9&lt;br /&gt;
|-&lt;br /&gt;
! 補足&lt;br /&gt;
|&lt;br /&gt;
| 降順可&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;| ゼロ始まりならゼロ埋め&lt;br /&gt;
| 最初のみ展開&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;連番を出力...&amp;quot;,&amp;quot;&amp;quot;,function(_){ //2019/06/01&lt;br /&gt;
  var p=Prompt(&amp;quot;連番を出力: ※例＞ 第1..10章&amp;quot;,_.match(/^.*/)[0]), q=p.replace(/^([\s\S]*?)((0*)[0-9]+)\.\.((0*)[0-9]+)([\s\S]*)$/,function(_,p,n,nz,m,mz,q){var r=[],d=Math.max(n.length,m.length),z=(nz||mz)?new Array(d+1).join(&amp;quot;0&amp;quot;):&amp;quot;&amp;quot;,n=Number(n),m=Number(m); if(n&amp;lt;=m){for(;n&amp;lt;=m;n++)r.push(p+(z+n).slice(-d)+q);}else{for(;n&amp;gt;=m;n--)r.push(p+(z+n).slice(-d)+q);} return r.join(&amp;quot;\n&amp;quot;)}); if(q!==p)return q }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==除去/削除==&lt;br /&gt;
&lt;br /&gt;
;★空白文字を除去&lt;br /&gt;
:空白文字（半角空白/全角空白/水平タブ）を除去します。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;空白文字を除去&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2013/09/15&lt;br /&gt;
  return _.replace(/[ 　\t]+/g,&amp;quot;&amp;quot;) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
;★行頭行末／行頭／行末の空白を除去&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;行頭行末の空白を除去&amp;quot;,&amp;quot;L&amp;quot;,function(_){ //2013/09/15&lt;br /&gt;
  return _.replace(/^[ 　\t]+|[ 　\t]+$/gm,&amp;quot;&amp;quot;) }]);&lt;br /&gt;
f.push([&amp;quot;行頭の空白を除去&amp;quot;,&amp;quot;L&amp;quot;,function(_){ //2015/02/14&lt;br /&gt;
  return _.replace(/^[ 　\t]+/gm,&amp;quot;&amp;quot;) }]);&lt;br /&gt;
f.push([&amp;quot;行末の空白を除去&amp;quot;,&amp;quot;L&amp;quot;,function(_){ //2015/02/14&lt;br /&gt;
  return _.replace(/[ 　\t]+$/gm,&amp;quot;&amp;quot;) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;空白行の空白を除去&lt;br /&gt;
:空白行を、改行のみの空行にします。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;空白行の空白を除去&amp;quot;,&amp;quot;L&amp;quot;,function(_){ //2017/06/25&lt;br /&gt;
  return _.replace(/^[ 　\t]+$/gm,&amp;quot;&amp;quot;) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;★空白行を削除&lt;br /&gt;
:空白行（半角空白/全角空白/水平タブ/改行のみの行）を削除します。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;空白行を削除&amp;quot;,&amp;quot;L&amp;quot;,function(_){ //2015/03/14&lt;br /&gt;
  return _.replace(/^[ 　\t]*$\n?/gm,&amp;quot;&amp;quot;) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
;空白行を圧縮&lt;br /&gt;
:連続する空白行を1行の空行に変換します。連続しない（＝1行の）空白行は削除します。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;空白行を圧縮&amp;quot;,&amp;quot;L&amp;quot;,function(_){ //2015/02/14&lt;br /&gt;
  return _.replace(/^[ 　\t]+$/gm,&amp;quot;&amp;quot;).replace(/^(\n)\n+|^\n/gm,&amp;quot;$1&amp;quot;) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
;空白行を減量&lt;br /&gt;
:連続する空白行を1行分削減します。&lt;br /&gt;
:空白行の連続が3行なら2行に、2行なら1行に、1行なら0行（＝削除）になります。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;空白行を減量&amp;quot;,&amp;quot;L&amp;quot;,function(_){ //2015/02/14&lt;br /&gt;
  return _.replace(/((?:^[ 　\t]*$\n?)*)(?:^[ 　\t]*$\n?)/gm,&amp;quot;$1&amp;quot;) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;★重複行を単一化&lt;br /&gt;
:同じ内容の行が2個以上ある場合、2個目以降を削除します。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;重複行を単一化&amp;quot;,&amp;quot;L&amp;quot;,function(_){ //2018/01/15&lt;br /&gt;
  var a=_.split(&amp;quot;\n&amp;quot;),b=[],map={}; for(var i=0;i&amp;lt;a.length;i++){ if(!Object.prototype.hasOwnProperty.call(map,a[i])){map[a[i]]=true;b.push(a[i])} } return b.join(&amp;quot;\n&amp;quot;) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
;重複行を単一化(空白行は除く)&lt;br /&gt;
:空白行（半角空白/全角空白/水平タブ/改行のみの行）は例外とし、削除しません。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;重複行を単一化(空白行は除く)&amp;quot;,&amp;quot;L&amp;quot;,function(_){ //2018/01/15&lt;br /&gt;
  var a=_.split(&amp;quot;\n&amp;quot;),b=[],map={}; for(var i=0;i&amp;lt;a.length;i++){ if(/^[ 　\t]*$/.test(a[i])||!Object.prototype.hasOwnProperty.call(map,a[i])){map[a[i]]=true;b.push(a[i])} } return b.join(&amp;quot;\n&amp;quot;) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
;★連続する重複行を単一化&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;連続する重複行を単一化&amp;quot;,&amp;quot;L&amp;quot;,function(_){ //2015/02/14&lt;br /&gt;
  return _.replace(/(^.*$)\n(^\1$\n?)+/gm,&amp;quot;$2&amp;quot;) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;重複する／しない行を抽出&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;重複する行を抽出&amp;quot;,&amp;quot;L&amp;quot;,function(_){ //2018/01/15&lt;br /&gt;
  var a=_.split(&amp;quot;\n&amp;quot;),b=[],k=0,map={}; for(var i=0;i&amp;lt;a.length;i++){ if(!Object.prototype.hasOwnProperty.call(map,a[i])){b[k]={dup:false,txt:a[i]};map[a[i]]=k++;}else{b[map[a[i]]].dup=true} } i=b.length;while(--i&amp;gt;=0){ if(b[i].dup){b[i]=b[i].txt}else{b.splice(i,1)} } return b.join(&amp;quot;\n&amp;quot;) }]);&lt;br /&gt;
f.push([&amp;quot;重複しない行を抽出&amp;quot;,&amp;quot;L&amp;quot;,function(_){ //2018/01/15&lt;br /&gt;
  var a=_.split(&amp;quot;\n&amp;quot;),b=[],k=0,map={}; for(var i=0;i&amp;lt;a.length;i++){ if(!Object.prototype.hasOwnProperty.call(map,a[i])){b[k]={dup:false,txt:a[i]};map[a[i]]=k++;}else{b[map[a[i]]].dup=true} } i=b.length;while(--i&amp;gt;=0){ if(!b[i].dup){b[i]=b[i].txt}else{b.splice(i,1)} } return b.join(&amp;quot;\n&amp;quot;) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;※空白行系／重複行系コマンドの比較 （☐ は空白／↵ は改行）&lt;br /&gt;
:{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 例文 !! 空白行&amp;lt;br&amp;gt;を削除 !! 空白行&amp;lt;br&amp;gt;を圧縮 !! 空白行&amp;lt;br&amp;gt;を減量&lt;br /&gt;
!rowspan=&amp;quot;2&amp;quot; width=&amp;quot;6px&amp;quot;|&lt;br /&gt;
! 例文 !! 重複行を&amp;lt;br&amp;gt;単一化 !! 空白行は&amp;lt;br&amp;gt;除く !! 連続する&amp;lt;br&amp;gt;重複行 !! 重複する&amp;lt;br&amp;gt;行を抽出 !! しない&amp;lt;br&amp;gt;行を抽出&lt;br /&gt;
|-style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| 1行目↵&amp;lt;br&amp;gt;☐↵&amp;lt;br&amp;gt;2行目↵&amp;lt;br&amp;gt;☐↵&amp;lt;br&amp;gt;☐☐↵&amp;lt;br&amp;gt;3行目↵&amp;lt;br&amp;gt;☐↵&amp;lt;br&amp;gt;☐☐↵&amp;lt;br&amp;gt;☐☐☐↵&amp;lt;br&amp;gt;4行目&lt;br /&gt;
| 1行目↵&amp;lt;br&amp;gt;2行目↵&amp;lt;br&amp;gt;3行目↵&amp;lt;br&amp;gt;4行目&lt;br /&gt;
| 1行目↵&amp;lt;br&amp;gt;2行目↵&amp;lt;br&amp;gt;↵&amp;lt;br&amp;gt;3行目↵&amp;lt;br&amp;gt;↵&amp;lt;br&amp;gt;4行目&lt;br /&gt;
| 1行目↵&amp;lt;br&amp;gt;2行目↵&amp;lt;br&amp;gt;☐↵&amp;lt;br&amp;gt;3行目↵&amp;lt;br&amp;gt;☐↵&amp;lt;br&amp;gt;☐☐↵&amp;lt;br&amp;gt;4行目&lt;br /&gt;
| あいう↵&amp;lt;br&amp;gt;あいう↵&amp;lt;br&amp;gt;☐↵&amp;lt;br&amp;gt;☐↵&amp;lt;br&amp;gt;☐☐↵&amp;lt;br&amp;gt;あいう↵&amp;lt;br&amp;gt;あいう↵&amp;lt;br&amp;gt;カキク↵&amp;lt;br&amp;gt;さしす↵&amp;lt;br&amp;gt;カキク&amp;lt;br&amp;gt;&lt;br /&gt;
| あいう↵&amp;lt;br&amp;gt;☐↵&amp;lt;br&amp;gt;☐☐↵&amp;lt;br&amp;gt;カキク↵&amp;lt;br&amp;gt;さしす&lt;br /&gt;
| あいう↵&amp;lt;br&amp;gt;☐↵&amp;lt;br&amp;gt;☐↵&amp;lt;br&amp;gt;☐☐↵&amp;lt;br&amp;gt;カキク↵&amp;lt;br&amp;gt;さしす&lt;br /&gt;
| あいう↵&amp;lt;br&amp;gt;☐↵&amp;lt;br&amp;gt;☐☐↵&amp;lt;br&amp;gt;あいう↵&amp;lt;br&amp;gt;カキク↵&amp;lt;br&amp;gt;さしす↵&amp;lt;br&amp;gt;カキク&lt;br /&gt;
| あいう↵&amp;lt;br&amp;gt;☐↵&amp;lt;br&amp;gt;カキク&lt;br /&gt;
| ☐☐↵&amp;lt;br&amp;gt;さしす&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
;★入力文字列を含む／含まない行を削除...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;入力文字列を含む行を削除...&amp;quot;,&amp;quot;L&amp;quot;,function(_){ //2019/06/01&lt;br /&gt;
  var p=Prompt(&amp;quot;以下の文字列を含む行を削除:&amp;quot;,&amp;quot;&amp;quot;); if(p)return _.replace(/^(.*)$\n?/gm,function(s,t){return (t.indexOf(p)&amp;gt;=0)? &amp;quot;&amp;quot;:s}) }]);&lt;br /&gt;
f.push([&amp;quot;入力文字列を含まない行を削除...&amp;quot;,&amp;quot;L&amp;quot;,function(_){ //2019/06/01&lt;br /&gt;
  var p=Prompt(&amp;quot;以下の文字列を含まない行を削除:&amp;quot;,&amp;quot;&amp;quot;); if(p)return _.replace(/^(.*)$\n?/gm,function(s,t){return (t.indexOf(p)&amp;gt;=0)? s:&amp;quot;&amp;quot;}) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;正規表現に一致する／しない行を削除...&lt;br /&gt;
:&amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;※正規表現は JavaScript (JScript) の仕様で記述します。&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;正規表現に一致する行を削除...&amp;quot;,&amp;quot;L&amp;quot;,function(_){ //2019/06/01&lt;br /&gt;
  var p=Prompt(&amp;quot;以下の正規表現に一致する行を削除:&amp;quot;,&amp;quot;&amp;quot;); if(p){ p=new RegExp(p); return _.replace(/^(.*)$\n?/gm,function(s,t){return p.test(t)? &amp;quot;&amp;quot;:s}) } }]);&lt;br /&gt;
f.push([&amp;quot;正規表現に一致しない行を削除...&amp;quot;,&amp;quot;L&amp;quot;,function(_){ //2019/06/01&lt;br /&gt;
  var p=Prompt(&amp;quot;以下の正規表現に一致しない行を削除:&amp;quot;,&amp;quot;&amp;quot;); if(p){ p=new RegExp(p); return _.replace(/^(.*)$\n?/gm,function(s,t){return p.test(t)? s:&amp;quot;&amp;quot;}) } }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;行頭／行末から数文字削除...&lt;br /&gt;
:各行の行頭/行末から指定した文字数分を削除します。&lt;br /&gt;
:※結合文字列には対応していません。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;行頭から数文字削除...&amp;quot;,&amp;quot;L&amp;quot;,function(_){ //2019/06/01&lt;br /&gt;
  var n=parseInt(Prompt(&amp;quot;行頭から削除する字数: ※半角数字&amp;quot;,&amp;quot;&amp;quot;)); if(n&amp;gt;0)return _.replace(new RegExp(&amp;quot;^(?:[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[^\\n]){0,&amp;quot;+n+&amp;quot;}&amp;quot;,&amp;quot;gm&amp;quot;),&amp;quot;&amp;quot;) }]);&lt;br /&gt;
f.push([&amp;quot;行末から数文字削除...&amp;quot;,&amp;quot;L&amp;quot;,function(_){ //2019/06/01&lt;br /&gt;
  var n=parseInt(Prompt(&amp;quot;行末から削除する字数: ※半角数字&amp;quot;,&amp;quot;&amp;quot;)); if(n&amp;gt;0)return _.replace(new RegExp(&amp;quot;(?:[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[^\\n]){0,&amp;quot;+n+&amp;quot;}$&amp;quot;,&amp;quot;gm&amp;quot;),&amp;quot;&amp;quot;) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==検索/置換==&lt;br /&gt;
&lt;br /&gt;
;ASCII文字を単語検索&lt;br /&gt;
:空白文字などを除く ASCII 印字可能文字 (U+0021～007E) が1文字以上連続する箇所を検索します。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;ASCII文字を単語検索&amp;quot;,&amp;quot;&amp;quot;,function(_,$){ //2017/05/28&lt;br /&gt;
  $.Find(&amp;quot;(?&amp;lt;!\\g&amp;lt;Graph&amp;gt;)(?&amp;lt;Graph&amp;gt;[!-~])+&amp;quot;, meFindReplaceCase+meFindReplaceRegExp+meFindAround+meFindNext) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
;半角カナを単語検索&lt;br /&gt;
:半角カナ類 (ｦ～ｯ ｱ～ﾝ ｡ ｢ ｣ ､ ･ ｰ ﾞ ﾟ) が1文字以上連続する箇所を検索します。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;半角カナを単語検索&amp;quot;,&amp;quot;&amp;quot;,function(_,$){ //2017/05/28&lt;br /&gt;
  $.Find(&amp;quot;(?&amp;lt;!\\g&amp;lt;HKana&amp;gt;)(?&amp;lt;HKana&amp;gt;[｡-ﾟ])+&amp;quot;, meFindReplaceCase+meFindReplaceRegExp+meFindAround+meFindNext) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
;全角英数を単語検索&lt;br /&gt;
:全角英数字 (０～９ Ａ～Ｚ ａ～ｚ) が1文字以上連続する箇所を検索します。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;全角英数を単語検索&amp;quot;,&amp;quot;&amp;quot;,function(_,$){ //2017/05/28&lt;br /&gt;
  $.Find(&amp;quot;(?&amp;lt;!\\g&amp;lt;FAlnm&amp;gt;)(?&amp;lt;FAlnm&amp;gt;[０-９Ａ-Ｚａ-ｚ])+&amp;quot;, meFindReplaceCase+meFindReplaceRegExp+meFindAround+meFindNext) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
;CJK漢字を単語検索&lt;br /&gt;
:CJK (China/Japan/Korea) の漢字が1文字以上連続する箇所を検索します。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;CJK漢字を単語検索&amp;quot;,&amp;quot;&amp;quot;,function(_,$){ //2017/05/28&lt;br /&gt;
  $.Find(&amp;quot;(?&amp;lt;!\\g&amp;lt;Han&amp;gt;\\g&amp;lt;VS&amp;gt;|\\g&amp;lt;Han&amp;gt;)(?:(?&amp;lt;Han&amp;gt;[\\p{Han}])(?&amp;lt;VS&amp;gt;[\\x{FE00}-\\x{FE02}\\x{E0100}-\\x{E01EF}])?)+&amp;quot;, meFindReplaceCase+meFindReplaceRegExp+meFindAround+meFindNext) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;ひらがなを単語検索&lt;br /&gt;
;カタカナを単語検索&lt;br /&gt;
:平仮名/片仮名が1文字以上連続する箇所を検索します。&lt;br /&gt;
:※検索対象となる文字は、下表のとおりです。囲み文字 ㋐ や組み文字 ㍍ は含まれません。&lt;br /&gt;
:{|class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
! !! 種別 !! 文字 !! Shift_JIS !! Unicode !! 備考&lt;br /&gt;
|-&lt;br /&gt;
!rowspan=&amp;quot;3&amp;quot;| 平仮名&amp;lt;br&amp;gt;(かな)&amp;lt;br&amp;gt;89字&lt;br /&gt;
|rowspan=&amp;quot;3&amp;quot;| 全角ひらがな (89字)&lt;br /&gt;
| ぁ ～ ん&amp;lt;br&amp;gt;ゔゕゖ || 0x829F～82F1&amp;lt;br&amp;gt;- || U+3041～3093&amp;lt;br&amp;gt;U+3094～3096 || ※SJIS では ゔゕゖ の3字は保存不可&lt;br /&gt;
|-&lt;br /&gt;
| ゝゞ || 0x8154, 8155 || U+309D, 309E || 踊り字（繰り返し）&lt;br /&gt;
|-&lt;br /&gt;
| ゟ || - || U+309F || 「より」の合字&lt;br /&gt;
|-&lt;br /&gt;
!rowspan=&amp;quot;5&amp;quot;| 片仮名&amp;lt;br&amp;gt;(カナ)&amp;lt;br&amp;gt;164字&lt;br /&gt;
|rowspan=&amp;quot;3&amp;quot;| 全角カタカナ (93字)&lt;br /&gt;
| ァ ～ ヶ&amp;lt;br&amp;gt;ヷヸヹヺ || 0x8340～8396&amp;lt;br&amp;gt;- || U+30A1～30F6&amp;lt;br&amp;gt;U+30F7～30FA || ※SJIS では ヷヸヹヺ の4字は保存不可&lt;br /&gt;
|-&lt;br /&gt;
| ヽヾ || 0x8152, 8153 || U+30FD, 30FE || 踊り字（繰り返し）&lt;br /&gt;
|-&lt;br /&gt;
| ヿ || - || U+30FF || 「コト」の合字&lt;br /&gt;
|-&lt;br /&gt;
| 半角カタカナ (55字) || ｦ ～ ｯ&amp;lt;br&amp;gt;ｱ ～ ﾝ || 0xA6～AF&amp;lt;br&amp;gt;0xB1～DD || U+FF66～FF6F&amp;lt;br&amp;gt;U+FF71～FF9D ||&lt;br /&gt;
|-&lt;br /&gt;
| カタカナ拡張 (16字) || ㇰ ～ ㇿ || - || U+31F0～31FF || アイヌ語表記などに用いる&lt;br /&gt;
|-&lt;br /&gt;
!rowspan=&amp;quot;5&amp;quot;| 記号&amp;lt;br&amp;gt;8字&lt;br /&gt;
|colspan=&amp;quot;5&amp;quot;| &amp;lt;span style=&amp;quot;color:#c00;&amp;quot;&amp;gt;※以下は、&amp;lt;b&amp;gt;仮名の後&amp;lt;/b&amp;gt;に続いて出現する場合のみ検索される。&amp;lt;/span&amp;gt;例＞ 複製゜ー&amp;lt;span style=&amp;quot;background:#b4e4b4;&amp;quot;&amp;gt;コヒ゜ー&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 半角/全角濁点 (2字) || ﾞ ゛ || 0xDE, 814A || U+FF9E, 309B ||&lt;br /&gt;
|-&lt;br /&gt;
| 半角/全角半濁点 (2字) || ﾟ ゜ || 0xDF, 814B || U+FF9F, 309C ||&lt;br /&gt;
|-&lt;br /&gt;
| 結合用濁点/半濁点 (2字) || &amp;amp;#x3099; &amp;amp;#x309A; || - || U+3099, 309A || 結合文字&lt;br /&gt;
|-&lt;br /&gt;
| 半角/全角長音符 (2字) || ｰ ー || 0xB0, 815B || U+FF70, 30FC ||&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;ひらがなを単語検索&amp;quot;,&amp;quot;&amp;quot;,function(_,$){ //2017/05/28&lt;br /&gt;
  $.Find(&amp;quot;(?&amp;lt;!\\g&amp;lt;Kana&amp;gt;\\g&amp;lt;Mark&amp;gt;\\g&amp;lt;Mark&amp;gt;|\\g&amp;lt;Kana&amp;gt;\\g&amp;lt;Mark&amp;gt;|\\g&amp;lt;Kana&amp;gt;)(?:(?&amp;lt;Kana&amp;gt;[ぁ-\\x{3096}ゝゞ\\x{309F}])(?&amp;lt;Mark&amp;gt;[\\x{3099}\\x{309A}゛ﾞ゜ﾟーｰ])*)+&amp;quot;, meFindReplaceCase+meFindReplaceRegExp+meFindAround+meFindNext) }]);&lt;br /&gt;
f.push([&amp;quot;カタカナを単語検索&amp;quot;,&amp;quot;&amp;quot;,function(_,$){ //2017/05/28&lt;br /&gt;
  $.Find(&amp;quot;(?&amp;lt;!\\g&amp;lt;Kana&amp;gt;\\g&amp;lt;Mark&amp;gt;\\g&amp;lt;Mark&amp;gt;|\\g&amp;lt;Kana&amp;gt;\\g&amp;lt;Mark&amp;gt;|\\g&amp;lt;Kana&amp;gt;)(?:(?&amp;lt;Kana&amp;gt;[ァ-\\x{30FA}ヽヾ\\x{30FF}ｦ-ｯｱ-ﾝ\\x{31F0}-\\x{31FF}])(?&amp;lt;Mark&amp;gt;[\\x{3099}\\x{309A}゛ﾞ゜ﾟーｰ])*)+&amp;quot;, meFindReplaceCase+meFindReplaceRegExp+meFindAround+meFindNext) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;CP932依存文字を検索&lt;br /&gt;
:Shift_JIS (CP932) の環境依存文字 (NEC特殊文字・IBM拡張文字・ユーザー定義外字・未定義文字) を検索します。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;CP932依存文字を検索&amp;quot;,&amp;quot;&amp;quot;,function(_,$){ //2017/05/28&lt;br /&gt;
  $.Find(&amp;quot;[纊褜鍈銈蓜俉炻昱棈鋹曻彅丨仡仼伀伃伹佖侒侊侚侔俍偀倢俿倞偆偰偂傔僴僘兊兤冝冾凬刕劜劦勀勛匀匇匤卲厓厲叝﨎咜咊咩哿喆坙坥垬埈埇﨏\\x{FA10}增墲夋奓奛奝奣妤妺孖寀甯寘寬尞岦岺峵崧嵓﨑嵂嵭嶸嶹巐弡弴彧德忞恝悅悊惞惕愠惲愑愷愰憘戓抦揵摠撝擎敎昀昕昻昉昮昞昤晥晗晙\\x{FA12}晳暙暠暲暿曺朎\\x{F929}杦枻桒柀栁桄棏﨓楨﨔榘槢樰橫橆橳橾櫢櫤毖氿汜沆汯泚洄涇浯涖涬淏淸淲淼渹湜渧渼溿澈澵濵瀅瀇瀨炅炫焏焄煜煆煇\\x{FA15}燁燾犱犾猤\\x{FA16}獷玽珉珖珣珒琇珵琦琪琩琮瑢璉璟甁畯皂皜皞皛皦\\x{FA17}睆劯砡硎硤硺礰\\x{FA18}\\x{FA19}\\x{FA1A}禔\\x{FA1B}禛竑竧\\x{FA1C}竫箞\\x{FA1D}絈絜綷綠緖繒罇羡\\x{FA1E}茁荢荿菇菶葈蒴蕓蕙蕫﨟薰\\x{FA20}﨡蠇裵訒訷詹誧誾諟\\x{FA22}諶譓譿賰賴贒赶﨣軏﨤\\x{FA25}遧郞\\x{FA26}鄕鄧釚釗釞釭釮釤釥鈆鈐鈊鈺鉀鈼鉎鉙鉑鈹鉧銧鉷鉸鋧鋗鋙鋐﨧鋕鋠鋓錥錡鋻﨨錞鋿錝錂鍰鍗鎤鏆鏞鏸鐱鑅鑈閒\\x{F9DC}﨩隝隯霳霻靃靍靏靑靕顗顥\\x{FA2A}\\x{FA2B}餧\\x{FA2C}馞驎髙髜魵魲鮏鮱鮻鰀鵰鵫\\x{FA2D}鸙黑①-⑳Ⅰ-Ⅹⅰ-ⅹ㍉㌔㌢㍍㌘㌧㌃㌶㍑㍗㌍㌦㌣㌫㍊㌻㎜㎝㎞㎎㎏㏄㎡〝〟№㏍℡㊤㊥㊦㊧㊨㈱㈲㈹㍾㍽㍼㍻∮∑∟⊿￤＇＂\\x{E000}-\\x{E757}\\x{80}\\x{F8F0}-\\x{F8F3}]&amp;quot;, meFindReplaceCase+meFindReplaceRegExp+meFindAround+meFindNext) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;CJK互換漢字を検索&lt;br /&gt;
:CJK互換漢字 (U+F900～FAD9, 2F800～2FA1D) を検索します（CJK統合漢字扱いの12字 および 未定義の2字は除く）。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;CJK互換漢字を検索&amp;quot;,&amp;quot;&amp;quot;,function(_,$){ //2018/01/15&lt;br /&gt;
  $.Find(&amp;quot;[[^﨎﨏﨑﨓﨔﨟﨡﨣﨤﨧﨨﨩\\x{FA6E}\\x{FA6F}]&amp;amp;&amp;amp;[\\x{F900}-\\x{FAD9}\\x{2F800}-\\x{2FA1D}]]&amp;quot;, meFindReplaceCase+meFindReplaceRegExp+meFindAround+meFindNext) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;サロゲートペアを検索&lt;br /&gt;
:UTF-16において2バイト2個組で1文字を形成する文字 (U+10000～10FFFF) を検索します。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;サロゲートペアを検索&amp;quot;,&amp;quot;&amp;quot;,function(_,$){ //2015/09/30&lt;br /&gt;
  $.Find(&amp;quot;[\\x{10000}-\\x{10FFFF}]&amp;quot;, meFindReplaceCase+meFindReplaceRegExp+meFindAround+meFindNext) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;結合文字列を検索&lt;br /&gt;
:他の文字と組み合わせて1文字を形成する文字列を検索します。&lt;br /&gt;
:※結合文字列や異体字を表示するには、アプリやフォントの対応が必要です。&lt;br /&gt;
:{|class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
!&lt;br /&gt;
!colspan=&amp;quot;4&amp;quot;| ラテン文字&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot;| ひらがな&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot;| 漢字(異体字)&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot;| 囲み文字&lt;br /&gt;
|-&lt;br /&gt;
! 実際の表示&lt;br /&gt;
| ǖ ||colspan=&amp;quot;3&amp;quot;| u&amp;amp;#x308;&amp;amp;#x304;&lt;br /&gt;
| じ ||colspan=&amp;quot;2&amp;quot;| し&amp;amp;#x3099;&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;| 辻&amp;amp;#xE0100;&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;| あ&amp;amp;#x20DE;&lt;br /&gt;
|-&lt;br /&gt;
! 文字の構成&lt;br /&gt;
| ǖ || u||&amp;amp;#x308;||&amp;amp;#x304;&lt;br /&gt;
| じ || し||&amp;amp;#x3099;&lt;br /&gt;
| 辻||&amp;amp;#xE0100;&lt;br /&gt;
| あ||&amp;amp;#x20DE;&lt;br /&gt;
|-&lt;br /&gt;
! Unicode&lt;br /&gt;
| 01D6 || 0075||0308||0304&lt;br /&gt;
| 3058 || 3057||3099&lt;br /&gt;
| 8FBB||E0100&lt;br /&gt;
| 3042||20DE&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;結合文字列を検索&amp;quot;,&amp;quot;&amp;quot;,function(_,$){ //2017/05/28&lt;br /&gt;
  $.Find(&amp;quot;(?:[^\\p{M}\\n]|^)[\\p{M}]+&amp;quot;, meFindReplaceCase+meFindReplaceRegExp+meFindAround+meFindNext) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;選択文字列を検索&lt;br /&gt;
:下記の条件で検索を行います。&lt;br /&gt;
:&amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;※Mery の仕様上、改行や折り返しを含むと検索強調が不完全になります。&amp;lt;/b&amp;gt;&lt;br /&gt;
:{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 検索文字列&lt;br /&gt;
| ※選択文字列&lt;br /&gt;
|-&lt;br /&gt;
! フラグ&lt;br /&gt;
| 大文字と小文字を区別する (meFindReplaceCase)&amp;lt;br&amp;gt;正規表現を使用する (meFindReplaceRegExp)&amp;lt;br&amp;gt;文末まで検索したら文頭に移動する (meFindAround)&amp;lt;br&amp;gt;下/次を検索 (meFindNext)&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;選択文字列を検索&amp;quot;,&amp;quot;s&amp;quot;,function(_,$){ //2019/06/01&lt;br /&gt;
  var acp=$.GetActivePos(),anp=$.GetAnchorPos(),sx=ScrollX,sy=ScrollY; Redraw=false; $.Find(_.replace(/[$()*+.?\[\\\]^{|}]/g,&amp;quot;\\$&amp;amp;&amp;quot;), meFindReplaceCase+meFindReplaceRegExp+meFindAround+meFindNext); $.SetActivePos(acp);$.SetAnchorPos(anp);ScrollX=sx;ScrollY=sy; Redraw=true; }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;選択文字列をすべて削除&lt;br /&gt;
:下記の条件で置換を行い、選択文字列を削除します。&lt;br /&gt;
:{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 検索文字列&lt;br /&gt;
| ※選択文字列&lt;br /&gt;
|-&lt;br /&gt;
! 置換文字列&lt;br /&gt;
| ※空欄&lt;br /&gt;
|-&lt;br /&gt;
! フラグ&lt;br /&gt;
| 大文字と小文字を区別する (meFindReplaceCase)&amp;lt;br&amp;gt;正規表現を使用する (meFindReplaceRegExp)&amp;lt;br&amp;gt;すべて置換 (meReplaceAll)&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;選択文字列をすべて削除&amp;quot;,&amp;quot;s&amp;quot;,function(_,$){ //2019/06/01&lt;br /&gt;
  $.Replace(_.replace(/[$()*+.?\[\\\]^{|}]/g,&amp;quot;\\$&amp;amp;&amp;quot;), &amp;quot;&amp;quot;, meFindReplaceCase+meFindReplaceRegExp+meReplaceAll) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;検索強調をすべて解除&lt;br /&gt;
:[検索]→[検索文字列の強調を解除] をすべての文書で実行します。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;検索強調をすべて解除&amp;quot;,&amp;quot;&amp;quot;,function(){ //2015/03/14&lt;br /&gt;
  for(var ei=0;ei&amp;lt;Editors.Count;ei++){var d=Editors.Item(ei).Documents; for(var i=0;i&amp;lt;d.Count;i++){d.Item(i).HighlightFind=false}} }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;検索結果カウント&lt;br /&gt;
:前回（直前）の検索条件で文書全体を検索し直し、一致した件数をステータスバーに表示します。&lt;br /&gt;
:&amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;※検索条件が複雑なほど、件数が多いほど処理に時間がかかります&amp;lt;/b&amp;gt;（作者の環境では、1000件で約2秒かかりました）。&lt;br /&gt;
:※処理に時間をかけたくない場合は「&amp;lt;b&amp;gt;[[検索ヒット数表示]]&amp;lt;/b&amp;gt;」プラグインの導入をオススメします。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;検索結果カウント&amp;quot;,&amp;quot;&amp;quot;,function(_,$){ //2015/09/30&lt;br /&gt;
  var t=new Date(),n=-1,acp=$.GetActivePos(),anp=$.GetAnchorPos(),sx=ScrollX,sy=ScrollY; Redraw=false; Status=&amp;quot;&amp;quot;; $.StartOfDocument(); do{$.FindRepeat(meFindNext);n++}while(!Status); $.SetActivePos(acp);$.SetAnchorPos(anp);ScrollX=sx;ScrollY=sy; Redraw=true; Status=n+&amp;quot;件の検索結果 (処理時間: &amp;quot;+(new Date()-t)/1000+&amp;quot;秒)&amp;quot; }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==文書情報==&lt;br /&gt;
&lt;br /&gt;
;総字行数カウント&lt;br /&gt;
:総文字数と総表示行数をステータスバーに表示します。&lt;br /&gt;
:表示される数値は「すべて選択」時に表示される字数・行数と同値になります。&lt;br /&gt;
:※サロゲートペアは2文字と数えます。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;総字行数カウント&amp;quot;,&amp;quot;&amp;quot;,function(){ //2019/06/01&lt;br /&gt;
  Status=Document.Text.length+&amp;quot;文字 (&amp;quot;+Document.GetLines(meGetLineView)+&amp;quot;表示行)&amp;quot; }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;文字数カウント(空白は除く)&lt;br /&gt;
:選択範囲または文書全体の文字数（改行/半角空白/全角空白/水平タブは除く）をステータスバーに表示します。&lt;br /&gt;
:※サロゲートペアは1文字と数えます。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;文字数カウント(空白は除く)&amp;quot;,&amp;quot;&amp;quot;,function(_){ //2019/06/01&lt;br /&gt;
  Status=(_||Document.Text).replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,&amp;quot;_&amp;quot;).replace(/[\t\n\r 　]/g,&amp;quot;&amp;quot;).length+&amp;quot;文字 (改行･空白抜き)&amp;quot; }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;ステータスバーの表示をコピー&lt;br /&gt;
:ステータスバーの左端の欄に表示されている文字列をコピーします。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;ステータスバーの表示をコピー&amp;quot;,&amp;quot;&amp;quot;,function(){ //2019/06/01&lt;br /&gt;
  ClipboardData.SetData(Status) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;編集中のファイルのパスをコピー&lt;br /&gt;
;編集中の全ファイルのパスをコピー&lt;br /&gt;
:現在編集中のファイルのパスをクリップボードにコピーします。&lt;br /&gt;
:新規作成ファイルなどパスが存在しない場合は、&amp;lt;無題&amp;gt; の文字がコピーされます。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;編集中のファイルのパスをコピー&amp;quot;,&amp;quot;&amp;quot;,function(){ //2015/03/14&lt;br /&gt;
  ClipboardData.SetData(Document.FullName||&amp;quot;&amp;lt;無題&amp;gt;&amp;quot;) }]);&lt;br /&gt;
f.push([&amp;quot;編集中の全ファイルのパスをコピー&amp;quot;,&amp;quot;&amp;quot;,function(){ //2015/03/14&lt;br /&gt;
  var list=[]; for(var ei=0;ei&amp;lt;Editors.Count;ei++){var d=Editors.Item(ei).Documents; for(var i=0;i&amp;lt;d.Count;i++){list.push(d.Item(i).FullName||&amp;quot;&amp;lt;無題&amp;gt;&amp;quot;)}} ClipboardData.SetData(list.join(&amp;quot;\r\n&amp;quot;)) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==並べ替え==&lt;br /&gt;
&lt;br /&gt;
;★行を昇順／降順並べ(Unicode)&lt;br /&gt;
:Unicode 順に並べ替えます。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;行を昇順並べ(Unicode)&amp;quot;,&amp;quot;L&amp;quot;,function(_){ //2017/06/25&lt;br /&gt;
  return _.replace(/\uFFFF/g,&amp;quot;\uFFFF_&amp;quot;).replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,&amp;quot;\uFFFF$&amp;amp;&amp;quot;).split(&amp;quot;\n&amp;quot;).sort().join(&amp;quot;\n&amp;quot;).replace(/\uFFFF([\uD800-\uDBFF][\uDC00-\uDFFF])/g,&amp;quot;$1&amp;quot;).replace(/\uFFFF_/g,&amp;quot;\uFFFF&amp;quot;) }]);&lt;br /&gt;
f.push([&amp;quot;行を降順並べ(Unicode)&amp;quot;,&amp;quot;L&amp;quot;,function(_){ //2017/06/25&lt;br /&gt;
  return _.replace(/\uFFFF/g,&amp;quot;\uFFFF_&amp;quot;).replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,&amp;quot;\uFFFF$&amp;amp;&amp;quot;).split(&amp;quot;\n&amp;quot;).sort().reverse().join(&amp;quot;\n&amp;quot;).replace(/\uFFFF([\uD800-\uDBFF][\uDC00-\uDFFF])/g,&amp;quot;$1&amp;quot;).replace(/\uFFFF_/g,&amp;quot;\uFFFF&amp;quot;) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;★行を逆順並べ&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;行を逆順並べ&amp;quot;,&amp;quot;L&amp;quot;,function(_){ //2014/10/12&lt;br /&gt;
  return _.split(&amp;quot;\n&amp;quot;).reverse().join(&amp;quot;\n&amp;quot;) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;行をシャッフル&lt;br /&gt;
:ランダムに並べ替えます。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;行をシャッフル&amp;quot;,&amp;quot;L&amp;quot;,function(_){ //2014/10/12&lt;br /&gt;
  var a=_.split(&amp;quot;\n&amp;quot;),i=a.length,j,t; while(i){j=Math.floor(Math.random()*i--); t=a[i];a[i]=a[j];a[j]=t;} return a.join(&amp;quot;\n&amp;quot;) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;行を文字数順並べ&lt;br /&gt;
:文字数の少ない順に並べ替えます。&lt;br /&gt;
:※符号点（コードポイント）の少ない順。結合文字列には対応していません。&lt;br /&gt;
:文字数の多い順に並べ替えたい場合は、&amp;lt;code&amp;gt;a.len-b.len&amp;lt;/code&amp;gt; を &amp;lt;code&amp;gt;b.len-a.len&amp;lt;/code&amp;gt; に書き換えてください。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;行を文字数順並べ&amp;quot;,&amp;quot;L&amp;quot;,function(_){ //2019/06/01&lt;br /&gt;
  var b=_.replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,&amp;quot;_&amp;quot;).split(&amp;quot;\n&amp;quot;),a=_.split(&amp;quot;\n&amp;quot;); for(var i=0;i&amp;lt;a.length;i++){a[i]={len:b[i].length,txt:a[i]}} a.sort(function(a,b){return a.len-b.len}); for(var i=0;i&amp;lt;a.length;i++){a[i]=a[i].txt} return a.join(&amp;quot;\n&amp;quot;) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;数行毎に逆順並べ...&lt;br /&gt;
:選択範囲を指定した行数で区切り、区間ごとに逆順に並べ替えます。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;数行毎に逆順並べ...&amp;quot;,&amp;quot;L&amp;quot;,function(_){ //2019/06/01&lt;br /&gt;
  var n=parseInt(Prompt(&amp;quot;以下の行数毎に逆順並べ: ※半角数字&amp;quot;,&amp;quot;&amp;quot;)); if(n&amp;gt;0)return (_+&amp;quot;\n&amp;quot;).replace(new RegExp(&amp;quot;(?:^.*$\\n){1,&amp;quot;+n+&amp;quot;}&amp;quot;,&amp;quot;gm&amp;quot;),function(s){return s.split(&amp;quot;\n&amp;quot;).reverse().join(&amp;quot;\n&amp;quot;)}).slice(1) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
;数行一組で逆順並べ...&lt;br /&gt;
:選択範囲を指定した行数で一組とし、組単位で逆順に並べ替えます。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;数行一組で逆順並べ...&amp;quot;,&amp;quot;L&amp;quot;,function(_){ //2019/06/01&lt;br /&gt;
  var n=parseInt(Prompt(&amp;quot;以下の行数を一組として逆順並べ: ※半角数字&amp;quot;,&amp;quot;&amp;quot;)); if(n&amp;gt;0)return (_+&amp;quot;\n&amp;quot;).match(new RegExp(&amp;quot;(?:^.*$\\n){1,&amp;quot;+n+&amp;quot;}&amp;quot;,&amp;quot;gm&amp;quot;)).reverse().join(&amp;quot;&amp;quot;).slice(0,-1) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;空行毎に逆順並べ&lt;br /&gt;
:選択範囲を空行（改行のみの行）で区切り、区間ごとに逆順に並べ替えます。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;空行毎に逆順並べ&amp;quot;,&amp;quot;L&amp;quot;,function(_){ //2019/06/01&lt;br /&gt;
  return (_+&amp;quot;\n&amp;quot;).replace(/\n+|[\s\S]*?\n(?=\n|$)/g,function(s){return s.split(&amp;quot;\n&amp;quot;).reverse().join(&amp;quot;\n&amp;quot;)}).slice(1) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
;空行一組で逆順並べ&lt;br /&gt;
:選択範囲を空行区切りで一組とし、組単位で逆順に並べ替えます。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;空行一組で逆順並べ&amp;quot;,&amp;quot;L&amp;quot;,function(_){ //2019/06/01&lt;br /&gt;
  return (_+&amp;quot;\n&amp;quot;).match(/\n+|[\s\S]*?\n(?=\n|$)/g).reverse().join(&amp;quot;&amp;quot;).slice(0,-1) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;指定見出しで逆順並べ...&lt;br /&gt;
:入力した文字列から始まる行を「見出し」とし、見出し単位で逆順に並べ替えます。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;指定見出しで逆順並べ...&amp;quot;,&amp;quot;L&amp;quot;,function(_){ //2019/06/01&lt;br /&gt;
  var p=Prompt(&amp;quot;以下の文字から始まる行を一組として逆順並べ:&amp;quot;,&amp;quot;■&amp;quot;).replace(/[$()*+.?\[\\\]^{|}]/g,&amp;quot;\\$&amp;amp;&amp;quot;); if(p){ var r=(_+&amp;quot;\n&amp;quot;).match(new RegExp(&amp;quot;[\\s\\S]*?\\n(?=&amp;quot;+p+&amp;quot;|$)&amp;quot;,&amp;quot;g&amp;quot;)); if(r[0].indexOf(p)!==0)r.push(r.shift()); return r.reverse().join(&amp;quot;&amp;quot;).slice(0,-1) } }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;※行を逆順並べ系コマンドの比較 （☐ は空白／↵ は改行）&lt;br /&gt;
:{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 例文 !! 数行毎&amp;lt;br&amp;gt;(3行) !! 数行一組&amp;lt;br&amp;gt;(3行)&lt;br /&gt;
!rowspan=&amp;quot;2&amp;quot; width=&amp;quot;6px&amp;quot;|&lt;br /&gt;
! 例文 !! 空行毎 !! 空行一組&lt;br /&gt;
|-&lt;br /&gt;
| 1行目1組&amp;lt;br&amp;gt;2行目&amp;lt;br&amp;gt;3行目&amp;lt;br&amp;gt;4行目2組&amp;lt;br&amp;gt;5行目&amp;lt;br&amp;gt;6行目&amp;lt;br&amp;gt;7行目3組&amp;lt;br&amp;gt;8行目&amp;lt;br&amp;gt;9行目&amp;lt;br&amp;gt;10行目4組&amp;lt;br&amp;gt;11行目&lt;br /&gt;
| 3行目&amp;lt;br&amp;gt;2行目&amp;lt;br&amp;gt;1行目1組&amp;lt;br&amp;gt;6行目&amp;lt;br&amp;gt;5行目&amp;lt;br&amp;gt;4行目2組&amp;lt;br&amp;gt;9行目&amp;lt;br&amp;gt;8行目&amp;lt;br&amp;gt;7行目3組&amp;lt;br&amp;gt;11行目&amp;lt;br&amp;gt;10行目4組&lt;br /&gt;
| 10行目4組&amp;lt;br&amp;gt;11行目&amp;lt;br&amp;gt;7行目3組&amp;lt;br&amp;gt;8行目&amp;lt;br&amp;gt;9行目&amp;lt;br&amp;gt;4行目2組&amp;lt;br&amp;gt;5行目&amp;lt;br&amp;gt;6行目&amp;lt;br&amp;gt;1行目1組&amp;lt;br&amp;gt;2行目&amp;lt;br&amp;gt;3行目&lt;br /&gt;
| 1行目1組↵&amp;lt;br&amp;gt;2行目↵&amp;lt;br&amp;gt;3行目↵&amp;lt;br&amp;gt;↵&amp;lt;br&amp;gt;5行目2組↵&amp;lt;br&amp;gt;6行目↵&amp;lt;br&amp;gt;☐☐↵&amp;lt;br&amp;gt;8行目↵&amp;lt;br&amp;gt;↵&amp;lt;br&amp;gt;10行目3組↵&amp;lt;br&amp;gt;11行目&lt;br /&gt;
| 3行目↵&amp;lt;br&amp;gt;2行目↵&amp;lt;br&amp;gt;1行目1組↵&amp;lt;br&amp;gt;↵&amp;lt;br&amp;gt;8行目↵&amp;lt;br&amp;gt;☐☐↵&amp;lt;br&amp;gt;6行目↵&amp;lt;br&amp;gt;5行目2組↵&amp;lt;br&amp;gt;↵&amp;lt;br&amp;gt;11行目↵&amp;lt;br&amp;gt;10行目3組&lt;br /&gt;
| 10行目3組↵&amp;lt;br&amp;gt;11行目↵&amp;lt;br&amp;gt;↵&amp;lt;br&amp;gt;5行目2組↵&amp;lt;br&amp;gt;6行目↵&amp;lt;br&amp;gt;☐☐↵&amp;lt;br&amp;gt;8行目↵&amp;lt;br&amp;gt;↵&amp;lt;br&amp;gt;1行目1組↵&amp;lt;br&amp;gt;2行目↵&amp;lt;br&amp;gt;3行目&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
;文字を逆順並べ&lt;br /&gt;
:各行の文字を逆順に並べ替えます。&lt;br /&gt;
:例＞ &amp;lt;span style=&amp;quot;background:#bfdfff;&amp;quot;&amp;gt;文字を逆順並べ&amp;lt;/span&amp;gt; → べ並順逆を字文&lt;br /&gt;
:※[http://unicode.org/reports/tr29/ UAX #29] で規定される「拡張書記素クラスタ」に部分的に対応しています。対応していない文字は位置がズレます。&lt;br /&gt;
:* サロゲートペア (U+10000～10FFFF)&lt;br /&gt;
:* 結合文字の一部 (U+0300～6F, 1AB0～FF, 1DC0～FF, 20D0～FF, 3099～A, FE20～F)&lt;br /&gt;
:* 異体字セレクタ (U+180B～D, FE00～F, E0100～EF)&lt;br /&gt;
:* ゼロ幅非接合子/接合子 (U+200C～D)&lt;br /&gt;
:* 絵文字の国旗 (U+1F1E6～FF)&lt;br /&gt;
:* 絵文字の肌色指定 (U+1F3FB～F)&lt;br /&gt;
:* 結合不可の制御文字 (U+0000～1F, 007F～9F, 00AD, 2028～9, FEFF)&lt;br /&gt;
:例＞ &amp;lt;span style=&amp;quot;background:#bfdfff;&amp;quot;&amp;gt;𠮟る／りんこ&amp;amp;#x3099;／tre&amp;amp;#x301;ma&amp;lt;/span&amp;gt; → ame&amp;amp;#x301;rt／こ&amp;amp;#x3099;んり／る𠮟&lt;br /&gt;
:{|class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
! 例文&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|𠮟||る&lt;br /&gt;
!rowspan=&amp;quot;6&amp;quot; width=&amp;quot;6px&amp;quot;|&lt;br /&gt;
|り||ん||colspan=&amp;quot;2&amp;quot;|こ&amp;amp;#x3099;&lt;br /&gt;
!rowspan=&amp;quot;6&amp;quot; width=&amp;quot;6px&amp;quot;|&lt;br /&gt;
|t||r||colspan=&amp;quot;2&amp;quot;|e&amp;amp;#x301;||m||a&lt;br /&gt;
|-&lt;br /&gt;
! Unicode&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|20B9F||308B&lt;br /&gt;
|308A||3093||style=&amp;quot;background:#fe6;&amp;quot;|3053||style=&amp;quot;background:#fcc;&amp;quot;|3099&lt;br /&gt;
|0074||0072||style=&amp;quot;background:#fe6;&amp;quot;|0065||style=&amp;quot;background:#fcc;&amp;quot;|0301||006D||0061&lt;br /&gt;
|-&lt;br /&gt;
! UTF-16&lt;br /&gt;
|style=&amp;quot;background:#fe6;&amp;quot;|D842||style=&amp;quot;background:#fcc;&amp;quot;|DF9F||308B&lt;br /&gt;
|colspan=&amp;quot;4&amp;quot;|※同上&lt;br /&gt;
|colspan=&amp;quot;6&amp;quot;|※同上&lt;br /&gt;
|-&lt;br /&gt;
!rowspan=&amp;quot;3&amp;quot;|実行後&lt;br /&gt;
|る||colspan=&amp;quot;2&amp;quot;|𠮟&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|こ&amp;amp;#x3099;||ん||り&lt;br /&gt;
|a||m||colspan=&amp;quot;2&amp;quot;|e&amp;amp;#x301;||r||t&lt;br /&gt;
|-&lt;br /&gt;
|308B||colspan=&amp;quot;2&amp;quot;|20B9F&lt;br /&gt;
|style=&amp;quot;background:#fe6;&amp;quot;|3053||style=&amp;quot;background:#fcc;&amp;quot;|3099||3093||308A&lt;br /&gt;
|0061||006D||style=&amp;quot;background:#fe6;&amp;quot;|0065||style=&amp;quot;background:#fcc;&amp;quot;|0301||0072||0074&lt;br /&gt;
|-&lt;br /&gt;
|308B||style=&amp;quot;background:#fe6;&amp;quot;|D842||style=&amp;quot;background:#fcc;&amp;quot;|DF9F&lt;br /&gt;
|colspan=&amp;quot;4&amp;quot;|※同上&lt;br /&gt;
|colspan=&amp;quot;6&amp;quot;|※同上&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;文字を逆順並べ&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2017/06/25&lt;br /&gt;
  var X=new RegExp(/[\x00-\x1F\x7F-\x9F\xAD\u2028\u2029\uFEFF]|(?:(?:\uD83C[\uDDE6-\uDDFF]){2}|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\s\S])(?:[\u0300-\u036F\u1AB0-\u1AFF\u1DC0-\u1DFF\u20D0-\u20FF\u3099\u309A\uFE20-\uFE2F\u200C\u200D\u180B-\u180D\uFE00-\uFE0F]|\uDB40[\uDD00-\uDDEF]|\uD83C[\uDFFB-\uDFFF])*/g); return _.replace(/[^\n]+/g,function(s){return s.match(X).reverse().join(&amp;quot;&amp;quot;)}) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;文字をシャッフル&lt;br /&gt;
:各行の文字をランダムに並べ替えます。&lt;br /&gt;
:例＞ &amp;lt;span style=&amp;quot;background:#bfdfff;&amp;quot;&amp;gt;文字をシャッフル&amp;lt;/span&amp;gt; → フ字をャシッル文&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;文字をシャッフル&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2017/06/25&lt;br /&gt;
  var X=new RegExp(/[\x00-\x1F\x7F-\x9F\xAD\u2028\u2029\uFEFF]|(?:(?:\uD83C[\uDDE6-\uDDFF]){2}|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\s\S])(?:[\u0300-\u036F\u1AB0-\u1AFF\u1DC0-\u1DFF\u20D0-\u20FF\u3099\u309A\uFE20-\uFE2F\u200C\u200D\u180B-\u180D\uFE00-\uFE0F]|\uDB40[\uDD00-\uDDEF]|\uD83C[\uDFFB-\uDFFF])*/g); return _.replace(/[^\n]+/g,function(s){var a=s.match(X),i=a.length,j,t; while(i){j=Math.floor(Math.random()*i--); t=a[i];a[i]=a[j];a[j]=t;} return a.join(&amp;quot;&amp;quot;)}) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==字種/数値変換==&lt;br /&gt;
;★半角英数→全角&lt;br /&gt;
;★全角英数→半角&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;半角英数→全角&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2014/02/10&lt;br /&gt;
  return _.replace(/[0-9A-Za-z]/g,function(s){return String.fromCharCode(s.charCodeAt(0)+0xFEE0)}) }]);&lt;br /&gt;
f.push([&amp;quot;全角英数→半角&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2014/02/10&lt;br /&gt;
  return _.replace(/[０-９Ａ-Ｚａ-ｚ]/g,function(s){return String.fromCharCode(s.charCodeAt(0)-0xFEE0)}) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;★半角カナ→全角&lt;br /&gt;
;★全角カナ→半角&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;半角カナ→全角&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2015/03/14&lt;br /&gt;
  return _.replaceBatch([ [&amp;quot;ｳﾞ&amp;quot;,&amp;quot;ヴ&amp;quot;],[&amp;quot;ｶﾞ&amp;quot;,&amp;quot;ガ&amp;quot;],[&amp;quot;ｷﾞ&amp;quot;,&amp;quot;ギ&amp;quot;],[&amp;quot;ｸﾞ&amp;quot;,&amp;quot;グ&amp;quot;],[&amp;quot;ｹﾞ&amp;quot;,&amp;quot;ゲ&amp;quot;],[&amp;quot;ｺﾞ&amp;quot;,&amp;quot;ゴ&amp;quot;],[&amp;quot;ｻﾞ&amp;quot;,&amp;quot;ザ&amp;quot;],[&amp;quot;ｼﾞ&amp;quot;,&amp;quot;ジ&amp;quot;],[&amp;quot;ｽﾞ&amp;quot;,&amp;quot;ズ&amp;quot;],[&amp;quot;ｾﾞ&amp;quot;,&amp;quot;ゼ&amp;quot;],[&amp;quot;ｿﾞ&amp;quot;,&amp;quot;ゾ&amp;quot;],[&amp;quot;ﾀﾞ&amp;quot;,&amp;quot;ダ&amp;quot;],[&amp;quot;ﾁﾞ&amp;quot;,&amp;quot;ヂ&amp;quot;],[&amp;quot;ﾂﾞ&amp;quot;,&amp;quot;ヅ&amp;quot;],[&amp;quot;ﾃﾞ&amp;quot;,&amp;quot;デ&amp;quot;],[&amp;quot;ﾄﾞ&amp;quot;,&amp;quot;ド&amp;quot;],[&amp;quot;ﾊﾞ&amp;quot;,&amp;quot;バ&amp;quot;],[&amp;quot;ﾋﾞ&amp;quot;,&amp;quot;ビ&amp;quot;],[&amp;quot;ﾌﾞ&amp;quot;,&amp;quot;ブ&amp;quot;],[&amp;quot;ﾍﾞ&amp;quot;,&amp;quot;ベ&amp;quot;],[&amp;quot;ﾎﾞ&amp;quot;,&amp;quot;ボ&amp;quot;],[&amp;quot;ﾊﾟ&amp;quot;,&amp;quot;パ&amp;quot;],[&amp;quot;ﾋﾟ&amp;quot;,&amp;quot;ピ&amp;quot;],[&amp;quot;ﾌﾟ&amp;quot;,&amp;quot;プ&amp;quot;],[&amp;quot;ﾍﾟ&amp;quot;,&amp;quot;ペ&amp;quot;],[&amp;quot;ﾎﾟ&amp;quot;,&amp;quot;ポ&amp;quot;],[&amp;quot;｡&amp;quot;,&amp;quot;。&amp;quot;],[&amp;quot;｢&amp;quot;,&amp;quot;「&amp;quot;],[&amp;quot;｣&amp;quot;,&amp;quot;」&amp;quot;],[&amp;quot;､&amp;quot;,&amp;quot;、&amp;quot;],[&amp;quot;･&amp;quot;,&amp;quot;・&amp;quot;],[&amp;quot;ｦ&amp;quot;,&amp;quot;ヲ&amp;quot;],[&amp;quot;ｧ&amp;quot;,&amp;quot;ァ&amp;quot;],[&amp;quot;ｨ&amp;quot;,&amp;quot;ィ&amp;quot;],[&amp;quot;ｩ&amp;quot;,&amp;quot;ゥ&amp;quot;],[&amp;quot;ｪ&amp;quot;,&amp;quot;ェ&amp;quot;],[&amp;quot;ｫ&amp;quot;,&amp;quot;ォ&amp;quot;],[&amp;quot;ｬ&amp;quot;,&amp;quot;ャ&amp;quot;],[&amp;quot;ｭ&amp;quot;,&amp;quot;ュ&amp;quot;],[&amp;quot;ｮ&amp;quot;,&amp;quot;ョ&amp;quot;],[&amp;quot;ｯ&amp;quot;,&amp;quot;ッ&amp;quot;],[&amp;quot;ｰ&amp;quot;,&amp;quot;ー&amp;quot;],[&amp;quot;ｱ&amp;quot;,&amp;quot;ア&amp;quot;],[&amp;quot;ｲ&amp;quot;,&amp;quot;イ&amp;quot;],[&amp;quot;ｳ&amp;quot;,&amp;quot;ウ&amp;quot;],[&amp;quot;ｴ&amp;quot;,&amp;quot;エ&amp;quot;],[&amp;quot;ｵ&amp;quot;,&amp;quot;オ&amp;quot;],[&amp;quot;ｶ&amp;quot;,&amp;quot;カ&amp;quot;],[&amp;quot;ｷ&amp;quot;,&amp;quot;キ&amp;quot;],[&amp;quot;ｸ&amp;quot;,&amp;quot;ク&amp;quot;],[&amp;quot;ｹ&amp;quot;,&amp;quot;ケ&amp;quot;],[&amp;quot;ｺ&amp;quot;,&amp;quot;コ&amp;quot;],[&amp;quot;ｻ&amp;quot;,&amp;quot;サ&amp;quot;],[&amp;quot;ｼ&amp;quot;,&amp;quot;シ&amp;quot;],[&amp;quot;ｽ&amp;quot;,&amp;quot;ス&amp;quot;],[&amp;quot;ｾ&amp;quot;,&amp;quot;セ&amp;quot;],[&amp;quot;ｿ&amp;quot;,&amp;quot;ソ&amp;quot;],[&amp;quot;ﾀ&amp;quot;,&amp;quot;タ&amp;quot;],[&amp;quot;ﾁ&amp;quot;,&amp;quot;チ&amp;quot;],[&amp;quot;ﾂ&amp;quot;,&amp;quot;ツ&amp;quot;],[&amp;quot;ﾃ&amp;quot;,&amp;quot;テ&amp;quot;],[&amp;quot;ﾄ&amp;quot;,&amp;quot;ト&amp;quot;],[&amp;quot;ﾅ&amp;quot;,&amp;quot;ナ&amp;quot;],[&amp;quot;ﾆ&amp;quot;,&amp;quot;ニ&amp;quot;],[&amp;quot;ﾇ&amp;quot;,&amp;quot;ヌ&amp;quot;],[&amp;quot;ﾈ&amp;quot;,&amp;quot;ネ&amp;quot;],[&amp;quot;ﾉ&amp;quot;,&amp;quot;ノ&amp;quot;],[&amp;quot;ﾊ&amp;quot;,&amp;quot;ハ&amp;quot;],[&amp;quot;ﾋ&amp;quot;,&amp;quot;ヒ&amp;quot;],[&amp;quot;ﾌ&amp;quot;,&amp;quot;フ&amp;quot;],[&amp;quot;ﾍ&amp;quot;,&amp;quot;ヘ&amp;quot;],[&amp;quot;ﾎ&amp;quot;,&amp;quot;ホ&amp;quot;],[&amp;quot;ﾏ&amp;quot;,&amp;quot;マ&amp;quot;],[&amp;quot;ﾐ&amp;quot;,&amp;quot;ミ&amp;quot;],[&amp;quot;ﾑ&amp;quot;,&amp;quot;ム&amp;quot;],[&amp;quot;ﾒ&amp;quot;,&amp;quot;メ&amp;quot;],[&amp;quot;ﾓ&amp;quot;,&amp;quot;モ&amp;quot;],[&amp;quot;ﾔ&amp;quot;,&amp;quot;ヤ&amp;quot;],[&amp;quot;ﾕ&amp;quot;,&amp;quot;ユ&amp;quot;],[&amp;quot;ﾖ&amp;quot;,&amp;quot;ヨ&amp;quot;],[&amp;quot;ﾗ&amp;quot;,&amp;quot;ラ&amp;quot;],[&amp;quot;ﾘ&amp;quot;,&amp;quot;リ&amp;quot;],[&amp;quot;ﾙ&amp;quot;,&amp;quot;ル&amp;quot;],[&amp;quot;ﾚ&amp;quot;,&amp;quot;レ&amp;quot;],[&amp;quot;ﾛ&amp;quot;,&amp;quot;ロ&amp;quot;],[&amp;quot;ﾜ&amp;quot;,&amp;quot;ワ&amp;quot;],[&amp;quot;ﾝ&amp;quot;,&amp;quot;ン&amp;quot;],[&amp;quot;ﾞ&amp;quot;,&amp;quot;゛&amp;quot;],[&amp;quot;ﾟ&amp;quot;,&amp;quot;゜&amp;quot;] ]) }]);&lt;br /&gt;
f.push([&amp;quot;全角カナ→半角&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2015/03/14&lt;br /&gt;
  return _.replaceBatch([ [&amp;quot;ヴ&amp;quot;,&amp;quot;ｳﾞ&amp;quot;],[&amp;quot;ガ&amp;quot;,&amp;quot;ｶﾞ&amp;quot;],[&amp;quot;ギ&amp;quot;,&amp;quot;ｷﾞ&amp;quot;],[&amp;quot;グ&amp;quot;,&amp;quot;ｸﾞ&amp;quot;],[&amp;quot;ゲ&amp;quot;,&amp;quot;ｹﾞ&amp;quot;],[&amp;quot;ゴ&amp;quot;,&amp;quot;ｺﾞ&amp;quot;],[&amp;quot;ザ&amp;quot;,&amp;quot;ｻﾞ&amp;quot;],[&amp;quot;ジ&amp;quot;,&amp;quot;ｼﾞ&amp;quot;],[&amp;quot;ズ&amp;quot;,&amp;quot;ｽﾞ&amp;quot;],[&amp;quot;ゼ&amp;quot;,&amp;quot;ｾﾞ&amp;quot;],[&amp;quot;ゾ&amp;quot;,&amp;quot;ｿﾞ&amp;quot;],[&amp;quot;ダ&amp;quot;,&amp;quot;ﾀﾞ&amp;quot;],[&amp;quot;ヂ&amp;quot;,&amp;quot;ﾁﾞ&amp;quot;],[&amp;quot;ヅ&amp;quot;,&amp;quot;ﾂﾞ&amp;quot;],[&amp;quot;デ&amp;quot;,&amp;quot;ﾃﾞ&amp;quot;],[&amp;quot;ド&amp;quot;,&amp;quot;ﾄﾞ&amp;quot;],[&amp;quot;バ&amp;quot;,&amp;quot;ﾊﾞ&amp;quot;],[&amp;quot;ビ&amp;quot;,&amp;quot;ﾋﾞ&amp;quot;],[&amp;quot;ブ&amp;quot;,&amp;quot;ﾌﾞ&amp;quot;],[&amp;quot;ベ&amp;quot;,&amp;quot;ﾍﾞ&amp;quot;],[&amp;quot;ボ&amp;quot;,&amp;quot;ﾎﾞ&amp;quot;],[&amp;quot;パ&amp;quot;,&amp;quot;ﾊﾟ&amp;quot;],[&amp;quot;ピ&amp;quot;,&amp;quot;ﾋﾟ&amp;quot;],[&amp;quot;プ&amp;quot;,&amp;quot;ﾌﾟ&amp;quot;],[&amp;quot;ペ&amp;quot;,&amp;quot;ﾍﾟ&amp;quot;],[&amp;quot;ポ&amp;quot;,&amp;quot;ﾎﾟ&amp;quot;],[&amp;quot;。&amp;quot;,&amp;quot;｡&amp;quot;],[&amp;quot;「&amp;quot;,&amp;quot;｢&amp;quot;],[&amp;quot;」&amp;quot;,&amp;quot;｣&amp;quot;],[&amp;quot;、&amp;quot;,&amp;quot;､&amp;quot;],[&amp;quot;・&amp;quot;,&amp;quot;･&amp;quot;],[&amp;quot;ヲ&amp;quot;,&amp;quot;ｦ&amp;quot;],[&amp;quot;ァ&amp;quot;,&amp;quot;ｧ&amp;quot;],[&amp;quot;ィ&amp;quot;,&amp;quot;ｨ&amp;quot;],[&amp;quot;ゥ&amp;quot;,&amp;quot;ｩ&amp;quot;],[&amp;quot;ェ&amp;quot;,&amp;quot;ｪ&amp;quot;],[&amp;quot;ォ&amp;quot;,&amp;quot;ｫ&amp;quot;],[&amp;quot;ャ&amp;quot;,&amp;quot;ｬ&amp;quot;],[&amp;quot;ュ&amp;quot;,&amp;quot;ｭ&amp;quot;],[&amp;quot;ョ&amp;quot;,&amp;quot;ｮ&amp;quot;],[&amp;quot;ッ&amp;quot;,&amp;quot;ｯ&amp;quot;],[&amp;quot;ー&amp;quot;,&amp;quot;ｰ&amp;quot;],[&amp;quot;ア&amp;quot;,&amp;quot;ｱ&amp;quot;],[&amp;quot;イ&amp;quot;,&amp;quot;ｲ&amp;quot;],[&amp;quot;ウ&amp;quot;,&amp;quot;ｳ&amp;quot;],[&amp;quot;エ&amp;quot;,&amp;quot;ｴ&amp;quot;],[&amp;quot;オ&amp;quot;,&amp;quot;ｵ&amp;quot;],[&amp;quot;カ&amp;quot;,&amp;quot;ｶ&amp;quot;],[&amp;quot;キ&amp;quot;,&amp;quot;ｷ&amp;quot;],[&amp;quot;ク&amp;quot;,&amp;quot;ｸ&amp;quot;],[&amp;quot;ケ&amp;quot;,&amp;quot;ｹ&amp;quot;],[&amp;quot;コ&amp;quot;,&amp;quot;ｺ&amp;quot;],[&amp;quot;サ&amp;quot;,&amp;quot;ｻ&amp;quot;],[&amp;quot;シ&amp;quot;,&amp;quot;ｼ&amp;quot;],[&amp;quot;ス&amp;quot;,&amp;quot;ｽ&amp;quot;],[&amp;quot;セ&amp;quot;,&amp;quot;ｾ&amp;quot;],[&amp;quot;ソ&amp;quot;,&amp;quot;ｿ&amp;quot;],[&amp;quot;タ&amp;quot;,&amp;quot;ﾀ&amp;quot;],[&amp;quot;チ&amp;quot;,&amp;quot;ﾁ&amp;quot;],[&amp;quot;ツ&amp;quot;,&amp;quot;ﾂ&amp;quot;],[&amp;quot;テ&amp;quot;,&amp;quot;ﾃ&amp;quot;],[&amp;quot;ト&amp;quot;,&amp;quot;ﾄ&amp;quot;],[&amp;quot;ナ&amp;quot;,&amp;quot;ﾅ&amp;quot;],[&amp;quot;ニ&amp;quot;,&amp;quot;ﾆ&amp;quot;],[&amp;quot;ヌ&amp;quot;,&amp;quot;ﾇ&amp;quot;],[&amp;quot;ネ&amp;quot;,&amp;quot;ﾈ&amp;quot;],[&amp;quot;ノ&amp;quot;,&amp;quot;ﾉ&amp;quot;],[&amp;quot;ハ&amp;quot;,&amp;quot;ﾊ&amp;quot;],[&amp;quot;ヒ&amp;quot;,&amp;quot;ﾋ&amp;quot;],[&amp;quot;フ&amp;quot;,&amp;quot;ﾌ&amp;quot;],[&amp;quot;ヘ&amp;quot;,&amp;quot;ﾍ&amp;quot;],[&amp;quot;ホ&amp;quot;,&amp;quot;ﾎ&amp;quot;],[&amp;quot;マ&amp;quot;,&amp;quot;ﾏ&amp;quot;],[&amp;quot;ミ&amp;quot;,&amp;quot;ﾐ&amp;quot;],[&amp;quot;ム&amp;quot;,&amp;quot;ﾑ&amp;quot;],[&amp;quot;メ&amp;quot;,&amp;quot;ﾒ&amp;quot;],[&amp;quot;モ&amp;quot;,&amp;quot;ﾓ&amp;quot;],[&amp;quot;ヤ&amp;quot;,&amp;quot;ﾔ&amp;quot;],[&amp;quot;ユ&amp;quot;,&amp;quot;ﾕ&amp;quot;],[&amp;quot;ヨ&amp;quot;,&amp;quot;ﾖ&amp;quot;],[&amp;quot;ラ&amp;quot;,&amp;quot;ﾗ&amp;quot;],[&amp;quot;リ&amp;quot;,&amp;quot;ﾘ&amp;quot;],[&amp;quot;ル&amp;quot;,&amp;quot;ﾙ&amp;quot;],[&amp;quot;レ&amp;quot;,&amp;quot;ﾚ&amp;quot;],[&amp;quot;ロ&amp;quot;,&amp;quot;ﾛ&amp;quot;],[&amp;quot;ワ&amp;quot;,&amp;quot;ﾜ&amp;quot;],[&amp;quot;ン&amp;quot;,&amp;quot;ﾝ&amp;quot;],[&amp;quot;゛&amp;quot;,&amp;quot;ﾞ&amp;quot;],[&amp;quot;゜&amp;quot;,&amp;quot;ﾟ&amp;quot;] ]) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;★全角かな→カナ&lt;br /&gt;
;★全角カナ→かな&lt;br /&gt;
:全角ひらがなと全角カタカナを変換します。&lt;br /&gt;
:ただし、ヴヵヶ → ゔゕゖ の変換は行いません（Shift_JIS では保存できない文字のため）。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;全角かな→カナ&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2014/02/10&lt;br /&gt;
  return _.replace(/[\u3041-\u3096ゝゞ]/g,function(s){return String.fromCharCode(s.charCodeAt(0)+0x60)}) }]);&lt;br /&gt;
f.push([&amp;quot;全角カナ→かな(ヴヵヶ除く)&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2015/02/14&lt;br /&gt;
  return _.replace(/[\u30A1-\u30F3ヽヾ]/g,function(s){return String.fromCharCode(s.charCodeAt(0)-0x60)}) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
:ヴヵヶ → ゔゕゖ の変換も行う場合は、下記の内容に差し替えてください。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;全角カナ→かな&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2014/02/10&lt;br /&gt;
  return _.replace(/[\u30A1-\u30F6ヽヾ]/g,function(s){return String.fromCharCode(s.charCodeAt(0)-0x60)}) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;全角仮名+濁点を合成&lt;br /&gt;
:全角仮名＋濁点（結合/全角/半角）の2文字を、1文字に合成可能ならば合成します。&lt;br /&gt;
:例＞ &amp;lt;span style=&amp;quot;background:#bfdfff;&amp;quot;&amp;gt;あﾞし&amp;amp;#x3099;う゛ワﾞヘ゜か&amp;amp;#x309A;&amp;lt;/span&amp;gt; → あﾞじゔヷペか&amp;amp;#x309A;&lt;br /&gt;
:※「あﾞ」「か&amp;amp;#x309A;」は合成不能のため変化なし。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;全角仮名+濁点を合成&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2019/12/21&lt;br /&gt;
  var map={&amp;quot;\u3099&amp;quot;:&amp;quot;ﾞ&amp;quot;,&amp;quot;゛&amp;quot;:&amp;quot;ﾞ&amp;quot;,&amp;quot;ﾞ&amp;quot;:&amp;quot;ﾞ&amp;quot;,&amp;quot;\u309A&amp;quot;:&amp;quot;ﾟ&amp;quot;,&amp;quot;゜&amp;quot;:&amp;quot;ﾟ&amp;quot;,&amp;quot;ﾟ&amp;quot;:&amp;quot;ﾟ&amp;quot;,&amp;quot;かﾞ&amp;quot;:&amp;quot;が&amp;quot;,&amp;quot;きﾞ&amp;quot;:&amp;quot;ぎ&amp;quot;,&amp;quot;くﾞ&amp;quot;:&amp;quot;ぐ&amp;quot;,&amp;quot;けﾞ&amp;quot;:&amp;quot;げ&amp;quot;,&amp;quot;こﾞ&amp;quot;:&amp;quot;ご&amp;quot;,&amp;quot;さﾞ&amp;quot;:&amp;quot;ざ&amp;quot;,&amp;quot;しﾞ&amp;quot;:&amp;quot;じ&amp;quot;,&amp;quot;すﾞ&amp;quot;:&amp;quot;ず&amp;quot;,&amp;quot;せﾞ&amp;quot;:&amp;quot;ぜ&amp;quot;,&amp;quot;そﾞ&amp;quot;:&amp;quot;ぞ&amp;quot;,&amp;quot;たﾞ&amp;quot;:&amp;quot;だ&amp;quot;,&amp;quot;ちﾞ&amp;quot;:&amp;quot;ぢ&amp;quot;,&amp;quot;つﾞ&amp;quot;:&amp;quot;づ&amp;quot;,&amp;quot;てﾞ&amp;quot;:&amp;quot;で&amp;quot;,&amp;quot;とﾞ&amp;quot;:&amp;quot;ど&amp;quot;,&amp;quot;はﾞ&amp;quot;:&amp;quot;ば&amp;quot;,&amp;quot;ひﾞ&amp;quot;:&amp;quot;び&amp;quot;,&amp;quot;ふﾞ&amp;quot;:&amp;quot;ぶ&amp;quot;,&amp;quot;へﾞ&amp;quot;:&amp;quot;べ&amp;quot;,&amp;quot;ほﾞ&amp;quot;:&amp;quot;ぼ&amp;quot;,&amp;quot;ゝﾞ&amp;quot;:&amp;quot;ゞ&amp;quot;,&amp;quot;カﾞ&amp;quot;:&amp;quot;ガ&amp;quot;,&amp;quot;キﾞ&amp;quot;:&amp;quot;ギ&amp;quot;,&amp;quot;クﾞ&amp;quot;:&amp;quot;グ&amp;quot;,&amp;quot;ケﾞ&amp;quot;:&amp;quot;ゲ&amp;quot;,&amp;quot;コﾞ&amp;quot;:&amp;quot;ゴ&amp;quot;,&amp;quot;サﾞ&amp;quot;:&amp;quot;ザ&amp;quot;,&amp;quot;シﾞ&amp;quot;:&amp;quot;ジ&amp;quot;,&amp;quot;スﾞ&amp;quot;:&amp;quot;ズ&amp;quot;,&amp;quot;セﾞ&amp;quot;:&amp;quot;ゼ&amp;quot;,&amp;quot;ソﾞ&amp;quot;:&amp;quot;ゾ&amp;quot;,&amp;quot;タﾞ&amp;quot;:&amp;quot;ダ&amp;quot;,&amp;quot;チﾞ&amp;quot;:&amp;quot;ヂ&amp;quot;,&amp;quot;ツﾞ&amp;quot;:&amp;quot;ヅ&amp;quot;,&amp;quot;テﾞ&amp;quot;:&amp;quot;デ&amp;quot;,&amp;quot;トﾞ&amp;quot;:&amp;quot;ド&amp;quot;,&amp;quot;ハﾞ&amp;quot;:&amp;quot;バ&amp;quot;,&amp;quot;ヒﾞ&amp;quot;:&amp;quot;ビ&amp;quot;,&amp;quot;フﾞ&amp;quot;:&amp;quot;ブ&amp;quot;,&amp;quot;ヘﾞ&amp;quot;:&amp;quot;ベ&amp;quot;,&amp;quot;ホﾞ&amp;quot;:&amp;quot;ボ&amp;quot;,&amp;quot;ヽﾞ&amp;quot;:&amp;quot;ヾ&amp;quot;,&amp;quot;はﾟ&amp;quot;:&amp;quot;ぱ&amp;quot;,&amp;quot;ひﾟ&amp;quot;:&amp;quot;ぴ&amp;quot;,&amp;quot;ふﾟ&amp;quot;:&amp;quot;ぷ&amp;quot;,&amp;quot;へﾟ&amp;quot;:&amp;quot;ぺ&amp;quot;,&amp;quot;ほﾟ&amp;quot;:&amp;quot;ぽ&amp;quot;,&amp;quot;ハﾟ&amp;quot;:&amp;quot;パ&amp;quot;,&amp;quot;ヒﾟ&amp;quot;:&amp;quot;ピ&amp;quot;,&amp;quot;フﾟ&amp;quot;:&amp;quot;プ&amp;quot;,&amp;quot;ヘﾟ&amp;quot;:&amp;quot;ペ&amp;quot;,&amp;quot;ホﾟ&amp;quot;:&amp;quot;ポ&amp;quot;,&amp;quot;うﾞ&amp;quot;:&amp;quot;ゔ&amp;quot;,&amp;quot;ウﾞ&amp;quot;:&amp;quot;ヴ&amp;quot;,&amp;quot;ワﾞ&amp;quot;:&amp;quot;ヷ&amp;quot;,&amp;quot;ヰﾞ&amp;quot;:&amp;quot;ヸ&amp;quot;,&amp;quot;ヱﾞ&amp;quot;:&amp;quot;ヹ&amp;quot;,&amp;quot;ヲﾞ&amp;quot;:&amp;quot;ヺ&amp;quot;}; return _.replace(/([うウかきくけこさしすせそたちつてとはひふへほゝカキクケコサシスセソタチツテトハヒフヘホヽワヰヱヲ])([\u3099゛ﾞ\u309A゜ﾟ])/g,function(s,k,v){return map[k+map[v]]||s}) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;標準変換&lt;br /&gt;
:マクロ「&amp;lt;b&amp;gt;[[標準変換]]&amp;lt;/b&amp;gt;」を移植（一部改変）したものです。&lt;br /&gt;
:全角英数・全角記号は半角に、半角カナは全角に変換します。&lt;br /&gt;
:{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 文字 !! 変換前&lt;br /&gt;
! 文字 !! 標準変換版&lt;br /&gt;
! 文字 !! テキスト整形版&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| ‘ || 全角左シングルクォート&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| ` || 半角グレーブアクセント&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| &#039; || 半角アポストロフィー/シングルクォート&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| ｀ || 全角グレーブアクセント&lt;br /&gt;
| || ※変換しない&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| ` || 半角グレーブアクセント/バッククォート&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;標準変換&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2015/03/14&lt;br /&gt;
  return _.replaceBatch([ [&amp;quot;　&amp;quot;,&amp;quot; &amp;quot;],[&amp;quot;！&amp;quot;,&amp;quot;!&amp;quot;],[&amp;quot;“&amp;quot;,&#039;&amp;quot;&#039;],[&amp;quot;”&amp;quot;,&#039;&amp;quot;&#039;],[&amp;quot;＃&amp;quot;,&amp;quot;#&amp;quot;],[&amp;quot;＄&amp;quot;,&amp;quot;$&amp;quot;],[&amp;quot;％&amp;quot;,&amp;quot;%&amp;quot;],[&amp;quot;＆&amp;quot;,&amp;quot;&amp;amp;&amp;quot;],[&amp;quot;‘&amp;quot;,&amp;quot;&#039;&amp;quot;],[&amp;quot;’&amp;quot;,&amp;quot;&#039;&amp;quot;],[&amp;quot;（&amp;quot;,&amp;quot;(&amp;quot;],[&amp;quot;）&amp;quot;,&amp;quot;)&amp;quot;],[&amp;quot;＊&amp;quot;,&amp;quot;*&amp;quot;],[&amp;quot;＋&amp;quot;,&amp;quot;+&amp;quot;],[&amp;quot;，&amp;quot;,&amp;quot;,&amp;quot;],[&amp;quot;－&amp;quot;,&amp;quot;-&amp;quot;],[&amp;quot;．&amp;quot;,&amp;quot;.&amp;quot;],[&amp;quot;／&amp;quot;,&amp;quot;/&amp;quot;],[&amp;quot;０&amp;quot;,&amp;quot;0&amp;quot;],[&amp;quot;１&amp;quot;,&amp;quot;1&amp;quot;],[&amp;quot;２&amp;quot;,&amp;quot;2&amp;quot;],[&amp;quot;３&amp;quot;,&amp;quot;3&amp;quot;],[&amp;quot;４&amp;quot;,&amp;quot;4&amp;quot;],[&amp;quot;５&amp;quot;,&amp;quot;5&amp;quot;],[&amp;quot;６&amp;quot;,&amp;quot;6&amp;quot;],[&amp;quot;７&amp;quot;,&amp;quot;7&amp;quot;],[&amp;quot;８&amp;quot;,&amp;quot;8&amp;quot;],[&amp;quot;９&amp;quot;,&amp;quot;9&amp;quot;],[&amp;quot;：&amp;quot;,&amp;quot;:&amp;quot;],[&amp;quot;；&amp;quot;,&amp;quot;;&amp;quot;],[&amp;quot;＜&amp;quot;,&amp;quot;&amp;lt;&amp;quot;],[&amp;quot;＝&amp;quot;,&amp;quot;=&amp;quot;],[&amp;quot;＞&amp;quot;,&amp;quot;&amp;gt;&amp;quot;],[&amp;quot;？&amp;quot;,&amp;quot;?&amp;quot;],[&amp;quot;＠&amp;quot;,&amp;quot;@&amp;quot;],[&amp;quot;Ａ&amp;quot;,&amp;quot;A&amp;quot;],[&amp;quot;Ｂ&amp;quot;,&amp;quot;B&amp;quot;],[&amp;quot;Ｃ&amp;quot;,&amp;quot;C&amp;quot;],[&amp;quot;Ｄ&amp;quot;,&amp;quot;D&amp;quot;],[&amp;quot;Ｅ&amp;quot;,&amp;quot;E&amp;quot;],[&amp;quot;Ｆ&amp;quot;,&amp;quot;F&amp;quot;],[&amp;quot;Ｇ&amp;quot;,&amp;quot;G&amp;quot;],[&amp;quot;Ｈ&amp;quot;,&amp;quot;H&amp;quot;],[&amp;quot;Ｉ&amp;quot;,&amp;quot;I&amp;quot;],[&amp;quot;Ｊ&amp;quot;,&amp;quot;J&amp;quot;],[&amp;quot;Ｋ&amp;quot;,&amp;quot;K&amp;quot;],[&amp;quot;Ｌ&amp;quot;,&amp;quot;L&amp;quot;],[&amp;quot;Ｍ&amp;quot;,&amp;quot;M&amp;quot;],[&amp;quot;Ｎ&amp;quot;,&amp;quot;N&amp;quot;],[&amp;quot;Ｏ&amp;quot;,&amp;quot;O&amp;quot;],[&amp;quot;Ｐ&amp;quot;,&amp;quot;P&amp;quot;],[&amp;quot;Ｑ&amp;quot;,&amp;quot;Q&amp;quot;],[&amp;quot;Ｒ&amp;quot;,&amp;quot;R&amp;quot;],[&amp;quot;Ｓ&amp;quot;,&amp;quot;S&amp;quot;],[&amp;quot;Ｔ&amp;quot;,&amp;quot;T&amp;quot;],[&amp;quot;Ｕ&amp;quot;,&amp;quot;U&amp;quot;],[&amp;quot;Ｖ&amp;quot;,&amp;quot;V&amp;quot;],[&amp;quot;Ｗ&amp;quot;,&amp;quot;W&amp;quot;],[&amp;quot;Ｘ&amp;quot;,&amp;quot;X&amp;quot;],[&amp;quot;Ｙ&amp;quot;,&amp;quot;Y&amp;quot;],[&amp;quot;Ｚ&amp;quot;,&amp;quot;Z&amp;quot;],[&amp;quot;［&amp;quot;,&amp;quot;[&amp;quot;],[&amp;quot;￥&amp;quot;,&amp;quot;\\&amp;quot;],[&amp;quot;］&amp;quot;,&amp;quot;]&amp;quot;],[&amp;quot;＾&amp;quot;,&amp;quot;^&amp;quot;],[&amp;quot;＿&amp;quot;,&amp;quot;_&amp;quot;],[&amp;quot;｀&amp;quot;,&amp;quot;`&amp;quot;],[&amp;quot;ａ&amp;quot;,&amp;quot;a&amp;quot;],[&amp;quot;ｂ&amp;quot;,&amp;quot;b&amp;quot;],[&amp;quot;ｃ&amp;quot;,&amp;quot;c&amp;quot;],[&amp;quot;ｄ&amp;quot;,&amp;quot;d&amp;quot;],[&amp;quot;ｅ&amp;quot;,&amp;quot;e&amp;quot;],[&amp;quot;ｆ&amp;quot;,&amp;quot;f&amp;quot;],[&amp;quot;ｇ&amp;quot;,&amp;quot;g&amp;quot;],[&amp;quot;ｈ&amp;quot;,&amp;quot;h&amp;quot;],[&amp;quot;ｉ&amp;quot;,&amp;quot;i&amp;quot;],[&amp;quot;ｊ&amp;quot;,&amp;quot;j&amp;quot;],[&amp;quot;ｋ&amp;quot;,&amp;quot;k&amp;quot;],[&amp;quot;ｌ&amp;quot;,&amp;quot;l&amp;quot;],[&amp;quot;ｍ&amp;quot;,&amp;quot;m&amp;quot;],[&amp;quot;ｎ&amp;quot;,&amp;quot;n&amp;quot;],[&amp;quot;ｏ&amp;quot;,&amp;quot;o&amp;quot;],[&amp;quot;ｐ&amp;quot;,&amp;quot;p&amp;quot;],[&amp;quot;ｑ&amp;quot;,&amp;quot;q&amp;quot;],[&amp;quot;ｒ&amp;quot;,&amp;quot;r&amp;quot;],[&amp;quot;ｓ&amp;quot;,&amp;quot;s&amp;quot;],[&amp;quot;ｔ&amp;quot;,&amp;quot;t&amp;quot;],[&amp;quot;ｕ&amp;quot;,&amp;quot;u&amp;quot;],[&amp;quot;ｖ&amp;quot;,&amp;quot;v&amp;quot;],[&amp;quot;ｗ&amp;quot;,&amp;quot;w&amp;quot;],[&amp;quot;ｘ&amp;quot;,&amp;quot;x&amp;quot;],[&amp;quot;ｙ&amp;quot;,&amp;quot;y&amp;quot;],[&amp;quot;ｚ&amp;quot;,&amp;quot;z&amp;quot;],[&amp;quot;｛&amp;quot;,&amp;quot;{&amp;quot;],[&amp;quot;｜&amp;quot;,&amp;quot;|&amp;quot;],[&amp;quot;｝&amp;quot;,&amp;quot;}&amp;quot;],[&amp;quot;～&amp;quot;,&amp;quot;~&amp;quot;],[&amp;quot;ｳﾞ&amp;quot;,&amp;quot;ヴ&amp;quot;],[&amp;quot;ｶﾞ&amp;quot;,&amp;quot;ガ&amp;quot;],[&amp;quot;ｷﾞ&amp;quot;,&amp;quot;ギ&amp;quot;],[&amp;quot;ｸﾞ&amp;quot;,&amp;quot;グ&amp;quot;],[&amp;quot;ｹﾞ&amp;quot;,&amp;quot;ゲ&amp;quot;],[&amp;quot;ｺﾞ&amp;quot;,&amp;quot;ゴ&amp;quot;],[&amp;quot;ｻﾞ&amp;quot;,&amp;quot;ザ&amp;quot;],[&amp;quot;ｼﾞ&amp;quot;,&amp;quot;ジ&amp;quot;],[&amp;quot;ｽﾞ&amp;quot;,&amp;quot;ズ&amp;quot;],[&amp;quot;ｾﾞ&amp;quot;,&amp;quot;ゼ&amp;quot;],[&amp;quot;ｿﾞ&amp;quot;,&amp;quot;ゾ&amp;quot;],[&amp;quot;ﾀﾞ&amp;quot;,&amp;quot;ダ&amp;quot;],[&amp;quot;ﾁﾞ&amp;quot;,&amp;quot;ヂ&amp;quot;],[&amp;quot;ﾂﾞ&amp;quot;,&amp;quot;ヅ&amp;quot;],[&amp;quot;ﾃﾞ&amp;quot;,&amp;quot;デ&amp;quot;],[&amp;quot;ﾄﾞ&amp;quot;,&amp;quot;ド&amp;quot;],[&amp;quot;ﾊﾞ&amp;quot;,&amp;quot;バ&amp;quot;],[&amp;quot;ﾋﾞ&amp;quot;,&amp;quot;ビ&amp;quot;],[&amp;quot;ﾌﾞ&amp;quot;,&amp;quot;ブ&amp;quot;],[&amp;quot;ﾍﾞ&amp;quot;,&amp;quot;ベ&amp;quot;],[&amp;quot;ﾎﾞ&amp;quot;,&amp;quot;ボ&amp;quot;],[&amp;quot;ﾊﾟ&amp;quot;,&amp;quot;パ&amp;quot;],[&amp;quot;ﾋﾟ&amp;quot;,&amp;quot;ピ&amp;quot;],[&amp;quot;ﾌﾟ&amp;quot;,&amp;quot;プ&amp;quot;],[&amp;quot;ﾍﾟ&amp;quot;,&amp;quot;ペ&amp;quot;],[&amp;quot;ﾎﾟ&amp;quot;,&amp;quot;ポ&amp;quot;],[&amp;quot;｡&amp;quot;,&amp;quot;。&amp;quot;],[&amp;quot;｢&amp;quot;,&amp;quot;「&amp;quot;],[&amp;quot;｣&amp;quot;,&amp;quot;」&amp;quot;],[&amp;quot;､&amp;quot;,&amp;quot;、&amp;quot;],[&amp;quot;･&amp;quot;,&amp;quot;・&amp;quot;],[&amp;quot;ｦ&amp;quot;,&amp;quot;ヲ&amp;quot;],[&amp;quot;ｧ&amp;quot;,&amp;quot;ァ&amp;quot;],[&amp;quot;ｨ&amp;quot;,&amp;quot;ィ&amp;quot;],[&amp;quot;ｩ&amp;quot;,&amp;quot;ゥ&amp;quot;],[&amp;quot;ｪ&amp;quot;,&amp;quot;ェ&amp;quot;],[&amp;quot;ｫ&amp;quot;,&amp;quot;ォ&amp;quot;],[&amp;quot;ｬ&amp;quot;,&amp;quot;ャ&amp;quot;],[&amp;quot;ｭ&amp;quot;,&amp;quot;ュ&amp;quot;],[&amp;quot;ｮ&amp;quot;,&amp;quot;ョ&amp;quot;],[&amp;quot;ｯ&amp;quot;,&amp;quot;ッ&amp;quot;],[&amp;quot;ｰ&amp;quot;,&amp;quot;ー&amp;quot;],[&amp;quot;ｱ&amp;quot;,&amp;quot;ア&amp;quot;],[&amp;quot;ｲ&amp;quot;,&amp;quot;イ&amp;quot;],[&amp;quot;ｳ&amp;quot;,&amp;quot;ウ&amp;quot;],[&amp;quot;ｴ&amp;quot;,&amp;quot;エ&amp;quot;],[&amp;quot;ｵ&amp;quot;,&amp;quot;オ&amp;quot;],[&amp;quot;ｶ&amp;quot;,&amp;quot;カ&amp;quot;],[&amp;quot;ｷ&amp;quot;,&amp;quot;キ&amp;quot;],[&amp;quot;ｸ&amp;quot;,&amp;quot;ク&amp;quot;],[&amp;quot;ｹ&amp;quot;,&amp;quot;ケ&amp;quot;],[&amp;quot;ｺ&amp;quot;,&amp;quot;コ&amp;quot;],[&amp;quot;ｻ&amp;quot;,&amp;quot;サ&amp;quot;],[&amp;quot;ｼ&amp;quot;,&amp;quot;シ&amp;quot;],[&amp;quot;ｽ&amp;quot;,&amp;quot;ス&amp;quot;],[&amp;quot;ｾ&amp;quot;,&amp;quot;セ&amp;quot;],[&amp;quot;ｿ&amp;quot;,&amp;quot;ソ&amp;quot;],[&amp;quot;ﾀ&amp;quot;,&amp;quot;タ&amp;quot;],[&amp;quot;ﾁ&amp;quot;,&amp;quot;チ&amp;quot;],[&amp;quot;ﾂ&amp;quot;,&amp;quot;ツ&amp;quot;],[&amp;quot;ﾃ&amp;quot;,&amp;quot;テ&amp;quot;],[&amp;quot;ﾄ&amp;quot;,&amp;quot;ト&amp;quot;],[&amp;quot;ﾅ&amp;quot;,&amp;quot;ナ&amp;quot;],[&amp;quot;ﾆ&amp;quot;,&amp;quot;ニ&amp;quot;],[&amp;quot;ﾇ&amp;quot;,&amp;quot;ヌ&amp;quot;],[&amp;quot;ﾈ&amp;quot;,&amp;quot;ネ&amp;quot;],[&amp;quot;ﾉ&amp;quot;,&amp;quot;ノ&amp;quot;],[&amp;quot;ﾊ&amp;quot;,&amp;quot;ハ&amp;quot;],[&amp;quot;ﾋ&amp;quot;,&amp;quot;ヒ&amp;quot;],[&amp;quot;ﾌ&amp;quot;,&amp;quot;フ&amp;quot;],[&amp;quot;ﾍ&amp;quot;,&amp;quot;ヘ&amp;quot;],[&amp;quot;ﾎ&amp;quot;,&amp;quot;ホ&amp;quot;],[&amp;quot;ﾏ&amp;quot;,&amp;quot;マ&amp;quot;],[&amp;quot;ﾐ&amp;quot;,&amp;quot;ミ&amp;quot;],[&amp;quot;ﾑ&amp;quot;,&amp;quot;ム&amp;quot;],[&amp;quot;ﾒ&amp;quot;,&amp;quot;メ&amp;quot;],[&amp;quot;ﾓ&amp;quot;,&amp;quot;モ&amp;quot;],[&amp;quot;ﾔ&amp;quot;,&amp;quot;ヤ&amp;quot;],[&amp;quot;ﾕ&amp;quot;,&amp;quot;ユ&amp;quot;],[&amp;quot;ﾖ&amp;quot;,&amp;quot;ヨ&amp;quot;],[&amp;quot;ﾗ&amp;quot;,&amp;quot;ラ&amp;quot;],[&amp;quot;ﾘ&amp;quot;,&amp;quot;リ&amp;quot;],[&amp;quot;ﾙ&amp;quot;,&amp;quot;ル&amp;quot;],[&amp;quot;ﾚ&amp;quot;,&amp;quot;レ&amp;quot;],[&amp;quot;ﾛ&amp;quot;,&amp;quot;ロ&amp;quot;],[&amp;quot;ﾜ&amp;quot;,&amp;quot;ワ&amp;quot;],[&amp;quot;ﾝ&amp;quot;,&amp;quot;ン&amp;quot;],[&amp;quot;ﾞ&amp;quot;,&amp;quot;゛&amp;quot;],[&amp;quot;ﾟ&amp;quot;,&amp;quot;゜&amp;quot;] ]) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;表外漢字→代替&lt;br /&gt;
:[https://ja.wiktionary.org/wiki/%E8%A1%A8%E5%A4%96%E6%BC%A2%E5%AD%97%E5%AD%97%E4%BD%93%E8%A1%A8%E3%81%AE%E6%BC%A2%E5%AD%97%E4%B8%80%E8%A6%A7 表外漢字字体表] 1022字のうち &amp;lt;span style=&amp;quot;background:#ffee62;&amp;quot;&amp;gt;Shift_JIS (CP932) では保存できない文字40字&amp;lt;/span&amp;gt;を、保存できる文字に置換します。&lt;br /&gt;
:{|class=&amp;quot;wikitable&amp;quot; style=&amp;quot;font:120% &#039;ヒラギノ角ゴ ProN W3&#039;,&#039;ヒラギノ角ゴ ProN&#039;,&#039;メイリオ&#039;,Meiryo,sans-serif;&amp;quot;&lt;br /&gt;
|-style=&amp;quot;background:#ffee62;&amp;quot;&lt;br /&gt;
|啞||焰||鷗||摑||麴||噓||俠||頰||軀||俱||繫||姸||鹼||嚙||攢||𠮟||繡||蔣||醬||蟬||搔||瘦||驒||簞||塡||顚||禱||瀆||吞||囊||剝||潑||醱||屛||幷||麵||萊||屢||沪||蠟&lt;br /&gt;
|-&lt;br /&gt;
|唖||焔||鴎||掴||麹||嘘||侠||頬||躯||倶||繋||妍||鹸||噛||攅||叱||繍||蒋||醤||蝉||掻||痩||騨||箪||填||顛||祷||涜||呑||嚢||剥||溌||醗||屏||并||麺||莱||屡||濾||蝋&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;表外漢字→代替&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2017/06/25&lt;br /&gt;
  return _.replaceBatch([ [&amp;quot;\u555E&amp;quot;,&amp;quot;唖&amp;quot;],[&amp;quot;\u7130&amp;quot;,&amp;quot;焔&amp;quot;],[&amp;quot;\u9DD7&amp;quot;,&amp;quot;鴎&amp;quot;],[&amp;quot;\u6451&amp;quot;,&amp;quot;掴&amp;quot;],[&amp;quot;\u9EB4&amp;quot;,&amp;quot;麹&amp;quot;],[&amp;quot;\u5653&amp;quot;,&amp;quot;嘘&amp;quot;],[&amp;quot;\u4FE0&amp;quot;,&amp;quot;侠&amp;quot;],[&amp;quot;\u9830&amp;quot;,&amp;quot;頬&amp;quot;],[&amp;quot;\u8EC0&amp;quot;,&amp;quot;躯&amp;quot;],[&amp;quot;\u4FF1&amp;quot;,&amp;quot;倶&amp;quot;],[&amp;quot;\u7E6B&amp;quot;,&amp;quot;繋&amp;quot;],[&amp;quot;\u59F8&amp;quot;,&amp;quot;妍&amp;quot;],[&amp;quot;\u9E7C&amp;quot;,&amp;quot;鹸&amp;quot;],[&amp;quot;\u5699&amp;quot;,&amp;quot;噛&amp;quot;],[&amp;quot;\u6522&amp;quot;,&amp;quot;攅&amp;quot;],[&amp;quot;\uD842\uDF9F&amp;quot;,&amp;quot;叱&amp;quot;],[&amp;quot;\u7E61&amp;quot;,&amp;quot;繍&amp;quot;],[&amp;quot;\u8523&amp;quot;,&amp;quot;蒋&amp;quot;],[&amp;quot;\u91AC&amp;quot;,&amp;quot;醤&amp;quot;],[&amp;quot;\u87EC&amp;quot;,&amp;quot;蝉&amp;quot;],[&amp;quot;\u6414&amp;quot;,&amp;quot;掻&amp;quot;],[&amp;quot;\u7626&amp;quot;,&amp;quot;痩&amp;quot;],[&amp;quot;\u9A52&amp;quot;,&amp;quot;騨&amp;quot;],[&amp;quot;\u7C1E&amp;quot;,&amp;quot;箪&amp;quot;],[&amp;quot;\u5861&amp;quot;,&amp;quot;填&amp;quot;],[&amp;quot;\u985A&amp;quot;,&amp;quot;顛&amp;quot;],[&amp;quot;\u79B1&amp;quot;,&amp;quot;祷&amp;quot;],[&amp;quot;\u7006&amp;quot;,&amp;quot;涜&amp;quot;],[&amp;quot;\u541E&amp;quot;,&amp;quot;呑&amp;quot;],[&amp;quot;\u56CA&amp;quot;,&amp;quot;嚢&amp;quot;],[&amp;quot;\u525D&amp;quot;,&amp;quot;剥&amp;quot;],[&amp;quot;\u6F51&amp;quot;,&amp;quot;溌&amp;quot;],[&amp;quot;\u91B1&amp;quot;,&amp;quot;醗&amp;quot;],[&amp;quot;\u5C5B&amp;quot;,&amp;quot;屏&amp;quot;],[&amp;quot;\u5E77&amp;quot;,&amp;quot;并&amp;quot;],[&amp;quot;\u9EB5&amp;quot;,&amp;quot;麺&amp;quot;],[&amp;quot;\u840A&amp;quot;,&amp;quot;莱&amp;quot;],[&amp;quot;\u5C62&amp;quot;,&amp;quot;屡&amp;quot;],[&amp;quot;\u6CAA&amp;quot;,&amp;quot;濾&amp;quot;],[&amp;quot;\u881F&amp;quot;,&amp;quot;蝋&amp;quot;] ]) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;★10→16進数&lt;br /&gt;
:半角数字列を10進数値とみなし、16進数値に変換します。&lt;br /&gt;
:例＞ &amp;lt;span style=&amp;quot;background:#bfdfff;&amp;quot;&amp;gt;291／15／44015&amp;lt;/span&amp;gt; → 123／F／ABEF&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;10→16進数&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2014/05/31&lt;br /&gt;
  return _.replace(/[0-9]+/g,function(s){return Number(s).toString(16).toUpperCase()}) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
;★16→10進数&lt;br /&gt;
:半角英数字列を16進数値とみなし、10進数値に変換します。英字の大小、0x の有無は問いません。&lt;br /&gt;
:例＞ &amp;lt;span style=&amp;quot;background:#bfdfff;&amp;quot;&amp;gt;123／0x0F／abef&amp;lt;/span&amp;gt; → 291／15／44015&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;16→10進数&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2017/06/25&lt;br /&gt;
  return _.replace(/(?:0x)?([0-9a-f]+)/gi,function(_,x){return Number(&amp;quot;0x&amp;quot;+x)}) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;2進接頭辞換算&lt;br /&gt;
:半角数字列を 2&amp;lt;sup&amp;gt;10&amp;lt;/sup&amp;gt; = 1024 の倍量単位 (Ki,Mi,Gi...Yi) に変換します（小数点第3位を四捨五入）。&lt;br /&gt;
:例＞ &amp;lt;span style=&amp;quot;background:#bfdfff;&amp;quot;&amp;gt;1023／1024／54321／1,048,576／1,073,741,824&amp;lt;/span&amp;gt; → 1023／1.00Ki／53.05Ki／1.00Mi／1.00Gi&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;2進接頭辞換算&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2015/03/14&lt;br /&gt;
  var k=1024,p=&amp;quot;?KMGTPEZY&amp;quot;; return _.replace(/[0-9]+(,?[0-9]{3})+/g,function(s){var x=0,n=s.replace(/,/g,&amp;quot;&amp;quot;); if(n&amp;lt;k)return s; while(n&amp;gt;=k&amp;amp;&amp;amp;x&amp;lt;8){n/=k;x++} return n.toFixed(2)+p.charAt(x)+&amp;quot;i&amp;quot;}) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==符号化/復号化==&lt;br /&gt;
&lt;br /&gt;
;URL %エンコード／デコード(UTF-8)&lt;br /&gt;
:URL アドレスに使用されるパーセントエンコーディングの符号化/復号化を行います。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;URL %エンコード(UTF-8)&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2014/02/01&lt;br /&gt;
  return encodeURI(_).replace(/%0D%0A|%0D|%0A/g,&amp;quot;\n&amp;quot;) }]);&lt;br /&gt;
f.push([&amp;quot;URL %デコード(UTF-8)&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2014/02/01&lt;br /&gt;
  return decodeURIComponent(_) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Base64エンコード／デコード(UTF-8)&lt;br /&gt;
:[https://ja.wikipedia.org/wiki/Base64 Base64] 形式の符号化/復号化を行います。&lt;br /&gt;
:※バイナリデータ（画像や音声など）の復号化は、[編集]→[選択範囲の変換]→[Base64デコード] をご利用ください。&lt;br /&gt;
:&amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;注意点&amp;lt;/b&amp;gt;&lt;br /&gt;
:* 改行は LF (0x0A) としてエンコードされます。&lt;br /&gt;
:* A～Z a～z 0～9 + / 以外の文字（改行含む）は除去してからデコードされます。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;Base64エンコード(UTF-8)&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2019/12/21&lt;br /&gt;
  var A=&amp;quot;ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/&amp;quot;.split(&amp;quot;&amp;quot;), bin=unescape(encodeURIComponent(_)), n=bin.length, asc=&amp;quot;&amp;quot;, x; for(var i=0;i&amp;lt;n;){x=(bin.charCodeAt(i++)&amp;lt;&amp;lt;16)|(bin.charCodeAt(i++)&amp;lt;&amp;lt;8)|(bin.charCodeAt(i++)); asc+=A[x&amp;gt;&amp;gt;&amp;gt;18&amp;amp;0x3F]+A[x&amp;gt;&amp;gt;&amp;gt;12&amp;amp;0x3F]+A[x&amp;gt;&amp;gt;&amp;gt;6&amp;amp;0x3F]+A[x&amp;amp;0x3F]} if(n%3)asc=asc.slice(0,n%3-3)+&amp;quot;===&amp;quot;.slice(n%3); return asc }]);&lt;br /&gt;
f.push([&amp;quot;Base64デコード(UTF-8)&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2019/12/21&lt;br /&gt;
  var A=&amp;quot;ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/&amp;quot;, B={}; for(var i=0;i&amp;lt;A.length;i++){B[A.charAt(i)]=i} var asc=_.replace(/[^A-Za-z0-9+/]/g,&amp;quot;&amp;quot;).split(&amp;quot;&amp;quot;), n=asc.length, bin=&amp;quot;&amp;quot;, x; for(var i=0;i&amp;lt;n;){x=(B[asc[i++]]&amp;lt;&amp;lt;18)|(B[asc[i++]]&amp;lt;&amp;lt;12)|(B[asc[i++]]&amp;lt;&amp;lt;6)|(B[asc[i++]]); bin+=String.fromCharCode(x&amp;gt;&amp;gt;&amp;gt;16&amp;amp;0xFF,x&amp;gt;&amp;gt;&amp;gt;8&amp;amp;0xFF,x&amp;amp;0xFF)} bin=bin.replace(/(?:[\x00-\x7F]|[\xC2-\xDF][\x80-\xBF]|[\xE0-\xEF][\x80-\xBF]{2}|[\xF0-\xF7][\x80-\xBF]{3}|.){1,50}/g,function(bin){return decodeURIComponent(escape(bin))}); if(n%4)bin=bin.slice(0,n%4-4); return bin }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;\uHHHH エンコード／デコード&lt;br /&gt;
:JavaScript などで使用される \uHHHH 形式の変換を行います。※HHHH＝4桁の16進数&lt;br /&gt;
:例＞ &amp;lt;span style=&amp;quot;background:#bfdfff;&amp;quot;&amp;gt;Aわ𩸽&amp;lt;/span&amp;gt; ←→ &amp;lt;span style=&amp;quot;background:#bfdfff;&amp;quot;&amp;gt;\u0041\u308F\uD867\uDE3D&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;\\uHHHH エンコード&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2017/06/25&lt;br /&gt;
  return _.replace(/[^\n]/g,function(s){return &amp;quot;\\u&amp;quot;+(&amp;quot;000&amp;quot;+s.charCodeAt(0).toString(16).toUpperCase()).slice(-4)}) }]);&lt;br /&gt;
f.push([&amp;quot;\\uHHHH デコード&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2014/10/12&lt;br /&gt;
  return _.replace(/\\u([0-9A-Fa-f]{4})/g,function(_,n){return String.fromCharCode(Number(&amp;quot;0x&amp;quot;+n))}) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;\u4H \U8H エンコード／デコード&lt;br /&gt;
:Unicode で使用される \u4H および \U8H 形式の変換を行います。※4H, 8H＝4桁, 8桁の16進数&lt;br /&gt;
:例＞ &amp;lt;span style=&amp;quot;background:#bfdfff;&amp;quot;&amp;gt;Aわ𩸽&amp;lt;/span&amp;gt; ←→ &amp;lt;span style=&amp;quot;background:#bfdfff;&amp;quot;&amp;gt;\u0041\u308F\U00029E3D&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;\\u4H \\U8H エンコード&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2017/06/25&lt;br /&gt;
  return _.replace(/[^\n]+/g,function(s){var r=&amp;quot;&amp;quot;,u,v; for(var i=0;i&amp;lt;s.length;i++){u=s.charCodeAt(i); if(0xD800&amp;lt;=u&amp;amp;&amp;amp;u&amp;lt;=0xDBFF){v=s.charCodeAt(i+1); if(0xDC00&amp;lt;=v&amp;amp;&amp;amp;v&amp;lt;=0xDFFF){i++;u=0x10000+(u-0xD800&amp;lt;&amp;lt;10)+(v-0xDC00);r+=&amp;quot;\\U&amp;quot;+toHex(u,8);continue}} r+=&amp;quot;\\u&amp;quot;+toHex(u,4)} return r}); function toHex(n,d){return (&amp;quot;000&amp;quot;+n.toString(16).toUpperCase()).slice(-d)} }]);&lt;br /&gt;
f.push([&amp;quot;\\u4H \\U8H デコード&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2015/09/30&lt;br /&gt;
  return _.replace(/\\u([0-9A-Fa-f]{4})|\\U([0-9A-Fa-f]{8})/g,function(s,u4,U8){var n=Number(&amp;quot;0x&amp;quot;+(u4||U8)); return (n&amp;lt;=0xFFFF)?String.fromCharCode(n): (n&amp;lt;=0x10FFFF)?String.fromCharCode(n-0x10000&amp;gt;&amp;gt;10|0xD800,n&amp;amp;0x3FF|0xDC00): s}) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;\x{hex} エンコード／デコード&lt;br /&gt;
:Mery の正規表現 (鬼車/鬼雲) などで使用される \x{hex} 形式の変換を行います。※hex＝1～6桁の16進数&lt;br /&gt;
:例＞ &amp;lt;span style=&amp;quot;background:#bfdfff;&amp;quot;&amp;gt;Aわ𩸽&amp;lt;/span&amp;gt; ←→ &amp;lt;span style=&amp;quot;background:#bfdfff;&amp;quot;&amp;gt;\x{41}\x{308f}\x{29e3d}&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;\\x{hex} エンコード&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2017/06/25&lt;br /&gt;
  return _.replace(/[^\n]+/g,function(s){var r=&amp;quot;&amp;quot;,u,v; for(var i=0;i&amp;lt;s.length;i++){u=s.charCodeAt(i); if(0xD800&amp;lt;=u&amp;amp;&amp;amp;u&amp;lt;=0xDBFF){v=s.charCodeAt(i+1); if(0xDC00&amp;lt;=v&amp;amp;&amp;amp;v&amp;lt;=0xDFFF){i++;u=0x10000+(u-0xD800&amp;lt;&amp;lt;10)+(v-0xDC00)}} r+=(&amp;quot;\\x{&amp;quot;+u.toString(16)+&amp;quot;}&amp;quot;)} return r}) }]);&lt;br /&gt;
f.push([&amp;quot;\\x{hex} デコード&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2015/03/14&lt;br /&gt;
  return _.replace(/\\x\{([0-9A-Fa-f]{1,6})\}/g,function(s,n){n=Number(&amp;quot;0x&amp;quot;+n); return (n&amp;lt;=0xFFFF)?String.fromCharCode(n): (n&amp;lt;=0x10FFFF)?String.fromCharCode(n-0x10000&amp;gt;&amp;gt;10|0xD800,n&amp;amp;0x3FF|0xDC00): s}) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;&amp;amp;#dec; エンコード／デコード&lt;br /&gt;
:HTML などで使用される &amp;amp;#dec; 形式の変換を行います。※dec＝1～7桁の10進数&lt;br /&gt;
:例＞ &amp;lt;span style=&amp;quot;background:#bfdfff;&amp;quot;&amp;gt;Aわ𩸽&amp;lt;/span&amp;gt; ←→ &amp;lt;span style=&amp;quot;background:#bfdfff;&amp;quot;&amp;gt;&amp;amp;amp;#65;&amp;amp;amp;#12431;&amp;amp;amp;#171581;&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;&amp;amp;&amp;amp;#dec; エンコード&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2017/06/25&lt;br /&gt;
  return _.replace(/[^\n]+/g,function(s){var r=&amp;quot;&amp;quot;,u,v; for(var i=0;i&amp;lt;s.length;i++){u=s.charCodeAt(i); if(0xD800&amp;lt;=u&amp;amp;&amp;amp;u&amp;lt;=0xDBFF){v=s.charCodeAt(i+1); if(0xDC00&amp;lt;=v&amp;amp;&amp;amp;v&amp;lt;=0xDFFF){i++;u=0x10000+(u-0xD800&amp;lt;&amp;lt;10)+(v-0xDC00)}} r+=(&amp;quot;&amp;amp;#&amp;quot;+u+&amp;quot;;&amp;quot;)} return r}) }]);&lt;br /&gt;
f.push([&amp;quot;&amp;amp;&amp;amp;#dec; デコード&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2015/03/14&lt;br /&gt;
  return _.replace(/&amp;amp;#([0-9]{1,7});/g,function(s,n){n=Number(n); return (n&amp;lt;=0xFFFF)?String.fromCharCode(n): (n&amp;lt;=0x10FFFF)?String.fromCharCode(n-0x10000&amp;gt;&amp;gt;10|0xD800,n&amp;amp;0x3FF|0xDC00): s}) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;&amp;amp;#xHEX; エンコード／デコード&lt;br /&gt;
:HTML などで使用される &amp;amp;#xHEX; 形式の変換を行います。※HEX＝1～6桁の16進数&lt;br /&gt;
:例＞ &amp;lt;span style=&amp;quot;background:#bfdfff;&amp;quot;&amp;gt;Aわ𩸽&amp;lt;/span&amp;gt; ←→ &amp;lt;span style=&amp;quot;background:#bfdfff;&amp;quot;&amp;gt;&amp;amp;amp;#x41;&amp;amp;amp;#x308F;&amp;amp;amp;#x29E3D;&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;&amp;amp;&amp;amp;#xHEX; エンコード&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2017/06/25&lt;br /&gt;
  return _.replace(/[^\n]+/g,function(s){var r=&amp;quot;&amp;quot;,u,v; for(var i=0;i&amp;lt;s.length;i++){u=s.charCodeAt(i); if(0xD800&amp;lt;=u&amp;amp;&amp;amp;u&amp;lt;=0xDBFF){v=s.charCodeAt(i+1); if(0xDC00&amp;lt;=v&amp;amp;&amp;amp;v&amp;lt;=0xDFFF){i++;u=0x10000+(u-0xD800&amp;lt;&amp;lt;10)+(v-0xDC00)}} r+=(&amp;quot;&amp;amp;#x&amp;quot;+u.toString(16).toUpperCase()+&amp;quot;;&amp;quot;)} return r}) }]);&lt;br /&gt;
f.push([&amp;quot;&amp;amp;&amp;amp;#xHEX; デコード&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2017/06/25&lt;br /&gt;
  return _.replace(/&amp;amp;#[Xx]([0-9A-Fa-f]{1,6});/g,function(s,n){n=Number(&amp;quot;0x&amp;quot;+n); return (n&amp;lt;=0xFFFF)?String.fromCharCode(n): (n&amp;lt;=0x10FFFF)?String.fromCharCode(n-0x10000&amp;gt;&amp;gt;10|0xD800,n&amp;amp;0x3FF|0xDC00): s}) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==拡張コード用==&lt;br /&gt;
&lt;br /&gt;
;拡張コード テンプレート&lt;br /&gt;
:拡張コードの雛形を挿入します。コマンドを自作したい場合にご利用ください。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;拡張コード テンプレート&amp;quot;,function(f){ //2019/06/01&lt;br /&gt;
f.push([&amp;quot;コマンド&amp;quot;,&amp;quot;&amp;quot;,function(_,$){&lt;br /&gt;
  $.StartOfLine(); return [&#039;f.push([&amp;quot;コマンド&amp;quot;,&amp;quot;&amp;quot;,function(_,$){\n  &#039; , &#039; }]);\n&#039;] }]);&lt;br /&gt;
f.push([&amp;quot;コマンド s (選択必須)&amp;quot;,&amp;quot;&amp;quot;,function(_,$){&lt;br /&gt;
  $.StartOfLine(); return [&#039;f.push([&amp;quot;コマンド&amp;quot;,&amp;quot;s&amp;quot;,function(_,$){\n  return _.replace(&#039; , &#039;) }]);\n&#039;] }]);&lt;br /&gt;
f.push([&amp;quot;コマンド L (行選択)&amp;quot;,&amp;quot;&amp;quot;,function(_,$){&lt;br /&gt;
  $.StartOfLine(); return [&#039;f.push([&amp;quot;コマンド&amp;quot;,&amp;quot;L&amp;quot;,function(_,$){\n  return _.replace(&#039; , &#039;) }]);\n&#039;] }]);&lt;br /&gt;
f.push([&amp;quot;サブメニュー&amp;quot;,&amp;quot;L&amp;quot;,function(_){&lt;br /&gt;
  return [&#039;f.push([&amp;quot;&#039; , &#039;メニュー&#039; , &#039;&amp;quot;,function(f){\n&#039;+ _ +&#039;\n}]);&#039;] }]);&lt;br /&gt;
f.push([&amp;quot;セパレーター&amp;quot;,&amp;quot;&amp;quot;,function(_,$){&lt;br /&gt;
  $.StartOfLine(); return [&#039;f.push([&amp;quot;--------&amp;quot;]);\n&#039; , &#039;&#039;] }]);&lt;br /&gt;
}]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;replaceBatch 補助&lt;br /&gt;
:[[#replaceBatch メソッド|replaceBatch メソッド]]用の配列作成を補助するコマンド群です。&lt;br /&gt;
:※書式の解析精度は不完全です。検索/置換文字に &amp;lt;code&amp;gt;&amp;quot; &#039; , / \ ]&amp;lt;/code&amp;gt; を含む配列は誤変換する恐れがあります。&lt;br /&gt;
:※書式ミスは考慮していません。誤変換した場合は書式ミスの可能性も疑ってみてください。&lt;br /&gt;
&lt;br /&gt;
;交換 [&amp;quot;a&amp;quot;,&amp;quot;b&amp;quot;] → [&amp;quot;b&amp;quot;,&amp;quot;a&amp;quot;]&lt;br /&gt;
:配列の検索文字列と置換文字列を入れ替えます。正規表現は検索側のみ使用可なので交換しません（例では &amp;lt;code&amp;gt;■,□&amp;lt;/code&amp;gt; のペアが該当）。&lt;br /&gt;
:例＞ &amp;lt;code style=&amp;quot;background:#bfdfff;&amp;quot;&amp;gt;[&amp;quot;●&amp;quot;,&amp;quot;○&amp;quot;],[&#039;▲&#039;,&#039;△&#039;],[/■/g,&amp;quot;□&amp;quot;],[&amp;quot;◆&amp;quot;,&#039;◇&#039;]&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;[&amp;quot;○&amp;quot;,&amp;quot;●&amp;quot;],[&#039;△&#039;,&#039;▲&#039;],[/■/g,&amp;quot;□&amp;quot;],[&#039;◇&#039;,&amp;quot;◆&amp;quot;]&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&#039;交換 [&amp;quot;a&amp;quot;,&amp;quot;b&amp;quot;] → [&amp;quot;b&amp;quot;,&amp;quot;a&amp;quot;]&#039;,&amp;quot;s&amp;quot;,function(_){ //2014/05/31&lt;br /&gt;
  return _.replace(/\[(&amp;quot;[^\\&amp;quot;]*(?:\\.[^\\&amp;quot;]*)*&amp;quot;|&#039;[^\\&#039;]*(?:\\.[^\\&#039;]*)*&#039;),(&amp;quot;[^\\&amp;quot;]*(?:\\.[^\\&amp;quot;]*)*&amp;quot;|&#039;[^\\&#039;]*(?:\\.[^\\&#039;]*)*&#039;)\]/g,&amp;quot;[$2,$1]&amp;quot;) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;分割 [&amp;quot;a&amp;quot;,&amp;quot;b&amp;quot;] → &amp;quot;a&amp;quot; › &amp;quot;b&amp;quot;↵&lt;br /&gt;
;結合 &amp;quot;a&amp;quot; › &amp;quot;b&amp;quot;↵ → [&amp;quot;a&amp;quot;,&amp;quot;b&amp;quot;]&lt;br /&gt;
:配列と TSV 形式を変換します。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&#039;分割 [&amp;quot;a&amp;quot;,&amp;quot;b&amp;quot;] → &amp;quot;a&amp;quot; \u203A &amp;quot;b&amp;quot;\u21B5&#039;,&amp;quot;L&amp;quot;,function(_){ //2017/06/25&lt;br /&gt;
  return _.replace(/,?\[(&amp;quot;[^\\&amp;quot;]*(?:\\.[^\\&amp;quot;]*)*&amp;quot;|&#039;[^\\&#039;]*(?:\\.[^\\&#039;]*)*&#039;|\/.*?\/[gim]*),(&amp;quot;[^\\&amp;quot;]*(?:\\.[^\\&amp;quot;]*)*&amp;quot;|&#039;[^\\&#039;]*(?:\\.[^\\&#039;]*)*&#039;)\],?/g,&amp;quot;\n$1\t$2\n&amp;quot;).replace(/\n\n/g,&amp;quot;\n&amp;quot;) }]);&lt;br /&gt;
f.push([&#039;結合 &amp;quot;a&amp;quot; \u203A &amp;quot;b&amp;quot;\u21B5 → [&amp;quot;a&amp;quot;,&amp;quot;b&amp;quot;]&#039;,&amp;quot;L&amp;quot;,function(_){ //2015/03/14&lt;br /&gt;
  return _.replace(/\n?(((&amp;quot;.*&amp;quot;|&#039;.*&#039;|\/.*\/[gim]*)\t(&amp;quot;.*&amp;quot;|&#039;.*&#039;)\n*)+)/g,function(s,r){return r.replace(/(&amp;quot;.*&amp;quot;|&#039;.*&#039;|\/.*\/[gim]*)\t(&amp;quot;.*&amp;quot;|&#039;.*&#039;)\n*/g,&amp;quot;[$1,$2],&amp;quot;).replace(/,$/,&amp;quot;&amp;quot;)}) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=拡張コード：書式=&lt;br /&gt;
&lt;br /&gt;
==コマンド==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
f.push([&amp;quot;コマンド名&amp;quot;,&amp;quot;オプション&amp;quot;,function(引数){ 処理 }]);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
;オプション&lt;br /&gt;
:{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
| &amp;lt;code&amp;gt;s&amp;lt;/code&amp;gt; || 実行に範囲選択を要求 (require selection)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;c&amp;lt;/code&amp;gt; || 実行にクリップボードを要求 (require clipboard)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;L&amp;lt;/code&amp;gt; || 行選択してから処理 (select Line)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;O&amp;lt;/code&amp;gt; || 非選択時はすべて選択してから処理 (select OR all)&amp;lt;br&amp;gt;※実験的機能（変更・廃止の可能性あり）&lt;br /&gt;
|}&lt;br /&gt;
:複数指定する場合、空白で区切ります。順序は問いません。&amp;lt;br&amp;gt;※仕様上、&amp;lt;code&amp;gt;0-9 A-Z a-z _&amp;lt;/code&amp;gt; 以外の文字ならば区切りと判定されますが、空白を推奨します。&lt;br /&gt;
;引数&lt;br /&gt;
:第1引数に [[マクロリファレンス:Selection_インターフェイス#Text_プロパティ|Document.Selection.Text]] が、&amp;lt;br&amp;gt;第2引数に [[マクロリファレンス:Selection_インターフェイス|Document.Selection]] が渡されます。&lt;br /&gt;
;処理&lt;br /&gt;
:String (文字列) か Array (配列) を return すると、選択範囲を置換してカーソルを移動します。それ以外 (undefined など) の場合は、選択範囲に対し何もしません。&lt;br /&gt;
:なお、処理の途中で選択範囲が変化した場合、変化先で置換が行われます。&lt;br /&gt;
:{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 例 !! 動作&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;quot;abcd&amp;quot;&amp;lt;/code&amp;gt; || abcd に置換後、abcd を選択 = &amp;lt;code&amp;gt;[&amp;quot;&amp;quot;,&amp;quot;abcd&amp;quot;,&amp;quot;&amp;quot;]&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;[&amp;quot;ab&amp;quot;,&amp;quot;cd&amp;quot;]&amp;lt;/code&amp;gt; || abcd に置換後、ab と cd の間に移動&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;[&amp;quot;ab&amp;quot;,&amp;quot;cd&amp;quot;,&amp;quot;&amp;quot;]&amp;lt;/code&amp;gt; || abcd に置換後、cd を選択&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==サブメニュー==&lt;br /&gt;
サブメニューを設けます。サブメニュー内サブメニュー（階層化）も可能です。&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
f.push([&amp;quot;メニュー名&amp;quot;,function(f){&lt;br /&gt;
/* コマンド or サブメニュー or セパレーター */&lt;br /&gt;
}]);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==セパレーター==&lt;br /&gt;
セパレーター（区切り）を設けます。&amp;lt;br&amp;gt;※半角ハイフン &amp;lt;code&amp;gt;-&amp;lt;/code&amp;gt; は何個でも含められますが、他の文字は含められません。&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
f.push([&amp;quot;--------&amp;quot;]);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==replaceBatch メソッド==&lt;br /&gt;
&amp;lt;code&amp;gt;replace&amp;lt;/code&amp;gt; を連鎖させる記法（メソッドチェーン）の省略記法です。&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
f.push([&amp;quot;例 replaceBatch&amp;quot;,&amp;quot;s&amp;quot;,function(_){&lt;br /&gt;
  return _.replaceBatch([ [&amp;quot;ABC&amp;quot;,&amp;quot;DEF&amp;quot;],[&amp;quot;(1)&amp;quot;,&amp;quot;①&amp;quot;],[/GHI/gi,&amp;quot;JKL&amp;quot;] ]) }]);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
上記の処理は、下記と同じ処理になります。&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
f.push([&amp;quot;例 replace&amp;quot;,&amp;quot;s&amp;quot;,function(_){&lt;br /&gt;
  return _.replace(/ABC/g,&amp;quot;DEF&amp;quot;).replace(/\(1\)/g,&amp;quot;①&amp;quot;).replace(/GHI/gi,&amp;quot;JKL&amp;quot;) }]);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Masme</name></author>
	</entry>
	<entry>
		<id>https://www.haijin-boys.com/wiki/index.php?title=%E3%83%86%E3%82%AD%E3%82%B9%E3%83%88%E6%95%B4%E5%BD%A2&amp;diff=4894</id>
		<title>テキスト整形</title>
		<link rel="alternate" type="text/html" href="https://www.haijin-boys.com/wiki/index.php?title=%E3%83%86%E3%82%AD%E3%82%B9%E3%83%88%E6%95%B4%E5%BD%A2&amp;diff=4894"/>
		<updated>2019-12-21T13:26:35Z</updated>

		<summary type="html">&lt;p&gt;Masme: 更新履歴の書式を変更&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;float:right&amp;quot;&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ks 氏作のマクロ「&amp;lt;b&amp;gt;[[テキスト変換]]&amp;lt;/b&amp;gt;」の改造版です。&lt;br /&gt;
&lt;br /&gt;
;主な改造点&lt;br /&gt;
* &amp;lt;b&amp;gt;[[#拡張コード：書式|拡張コードの書式]]&amp;lt;/b&amp;gt;を変更。&lt;br /&gt;
** 簡易書式をベースに単純化。view フラグは削除。&lt;br /&gt;
** 「関数タイプ」は「オプション」に変更。&lt;br /&gt;
* 処理の戻り値により選択範囲を置換するか、再選択するかを制御できるようにした。&lt;br /&gt;
* 行選択してから処理する際、範囲終端の改行は範囲に含めないようにした（正規表現 &amp;lt;code&amp;gt;^ $&amp;lt;/code&amp;gt; の使い勝手を考え）。&lt;br /&gt;
* メソッド &amp;lt;code&amp;gt;&amp;lt;i&amp;gt;String&amp;lt;/i&amp;gt;.replaceBatch&amp;lt;/code&amp;gt; を追加。&lt;br /&gt;
* 範囲選択時に対象範囲を選ぶメニューを廃止（毎回選ぶのが面倒なため）。&lt;br /&gt;
;注意点&lt;br /&gt;
* &amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;表示行での処理には対応していません。&amp;lt;/b&amp;gt;&lt;br /&gt;
* マクロの仕様上、&amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;矩形選択での処理には原則対応していません。&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=お知らせ (2019/06/01)=&lt;br /&gt;
&amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;仕様変更によりモードは廃止されました。&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
詳しくは [[#更新履歴]] または [[利用者:Masme]] のページをご覧ください。&amp;lt;br&amp;gt;&lt;br /&gt;
旧仕様の利用者はお手数ですが基本コードおよび拡張コードの更新をお願いいたします。&lt;br /&gt;
&lt;br /&gt;
=スターターパック=&lt;br /&gt;
ダウンロード→ &amp;lt;b&amp;gt;[[メディア:テキスト整形.zip|テキスト整形.zip]]&amp;lt;/b&amp;gt; (2019/06/01)&lt;br /&gt;
&lt;br /&gt;
* 基本コードと拡張コード(★印の項目)をまとめて、すぐ使えるようにした入門用セットです。→ &amp;lt;b&amp;gt;[[:ファイル:テキスト整形.zip|収録コマンド一覧]]&amp;lt;/b&amp;gt;&lt;br /&gt;
* 拙作ですがアイコンファイル (テキスト整形.ico) を同梱してあります。&amp;lt;br&amp;gt;Mery 2.4.7 以降の場合、マクロ (テキスト整形.js) と同じフォルダに、&amp;lt;br&amp;gt;Mery 2.4.6 以前の場合、Mery.exe と同じフォルダに、&amp;lt;br&amp;gt;アイコンファイルを配置しておくとツールバーにアイコンが読み込まれます。&lt;br /&gt;
&lt;br /&gt;
=更新履歴=&lt;br /&gt;
&amp;lt;code style=&amp;quot;background:#fe0;&amp;quot;&amp;gt;//2019/06/01&amp;lt;/code&amp;gt; でページ内検索すると、その日付で更新されたコマンドを検索できます。&lt;br /&gt;
&amp;lt;div style=&amp;quot;height:40em; overflow:auto; border:1px dashed #999;&amp;quot;&amp;gt;&lt;br /&gt;
; 2019/06/01&lt;br /&gt;
* &amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;仕様変更 - 戻り値により選択範囲の置換・再選択を制御するようにした。&amp;lt;/b&amp;gt;&lt;br /&gt;
* &amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;仕様変更 - [[#コマンド|コマンドの書式]]を変更。&amp;lt;/b&amp;gt;&lt;br /&gt;
** マクロ「[[テキスト変換]]」の第2引数を復活。モード F は第2引数利用に変更。&lt;br /&gt;
** モードを廃止し、オプションに変更。モード RS はオプション L に変更。&lt;br /&gt;
** 実行に範囲選択/クリップボードを要求するコマンドにオプション s/c を設定。&lt;br /&gt;
* &amp;lt;b&amp;gt;仕様変更 - メニュー作成処理を変更。&amp;lt;/b&amp;gt;falsy な要素があるとループ終了。&lt;br /&gt;
* &amp;lt;b&amp;gt;コード整理 - 第2引数追加に伴い、引数名を a → _ と $ に変更。&amp;lt;/b&amp;gt;&lt;br /&gt;
* &amp;lt;b&amp;gt;コード整理 - 不使用の引数は極力省略するようにした。&amp;lt;/b&amp;gt;&lt;br /&gt;
* 改名 - ★行頭／行末に貼り付け ¦ 行頭／行末から数文字削除&lt;br /&gt;
*: 「各行～」を除去。&lt;br /&gt;
* 改名 - ★行頭／行末に挿入&lt;br /&gt;
*: 「各行～」を除去。「文字列付加」→「挿入」に変更。&lt;br /&gt;
* 改名 - 各行先頭／末尾に挿入 ¦ 行頭に連番挿入 ¦ 行末に&amp;amp;lt;br&amp;amp;gt;を挿入 ¦ ★行頭 // を挿入/削除&lt;br /&gt;
*: 「（文字列）付加」→「挿入」に変更。&lt;br /&gt;
* 変更 - 複製貼り付け ¦ ★行頭／行末に挿入 ¦ 各行先頭／末尾に挿入 ¦ ★入力文字列を含む／含まない行を削除 ¦ 正規表現に一致する／しない行を削除 ¦ 行頭／行末から数文字削除&lt;br /&gt;
*: 入力判定を中止条件 → 実行条件に変更。&lt;br /&gt;
*: 戻り値の仕様を利用し、中止時は Quit() → 戻り値なし (undefined) に変更。&lt;br /&gt;
* 修正 - 複製貼り付け ¦ 行頭／行末から数文字削除&lt;br /&gt;
*: キャンセルまたは数字以外を入力した場合、正常に中止できていないのを修正（NaN&amp;lt;1 は false）。&lt;br /&gt;
* 変更 - ★数値参照を文字に変換&lt;br /&gt;
*: 正規表現を &amp;lt;code&amp;gt;/&amp;amp;#([0-9]{1,7});|&amp;amp;#[Xx]([0-9A-Fa-f]{1,6});/g&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;/&amp;amp;#(?:([0-9]{1,7})|x([0-9a-f]{1,6}));/gi&amp;lt;/code&amp;gt; に短縮。&lt;br /&gt;
* 変更 - 挿入 Confirm(|)&lt;br /&gt;
*: 戻り値の仕様を利用したものに変更。&lt;br /&gt;
* 変更 - Base64エンコード／デコード&lt;br /&gt;
*: 引数名を txt → _ に統一。変数名を変更。&lt;br /&gt;
* 追加 - ★このマクロを編集 ¦ 連番を出力 ¦ 文字数カウント(空白は除く) ¦ ステータスバーの表示をコピー ¦ 行を文字数順並べ ¦ 数行毎に／数行一組で逆順並べ ¦ 空行毎に／空行一組で逆順並べ ¦ 指定見出しで逆順並べ&lt;br /&gt;
* 変更 - 総字行数カウント&lt;br /&gt;
*: GetLines() → GetLines(meGetLineView) に変更（引数を明示）。&lt;br /&gt;
*: 符号点数＆論理行数版を削除。&lt;br /&gt;
* 変更 - 選択範囲を eval で評価 ¦ 選択文字列を検索 ¦ 選択文字列をすべて削除&lt;br /&gt;
*: オプション s の設定に伴い、選択判定を削除。&lt;br /&gt;
* 変更 - 拡張コード テンプレート&lt;br /&gt;
*: 仕様変更に伴う改訂。&lt;br /&gt;
*: サブメニューは、挿入後にメニュー名を選択するようにした。&lt;br /&gt;
; 2019/05/01&lt;br /&gt;
* 削除 - 大文字／小文字に変換 ¦ 半角／全角に変換&lt;br /&gt;
*: Mery 側のメソッドを使う一例として掲載していたが、結構かと判断。&lt;br /&gt;
* 削除 - 行を昇順／降順並べ(UTF-16)&lt;br /&gt;
* 改名 - \x{hex} エンコード／デコード&lt;br /&gt;
*: コマンド名のエスケープミスを修正。&lt;br /&gt;
* 改名 - 拡張コード テンプレート&lt;br /&gt;
*: 「コマンド～」→「拡張コード～」に変更。&lt;br /&gt;
; 2018/01/15&lt;br /&gt;
* 削除 - ☆インデント(半角空白2個)&lt;br /&gt;
* スターター追加 - ★行を昇順／降順並べ(Unicode) ¦ ★行を逆順並べ&lt;br /&gt;
* 追加 - CJK互換漢字を検索&lt;br /&gt;
* 修正 - Base64デコード&lt;br /&gt;
*: 最大50字ずつ処理する箇所で、異常なデータ 0xF8～FF をスルーしていたのを改修。&lt;br /&gt;
* 修正 - 挿入 Confirm(|)&lt;br /&gt;
*: 折り返しが発生した場合、カーソル位置がズレる不具合を修正（カーソル移動を CharLeft(false,移動量) → SetActivePos(GetActivePos()-移動量) に変更）。&lt;br /&gt;
* 変更 - ★重複行を単一化 ¦ 重複する／しない行を抽出&lt;br /&gt;
*: &amp;lt;code&amp;gt;for(var i=0,n=a.length;i&amp;lt;n;i++)&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;for(var i=0;i&amp;lt;a.length;i++)&amp;lt;/code&amp;gt; に単純化。&lt;br /&gt;
; 2017/06/25&lt;br /&gt;
* &amp;lt;b&amp;gt;仕様変更 - アイコンファイルに24x24・32x32・48x48の画像を追加。&amp;lt;/b&amp;gt;&lt;br /&gt;
* &amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;仕様変更 - &amp;lt;samp&amp;gt;replaceBatch&amp;lt;/samp&amp;gt; メソッドで配列先頭/末尾のコンマを許容するようにした。&amp;lt;/b&amp;gt;&lt;br /&gt;
*: 例＞ &amp;lt;code&amp;gt;&amp;lt;i&amp;gt;String&amp;lt;/i&amp;gt;.replaceBatch([ &amp;lt;b style=&amp;quot;background:#fcc;&amp;quot;&amp;gt;,&amp;lt;/b&amp;gt;[省略],[省略],[省略]&amp;lt;b style=&amp;quot;background:#fcc;&amp;quot;&amp;gt;,&amp;lt;/b&amp;gt; ])&amp;lt;/code&amp;gt;&lt;br /&gt;
* コード整理 - 基本コードを改訂。&lt;br /&gt;
* 追加 - 行を昇順／降順並べ(Unicode) ¦ ★！？を半角/全角に整形 ¦ 空白行の空白を除去 ¦ 行頭／行末から数文字削除 ¦ 重複する／しない行を抽出 ¦ 表外漢字→代替&lt;br /&gt;
* 改名 - 行を昇順／降順並べ(UTF-16) ¦ 行を逆順並べ ¦ 文字を逆順並べ&lt;br /&gt;
*: 「～の並べ替え(○順)」→「～を○順並べ」に変更。&lt;br /&gt;
*: 従来の「行を昇順／降順並べ(Unicode)」は (UTF-16) に訂正。&lt;br /&gt;
* 改名 - ★重複行を単一化 ¦ ★連続する重複行を単一化&lt;br /&gt;
*: 「～を削除」→「～を単一化」に変更。&lt;br /&gt;
* 修正 - ★重複行を単一化&lt;br /&gt;
*: 下記の7行を削除してしまう不具合を修正（重複の判定は Object.prototype.hasOwnProperty.call() で行うようにした）。&lt;br /&gt;
*: 「constructor」「hasOwnProperty」「isPrototypeOf」「propertyIsEnumerable」「toLocaleString」「toString」「valueOf」&lt;br /&gt;
* 変更 - ★全角ダッシュ(――)に整形&lt;br /&gt;
*: 罫線(横) ── を変換対象から除外。&lt;br /&gt;
* 変更 - ★数値参照を文字に変換 ¦ ★16→10進数 ¦ &amp;amp;#xHEX; デコード&lt;br /&gt;
*: 0Xff, &amp;amp;amp;#Xff; など X が大文字の場合に対応。&lt;br /&gt;
* 変更 - 文字を逆順並べ ¦ 文字をシャッフル ¦ \uHHHH, \u4H \U8H, \x{hex}, &amp;amp;#dec;, &amp;amp;#xHEX; エンコード&lt;br /&gt;
*: 正規表現を . → [^\n] に統一。&lt;br /&gt;
* 変更 - 文字を逆順並べ ¦ 文字をシャッフル&lt;br /&gt;
*: UAX #29 に一部対応し、\p{Zl}, {Zp}, {Cc}, U+00AD, FEFF は結合不可にした。&lt;br /&gt;
* 変更 - 選択文字列を検索&lt;br /&gt;
*: カーソル位置・スクロール位置を移動しないようにした。&lt;br /&gt;
* 変更 - 選択文字列を検索 ¦ 選択文字列をすべて削除 ¦ &amp;lt;samp&amp;gt;replaceBatch&amp;lt;/samp&amp;gt; メソッド&lt;br /&gt;
*: 特殊文字のエスケープ処理を &amp;lt;code&amp;gt;/([$()*+.?[\\\]^{|}])/g,&amp;quot;\\$1&amp;quot;&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;/[$()*+.?\[\\\]^{|}]/g,&amp;quot;\\$&amp;amp;&amp;quot;&amp;lt;/code&amp;gt; に統一。&lt;br /&gt;
* 変更 - 拡張コード テンプレート（分割）&lt;br /&gt;
*: 配列先頭のコンマの仕様に対応（末尾は実質対応済）。&lt;br /&gt;
; 2017/05/28&lt;br /&gt;
* 追加 - 結合文字列を検索&lt;br /&gt;
* 修正 - CP932依存文字を検索&lt;br /&gt;
*: Wiki が &amp;amp;#xFA19; → 神 などの正規化(NFC)を行う影響で、漢字22字が意図どおりに検索されないミスを修正。&lt;br /&gt;
* 変更 - ASCII文字, 半角カナ, 全角英数, CJK漢字, ひらがな, カタカナを単語検索&lt;br /&gt;
*: 変数を使用せず、正規表現 \g&amp;lt;名前&amp;gt; を使用する形式に統一。&lt;br /&gt;
; 2015/12/26&lt;br /&gt;
* &amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;仕様変更 - アイコンの指定先を &amp;quot;My Macros\テキスト整形.ico&amp;quot; → &amp;quot;テキスト整形.ico&amp;quot; に変更。&amp;lt;/b&amp;gt;&lt;br /&gt;
* 変更 - マクロフォルダを開く&lt;br /&gt;
*: 「My Macros フォルダを開く」→「マクロフォルダを開く」に変更。&lt;br /&gt;
*: 「テキスト整形」マクロがあるフォルダを開くようにした（Mery 2.4.7 での Macros フォルダ改名に対処）。&lt;br /&gt;
; 2015/09/30&lt;br /&gt;
* 追加 - CP932依存文字を検索 ¦ サロゲートペアを検索 ¦ 行頭に連番挿入 (#) ¦ 行頭に連番挿入 (#/Z) ¦ 行頭に連番挿入 (0#) ¦ \u4H \U8H エンコード／デコード&lt;br /&gt;
* 修正 - ひらがなを単語検索 ¦ カタカナを単語検索&lt;br /&gt;
*: 選択範囲が記号の前後で途切れる問題に対処（記号2連続まで対応）。&lt;br /&gt;
* 変更 - 青空文庫 ルビを除去&lt;br /&gt;
*: 正規表現を [^《]+ → [^《\n]+ に変更し、改行を跨がないようにした。&lt;br /&gt;
* 変更 - ★HTMLタグを除去&lt;br /&gt;
*: 正規表現を .*? → [^&amp;lt;i&amp;gt;文字&amp;lt;/i&amp;gt;]* に変更し、改行を跨ぐようにした。&lt;br /&gt;
* 変更 - 文字を逆順並べ ¦ 文字をシャッフル&lt;br /&gt;
*: 処理方法を split() → match() に変更。対応文字に結合文字 (U+1AB0～FF, 1DC0～FF, 20D0～FF, FE20～F)、制御文字 (U+200C～D)、絵文字の国旗 (U+1F1E6～FF)、肌色指定 (U+1F3FB～F) を追加。&lt;br /&gt;
* 改名 - \uHHHH, \x{hex}, &amp;amp;#dec;, &amp;amp;#xHEX; エンコード／デコード&lt;br /&gt;
*: 「Unicode 文字 → ○○」→「○○ エンコード」に変更。&lt;br /&gt;
*: 「Unicode ○○ → 文字」→「○○ デコード」に変更。&lt;br /&gt;
; 2015/03/26&lt;br /&gt;
* 変更 - CJK漢字を単語検索&lt;br /&gt;
*: 異体字セレクタを考慮するようにした（ただし組合せが適正かは考慮しえない）。&lt;br /&gt;
* 変更 - 複製貼り付け&lt;br /&gt;
*: 処理中止の条件を 非数字(NaN) or 1 未満 → クリップボードがカラ or 1 未満 に変更。&lt;br /&gt;
; 2015/03/14&lt;br /&gt;
* &amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;仕様変更 - モード R/RS 実行後、処理した範囲を選択し直すようにした。&amp;lt;/b&amp;gt;&lt;br /&gt;
* &amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;仕様変更 - モード RM を廃止。&amp;lt;/b&amp;gt;既存コマンドはモード RS に移行。&lt;br /&gt;
*: ★行頭 // を挿入/削除 ¦ ★インデント(半角空白2個) ¦ ★空白行を削除 ¦ ★行頭／行末に貼り付け ¦ ★行頭／行末に挿入 ¦ ★入力文字列を含む／含まない行を削除 ¦ 正規表現に一致する／しない行を削除&lt;br /&gt;
* &amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;仕様変更 - モード CR を廃止し、&amp;lt;code&amp;gt;&amp;lt;i&amp;gt;String&amp;lt;/i&amp;gt;.replaceBatch&amp;lt;/code&amp;gt; メソッドを追加。&amp;lt;/b&amp;gt;既存コマンドは &amp;lt;samp&amp;gt;replaceBatch&amp;lt;/samp&amp;gt; メソッド利用に移行。&lt;br /&gt;
*: ★連続する！？を整形 ¦ ★実体参照 &amp;amp;&amp;quot;&amp;lt;&amp;gt; → &amp;amp;xxx; ¦ ★実体参照 &amp;amp;xxx; → ␣&amp;gt;&amp;lt;&amp;quot;&amp;amp; ¦ ★半角カナ→全角 ¦ ★全角カナ→半角 ¦ 標準変換&lt;br /&gt;
* &amp;lt;b&amp;gt;コード整理 - コマンド各々に更新年月日を付けるようにした。&amp;lt;/b&amp;gt;&lt;br /&gt;
* スターター除外 - ☆検索強調をすべて解除&lt;br /&gt;
* 削除 - ☆全角英数を検索 ¦ ☆半角カナを検索 ¦ ☆CJK漢字を検索&lt;br /&gt;
* 追加 - ASCII文字を単語検索 ¦ 半角カナを単語検索 ¦ 全角英数を単語検索 ¦ CJK漢字を単語検索 ¦ ひらがなを単語検索 ¦ カタカナを単語検索 ¦ 検索結果カウント ¦ 総字行数カウント&lt;br /&gt;
* 変更 - 編集中のファイルのパスをコピー ¦ 編集中の全ファイルのパスをコピー&lt;br /&gt;
*: パスが存在しない場合の名前を、無題 → &amp;lt;無題&amp;gt; に変更。&lt;br /&gt;
* 変更 - ★数値参照を文字に変換 ¦ \x{hex}, &amp;amp;#dec;, &amp;amp;#xHEX; デコード&lt;br /&gt;
*: サロゲートペアの計算を + → | に変更し、不要な括弧を除去（演算子の優先順が + - → &amp;gt;&amp;gt; → &amp;amp; → | である事による）。&lt;br /&gt;
* 変更 - Base64エンコード／デコード&lt;br /&gt;
*: 不要な括弧を除去（同上、演算子の優先順による）。&lt;br /&gt;
* 変更 - 拡張コード テンプレート&lt;br /&gt;
*: 仕様変更に伴う改訂。&lt;br /&gt;
*: コマンドおよびセパレーターは、表示行頭に挿入するようにした。&lt;br /&gt;
; 2015/02/14&lt;br /&gt;
* &amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;仕様修正 - モード RS/RM で、矩形選択（始点or終点が左下かつ論理行頭）時、下端の行が範囲から漏れる不具合を修正。&amp;lt;/b&amp;gt;&lt;br /&gt;
* &amp;lt;b&amp;gt;コード整理 - 文字入力など追加操作を求めるコマンドは、名称末尾に目印 ... を付けた。&amp;lt;/b&amp;gt;&lt;br /&gt;
*: 複製貼り付け ¦ ★行頭／行末に挿入 ¦ 各行先頭／末尾に挿入 ¦ ★入力文字列を含む／含まない行を削除 ¦ 正規表現に一致する／しない行を削除&lt;br /&gt;
* 削除 - 丸数字 ⑳ → (20) ¦ 丸数字 (20) → ⑳&lt;br /&gt;
* 追加 - 行末に&amp;amp;lt;br&amp;amp;gt;を挿入 ¦ &amp;amp;lt;br&amp;amp;gt;を改行に変換 ¦ ★行頭／行末の空白を除去 ¦ 空白行を減量 ¦ 重複行を単一化(空白行は除く) ¦ ★連続する重複行を単一化 ¦ 文字のシャッフル&lt;br /&gt;
* 修正 - 各行先頭／末尾に挿入&lt;br /&gt;
*: 正規表現が意味的に不適切だったのを修正。&lt;br /&gt;
* 変更 - 空白行を圧縮&lt;br /&gt;
*: モード R → RS に。空白行内の空白を除去してから改行を処理するように変更。&lt;br /&gt;
* 変更 - 文字を逆順並べ&lt;br /&gt;
*: サロゲートペアの対処方法を変更。結合文字の一部 (U+0300～6F, 3099～A) および異体字セレクタに対応した。&lt;br /&gt;
* 変更 - 2進接頭辞換算&lt;br /&gt;
*: 正規表現を &amp;lt;code&amp;gt;[0-9]+(,?[0-9]{3})+(\.[0-9]+)?&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;[0-9]+(,?[0-9]{3})+&amp;lt;/code&amp;gt; に変更（小数は非対応とした）。&lt;br /&gt;
* 変更 - Base64デコード&lt;br /&gt;
*: JScript 5.x の decodeURIComponent() は字数が多すぎると能率が悪くなるようなので、最大50字ずつ処理するようにした（高速化）。&lt;br /&gt;
; 2014/10/12&lt;br /&gt;
* スターター除外 - ☆正規表現に一致する／しない行を削除&lt;br /&gt;
*: Mery (鬼車) と JScript (ECMAScript) では正規表現の仕様が異なり、意図しない結果を招く怖れがあるため。&lt;br /&gt;
* スターター追加 - ★数値参照 &amp;amp;#dec; に変換 ¦ ★数値参照 &amp;amp;#xHEX; に変換&lt;br /&gt;
* 追加 - ★数値参照を文字に変換 ¦ 行を逆順並べ ¦ 行をシャッフル ¦ &amp;amp;#xHEX; エンコード／デコード&lt;br /&gt;
* 修正 - 選択文字列を検索&lt;br /&gt;
*: 引数不一致により動作しないミスを修正。&lt;br /&gt;
* 修正 - 編集中の全ファイルのパスをコピー ¦ ★検索強調をすべて解除&lt;br /&gt;
*: 対象範囲を 同ウィンドウ内の全文書 → 全ウィンドウの全文書 に改修。&lt;br /&gt;
* 変更 - 複製貼り付け&lt;br /&gt;
*: 処理方法を for → while に変更。処理中止の条件を 未入力 → 非数字(NaN) or 1 未満に変更。&lt;br /&gt;
* 変更 - \x{hex}, &amp;amp;#dec; エンコード&lt;br /&gt;
*: 処理方法を 配列連結 join(&amp;quot;&amp;quot;) → 文字列連結 += に変更。&lt;br /&gt;
* 変更 - \x{hex}, &amp;amp;#dec; デコード&lt;br /&gt;
*: 下位サロゲートの計算を (n-0x10000&amp;amp;0x3FF) → (n&amp;amp;0x3FF) に短縮。&lt;br /&gt;
; 2014/07/27&lt;br /&gt;
* 修正 - Base64デコード&lt;br /&gt;
*: 終端の余分な [NUL] を除去する処理が手抜きだったのを修正。&lt;br /&gt;
; 2014/05/31&lt;br /&gt;
* 削除 - Base64エンコード(Unicode)&lt;br /&gt;
*: Mery の「Base64デコード」機能と同じ方式の Base64エンコード(UTF-8) に差し替え。&lt;br /&gt;
* 追加 - Base64エンコード／デコード(UTF-8)&lt;br /&gt;
* 変更 - ★数値を3桁,区切りに&lt;br /&gt;
*: 数字列を抽出して処理するように変更（高速化）。&lt;br /&gt;
* 変更 - ★数値を3桁,区切りに ¦ 丸数字 (20) → ⑳ ¦ ★10→16進数 ¦ 2進接頭辞換算&lt;br /&gt;
*: 正規表現を \d → [0-9] に統一。&lt;br /&gt;
* 修正 - 拡張コード テンプレート（モード CR 交換/分割）&lt;br /&gt;
*: エスケープ文字 \ をより正確に判定できる正規表現に改修。&lt;br /&gt;
; 2014/05/24&lt;br /&gt;
* 修正 - 各行末尾に挿入&lt;br /&gt;
*: 選択範囲の次行先頭にも挿入してしまう問題に対処。&lt;br /&gt;
* 変更 - 複製貼り付け&lt;br /&gt;
*: クリップボードの内容を変数に格納しておくように変更（高速化）。&lt;br /&gt;
* 変更 - 複製貼り付け ¦ 各行先頭／末尾に挿入&lt;br /&gt;
*: Prompt() 関連の処理を単純化（モード RM 以外では冗長だった）。&lt;br /&gt;
; 2014/05/22&lt;br /&gt;
* 追加 - 2進接頭辞換算&lt;br /&gt;
* 変更 - \x{hex}, &amp;amp;#dec; デコード&lt;br /&gt;
*: サロゲートペアの String.fromCharCode() の引数を複数指定に改修、ビット演算に一部変更。&lt;br /&gt;
; 2014/05/16&lt;br /&gt;
* 変更 - \x{hex}, &amp;amp;#dec; エンコード&lt;br /&gt;
*: 処理方法を replace(for ループ) に統一。&lt;br /&gt;
; 2014/04/27&lt;br /&gt;
* 追加 - &amp;amp;#dec; エンコード／デコード&lt;br /&gt;
; 2014/03/14&lt;br /&gt;
* 追加 - 青空文庫 ルビを除去 ¦ 青空文庫 注記を除去&lt;br /&gt;
; 2014/03/08&lt;br /&gt;
* 追加 - 選択文字列を検索 ¦ 選択文字列をすべて削除&lt;br /&gt;
* 変更 - ★全角英数を検索 ¦ ★半角カナを検索 ¦ ★CJK漢字を検索&lt;br /&gt;
*: 検索方向を 前 → 次 に変更。念の為「大文字と小文字を区別」フラグを追加。&lt;br /&gt;
; 2014/03/01&lt;br /&gt;
* 追加 - ★連続する！？を整形 ¦ ★全角ダッシュ(――)に整形&lt;br /&gt;
* 変更 - ★括弧前の句読点を除去&lt;br /&gt;
*: 全角コンマ ， /全角ピリオド ． を除去対象に追加。&lt;br /&gt;
* 変更 - ★三点リーダー(……)に整形&lt;br /&gt;
*: 全角コンマ ， /全角ピリオド ． /半角中黒 ･ /三点リーダー … /二点リーダー ‥ を変換対象に追加。&lt;br /&gt;
* 変更 - マクロフォルダを開く&lt;br /&gt;
*: 処理方法を WScript.Shell.Run(&amp;quot;explorer&amp;quot;) → Shell.Application.Explore() に変更。&lt;br /&gt;
; 2014/02/22&lt;br /&gt;
* 追加 - 丸数字 ⑳ → (20) ¦ 丸数字 (20) → ⑳&lt;br /&gt;
* 変更 - 文字を逆順並べ ¦ \uHHHH, \x{hex} エンコード&lt;br /&gt;
*: 処理方法を for ループ → replace() に変更（字数削減）。&lt;br /&gt;
* 変更 - 拡張コード テンプレート&lt;br /&gt;
*: モード CR 作成補助コマンドを追加。モード CR テンプレートを変更。&lt;br /&gt;
; 2014/02/17&lt;br /&gt;
* 修正 - ★行頭／行末に貼り付け&lt;br /&gt;
*: クリップボード終端の改行文字を除去する正規表現を修正。\r\n|\r|\n$ → (\r\n|\r|\n)$&lt;br /&gt;
; 2014/02/16&lt;br /&gt;
* &amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;仕様修正 - モード CR で、正規表現の特殊文字があると誤動作する不具合を修正。&amp;lt;/b&amp;gt;&lt;br /&gt;
* &amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;仕様変更 - モード CR で、正規表現 (JScript) による検索置換に対応。&amp;lt;/b&amp;gt;&lt;br /&gt;
* コード整理 - コメントアウトしていた基本コードを削除。&lt;br /&gt;
* コード整理 - 下記の6カテゴリを3カテゴリに統合。コマンドの名称や配置を見直した。&lt;br /&gt;
*: (空白の追加 + 各行に追加) (空白の削除 + 行の削除) (数値の変換 + 文字種変換)&lt;br /&gt;
* スターター除外 - ☆標準変換&lt;br /&gt;
* 追加 - 複製貼り付け ¦ 文字を逆順並べ ¦ ★半角カナ→全角 ¦ ★全角カナ→半角&lt;br /&gt;
* 変更 - ★行頭／行末に貼り付け&lt;br /&gt;
*: クリップボード終端の改行文字は除去するようにした（行切り取り・行コピーとの相性を考え）。&lt;br /&gt;
* 変更 - 拡張コード テンプレート&lt;br /&gt;
*: モード CR テンプレートを刷新。&lt;br /&gt;
; 2014/02/10&lt;br /&gt;
* スターター除外 - ☆空白行を圧縮&lt;br /&gt;
* 追加 - ★空白行を削除 ¦ \uHHHH デコード ¦ \x{hex} エンコード／デコード&lt;br /&gt;
* 変更 - 挿入 Confirm(|)&lt;br /&gt;
*: 接尾辞の長さ(s.length)でカーソル移動量を決めるようにした。&lt;br /&gt;
; 2014/02/01&lt;br /&gt;
* 追加 - \uHHHH エンコード&lt;br /&gt;
* 変更 - ★全角かな→カナ ¦ ★全角カナ→かな&lt;br /&gt;
*: 踊り字（繰り返し記号） ゝゞヽヾ を変換対象に追加。&lt;br /&gt;
; 2014/01/24&lt;br /&gt;
* 追加 - ★半角/全角の間を空ける ¦ ★半角英数/全角の間を空ける&lt;br /&gt;
* 変更 - ★全角カナ→かな&lt;br /&gt;
*: ヴヵヶ は対象外とした（Shift_JIS では保存できない文字のため）。&lt;br /&gt;
; 2014/01/12&lt;br /&gt;
* &amp;lt;b&amp;gt;仕様変更 - スターターパックにアイコンファイルを同梱。&amp;lt;/b&amp;gt;&lt;br /&gt;
* 修正 - 編集中のファイルのパスをコピー ¦ 編集中の全ファイルのパスをコピー&lt;br /&gt;
*: 改行を LF → CR+LF に変更し、メモ帳でも正しく改行されるようにした。&lt;br /&gt;
* 修正 - ★数値を3桁,区切りに&lt;br /&gt;
*: 小数点以下（ピリオド以降）は桁区切りしないようにした。&lt;br /&gt;
; 2014/01/08&lt;br /&gt;
* &amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;仕様変更 - コマンド実行時、スクロール位置を記憶・復元しないように（コメントアウト）した。&amp;lt;/b&amp;gt;&lt;br /&gt;
*: 検索系コマンドと相性が悪く、Mery の検索機能と挙動が合っていないため。&lt;br /&gt;
* スターター追加 - ★CJK漢字を検索 ¦ ★検索強調をすべて解除&lt;br /&gt;
* 追加 - ★全角英数を検索 ¦ ★半角カナを検索&lt;br /&gt;
* 修正 - ★16→10進数&lt;br /&gt;
*: 16進数に使用しない英字 G～Z を変換対象に含めていたミスを修正。&lt;br /&gt;
; 2013/12/30&lt;br /&gt;
* 追加 - 挿入 Confirm(|) ¦ ★数値を3桁,区切りに ¦ ★10→16進数 ¦ ★16→10進数&lt;br /&gt;
* 修正 - My Macros フォルダを開く (現「マクロフォルダを開く」)&lt;br /&gt;
*: 「テキスト整形」マクロのあるフォルダではなく Mery.exe 直下の My Macros フォルダを開くようにした。&lt;br /&gt;
; 2013/09/15&lt;br /&gt;
* 初版公開。&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=基本コード=&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot; style=&amp;quot;height:35em; overflow:auto;&amp;quot;&amp;gt;&lt;br /&gt;
//■テキスト整形&lt;br /&gt;
//　2013/09/15-2019/06/01&lt;br /&gt;
&lt;br /&gt;
//■拡張コード：リスト&lt;br /&gt;
var f = [];&lt;br /&gt;
// ----------------- ↓ここより下に拡張コードを追加&lt;br /&gt;
&lt;br /&gt;
// ----------------- ↑ここより上に拡張コードを追加&lt;br /&gt;
/*■拡張コード：書式&lt;br /&gt;
//▼コマンド&lt;br /&gt;
f.push([&amp;quot;コマンド名&amp;quot;,&amp;quot;オプション&amp;quot;,function(引数){ 処理 }]);&lt;br /&gt;
//▽オプション&lt;br /&gt;
  s : 実行に範囲選択を要求 (require selection)&lt;br /&gt;
  c : 実行にクリップボードを要求 (require clipboard)&lt;br /&gt;
  L : 行選択してから処理 (select Line)&lt;br /&gt;
  O : 非選択時はすべて選択してから処理 (select OR all) ※実験的&lt;br /&gt;
//▽引数(arguments)&lt;br /&gt;
  第1引数 = Document.Selection.Text&lt;br /&gt;
  第2引数 = Document.Selection&lt;br /&gt;
//▽処理の戻り値(return value)&lt;br /&gt;
  String/Array以外 : 選択範囲に対し何もしない&lt;br /&gt;
  &amp;quot;abcd&amp;quot;           : abcd に置換後、abcd を選択&lt;br /&gt;
  [&amp;quot;ab&amp;quot;,&amp;quot;cd&amp;quot;]      : abcd に置換後、ab と cd の間に移動&lt;br /&gt;
  [&amp;quot;ab&amp;quot;,&amp;quot;cd&amp;quot;,&amp;quot;&amp;quot;]   : abcd に置換後、cd を選択&lt;br /&gt;
//▼サブメニュー&lt;br /&gt;
f.push([&amp;quot;メニュー名&amp;quot;,function(f){ コマンドなど }]);&lt;br /&gt;
//▼セパレーター&lt;br /&gt;
f.push([&amp;quot;--------&amp;quot;]);&lt;br /&gt;
// ----------------- */&lt;br /&gt;
&lt;br /&gt;
//■メソッド：連続置換&lt;br /&gt;
//&amp;quot;string&amp;quot;.replaceBatch([ [検索1,置換1],[検索2,置換2],… ]);&lt;br /&gt;
String.prototype.replaceBatch = function(a){ //▲引数の型はチェックしてない&lt;br /&gt;
  var _this=this, i=0, n=a.length;&lt;br /&gt;
  if (!a[0]) i++;&lt;br /&gt;
  if (!a[n-1]) n--;&lt;br /&gt;
  for (; i&amp;lt;n; i++) {&lt;br /&gt;
    if (typeof a[i][0]===&amp;quot;string&amp;quot;) //◆特殊文字をエスケープし、&amp;quot;g&amp;quot;フラグを付加&lt;br /&gt;
      a[i][0] = new RegExp(a[i][0].replace(/[$()*+.?\[\\\]^{|}]/g,&amp;quot;\\$&amp;amp;&amp;quot;),&amp;quot;g&amp;quot;);&lt;br /&gt;
    _this = _this.replace(a[i][0],a[i][1]);&lt;br /&gt;
  }&lt;br /&gt;
  return _this;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
(function(){&lt;br /&gt;
//■実行コード&lt;br /&gt;
var Sel = Document.Selection;&lt;br /&gt;
var isSelEmpty = Sel.IsEmpty;&lt;br /&gt;
var isClipEmpty = !ClipboardData.GetData();&lt;br /&gt;
var cmd = [], cid = 0; //コマンド, ID&lt;br /&gt;
//リストからメニュー作成&lt;br /&gt;
var Menu = CreatePopupMenu();&lt;br /&gt;
(function ListToMenu(List, Menu) {&lt;br /&gt;
  for (var i=0,_L; _L=List[i]; i++) {&lt;br /&gt;
    if (typeOf(_L[0]) !== &amp;quot;String&amp;quot;) continue;&lt;br /&gt;
    switch (_L.length) {&lt;br /&gt;
    case 3: //◆コマンド      _L = [&amp;quot;コマンド名&amp;quot;,&amp;quot;オプション&amp;quot;,function]&lt;br /&gt;
      if (typeOf(_L[1]) !== &amp;quot;String&amp;quot;) break;&lt;br /&gt;
      if (typeOf(_L[2]) !== &amp;quot;Function&amp;quot;) break;&lt;br /&gt;
      ++cid;&lt;br /&gt;
      var isGray = (/\bs\b/.test(_L[1]) &amp;amp;&amp;amp; isSelEmpty)&lt;br /&gt;
                || (/\bc\b/.test(_L[1]) &amp;amp;&amp;amp; isClipEmpty) ;&lt;br /&gt;
      Menu.Add(_L[0]+&amp;quot;\t&amp;quot;+_L[1], cid, isGray? meMenuGrayed: 0);&lt;br /&gt;
      if (isGray) break;&lt;br /&gt;
      cmd[cid] = { func: _L[2]&lt;br /&gt;
      , selLine:  /\bL\b/.test(_L[1])&lt;br /&gt;
      , selOrAll: /\bO\b/.test(_L[1])&lt;br /&gt;
      };&lt;br /&gt;
    break;&lt;br /&gt;
    case 2: //◆サブメニュー  _L = [&amp;quot;メニュー名&amp;quot;,function]&lt;br /&gt;
      if (typeOf(_L[1]) !== &amp;quot;Function&amp;quot;) break;&lt;br /&gt;
      var sub_f = [], sub_Menu = CreatePopupMenu();&lt;br /&gt;
      _L[1](sub_f);&lt;br /&gt;
      Menu.AddPopup(_L[0], sub_Menu);&lt;br /&gt;
      ListToMenu(sub_f, sub_Menu); //再帰：サブメニュー作成&lt;br /&gt;
    break;&lt;br /&gt;
    case 1: //◆セパレーター  _L = [&amp;quot;--------&amp;quot;]&lt;br /&gt;
      if (!/^-+$/.test(_L[0])) break;&lt;br /&gt;
      Menu.Add(&amp;quot;&amp;quot;, 0, meMenuSeparator);&lt;br /&gt;
    break;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}(f, Menu));&lt;br /&gt;
//ポップアップメニューを表示して処理&lt;br /&gt;
main: if (cid = Menu.Track(mePosMouse)) { //※キャンセル(Esc)時は 0 で終了&lt;br /&gt;
  var invertPos = Sel.GetActivePos() &amp;lt; Sel.GetAnchorPos();&lt;br /&gt;
  if (cmd[cid].selLine) selectLine(Sel);&lt;br /&gt;
  if (cmd[cid].selOrAll &amp;amp;&amp;amp; isSelEmpty) Sel.SelectAll();&lt;br /&gt;
  var res = cmd[cid].func(Sel.Text, Sel);&lt;br /&gt;
  if (typeOf(res) === &amp;quot;String&amp;quot;) res = [&amp;quot;&amp;quot;,res,&amp;quot;&amp;quot;];&lt;br /&gt;
  if (typeOf(res) !== &amp;quot;Array&amp;quot;) break main;&lt;br /&gt;
  &lt;br /&gt;
  var head = res.shift(), tail = res.pop() || &amp;quot;&amp;quot;, body = res.join(&amp;quot;&amp;quot;);&lt;br /&gt;
  Sel.Text = head + body + tail;&lt;br /&gt;
  var acp = Sel.GetActivePos() - tail.replace(/\r\n/g,&amp;quot;\n&amp;quot;).length;&lt;br /&gt;
  var anp = acp                - body.replace(/\r\n/g,&amp;quot;\n&amp;quot;).length;&lt;br /&gt;
    //※クリップボードなどCR+LFが含まれる場合、1字と数えなければズレる&lt;br /&gt;
  Sel.SetActivePos(invertPos? anp: acp);&lt;br /&gt;
  Sel.SetAnchorPos(invertPos? acp: anp);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
//■型判別&lt;br /&gt;
function typeOf(obj) {&lt;br /&gt;
  return (obj===null)? &amp;quot;Null&amp;quot;: (obj==null)? &amp;quot;Undefined&amp;quot;:&lt;br /&gt;
    Object.prototype.toString.call(obj).slice(8,-1); //&amp;quot;[object Type]&amp;quot;.slice&lt;br /&gt;
};&lt;br /&gt;
//■論理行選択&lt;br /&gt;
function selectLine(Sel) {&lt;br /&gt;
  var ty = Sel.GetTopPointY(mePosLogical);&lt;br /&gt;
  var by = Sel.GetBottomPointY(mePosLogical);&lt;br /&gt;
  var bx = Sel.GetBottomPointX(mePosLogical);&lt;br /&gt;
  var nn =(Sel.Text.match(/\n/g)||[]).length;&lt;br /&gt;
  if (bx===1 &amp;amp;&amp;amp; nn&amp;lt;=by-ty &amp;amp;&amp;amp; nn) by--; //末尾改行対策&lt;br /&gt;
    //下端が論理行頭 &amp;amp;&amp;amp; 矩形選択でない &amp;amp;&amp;amp; 複数行&lt;br /&gt;
  Sel.SetActivePoint(mePosLogical, 1, by);&lt;br /&gt;
  Sel.EndOfLine(false, mePosLogical);&lt;br /&gt;
  Sel.SetAnchorPoint(mePosLogical, 1, ty);&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
}());&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=拡張コード=&lt;br /&gt;
★印の項目は、スターターパックに収録されているコマンドです。&lt;br /&gt;
&lt;br /&gt;
==小説/作文==&lt;br /&gt;
&lt;br /&gt;
;★地の文の行頭を字下げ&lt;br /&gt;
:開き括弧類 &amp;lt;code&amp;gt;‘ “ （ 〔 ［ ｛ 〈 《 「 『 【&amp;lt;/code&amp;gt; または 半角空白/全角空白/水平タブ/改行 &amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;以外&amp;lt;/b&amp;gt;の文字で始まる行を「地の文」とみなし、行頭に全角空白を挿入します。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;地の文の行頭を字下げ&amp;quot;,&amp;quot;L&amp;quot;,function(_){ //2015/02/14&lt;br /&gt;
  return _.replace(/^([^‘“（〔［｛〈《「『【 　\t\n])/gm,&amp;quot;　$1&amp;quot;) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;★括弧前の句読点を除去&lt;br /&gt;
:閉じ括弧類 &amp;lt;code&amp;gt;’ ” ） 〕 ］ ｝ 〉 》 」 』 】&amp;lt;/code&amp;gt; の直前に句読点 &amp;lt;code&amp;gt;、 。 ， ．&amp;lt;/code&amp;gt; がある場合、除去します。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;括弧前の句読点を除去&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2014/03/01&lt;br /&gt;
  return _.replace(/[、。，．](?=[’”）〕］｝〉》」』】])/g,&amp;quot;&amp;quot;) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;★！？を半角/全角に整形&lt;br /&gt;
:感嘆符・疑問符を、直前の文字が半角なら半角に、全角なら全角に整形します。&lt;br /&gt;
:直前の文字がない場合（範囲先頭か行頭）は何もしません。&lt;br /&gt;
:※&amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;半角文字&amp;lt;/b&amp;gt;＝ASCII文字＋半角カナ、&amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;全角文字&amp;lt;/b&amp;gt;＝それ以外の文字、を意味しています。&lt;br /&gt;
:例＞ &amp;lt;span style=&amp;quot;background:#bfdfff;&amp;quot;&amp;gt;Wha&amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;t&amp;lt;/b&amp;gt;！？／あ&amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;れ&amp;lt;/b&amp;gt;!?&amp;lt;/span&amp;gt; → What!?／あれ！？（※&amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;赤字&amp;lt;/b&amp;gt;が直前の文字）&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;！？を半角/全角に整形&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2017/06/25&lt;br /&gt;
  return _.replace(/[!?！？]+/g,function(s,i,c){c=c.charAt(i-1); return (!c||c===&amp;quot;\n&amp;quot;)? s: /[ -~｡-ﾟ]/.test(c)? s.replace(/！/g,&amp;quot;!&amp;quot;).replace(/？/g,&amp;quot;?&amp;quot;): s.replace(/\!/g,&amp;quot;！&amp;quot;).replace(/\?/g,&amp;quot;？&amp;quot;)}) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;★連続する！？を整形&lt;br /&gt;
:2文字以上連続する感嘆符・疑問符を半角2文字に整形します。&lt;br /&gt;
:例＞ &amp;lt;span style=&amp;quot;background:#bfdfff;&amp;quot;&amp;gt;！！／！！？／?!!!／?!!!?&amp;lt;/span&amp;gt; → !!／!?／?!／??&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;連続する！？を整形&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2015/03/14&lt;br /&gt;
  return _.replaceBatch([ [/[!！][!?！？]*[!！]/g,&amp;quot;!!&amp;quot;],[/[!！][!?！？]*[?？]/g,&amp;quot;!?&amp;quot;],[/[?？][!?！？]*[!！]/g,&amp;quot;?!&amp;quot;],[/[?？][!?！？]*[?？]/g,&amp;quot;??&amp;quot;] ]) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;★三点リーダー(……)に整形&lt;br /&gt;
:1～3文字以上連続する中黒・句点・読点などを、三点リーダー2文字 …… に整形します。&lt;br /&gt;
:例＞ &amp;lt;span style=&amp;quot;background:#bfdfff;&amp;quot;&amp;gt;そんな・・・・。&amp;lt;/span&amp;gt; → そんな……。&lt;br /&gt;
:※変換対象となるのは以下の8パターンです。&lt;br /&gt;
:{|class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
! 名称 !! 連続字数 !! 例 !! Shift_JIS !! Unicode&lt;br /&gt;
|-&lt;br /&gt;
| 全角読点 ||rowspan=&amp;quot;6&amp;quot;| 3字以上 || 、、、 || 0x8141 || U+3001&lt;br /&gt;
|-&lt;br /&gt;
| 全角句点 || 。。。 || 0x8142 || U+3002&lt;br /&gt;
|-&lt;br /&gt;
| 全角コンマ || ，，， || 0x8143 || U+FF0C&lt;br /&gt;
|-&lt;br /&gt;
| 全角ピリオド || ．．． || 0x8144 || U+FF0E&lt;br /&gt;
|-&lt;br /&gt;
| 全角中黒 || ・・・ || 0x8145 || U+30FB&lt;br /&gt;
|-&lt;br /&gt;
| 半角中黒 || ･･･ || 0xA5 || U+FF65&lt;br /&gt;
|-&lt;br /&gt;
| 三点リーダー ||rowspan=&amp;quot;2&amp;quot;| 1字以上 || … || 0x8163 || U+2026&lt;br /&gt;
|-&lt;br /&gt;
| 二点リーダー || ‥ || 0x8164 || U+2025&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;三点リーダー(……)に整形&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2014/03/01&lt;br /&gt;
  return _.replace(/、{3,}|。{3,}|，{3,}|．{3,}|・{3,}|･{3,}|…{1,}|‥{1,}/g,&amp;quot;……&amp;quot;) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;★全角ダッシュ(――)に整形&lt;br /&gt;
:2文字以上連続する長音などを、全角ダッシュ2文字 ―― に整形します。&lt;br /&gt;
:例＞ &amp;lt;span style=&amp;quot;background:#bfdfff;&amp;quot;&amp;gt;そんなーーー。&amp;lt;/span&amp;gt; → そんな――。&lt;br /&gt;
:※変換対象となるのは以下の4パターンです。&lt;br /&gt;
:{|class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
! 名称 !! 連続字数 !! 例 !! Shift_JIS !! Unicode&lt;br /&gt;
|-&lt;br /&gt;
| 全角長音符 ||rowspan=&amp;quot;5&amp;quot;| 2字以上 || ーー || 0x815B || U+30FC&lt;br /&gt;
|-&lt;br /&gt;
| em ダッシュ&amp;lt;br&amp;gt;(全角ダッシュ) || —— || - || U+2014&lt;br /&gt;
|-&lt;br /&gt;
| 全角ダッシュ&amp;lt;br&amp;gt;(水平線) || ―― || 0x815C || U+2015&lt;br /&gt;
|-&lt;br /&gt;
| 全角マイナス || －－ || 0x817C || U+FF0D&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;全角ダッシュ(――)に整形&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2017/06/25&lt;br /&gt;
  return _.replace(/ー{2,}|\u2014{2,}|―{2,}|－{2,}/g,&amp;quot;――&amp;quot;) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;青空文庫 ルビを除去&lt;br /&gt;
:&amp;lt;code&amp;gt;《&amp;lt;/code&amp;gt; で始まり &amp;lt;code&amp;gt;》&amp;lt;/code&amp;gt; で終わる箇所を除去します。ルビ開始位置を表す &amp;lt;code&amp;gt;｜&amp;lt;/code&amp;gt; がある場合、&amp;lt;code&amp;gt;｜&amp;lt;/code&amp;gt; も除去します。&lt;br /&gt;
:例＞ &amp;lt;span style=&amp;quot;background:#bfdfff;&amp;quot;&amp;gt;一応《いちおう》何時《いつ》もの／霧の｜ロンドン警視庁《スコットランドヤード》&amp;lt;/span&amp;gt; → 一応何時もの／霧のロンドン警視庁&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;青空文庫 ルビを除去&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2015/09/30&lt;br /&gt;
  return _.replace(/(?:｜([^《\n]+))?《.*?》/g,&amp;quot;$1&amp;quot;) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;青空文庫 注記を除去&lt;br /&gt;
:&amp;lt;code&amp;gt;［＃&amp;lt;/code&amp;gt; で始まり &amp;lt;code&amp;gt;］&amp;lt;/code&amp;gt; で終わる箇所を除去します。&lt;br /&gt;
:例＞ &amp;lt;span style=&amp;quot;background:#bfdfff;&amp;quot;&amp;gt;［＃注記付き］名※［＃二の字点、1-2-22］［＃「（銘々）」の注記付き終わり］&amp;lt;/span&amp;gt; → 名※&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;青空文庫 注記を除去&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2014/03/14&lt;br /&gt;
  return _.replace(/［＃.*?］/g,&amp;quot;&amp;quot;) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
;青空文庫 注記(外字以外)を除去&lt;br /&gt;
:外字を表す注記 &amp;lt;code&amp;gt;※［＃ ～ ］&amp;lt;/code&amp;gt; は例外とし、除去しません。&lt;br /&gt;
:例＞ &amp;lt;span style=&amp;quot;background:#bfdfff;&amp;quot;&amp;gt;［＃注記付き］名※［＃二の字点、1-2-22］［＃「（銘々）」の注記付き終わり］&amp;lt;/span&amp;gt; → 名※［＃二の字点、1-2-22］&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;青空文庫 注記(外字以外)を除去&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2014/03/14&lt;br /&gt;
  return _.replace(/(※［＃.*?］)|［＃.*?］/g,&amp;quot;$1&amp;quot;) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Web/HTML==&lt;br /&gt;
&lt;br /&gt;
;★HTMLタグを除去&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;HTMLタグを除去&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2015/09/30&lt;br /&gt;
  return _.replace(/&amp;lt;(&amp;quot;[^&amp;quot;]*&amp;quot;|&#039;[^&#039;]*&#039;|[^&amp;quot;&#039;&amp;gt;])*&amp;gt;/g,&amp;quot;&amp;quot;) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;行末に&amp;amp;lt;br&amp;amp;gt;を挿入&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;行末に&amp;lt;br&amp;gt;を挿入&amp;quot;,&amp;quot;L&amp;quot;,function(_){ //2015/02/14&lt;br /&gt;
  return _.replace(/$/gm,&amp;quot;&amp;lt;br&amp;gt;&amp;quot;) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
;&amp;amp;lt;br&amp;amp;gt;を改行に変換&lt;br /&gt;
:改行タグを改行に変換します。ただし、改行タグ直後に改行が含まれている場合は、二重改行にならないようタグのみ削除します。&lt;br /&gt;
:※対応タグは &amp;lt;code&amp;gt;&amp;amp;lt;br&amp;amp;gt; &amp;amp;lt;br/&amp;amp;gt; &amp;amp;lt;br /&amp;amp;gt;&amp;lt;/code&amp;gt; の3種類です。英字の大小は問いません。&lt;br /&gt;
:&amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;※属性付きには対応していません。&amp;lt;/b&amp;gt;例＞ &amp;lt;code&amp;gt;&amp;amp;lt;br clear=&amp;quot;all&amp;quot;&amp;amp;gt;&amp;lt;/code&amp;gt; など&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;&amp;lt;br&amp;gt;を改行に変換&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2015/02/14&lt;br /&gt;
  return _.replace(/&amp;lt;br( ?\/)?&amp;gt;\n?/gi,&amp;quot;\n&amp;quot;) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;★実体参照 &amp;amp;&amp;quot;&amp;lt;&amp;gt; → &amp;amp;xxx;&lt;br /&gt;
;★実体参照 &amp;amp;xxx; → ␣&amp;gt;&amp;lt;&amp;quot;&amp;amp;&lt;br /&gt;
:HTML で使用される文字実体参照の変換を行います。&lt;br /&gt;
:{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 文字 !! 実体参照 !! 備考&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| &amp;amp;lt; || &amp;amp;amp;lt; || 小なり不等号 (less-than sign)&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| &amp;amp;gt; || &amp;amp;amp;gt; || 大なり不等号 (greater-than sign)&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| &amp;amp;quot; || &amp;amp;amp;quot; || 引用符 (quotation mark)&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| &amp;amp;amp; || &amp;amp;amp;amp; || アンド (ampersand)&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| &amp;amp;nbsp; || &amp;amp;amp;nbsp; || 折り返し禁止空白 (no-break space)&lt;br /&gt;
|}&lt;br /&gt;
:&amp;amp;amp;nbsp; は U+00A0 (No-Break Space) ではなく、U+0020 (半角空白) に変換します。&lt;br /&gt;
:空白文字 → &amp;amp;amp;nbsp; の変換は、実用上不都合が多いため行いません。&lt;br /&gt;
&amp;lt;div id=&amp;quot;実体参照&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&#039;実体参照 &amp;amp;&amp;amp;&amp;quot;&amp;lt;&amp;gt; → &amp;amp;&amp;amp;xxx;&#039;,&amp;quot;s&amp;quot;,function(_){ //2015/03/14&lt;br /&gt;
  return _.replaceBatch([ [&amp;quot;&amp;amp;&amp;quot;,&amp;quot;&amp;amp;amp;amp;&amp;quot;],[&#039;&amp;quot;&#039;,&amp;quot;&amp;amp;amp;quot;&amp;quot;],[&amp;quot;&amp;lt;&amp;quot;,&amp;quot;&amp;amp;amp;lt;&amp;quot;],[&amp;quot;&amp;gt;&amp;quot;,&amp;quot;&amp;amp;amp;gt;&amp;quot;] ]) }]);&lt;br /&gt;
f.push([&#039;実体参照 &amp;amp;&amp;amp;xxx; → \u2423&amp;gt;&amp;lt;&amp;quot;&amp;amp;&amp;amp;&#039;,&amp;quot;s&amp;quot;,function(_){ //2015/03/14&lt;br /&gt;
  return _.replaceBatch([ [&amp;quot;&amp;amp;amp;nbsp;&amp;quot;,&amp;quot; &amp;quot;],[&amp;quot;&amp;amp;amp;gt;&amp;quot;,&amp;quot;&amp;gt;&amp;quot;],[&amp;quot;&amp;amp;amp;lt;&amp;quot;,&amp;quot;&amp;lt;&amp;quot;],[&amp;quot;&amp;amp;amp;quot;&amp;quot;,&#039;&amp;quot;&#039;],[&amp;quot;&amp;amp;amp;amp;&amp;quot;,&amp;quot;&amp;amp;&amp;quot;] ]) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
:半角空白 → &amp;amp;amp;nbsp; の変換も行う場合は、下記の内容に差し替えてください。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&#039;実体参照 &amp;amp;&amp;amp;&amp;quot;&amp;lt;&amp;gt;\u2423 → &amp;amp;&amp;amp;xxx;&#039;,&amp;quot;s&amp;quot;,function(_){ //2015/03/14&lt;br /&gt;
  return _.replaceBatch([ [&amp;quot;&amp;amp;&amp;quot;,&amp;quot;&amp;amp;amp;amp;&amp;quot;],[&#039;&amp;quot;&#039;,&amp;quot;&amp;amp;amp;quot;&amp;quot;],[&amp;quot;&amp;lt;&amp;quot;,&amp;quot;&amp;amp;amp;lt;&amp;quot;],[&amp;quot;&amp;gt;&amp;quot;,&amp;quot;&amp;amp;amp;gt;&amp;quot;],[&amp;quot; &amp;quot;,&amp;quot;&amp;amp;amp;nbsp;&amp;quot;] ]) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;★数値参照 &amp;amp;#dec; に変換&lt;br /&gt;
:文字列を数値文字参照(10進)形式に変換します。(dec＝decimal／十進法)&lt;br /&gt;
:例＞ &amp;lt;span style=&amp;quot;background:#bfdfff;&amp;quot;&amp;gt;Aわ𩸽&amp;lt;/span&amp;gt; → &amp;amp;amp;#65;&amp;amp;amp;#12431;&amp;amp;amp;#171581;&lt;br /&gt;
:→ &amp;lt;b&amp;gt;[[#符号化/復号化]]&amp;lt;/b&amp;gt; の節の &amp;lt;b&amp;gt;&amp;amp;#dec; エンコード&amp;lt;/b&amp;gt; を参照&lt;br /&gt;
&lt;br /&gt;
;★数値参照 &amp;amp;#xHEX; に変換&lt;br /&gt;
:文字列を数値文字参照(16進)形式に変換します。(HEX＝hexadecimal／十六進法)&lt;br /&gt;
:例＞ &amp;lt;span style=&amp;quot;background:#bfdfff;&amp;quot;&amp;gt;Aわ𩸽&amp;lt;/span&amp;gt; → &amp;amp;amp;#x41;&amp;amp;amp;#x308F;&amp;amp;amp;#x29E3D;&lt;br /&gt;
:→ &amp;lt;b&amp;gt;[[#符号化/復号化]]&amp;lt;/b&amp;gt; の節の &amp;lt;b&amp;gt;&amp;amp;#xHEX; エンコード&amp;lt;/b&amp;gt; を参照&lt;br /&gt;
&lt;br /&gt;
;★数値参照を文字に変換&lt;br /&gt;
:数値文字参照(10進/16進)を文字列に変換します。&lt;br /&gt;
:例＞ &amp;lt;span style=&amp;quot;background:#bfdfff;&amp;quot;&amp;gt;&amp;amp;amp;#65;&amp;amp;amp;#x308F;&amp;amp;amp;#x29e3d;&amp;lt;/span&amp;gt; → Aわ𩸽&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;数値参照を文字に変換&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2019/06/01&lt;br /&gt;
  return _.replace(/&amp;amp;#(?:([0-9]{1,7})|x([0-9a-f]{1,6}));/gi,function(s,d,x){var n=Number(d||&amp;quot;0x&amp;quot;+x); return (n&amp;lt;=0xFFFF)?String.fromCharCode(n): (n&amp;lt;=0x10FFFF)?String.fromCharCode(n-0x10000&amp;gt;&amp;gt;10|0xD800,n&amp;amp;0x3FF|0xDC00): s}) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==マクロ/コード==&lt;br /&gt;
&lt;br /&gt;
;★行頭 // を挿入/削除&lt;br /&gt;
:行頭に // が無い行なら // を挿入し、有る行なら // を削除します。&lt;br /&gt;
:※このコマンドをよく利用される場合は「&amp;lt;b&amp;gt;[[コメントマーク付け外し]]&amp;lt;/b&amp;gt;」マクロの導入をオススメします。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;行頭 \/\/ を挿入/削除&amp;quot;,&amp;quot;L&amp;quot;,function(_){ //2015/03/14&lt;br /&gt;
  return _.replace(/^(\/\/)?/gm,function(s){return s? &amp;quot;&amp;quot;: &amp;quot;\/\/&amp;quot;}) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;★このマクロを編集&lt;br /&gt;
:実行中のマクロ（テキスト整形）を Mery で開きます。&lt;br /&gt;
:※マクロを実行後、[マクロ]→[編集] でファイルを開くのと同様です。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;このマクロを編集&amp;quot;,&amp;quot;&amp;quot;,function(){ //2019/06/01&lt;br /&gt;
  Editor.OpenFile(ScriptFullName, meEncodingNone, meOpenAllowNewWindow) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;マクロフォルダを開く&lt;br /&gt;
:エクスプローラを起動し、実行中のマクロ（テキスト整形）があるフォルダを開きます。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;マクロフォルダを開く&amp;quot;,&amp;quot;&amp;quot;,function(){ //2015/12/26&lt;br /&gt;
  new ActiveXObject(&amp;quot;Shell.Application&amp;quot;).Explore(new ActiveXObject(&amp;quot;Scripting.FileSystemObject&amp;quot;).GetParentFolderName(ScriptFullName)) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;挿入 Confirm(|)&lt;br /&gt;
:文字列 &amp;lt;code&amp;gt;if(!Confirm(&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;))Quit();&amp;lt;/code&amp;gt; を挿入します。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;挿入 Confirm(|)&amp;quot;,&amp;quot;&amp;quot;,function(_){ //2019/06/01&lt;br /&gt;
  return [&amp;quot;if(!Confirm(&amp;quot; , _ , &amp;quot;))Quit();&amp;quot;] }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;選択範囲を eval で評価&lt;br /&gt;
:ステータスバーに eval(&amp;lt;i&amp;gt;選択範囲&amp;lt;/i&amp;gt;) の結果を表示します。&lt;br /&gt;
:たとえば、選択範囲が &amp;lt;code style=&amp;quot;background:#bfdfff;&amp;quot;&amp;gt;10*(5+20)&amp;lt;/code&amp;gt; なら、250 と表示されます。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;選択範囲を eval で評価&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2019/06/01&lt;br /&gt;
  Status=eval(_) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==挿入/貼付==&lt;br /&gt;
&lt;br /&gt;
;★半角/全角の間を空ける&lt;br /&gt;
;★半角英数/全角の間を空ける&lt;br /&gt;
:半角文字/半角英数と全角文字の間に半角空白を挿入します。&lt;br /&gt;
:※&amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;半角文字&amp;lt;/b&amp;gt;＝ASCII文字＋半角カナ、&amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;全角文字&amp;lt;/b&amp;gt;＝それ以外の文字、を意味しています。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;半角/全角の間を空ける&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2014/02/16&lt;br /&gt;
  return _.replace(/([!-~｡-ﾟ](?=[^!-~｡-ﾟ 　\t\n])|[^!-~｡-ﾟ 　\t\n](?=[!-~｡-ﾟ]))/g,&amp;quot;$1 &amp;quot;) }]);&lt;br /&gt;
f.push([&amp;quot;半角英数/全角の間を空ける&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2014/02/16&lt;br /&gt;
  return _.replace(/([0-9A-Za-z](?=[^!-~｡-ﾟ 　\t\n])|[^!-~｡-ﾟ 　\t\n](?=[0-9A-Za-z]))/g,&amp;quot;$1 &amp;quot;) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;★数値を3桁,区切りに&lt;br /&gt;
:半角数字列を3桁毎にコンマで区切ります。小数点以下（ピリオド以降）は区切りません。&lt;br /&gt;
:例＞ &amp;lt;span style=&amp;quot;background:#bfdfff;&amp;quot;&amp;gt;87654321／0.12345／54321.12345&amp;lt;/span&amp;gt; → 87,654,321／0.12345／54,321.12345&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;数値を3桁,区切りに&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2014/10/12&lt;br /&gt;
  return _.replace(/([^.0-9]|^)([0-9]+)/g,function(_,p,n){return p+n.replace(/([0-9])(?=(?:[0-9]{3})+$)/g,&amp;quot;$1,&amp;quot;)}) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;複製貼り付け...&lt;br /&gt;
:クリップボードの文字列を、入力した回数分複製してから貼り付けます。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;複製貼り付け...&amp;quot;,&amp;quot;c&amp;quot;,function(){ //2019/06/01&lt;br /&gt;
  var r=[],c=ClipboardData.GetData(),n=parseInt(Prompt(&amp;quot;複製回数: ※半角数字&amp;quot;,&amp;quot;&amp;quot;)); if(n&amp;gt;0){ while(n--){r.push(c)} return r.join(&amp;quot;&amp;quot;) } }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;★行頭／行末に貼り付け&lt;br /&gt;
:クリップボードの文字列を、各行の行頭/行末に貼り付けます。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;行頭に貼り付け&amp;quot;,&amp;quot;L c&amp;quot;,function(_){ //2015/09/30&lt;br /&gt;
  var c=ClipboardData.GetData().replace(/(\r\n|[\r\n])$/,&amp;quot;&amp;quot;); return _.replace(/^/gm,c) }]);&lt;br /&gt;
f.push([&amp;quot;行末に貼り付け&amp;quot;,&amp;quot;L c&amp;quot;,function(_){ //2015/09/30&lt;br /&gt;
  var c=ClipboardData.GetData().replace(/(\r\n|[\r\n])$/,&amp;quot;&amp;quot;); return _.replace(/$/gm,c) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;★行頭／行末に挿入...&lt;br /&gt;
:入力した文字列を、各行の行頭/行末に挿入します。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;行頭に挿入...&amp;quot;,&amp;quot;L&amp;quot;,function(_){ //2019/06/01&lt;br /&gt;
  var p=Prompt(&amp;quot;行頭に挿入する文字列:&amp;quot;,&amp;quot;&amp;quot;); if(p)return _.replace(/^/gm,p) }]);&lt;br /&gt;
f.push([&amp;quot;行末に挿入...&amp;quot;,&amp;quot;L&amp;quot;,function(_){ //2019/06/01&lt;br /&gt;
  var p=Prompt(&amp;quot;行末に挿入する文字列:&amp;quot;,&amp;quot;&amp;quot;); if(p)return _.replace(/$/gm,p) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;各行先頭／末尾に挿入...&lt;br /&gt;
:下記の条件で置換を行い、入力した文字列を各行の先頭/末尾に挿入します。&lt;br /&gt;
:&amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;※矩形対応には Mery 2.1.0 以降が必要です。&amp;lt;/b&amp;gt;&lt;br /&gt;
:&amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;※Mery の仕様上、ゼロ幅には対応していません。&amp;lt;/b&amp;gt;ゼロ幅で実行すると、&amp;lt;b&amp;gt;表示行頭&amp;lt;/b&amp;gt;に文字列が挿入されます。&lt;br /&gt;
:{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 検索文字列 (先頭)&lt;br /&gt;
| &amp;lt;code&amp;gt;^(?=.&amp;amp;#x7C;\n)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! 検索文字列 (末尾)&lt;br /&gt;
| &amp;lt;code&amp;gt;(?&amp;lt;=.)$&amp;amp;#x7C;^(?=\n)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! 置換文字列&lt;br /&gt;
| ※入力した文字列&lt;br /&gt;
|-&lt;br /&gt;
! フラグ&lt;br /&gt;
| 正規表現を使用する (meFindReplaceRegExp)&amp;lt;br&amp;gt;選択した範囲のみ (meReplaceSelOnly)&amp;lt;br&amp;gt;すべて置換 (meReplaceAll)&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;各行先頭に挿入...&amp;quot;,&amp;quot;&amp;quot;,function(_,$){ //2019/06/01&lt;br /&gt;
  var p=Prompt(&amp;quot;各行先頭に挿入する文字列:&amp;quot;,&amp;quot;&amp;quot;); if(p)$.Replace(&amp;quot;^(?=.|\\n)&amp;quot;, p, meFindReplaceRegExp+meReplaceSelOnly+meReplaceAll) }]);&lt;br /&gt;
f.push([&amp;quot;各行末尾に挿入...&amp;quot;,&amp;quot;&amp;quot;,function(_,$){ //2019/06/01&lt;br /&gt;
  var p=Prompt(&amp;quot;各行末尾に挿入する文字列:&amp;quot;,&amp;quot;&amp;quot;); if(p)$.Replace(&amp;quot;(?&amp;lt;=.)$|^(?=\\n)&amp;quot;, p, meFindReplaceRegExp+meReplaceSelOnly+meReplaceAll) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;行頭に連番挿入 (#)&lt;br /&gt;
:行頭に連番 (1), (2), (3) … を挿入します。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;行頭に連番挿入 (#)&amp;quot;,&amp;quot;L&amp;quot;,function(_){ //2015/09/30&lt;br /&gt;
  var re=/^/gm, n=1, pf=&amp;quot;(&amp;quot;, sf=&amp;quot;)&amp;quot;; return _.replace(re,function(){return pf+(n++)+sf}) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
;行頭に連番挿入 (#/Σ)&lt;br /&gt;
:選択行数を Σ として、連番 (1/Σ), (2/Σ), (3/Σ) … を挿入します。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;行頭に連番挿入 (#/Σ)&amp;quot;,&amp;quot;L&amp;quot;,function(_){ //2015/09/30&lt;br /&gt;
  var re=/^/gm, n=1, m=(_.match(re)||[]).length, pf=&amp;quot;(&amp;quot;, sf=&amp;quot;/&amp;quot;+m+&amp;quot;)&amp;quot;; return _.replace(re,function(){return pf+(n++)+sf}) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
;行頭に連番挿入 (0#)&lt;br /&gt;
:連番が2桁以上になる場合、桁揃えした連番 (01), (02), (03) … を挿入します。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;行頭に連番挿入 (0#)&amp;quot;,&amp;quot;L&amp;quot;,function(_){ //2015/09/30&lt;br /&gt;
  var re=/^/gm, n=1, m=(_.match(re)||[]).length, pf=&amp;quot;(&amp;quot;, sf=&amp;quot;)&amp;quot;, sp=&amp;quot;0&amp;quot;, k=String(m).length, sp=new Array(k).join(sp); return _.replace(re,function(){return pf+(sp+(n++)).slice(-k)+sf}) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;※行頭に連番挿入系コマンドの比較&lt;br /&gt;
:{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 例文 !! (#) !! (#/Σ) !! (0#)&lt;br /&gt;
|-&lt;br /&gt;
| 1行目&amp;lt;br&amp;gt;2行目&amp;lt;br&amp;gt;…&amp;lt;br&amp;gt;9行目&amp;lt;br&amp;gt;10行目&amp;lt;br&amp;gt;11行目&amp;lt;br&amp;gt;…&amp;lt;br&amp;gt;99行目&amp;lt;br&amp;gt;100行目&lt;br /&gt;
| (1)1行目&amp;lt;br&amp;gt;(2)2行目&amp;lt;br&amp;gt;…&amp;lt;br&amp;gt;(9)9行目&amp;lt;br&amp;gt;(10)10行目&amp;lt;br&amp;gt;(11)11行目&amp;lt;br&amp;gt;…&amp;lt;br&amp;gt;(99)99行目&amp;lt;br&amp;gt;(100)100行目&lt;br /&gt;
| (1/100)1行目&amp;lt;br&amp;gt;(2/100)2行目&amp;lt;br&amp;gt;…&amp;lt;br&amp;gt;(9/100)9行目&amp;lt;br&amp;gt;(10/100)10行目&amp;lt;br&amp;gt;(11/100)11行目&amp;lt;br&amp;gt;…&amp;lt;br&amp;gt;(99/100)99行目&amp;lt;br&amp;gt;(100/100)100行目&lt;br /&gt;
| (001)1行目&amp;lt;br&amp;gt;(002)2行目&amp;lt;br&amp;gt;…&amp;lt;br&amp;gt;(009)9行目&amp;lt;br&amp;gt;(010)10行目&amp;lt;br&amp;gt;(011)11行目&amp;lt;br&amp;gt;…&amp;lt;br&amp;gt;(099)99行目&amp;lt;br&amp;gt;(100)100行目&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
;連番を出力...&lt;br /&gt;
:&amp;lt;code&amp;gt;&amp;lt;i&amp;gt;数値&amp;lt;/i&amp;gt;..&amp;lt;i&amp;gt;数値&amp;lt;/i&amp;gt;&amp;lt;/code&amp;gt;を含む文字列（数値は 0 以上の整数）を入力すると、連番に展開して書き出します。&lt;br /&gt;
:{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!例&lt;br /&gt;
| &amp;lt;code&amp;gt;8..10&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;10..8&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;第01..3章&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;第1..003章&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;1..3..9&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!結果&lt;br /&gt;
| 8&amp;lt;br&amp;gt;9&amp;lt;br&amp;gt;10&lt;br /&gt;
| 10&amp;lt;br&amp;gt;9&amp;lt;br&amp;gt;8&lt;br /&gt;
| 第01章&amp;lt;br&amp;gt;第02章&amp;lt;br&amp;gt;第03章&lt;br /&gt;
| 第001章&amp;lt;br&amp;gt;第002章&amp;lt;br&amp;gt;第003章&lt;br /&gt;
| 1..9&amp;lt;br&amp;gt;2..9&amp;lt;br&amp;gt;3..9&lt;br /&gt;
|-&lt;br /&gt;
!補足&lt;br /&gt;
|&lt;br /&gt;
| 降順可&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;| ゼロ始まりならゼロ埋め&lt;br /&gt;
| 最初のみ展開&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;連番を出力...&amp;quot;,&amp;quot;&amp;quot;,function(_){ //2019/06/01&lt;br /&gt;
  var p=Prompt(&amp;quot;連番を出力: ※例＞ 第1..10章&amp;quot;,_.match(/^.*/)[0]), q=p.replace(/^([\s\S]*?)((0*)[0-9]+)\.\.((0*)[0-9]+)([\s\S]*)$/,function(_,p,n,nz,m,mz,q){var r=[],d=Math.max(n.length,m.length),z=(nz||mz)?new Array(d+1).join(&amp;quot;0&amp;quot;):&amp;quot;&amp;quot;,n=Number(n),m=Number(m); if(n&amp;lt;=m){for(;n&amp;lt;=m;n++)r.push(p+(z+n).slice(-d)+q);}else{for(;n&amp;gt;=m;n--)r.push(p+(z+n).slice(-d)+q);} return r.join(&amp;quot;\n&amp;quot;)}); if(q!==p)return q }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==除去/削除==&lt;br /&gt;
&lt;br /&gt;
;★空白文字を除去&lt;br /&gt;
:空白文字（半角空白/全角空白/水平タブ）を除去します。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;空白文字を除去&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2013/09/15&lt;br /&gt;
  return _.replace(/[ 　\t]+/g,&amp;quot;&amp;quot;) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
;★行頭行末／行頭／行末の空白を除去&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;行頭行末の空白を除去&amp;quot;,&amp;quot;L&amp;quot;,function(_){ //2013/09/15&lt;br /&gt;
  return _.replace(/^[ 　\t]+|[ 　\t]+$/gm,&amp;quot;&amp;quot;) }]);&lt;br /&gt;
f.push([&amp;quot;行頭の空白を除去&amp;quot;,&amp;quot;L&amp;quot;,function(_){ //2015/02/14&lt;br /&gt;
  return _.replace(/^[ 　\t]+/gm,&amp;quot;&amp;quot;) }]);&lt;br /&gt;
f.push([&amp;quot;行末の空白を除去&amp;quot;,&amp;quot;L&amp;quot;,function(_){ //2015/02/14&lt;br /&gt;
  return _.replace(/[ 　\t]+$/gm,&amp;quot;&amp;quot;) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;空白行の空白を除去&lt;br /&gt;
:空白行を、改行のみの空行にします。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;空白行の空白を除去&amp;quot;,&amp;quot;L&amp;quot;,function(_){ //2017/06/25&lt;br /&gt;
  return _.replace(/^[ 　\t]+$/gm,&amp;quot;&amp;quot;) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;★空白行を削除&lt;br /&gt;
:空白行（半角空白/全角空白/水平タブ/改行のみの行）を削除します。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;空白行を削除&amp;quot;,&amp;quot;L&amp;quot;,function(_){ //2015/03/14&lt;br /&gt;
  return _.replace(/^[ 　\t]*$\n?/gm,&amp;quot;&amp;quot;) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
;空白行を圧縮&lt;br /&gt;
:連続する空白行を1行の空行に変換します。連続しない（＝1行の）空白行は削除します。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;空白行を圧縮&amp;quot;,&amp;quot;L&amp;quot;,function(_){ //2015/02/14&lt;br /&gt;
  return _.replace(/^[ 　\t]+$/gm,&amp;quot;&amp;quot;).replace(/^(\n)\n+|^\n/gm,&amp;quot;$1&amp;quot;) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
;空白行を減量&lt;br /&gt;
:連続する空白行を1行分削減します。&lt;br /&gt;
:空白行の連続が3行なら2行に、2行なら1行に、1行なら0行（＝削除）になります。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;空白行を減量&amp;quot;,&amp;quot;L&amp;quot;,function(_){ //2015/02/14&lt;br /&gt;
  return _.replace(/((?:^[ 　\t]*$\n?)*)(?:^[ 　\t]*$\n?)/gm,&amp;quot;$1&amp;quot;) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;★重複行を単一化&lt;br /&gt;
:同じ内容の行が2個以上ある場合、2個目以降を削除します。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;重複行を単一化&amp;quot;,&amp;quot;L&amp;quot;,function(_){ //2018/01/15&lt;br /&gt;
  var a=_.split(&amp;quot;\n&amp;quot;),b=[],map={}; for(var i=0;i&amp;lt;a.length;i++){ if(!Object.prototype.hasOwnProperty.call(map,a[i])){map[a[i]]=true;b.push(a[i])} } return b.join(&amp;quot;\n&amp;quot;) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
;重複行を単一化(空白行は除く)&lt;br /&gt;
:空白行（半角空白/全角空白/水平タブ/改行のみの行）は例外とし、削除しません。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;重複行を単一化(空白行は除く)&amp;quot;,&amp;quot;L&amp;quot;,function(_){ //2018/01/15&lt;br /&gt;
  var a=_.split(&amp;quot;\n&amp;quot;),b=[],map={}; for(var i=0;i&amp;lt;a.length;i++){ if(/^[ 　\t]*$/.test(a[i])||!Object.prototype.hasOwnProperty.call(map,a[i])){map[a[i]]=true;b.push(a[i])} } return b.join(&amp;quot;\n&amp;quot;) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
;★連続する重複行を単一化&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;連続する重複行を単一化&amp;quot;,&amp;quot;L&amp;quot;,function(_){ //2015/02/14&lt;br /&gt;
  return _.replace(/(^.*$)\n(^\1$\n?)+/gm,&amp;quot;$2&amp;quot;) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;重複する／しない行を抽出&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;重複する行を抽出&amp;quot;,&amp;quot;L&amp;quot;,function(_){ //2018/01/15&lt;br /&gt;
  var a=_.split(&amp;quot;\n&amp;quot;),b=[],k=0,map={}; for(var i=0;i&amp;lt;a.length;i++){ if(!Object.prototype.hasOwnProperty.call(map,a[i])){b[k]={dup:false,txt:a[i]};map[a[i]]=k++;}else{b[map[a[i]]].dup=true} } i=b.length;while(--i&amp;gt;=0){ if(b[i].dup){b[i]=b[i].txt}else{b.splice(i,1)} } return b.join(&amp;quot;\n&amp;quot;) }]);&lt;br /&gt;
f.push([&amp;quot;重複しない行を抽出&amp;quot;,&amp;quot;L&amp;quot;,function(_){ //2018/01/15&lt;br /&gt;
  var a=_.split(&amp;quot;\n&amp;quot;),b=[],k=0,map={}; for(var i=0;i&amp;lt;a.length;i++){ if(!Object.prototype.hasOwnProperty.call(map,a[i])){b[k]={dup:false,txt:a[i]};map[a[i]]=k++;}else{b[map[a[i]]].dup=true} } i=b.length;while(--i&amp;gt;=0){ if(!b[i].dup){b[i]=b[i].txt}else{b.splice(i,1)} } return b.join(&amp;quot;\n&amp;quot;) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;※空白行系／重複行系コマンドの比較 （☐ は空白／↵ は改行）&lt;br /&gt;
:{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 例文 !! 空白行&amp;lt;br&amp;gt;を削除 !! 空白行&amp;lt;br&amp;gt;を圧縮 !! 空白行&amp;lt;br&amp;gt;を減量&lt;br /&gt;
!rowspan=&amp;quot;2&amp;quot; width=&amp;quot;6px&amp;quot;|&lt;br /&gt;
! 例文 !! 重複行を&amp;lt;br&amp;gt;単一化 !! 空白行は&amp;lt;br&amp;gt;除く !! 連続する&amp;lt;br&amp;gt;重複行 !! 重複する&amp;lt;br&amp;gt;行を抽出 !! しない&amp;lt;br&amp;gt;行を抽出&lt;br /&gt;
|-style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| 1行目↵&amp;lt;br&amp;gt;☐↵&amp;lt;br&amp;gt;2行目↵&amp;lt;br&amp;gt;☐↵&amp;lt;br&amp;gt;☐☐↵&amp;lt;br&amp;gt;3行目↵&amp;lt;br&amp;gt;☐↵&amp;lt;br&amp;gt;☐☐↵&amp;lt;br&amp;gt;☐☐☐↵&amp;lt;br&amp;gt;4行目&lt;br /&gt;
| 1行目↵&amp;lt;br&amp;gt;2行目↵&amp;lt;br&amp;gt;3行目↵&amp;lt;br&amp;gt;4行目&lt;br /&gt;
| 1行目↵&amp;lt;br&amp;gt;2行目↵&amp;lt;br&amp;gt;↵&amp;lt;br&amp;gt;3行目↵&amp;lt;br&amp;gt;↵&amp;lt;br&amp;gt;4行目&lt;br /&gt;
| 1行目↵&amp;lt;br&amp;gt;2行目↵&amp;lt;br&amp;gt;☐↵&amp;lt;br&amp;gt;3行目↵&amp;lt;br&amp;gt;☐↵&amp;lt;br&amp;gt;☐☐↵&amp;lt;br&amp;gt;4行目&lt;br /&gt;
| あいう↵&amp;lt;br&amp;gt;あいう↵&amp;lt;br&amp;gt;☐↵&amp;lt;br&amp;gt;☐↵&amp;lt;br&amp;gt;☐☐↵&amp;lt;br&amp;gt;あいう↵&amp;lt;br&amp;gt;あいう↵&amp;lt;br&amp;gt;カキク↵&amp;lt;br&amp;gt;さしす↵&amp;lt;br&amp;gt;カキク&amp;lt;br&amp;gt;&lt;br /&gt;
| あいう↵&amp;lt;br&amp;gt;☐↵&amp;lt;br&amp;gt;☐☐↵&amp;lt;br&amp;gt;カキク↵&amp;lt;br&amp;gt;さしす&lt;br /&gt;
| あいう↵&amp;lt;br&amp;gt;☐↵&amp;lt;br&amp;gt;☐↵&amp;lt;br&amp;gt;☐☐↵&amp;lt;br&amp;gt;カキク↵&amp;lt;br&amp;gt;さしす&lt;br /&gt;
| あいう↵&amp;lt;br&amp;gt;☐↵&amp;lt;br&amp;gt;☐☐↵&amp;lt;br&amp;gt;あいう↵&amp;lt;br&amp;gt;カキク↵&amp;lt;br&amp;gt;さしす↵&amp;lt;br&amp;gt;カキク&lt;br /&gt;
| あいう↵&amp;lt;br&amp;gt;☐↵&amp;lt;br&amp;gt;カキク&lt;br /&gt;
| ☐☐↵&amp;lt;br&amp;gt;さしす&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
;★入力文字列を含む／含まない行を削除...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;入力文字列を含む行を削除...&amp;quot;,&amp;quot;L&amp;quot;,function(_){ //2019/06/01&lt;br /&gt;
  var p=Prompt(&amp;quot;以下の文字列を含む行を削除:&amp;quot;,&amp;quot;&amp;quot;); if(p)return _.replace(/^(.*)$\n?/gm,function(s,t){return (t.indexOf(p)&amp;gt;=0)? &amp;quot;&amp;quot;:s}) }]);&lt;br /&gt;
f.push([&amp;quot;入力文字列を含まない行を削除...&amp;quot;,&amp;quot;L&amp;quot;,function(_){ //2019/06/01&lt;br /&gt;
  var p=Prompt(&amp;quot;以下の文字列を含まない行を削除:&amp;quot;,&amp;quot;&amp;quot;); if(p)return _.replace(/^(.*)$\n?/gm,function(s,t){return (t.indexOf(p)&amp;gt;=0)? s:&amp;quot;&amp;quot;}) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;正規表現に一致する／しない行を削除...&lt;br /&gt;
:&amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;※正規表現は JavaScript (JScript) の仕様で記述します。&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;正規表現に一致する行を削除...&amp;quot;,&amp;quot;L&amp;quot;,function(_){ //2019/06/01&lt;br /&gt;
  var p=Prompt(&amp;quot;以下の正規表現に一致する行を削除:&amp;quot;,&amp;quot;&amp;quot;); if(p){ p=new RegExp(p); return _.replace(/^(.*)$\n?/gm,function(s,t){return p.test(t)? &amp;quot;&amp;quot;:s}) } }]);&lt;br /&gt;
f.push([&amp;quot;正規表現に一致しない行を削除...&amp;quot;,&amp;quot;L&amp;quot;,function(_){ //2019/06/01&lt;br /&gt;
  var p=Prompt(&amp;quot;以下の正規表現に一致しない行を削除:&amp;quot;,&amp;quot;&amp;quot;); if(p){ p=new RegExp(p); return _.replace(/^(.*)$\n?/gm,function(s,t){return p.test(t)? s:&amp;quot;&amp;quot;}) } }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;行頭／行末から数文字削除...&lt;br /&gt;
:各行の行頭/行末から指定した文字数分を削除します。&lt;br /&gt;
:※結合文字列には対応していません。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;行頭から数文字削除...&amp;quot;,&amp;quot;L&amp;quot;,function(_){ //2019/06/01&lt;br /&gt;
  var n=parseInt(Prompt(&amp;quot;行頭から削除する字数: ※半角数字&amp;quot;,&amp;quot;&amp;quot;)); if(n&amp;gt;0)return _.replace(new RegExp(&amp;quot;^(?:[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[^\\n]){0,&amp;quot;+n+&amp;quot;}&amp;quot;,&amp;quot;gm&amp;quot;),&amp;quot;&amp;quot;) }]);&lt;br /&gt;
f.push([&amp;quot;行末から数文字削除...&amp;quot;,&amp;quot;L&amp;quot;,function(_){ //2019/06/01&lt;br /&gt;
  var n=parseInt(Prompt(&amp;quot;行末から削除する字数: ※半角数字&amp;quot;,&amp;quot;&amp;quot;)); if(n&amp;gt;0)return _.replace(new RegExp(&amp;quot;(?:[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[^\\n]){0,&amp;quot;+n+&amp;quot;}$&amp;quot;,&amp;quot;gm&amp;quot;),&amp;quot;&amp;quot;) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==検索/置換==&lt;br /&gt;
&lt;br /&gt;
;ASCII文字を単語検索&lt;br /&gt;
:空白文字などを除く ASCII 印字可能文字 (U+0021～007E) が1文字以上連続する箇所を検索します。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;ASCII文字を単語検索&amp;quot;,&amp;quot;&amp;quot;,function(_,$){ //2017/05/28&lt;br /&gt;
  $.Find(&amp;quot;(?&amp;lt;!\\g&amp;lt;Graph&amp;gt;)(?&amp;lt;Graph&amp;gt;[!-~])+&amp;quot;, meFindReplaceCase+meFindReplaceRegExp+meFindAround+meFindNext) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
;半角カナを単語検索&lt;br /&gt;
:半角カナ類 (ｦ～ｯ ｱ～ﾝ ｡ ｢ ｣ ､ ･ ｰ ﾞ ﾟ) が1文字以上連続する箇所を検索します。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;半角カナを単語検索&amp;quot;,&amp;quot;&amp;quot;,function(_,$){ //2017/05/28&lt;br /&gt;
  $.Find(&amp;quot;(?&amp;lt;!\\g&amp;lt;HKana&amp;gt;)(?&amp;lt;HKana&amp;gt;[｡-ﾟ])+&amp;quot;, meFindReplaceCase+meFindReplaceRegExp+meFindAround+meFindNext) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
;全角英数を単語検索&lt;br /&gt;
:全角英数字 (０～９ Ａ～Ｚ ａ～ｚ) が1文字以上連続する箇所を検索します。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;全角英数を単語検索&amp;quot;,&amp;quot;&amp;quot;,function(_,$){ //2017/05/28&lt;br /&gt;
  $.Find(&amp;quot;(?&amp;lt;!\\g&amp;lt;FAlnm&amp;gt;)(?&amp;lt;FAlnm&amp;gt;[０-９Ａ-Ｚａ-ｚ])+&amp;quot;, meFindReplaceCase+meFindReplaceRegExp+meFindAround+meFindNext) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
;CJK漢字を単語検索&lt;br /&gt;
:CJK (China/Japan/Korea) の漢字が1文字以上連続する箇所を検索します。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;CJK漢字を単語検索&amp;quot;,&amp;quot;&amp;quot;,function(_,$){ //2017/05/28&lt;br /&gt;
  $.Find(&amp;quot;(?&amp;lt;!\\g&amp;lt;Han&amp;gt;\\g&amp;lt;VS&amp;gt;|\\g&amp;lt;Han&amp;gt;)(?:(?&amp;lt;Han&amp;gt;[\\p{Han}])(?&amp;lt;VS&amp;gt;[\\x{FE00}-\\x{FE02}\\x{E0100}-\\x{E01EF}])?)+&amp;quot;, meFindReplaceCase+meFindReplaceRegExp+meFindAround+meFindNext) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;ひらがなを単語検索&lt;br /&gt;
;カタカナを単語検索&lt;br /&gt;
:平仮名/片仮名が1文字以上連続する箇所を検索します。&lt;br /&gt;
:※検索対象となる文字は、下表のとおりです。囲み文字 ㋐ や組み文字 ㍍ は含まれません。&lt;br /&gt;
:{|class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
! !! 種別 !! 文字 !! Shift_JIS !! Unicode !! 備考&lt;br /&gt;
|-&lt;br /&gt;
!rowspan=&amp;quot;3&amp;quot;| 平仮名&amp;lt;br&amp;gt;(かな)&amp;lt;br&amp;gt;89字&lt;br /&gt;
|rowspan=&amp;quot;3&amp;quot;| 全角ひらがな (89字)&lt;br /&gt;
| ぁ ～ ん&amp;lt;br&amp;gt;ゔゕゖ || 0x829F～82F1&amp;lt;br&amp;gt;- || U+3041～3093&amp;lt;br&amp;gt;U+3094～3096 || ※SJIS では ゔゕゖ の3字は保存不可&lt;br /&gt;
|-&lt;br /&gt;
| ゝゞ || 0x8154, 8155 || U+309D, 309E || 踊り字（繰り返し）&lt;br /&gt;
|-&lt;br /&gt;
| ゟ || - || U+309F || 「より」の合字&lt;br /&gt;
|-&lt;br /&gt;
!rowspan=&amp;quot;5&amp;quot;| 片仮名&amp;lt;br&amp;gt;(カナ)&amp;lt;br&amp;gt;164字&lt;br /&gt;
|rowspan=&amp;quot;3&amp;quot;| 全角カタカナ (93字)&lt;br /&gt;
| ァ ～ ヶ&amp;lt;br&amp;gt;ヷヸヹヺ || 0x8340～8396&amp;lt;br&amp;gt;- || U+30A1～30F6&amp;lt;br&amp;gt;U+30F7～30FA || ※SJIS では ヷヸヹヺ の4字は保存不可&lt;br /&gt;
|-&lt;br /&gt;
| ヽヾ || 0x8152, 8153 || U+30FD, 30FE || 踊り字（繰り返し）&lt;br /&gt;
|-&lt;br /&gt;
| ヿ || - || U+30FF || 「コト」の合字&lt;br /&gt;
|-&lt;br /&gt;
| 半角カタカナ (55字) || ｦ ～ ｯ&amp;lt;br&amp;gt;ｱ ～ ﾝ || 0xA6～AF&amp;lt;br&amp;gt;0xB1～DD || U+FF66～FF6F&amp;lt;br&amp;gt;U+FF71～FF9D ||&lt;br /&gt;
|-&lt;br /&gt;
| カタカナ拡張 (16字) || ㇰ ～ ㇿ || - || U+31F0～31FF || アイヌ語表記などに用いる&lt;br /&gt;
|-&lt;br /&gt;
!rowspan=&amp;quot;5&amp;quot;| 記号&amp;lt;br&amp;gt;8字&lt;br /&gt;
|colspan=&amp;quot;5&amp;quot;| &amp;lt;span style=&amp;quot;color:#c00;&amp;quot;&amp;gt;※以下は、&amp;lt;b&amp;gt;仮名の後&amp;lt;/b&amp;gt;に続いて出現する場合のみ検索される。&amp;lt;/span&amp;gt;例＞ 複製゜ー&amp;lt;span style=&amp;quot;background:#b4e4b4;&amp;quot;&amp;gt;コヒ゜ー&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 半角/全角濁点 (2字) || ﾞ ゛ || 0xDE, 814A || U+FF9E, 309B ||&lt;br /&gt;
|-&lt;br /&gt;
| 半角/全角半濁点 (2字) || ﾟ ゜ || 0xDF, 814B || U+FF9F, 309C ||&lt;br /&gt;
|-&lt;br /&gt;
| 結合用濁点/半濁点 (2字) || &amp;amp;#x3099; &amp;amp;#x309A; || - || U+3099, 309A || 結合文字&lt;br /&gt;
|-&lt;br /&gt;
| 半角/全角長音符 (2字) || ｰ ー || 0xB0, 815B || U+FF70, 30FC ||&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;ひらがなを単語検索&amp;quot;,&amp;quot;&amp;quot;,function(_,$){ //2017/05/28&lt;br /&gt;
  $.Find(&amp;quot;(?&amp;lt;!\\g&amp;lt;Kana&amp;gt;\\g&amp;lt;Mark&amp;gt;\\g&amp;lt;Mark&amp;gt;|\\g&amp;lt;Kana&amp;gt;\\g&amp;lt;Mark&amp;gt;|\\g&amp;lt;Kana&amp;gt;)(?:(?&amp;lt;Kana&amp;gt;[ぁ-\\x{3096}ゝゞ\\x{309F}])(?&amp;lt;Mark&amp;gt;[\\x{3099}\\x{309A}゛ﾞ゜ﾟーｰ])*)+&amp;quot;, meFindReplaceCase+meFindReplaceRegExp+meFindAround+meFindNext) }]);&lt;br /&gt;
f.push([&amp;quot;カタカナを単語検索&amp;quot;,&amp;quot;&amp;quot;,function(_,$){ //2017/05/28&lt;br /&gt;
  $.Find(&amp;quot;(?&amp;lt;!\\g&amp;lt;Kana&amp;gt;\\g&amp;lt;Mark&amp;gt;\\g&amp;lt;Mark&amp;gt;|\\g&amp;lt;Kana&amp;gt;\\g&amp;lt;Mark&amp;gt;|\\g&amp;lt;Kana&amp;gt;)(?:(?&amp;lt;Kana&amp;gt;[ァ-\\x{30FA}ヽヾ\\x{30FF}ｦ-ｯｱ-ﾝ\\x{31F0}-\\x{31FF}])(?&amp;lt;Mark&amp;gt;[\\x{3099}\\x{309A}゛ﾞ゜ﾟーｰ])*)+&amp;quot;, meFindReplaceCase+meFindReplaceRegExp+meFindAround+meFindNext) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;CP932依存文字を検索&lt;br /&gt;
:Shift_JIS (CP932) の環境依存文字 (NEC特殊文字・IBM拡張文字・ユーザー定義外字・未定義文字) を検索します。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;CP932依存文字を検索&amp;quot;,&amp;quot;&amp;quot;,function(_,$){ //2017/05/28&lt;br /&gt;
  $.Find(&amp;quot;[纊褜鍈銈蓜俉炻昱棈鋹曻彅丨仡仼伀伃伹佖侒侊侚侔俍偀倢俿倞偆偰偂傔僴僘兊兤冝冾凬刕劜劦勀勛匀匇匤卲厓厲叝﨎咜咊咩哿喆坙坥垬埈埇﨏\\x{FA10}增墲夋奓奛奝奣妤妺孖寀甯寘寬尞岦岺峵崧嵓﨑嵂嵭嶸嶹巐弡弴彧德忞恝悅悊惞惕愠惲愑愷愰憘戓抦揵摠撝擎敎昀昕昻昉昮昞昤晥晗晙\\x{FA12}晳暙暠暲暿曺朎\\x{F929}杦枻桒柀栁桄棏﨓楨﨔榘槢樰橫橆橳橾櫢櫤毖氿汜沆汯泚洄涇浯涖涬淏淸淲淼渹湜渧渼溿澈澵濵瀅瀇瀨炅炫焏焄煜煆煇\\x{FA15}燁燾犱犾猤\\x{FA16}獷玽珉珖珣珒琇珵琦琪琩琮瑢璉璟甁畯皂皜皞皛皦\\x{FA17}睆劯砡硎硤硺礰\\x{FA18}\\x{FA19}\\x{FA1A}禔\\x{FA1B}禛竑竧\\x{FA1C}竫箞\\x{FA1D}絈絜綷綠緖繒罇羡\\x{FA1E}茁荢荿菇菶葈蒴蕓蕙蕫﨟薰\\x{FA20}﨡蠇裵訒訷詹誧誾諟\\x{FA22}諶譓譿賰賴贒赶﨣軏﨤\\x{FA25}遧郞\\x{FA26}鄕鄧釚釗釞釭釮釤釥鈆鈐鈊鈺鉀鈼鉎鉙鉑鈹鉧銧鉷鉸鋧鋗鋙鋐﨧鋕鋠鋓錥錡鋻﨨錞鋿錝錂鍰鍗鎤鏆鏞鏸鐱鑅鑈閒\\x{F9DC}﨩隝隯霳霻靃靍靏靑靕顗顥\\x{FA2A}\\x{FA2B}餧\\x{FA2C}馞驎髙髜魵魲鮏鮱鮻鰀鵰鵫\\x{FA2D}鸙黑①-⑳Ⅰ-Ⅹⅰ-ⅹ㍉㌔㌢㍍㌘㌧㌃㌶㍑㍗㌍㌦㌣㌫㍊㌻㎜㎝㎞㎎㎏㏄㎡〝〟№㏍℡㊤㊥㊦㊧㊨㈱㈲㈹㍾㍽㍼㍻∮∑∟⊿￤＇＂\\x{E000}-\\x{E757}\\x{80}\\x{F8F0}-\\x{F8F3}]&amp;quot;, meFindReplaceCase+meFindReplaceRegExp+meFindAround+meFindNext) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;CJK互換漢字を検索&lt;br /&gt;
:CJK互換漢字 (U+F900～FAD9, 2F800～2FA1D) を検索します（CJK統合漢字扱いの12字 および 未定義の2字は除く）。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;CJK互換漢字を検索&amp;quot;,&amp;quot;&amp;quot;,function(_,$){ //2018/01/15&lt;br /&gt;
  $.Find(&amp;quot;[[^﨎﨏﨑﨓﨔﨟﨡﨣﨤﨧﨨﨩\\x{FA6E}\\x{FA6F}]&amp;amp;&amp;amp;[\\x{F900}-\\x{FAD9}\\x{2F800}-\\x{2FA1D}]]&amp;quot;, meFindReplaceCase+meFindReplaceRegExp+meFindAround+meFindNext) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;サロゲートペアを検索&lt;br /&gt;
:UTF-16において2バイト2個組で1文字を形成する文字 (U+10000～10FFFF) を検索します。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;サロゲートペアを検索&amp;quot;,&amp;quot;&amp;quot;,function(_,$){ //2015/09/30&lt;br /&gt;
  $.Find(&amp;quot;[\\x{10000}-\\x{10FFFF}]&amp;quot;, meFindReplaceCase+meFindReplaceRegExp+meFindAround+meFindNext) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;結合文字列を検索&lt;br /&gt;
:他の文字と組み合わせて1文字を形成する文字列を検索します。&lt;br /&gt;
:※結合文字列や異体字を表示するには、アプリやフォントの対応が必要です。&lt;br /&gt;
:{|class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
!&lt;br /&gt;
!colspan=&amp;quot;4&amp;quot;| ラテン文字&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot;| ひらがな&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot;| 漢字(異体字)&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot;| 囲み文字&lt;br /&gt;
|-&lt;br /&gt;
! 実際の表示&lt;br /&gt;
| ǖ ||colspan=&amp;quot;3&amp;quot;| u&amp;amp;#x308;&amp;amp;#x304;&lt;br /&gt;
| じ ||colspan=&amp;quot;2&amp;quot;| し&amp;amp;#x3099;&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;| 辻&amp;amp;#xE0100;&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;| あ&amp;amp;#x20DE;&lt;br /&gt;
|-&lt;br /&gt;
! 文字の構成&lt;br /&gt;
| ǖ || u||&amp;amp;#x308;||&amp;amp;#x304;&lt;br /&gt;
| じ || し||&amp;amp;#x3099;&lt;br /&gt;
| 辻||&amp;amp;#xE0100;&lt;br /&gt;
| あ||&amp;amp;#x20DE;&lt;br /&gt;
|-&lt;br /&gt;
! Unicode&lt;br /&gt;
| 01D6 || 0075||0308||0304&lt;br /&gt;
| 3058 || 3057||3099&lt;br /&gt;
| 8FBB||E0100&lt;br /&gt;
| 3042||20DE&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;結合文字列を検索&amp;quot;,&amp;quot;&amp;quot;,function(_,$){ //2017/05/28&lt;br /&gt;
  $.Find(&amp;quot;(?:[^\\p{M}\\n]|^)[\\p{M}]+&amp;quot;, meFindReplaceCase+meFindReplaceRegExp+meFindAround+meFindNext) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;選択文字列を検索&lt;br /&gt;
:下記の条件で検索を行います。&lt;br /&gt;
:&amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;※Mery の仕様上、改行や折り返しを含むと検索強調が不完全になります。&amp;lt;/b&amp;gt;&lt;br /&gt;
:{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 検索文字列&lt;br /&gt;
| ※選択文字列&lt;br /&gt;
|-&lt;br /&gt;
! フラグ&lt;br /&gt;
| 大文字と小文字を区別する (meFindReplaceCase)&amp;lt;br&amp;gt;正規表現を使用する (meFindReplaceRegExp)&amp;lt;br&amp;gt;文末まで検索したら文頭に移動する (meFindAround)&amp;lt;br&amp;gt;下/次を検索 (meFindNext)&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;選択文字列を検索&amp;quot;,&amp;quot;s&amp;quot;,function(_,$){ //2019/06/01&lt;br /&gt;
  var acp=$.GetActivePos(),anp=$.GetAnchorPos(),sx=ScrollX,sy=ScrollY; Redraw=false; $.Find(_.replace(/[$()*+.?\[\\\]^{|}]/g,&amp;quot;\\$&amp;amp;&amp;quot;), meFindReplaceCase+meFindReplaceRegExp+meFindAround+meFindNext); $.SetActivePos(acp);$.SetAnchorPos(anp);ScrollX=sx;ScrollY=sy; Redraw=true; }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;選択文字列をすべて削除&lt;br /&gt;
:下記の条件で置換を行い、選択文字列を削除します。&lt;br /&gt;
:{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 検索文字列&lt;br /&gt;
| ※選択文字列&lt;br /&gt;
|-&lt;br /&gt;
! 置換文字列&lt;br /&gt;
| ※空欄&lt;br /&gt;
|-&lt;br /&gt;
! フラグ&lt;br /&gt;
| 大文字と小文字を区別する (meFindReplaceCase)&amp;lt;br&amp;gt;正規表現を使用する (meFindReplaceRegExp)&amp;lt;br&amp;gt;すべて置換 (meReplaceAll)&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;選択文字列をすべて削除&amp;quot;,&amp;quot;s&amp;quot;,function(_,$){ //2019/06/01&lt;br /&gt;
  $.Replace(_.replace(/[$()*+.?\[\\\]^{|}]/g,&amp;quot;\\$&amp;amp;&amp;quot;), &amp;quot;&amp;quot;, meFindReplaceCase+meFindReplaceRegExp+meReplaceAll) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;検索強調をすべて解除&lt;br /&gt;
:[検索]→[検索文字列の強調を解除] をすべての文書で実行します。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;検索強調をすべて解除&amp;quot;,&amp;quot;&amp;quot;,function(){ //2015/03/14&lt;br /&gt;
  for(var ei=0;ei&amp;lt;Editors.Count;ei++){var d=Editors.Item(ei).Documents; for(var i=0;i&amp;lt;d.Count;i++){d.Item(i).HighlightFind=false}} }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;検索結果カウント&lt;br /&gt;
:前回（直前）の検索条件で文書全体を検索し直し、一致した件数をステータスバーに表示します。&lt;br /&gt;
:&amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;※検索条件が複雑なほど、件数が多いほど処理に時間がかかります&amp;lt;/b&amp;gt;（作者の環境では、1000件で約2秒かかりました）。&lt;br /&gt;
:※処理に時間をかけたくない場合は「&amp;lt;b&amp;gt;[[検索ヒット数表示]]&amp;lt;/b&amp;gt;」プラグインの導入をオススメします。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;検索結果カウント&amp;quot;,&amp;quot;&amp;quot;,function(_,$){ //2015/09/30&lt;br /&gt;
  var t=new Date(),n=-1,acp=$.GetActivePos(),anp=$.GetAnchorPos(),sx=ScrollX,sy=ScrollY; Redraw=false; Status=&amp;quot;&amp;quot;; $.StartOfDocument(); do{$.FindRepeat(meFindNext);n++}while(!Status); $.SetActivePos(acp);$.SetAnchorPos(anp);ScrollX=sx;ScrollY=sy; Redraw=true; Status=n+&amp;quot;件の検索結果 (処理時間: &amp;quot;+(new Date()-t)/1000+&amp;quot;秒)&amp;quot; }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==文書情報==&lt;br /&gt;
&lt;br /&gt;
;総字行数カウント&lt;br /&gt;
:総文字数と総表示行数をステータスバーに表示します。&lt;br /&gt;
:表示される数値は「すべて選択」時に表示される字数・行数と同値になります。&lt;br /&gt;
:※サロゲートペアは2文字と数えます。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;総字行数カウント&amp;quot;,&amp;quot;&amp;quot;,function(){ //2019/06/01&lt;br /&gt;
  Status=Document.Text.length+&amp;quot;文字 (&amp;quot;+Document.GetLines(meGetLineView)+&amp;quot;表示行)&amp;quot; }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;文字数カウント(空白は除く)&lt;br /&gt;
:選択範囲または文書全体の文字数（改行/半角空白/全角空白/水平タブは除く）をステータスバーに表示します。&lt;br /&gt;
:※サロゲートペアは1文字と数えます。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;文字数カウント(空白は除く)&amp;quot;,&amp;quot;&amp;quot;,function(_){ //2019/06/01&lt;br /&gt;
  Status=(_||Document.Text).replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,&amp;quot;_&amp;quot;).replace(/[\t\n\r 　]/g,&amp;quot;&amp;quot;).length+&amp;quot;文字 (改行･空白抜き)&amp;quot; }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;ステータスバーの表示をコピー&lt;br /&gt;
:ステータスバーの左端の欄に表示されている文字列をコピーします。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;ステータスバーの表示をコピー&amp;quot;,&amp;quot;&amp;quot;,function(){ //2019/06/01&lt;br /&gt;
  ClipboardData.SetData(Status) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;編集中のファイルのパスをコピー&lt;br /&gt;
;編集中の全ファイルのパスをコピー&lt;br /&gt;
:現在編集中のファイルのパスをクリップボードにコピーします。&lt;br /&gt;
:新規作成ファイルなどパスが存在しない場合は、&amp;lt;無題&amp;gt; の文字がコピーされます。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;編集中のファイルのパスをコピー&amp;quot;,&amp;quot;&amp;quot;,function(){ //2015/03/14&lt;br /&gt;
  ClipboardData.SetData(Document.FullName||&amp;quot;&amp;lt;無題&amp;gt;&amp;quot;) }]);&lt;br /&gt;
f.push([&amp;quot;編集中の全ファイルのパスをコピー&amp;quot;,&amp;quot;&amp;quot;,function(){ //2015/03/14&lt;br /&gt;
  var list=[]; for(var ei=0;ei&amp;lt;Editors.Count;ei++){var d=Editors.Item(ei).Documents; for(var i=0;i&amp;lt;d.Count;i++){list.push(d.Item(i).FullName||&amp;quot;&amp;lt;無題&amp;gt;&amp;quot;)}} ClipboardData.SetData(list.join(&amp;quot;\r\n&amp;quot;)) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==並べ替え==&lt;br /&gt;
&lt;br /&gt;
;★行を昇順／降順並べ(Unicode)&lt;br /&gt;
:Unicode 順に並べ替えます。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;行を昇順並べ(Unicode)&amp;quot;,&amp;quot;L&amp;quot;,function(_){ //2017/06/25&lt;br /&gt;
  return _.replace(/\uFFFF/g,&amp;quot;\uFFFF_&amp;quot;).replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,&amp;quot;\uFFFF$&amp;amp;&amp;quot;).split(&amp;quot;\n&amp;quot;).sort().join(&amp;quot;\n&amp;quot;).replace(/\uFFFF([\uD800-\uDBFF][\uDC00-\uDFFF])/g,&amp;quot;$1&amp;quot;).replace(/\uFFFF_/g,&amp;quot;\uFFFF&amp;quot;) }]);&lt;br /&gt;
f.push([&amp;quot;行を降順並べ(Unicode)&amp;quot;,&amp;quot;L&amp;quot;,function(_){ //2017/06/25&lt;br /&gt;
  return _.replace(/\uFFFF/g,&amp;quot;\uFFFF_&amp;quot;).replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,&amp;quot;\uFFFF$&amp;amp;&amp;quot;).split(&amp;quot;\n&amp;quot;).sort().reverse().join(&amp;quot;\n&amp;quot;).replace(/\uFFFF([\uD800-\uDBFF][\uDC00-\uDFFF])/g,&amp;quot;$1&amp;quot;).replace(/\uFFFF_/g,&amp;quot;\uFFFF&amp;quot;) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;★行を逆順並べ&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;行を逆順並べ&amp;quot;,&amp;quot;L&amp;quot;,function(_){ //2014/10/12&lt;br /&gt;
  return _.split(&amp;quot;\n&amp;quot;).reverse().join(&amp;quot;\n&amp;quot;) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;行をシャッフル&lt;br /&gt;
:ランダムに並べ替えます。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;行をシャッフル&amp;quot;,&amp;quot;L&amp;quot;,function(_){ //2014/10/12&lt;br /&gt;
  var a=_.split(&amp;quot;\n&amp;quot;),i=a.length,j,t; while(i){j=Math.floor(Math.random()*i--); t=a[i];a[i]=a[j];a[j]=t;} return a.join(&amp;quot;\n&amp;quot;) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;行を文字数順並べ&lt;br /&gt;
:文字数の少ない順に並べ替えます。&lt;br /&gt;
:※符号点（コードポイント）の少ない順。結合文字列には対応していません。&lt;br /&gt;
:文字数の多い順に並べ替えたい場合は、&amp;lt;code&amp;gt;a.len-b.len&amp;lt;/code&amp;gt; を &amp;lt;code&amp;gt;b.len-a.len&amp;lt;/code&amp;gt; に書き換えてください。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;行を文字数順並べ&amp;quot;,&amp;quot;L&amp;quot;,function(_){ //2019/06/01&lt;br /&gt;
  var b=_.replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,&amp;quot;_&amp;quot;).split(&amp;quot;\n&amp;quot;),a=_.split(&amp;quot;\n&amp;quot;); for(var i=0;i&amp;lt;a.length;i++){a[i]={len:b[i].length,txt:a[i]}} a.sort(function(a,b){return a.len-b.len}); for(var i=0;i&amp;lt;a.length;i++){a[i]=a[i].txt} return a.join(&amp;quot;\n&amp;quot;) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;数行毎に逆順並べ...&lt;br /&gt;
:選択範囲を指定した行数で区切り、区間ごとに逆順に並べ替えます。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;数行毎に逆順並べ...&amp;quot;,&amp;quot;L&amp;quot;,function(_){ //2019/06/01&lt;br /&gt;
  var n=parseInt(Prompt(&amp;quot;以下の行数毎に逆順並べ: ※半角数字&amp;quot;,&amp;quot;&amp;quot;)); if(n&amp;gt;0)return (_+&amp;quot;\n&amp;quot;).replace(new RegExp(&amp;quot;(?:^.*$\\n){1,&amp;quot;+n+&amp;quot;}&amp;quot;,&amp;quot;gm&amp;quot;),function(s){return s.split(&amp;quot;\n&amp;quot;).reverse().join(&amp;quot;\n&amp;quot;)}).slice(1) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
;数行一組で逆順並べ...&lt;br /&gt;
:選択範囲を指定した行数で一組とし、組単位で逆順に並べ替えます。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;数行一組で逆順並べ...&amp;quot;,&amp;quot;L&amp;quot;,function(_){ //2019/06/01&lt;br /&gt;
  var n=parseInt(Prompt(&amp;quot;以下の行数を一組として逆順並べ: ※半角数字&amp;quot;,&amp;quot;&amp;quot;)); if(n&amp;gt;0)return (_+&amp;quot;\n&amp;quot;).match(new RegExp(&amp;quot;(?:^.*$\\n){1,&amp;quot;+n+&amp;quot;}&amp;quot;,&amp;quot;gm&amp;quot;)).reverse().join(&amp;quot;&amp;quot;).slice(0,-1) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;空行毎に逆順並べ&lt;br /&gt;
:選択範囲を空行（改行のみの行）で区切り、区間ごとに逆順に並べ替えます。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;空行毎に逆順並べ&amp;quot;,&amp;quot;L&amp;quot;,function(_){ //2019/06/01&lt;br /&gt;
  return (_+&amp;quot;\n&amp;quot;).replace(/\n+|[\s\S]*?\n(?=\n|$)/g,function(s){return s.split(&amp;quot;\n&amp;quot;).reverse().join(&amp;quot;\n&amp;quot;)}).slice(1) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
;空行一組で逆順並べ&lt;br /&gt;
:選択範囲を空行区切りで一組とし、組単位で逆順に並べ替えます。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;空行一組で逆順並べ&amp;quot;,&amp;quot;L&amp;quot;,function(_){ //2019/06/01&lt;br /&gt;
  return (_+&amp;quot;\n&amp;quot;).match(/\n+|[\s\S]*?\n(?=\n|$)/g).reverse().join(&amp;quot;&amp;quot;).slice(0,-1) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;指定見出しで逆順並べ...&lt;br /&gt;
:入力した文字列から始まる行を「見出し」とし、見出し単位で逆順に並べ替えます。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;指定見出しで逆順並べ...&amp;quot;,&amp;quot;L&amp;quot;,function(_){ //2019/06/01&lt;br /&gt;
  var p=Prompt(&amp;quot;以下の文字から始まる行を一組として逆順並べ:&amp;quot;,&amp;quot;■&amp;quot;).replace(/[$()*+.?\[\\\]^{|}]/g,&amp;quot;\\$&amp;amp;&amp;quot;); if(p){ var r=(_+&amp;quot;\n&amp;quot;).match(new RegExp(&amp;quot;[\\s\\S]*?\\n(?=&amp;quot;+p+&amp;quot;|$)&amp;quot;,&amp;quot;g&amp;quot;)); if(r[0].indexOf(p)!==0)r.push(r.shift()); return r.reverse().join(&amp;quot;&amp;quot;).slice(0,-1) } }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;※行を逆順並べ系コマンドの比較 （☐ は空白／↵ は改行）&lt;br /&gt;
:{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 例文 !! 数行毎&amp;lt;br&amp;gt;(3行) !! 数行一組&amp;lt;br&amp;gt;(3行)&lt;br /&gt;
!rowspan=&amp;quot;2&amp;quot; width=&amp;quot;6px&amp;quot;|&lt;br /&gt;
! 例文 !! 空行毎 !! 空行一組&lt;br /&gt;
|-&lt;br /&gt;
| 1行目1組&amp;lt;br&amp;gt;2行目&amp;lt;br&amp;gt;3行目&amp;lt;br&amp;gt;4行目2組&amp;lt;br&amp;gt;5行目&amp;lt;br&amp;gt;6行目&amp;lt;br&amp;gt;7行目3組&amp;lt;br&amp;gt;8行目&amp;lt;br&amp;gt;9行目&amp;lt;br&amp;gt;10行目4組&amp;lt;br&amp;gt;11行目&lt;br /&gt;
| 3行目&amp;lt;br&amp;gt;2行目&amp;lt;br&amp;gt;1行目1組&amp;lt;br&amp;gt;6行目&amp;lt;br&amp;gt;5行目&amp;lt;br&amp;gt;4行目2組&amp;lt;br&amp;gt;9行目&amp;lt;br&amp;gt;8行目&amp;lt;br&amp;gt;7行目3組&amp;lt;br&amp;gt;11行目&amp;lt;br&amp;gt;10行目4組&lt;br /&gt;
| 10行目4組&amp;lt;br&amp;gt;11行目&amp;lt;br&amp;gt;7行目3組&amp;lt;br&amp;gt;8行目&amp;lt;br&amp;gt;9行目&amp;lt;br&amp;gt;4行目2組&amp;lt;br&amp;gt;5行目&amp;lt;br&amp;gt;6行目&amp;lt;br&amp;gt;1行目1組&amp;lt;br&amp;gt;2行目&amp;lt;br&amp;gt;3行目&lt;br /&gt;
| 1行目1組↵&amp;lt;br&amp;gt;2行目↵&amp;lt;br&amp;gt;3行目↵&amp;lt;br&amp;gt;↵&amp;lt;br&amp;gt;5行目2組↵&amp;lt;br&amp;gt;6行目↵&amp;lt;br&amp;gt;☐☐↵&amp;lt;br&amp;gt;8行目↵&amp;lt;br&amp;gt;↵&amp;lt;br&amp;gt;10行目3組↵&amp;lt;br&amp;gt;11行目&lt;br /&gt;
| 3行目↵&amp;lt;br&amp;gt;2行目↵&amp;lt;br&amp;gt;1行目1組↵&amp;lt;br&amp;gt;↵&amp;lt;br&amp;gt;8行目↵&amp;lt;br&amp;gt;☐☐↵&amp;lt;br&amp;gt;6行目↵&amp;lt;br&amp;gt;5行目2組↵&amp;lt;br&amp;gt;↵&amp;lt;br&amp;gt;11行目↵&amp;lt;br&amp;gt;10行目3組&lt;br /&gt;
| 10行目3組↵&amp;lt;br&amp;gt;11行目↵&amp;lt;br&amp;gt;↵&amp;lt;br&amp;gt;5行目2組↵&amp;lt;br&amp;gt;6行目↵&amp;lt;br&amp;gt;☐☐↵&amp;lt;br&amp;gt;8行目↵&amp;lt;br&amp;gt;↵&amp;lt;br&amp;gt;1行目1組↵&amp;lt;br&amp;gt;2行目↵&amp;lt;br&amp;gt;3行目&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
;文字を逆順並べ&lt;br /&gt;
:各行の文字を逆順に並べ替えます。&lt;br /&gt;
:例＞ &amp;lt;span style=&amp;quot;background:#bfdfff;&amp;quot;&amp;gt;文字を逆順並べ&amp;lt;/span&amp;gt; → べ並順逆を字文&lt;br /&gt;
:※[http://unicode.org/reports/tr29/ UAX #29] で規定される「拡張書記素クラスタ」に部分的に対応しています。対応していない文字は位置がズレます。&lt;br /&gt;
:* サロゲートペア (U+10000～10FFFF)&lt;br /&gt;
:* 結合文字の一部 (U+0300～6F, 1AB0～FF, 1DC0～FF, 20D0～FF, 3099～A, FE20～F)&lt;br /&gt;
:* 異体字セレクタ (U+180B～D, FE00～F, E0100～EF)&lt;br /&gt;
:* ゼロ幅非接合子/接合子 (U+200C～D)&lt;br /&gt;
:* 絵文字の国旗 (U+1F1E6～FF)&lt;br /&gt;
:* 絵文字の肌色指定 (U+1F3FB～F)&lt;br /&gt;
:* 結合不可の制御文字 (U+0000～1F, 007F～9F, 00AD, 2028～9, FEFF)&lt;br /&gt;
:例＞ &amp;lt;span style=&amp;quot;background:#bfdfff;&amp;quot;&amp;gt;𠮟る／りんこ&amp;amp;#x3099;／tre&amp;amp;#x301;ma&amp;lt;/span&amp;gt; → ame&amp;amp;#x301;rt／こ&amp;amp;#x3099;んり／る𠮟&lt;br /&gt;
:{|class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
! 例文&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|𠮟||る&lt;br /&gt;
!rowspan=&amp;quot;6&amp;quot; width=&amp;quot;6px&amp;quot;|&lt;br /&gt;
|り||ん||colspan=&amp;quot;2&amp;quot;|こ&amp;amp;#x3099;&lt;br /&gt;
!rowspan=&amp;quot;6&amp;quot; width=&amp;quot;6px&amp;quot;|&lt;br /&gt;
|t||r||colspan=&amp;quot;2&amp;quot;|e&amp;amp;#x301;||m||a&lt;br /&gt;
|-&lt;br /&gt;
! Unicode&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|20B9F||308B&lt;br /&gt;
|308A||3093||style=&amp;quot;background:#fe6;&amp;quot;|3053||style=&amp;quot;background:#fcc;&amp;quot;|3099&lt;br /&gt;
|0074||0072||style=&amp;quot;background:#fe6;&amp;quot;|0065||style=&amp;quot;background:#fcc;&amp;quot;|0301||006D||0061&lt;br /&gt;
|-&lt;br /&gt;
! UTF-16&lt;br /&gt;
|style=&amp;quot;background:#fe6;&amp;quot;|D842||style=&amp;quot;background:#fcc;&amp;quot;|DF9F||308B&lt;br /&gt;
|colspan=&amp;quot;4&amp;quot;|※同上&lt;br /&gt;
|colspan=&amp;quot;6&amp;quot;|※同上&lt;br /&gt;
|-&lt;br /&gt;
!rowspan=&amp;quot;3&amp;quot;|実行後&lt;br /&gt;
|る||colspan=&amp;quot;2&amp;quot;|𠮟&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|こ&amp;amp;#x3099;||ん||り&lt;br /&gt;
|a||m||colspan=&amp;quot;2&amp;quot;|e&amp;amp;#x301;||r||t&lt;br /&gt;
|-&lt;br /&gt;
|308B||colspan=&amp;quot;2&amp;quot;|20B9F&lt;br /&gt;
|style=&amp;quot;background:#fe6;&amp;quot;|3053||style=&amp;quot;background:#fcc;&amp;quot;|3099||3093||308A&lt;br /&gt;
|0061||006D||style=&amp;quot;background:#fe6;&amp;quot;|0065||style=&amp;quot;background:#fcc;&amp;quot;|0301||0072||0074&lt;br /&gt;
|-&lt;br /&gt;
|308B||style=&amp;quot;background:#fe6;&amp;quot;|D842||style=&amp;quot;background:#fcc;&amp;quot;|DF9F&lt;br /&gt;
|colspan=&amp;quot;4&amp;quot;|※同上&lt;br /&gt;
|colspan=&amp;quot;6&amp;quot;|※同上&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;文字を逆順並べ&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2017/06/25&lt;br /&gt;
  var X=new RegExp(/[\x00-\x1F\x7F-\x9F\xAD\u2028\u2029\uFEFF]|(?:(?:\uD83C[\uDDE6-\uDDFF]){2}|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\s\S])(?:[\u0300-\u036F\u1AB0-\u1AFF\u1DC0-\u1DFF\u20D0-\u20FF\u3099\u309A\uFE20-\uFE2F\u200C\u200D\u180B-\u180D\uFE00-\uFE0F]|\uDB40[\uDD00-\uDDEF]|\uD83C[\uDFFB-\uDFFF])*/g); return _.replace(/[^\n]+/g,function(s){return s.match(X).reverse().join(&amp;quot;&amp;quot;)}) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;文字をシャッフル&lt;br /&gt;
:各行の文字をランダムに並べ替えます。&lt;br /&gt;
:例＞ &amp;lt;span style=&amp;quot;background:#bfdfff;&amp;quot;&amp;gt;文字をシャッフル&amp;lt;/span&amp;gt; → フ字をャシッル文&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;文字をシャッフル&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2017/06/25&lt;br /&gt;
  var X=new RegExp(/[\x00-\x1F\x7F-\x9F\xAD\u2028\u2029\uFEFF]|(?:(?:\uD83C[\uDDE6-\uDDFF]){2}|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\s\S])(?:[\u0300-\u036F\u1AB0-\u1AFF\u1DC0-\u1DFF\u20D0-\u20FF\u3099\u309A\uFE20-\uFE2F\u200C\u200D\u180B-\u180D\uFE00-\uFE0F]|\uDB40[\uDD00-\uDDEF]|\uD83C[\uDFFB-\uDFFF])*/g); return _.replace(/[^\n]+/g,function(s){var a=s.match(X),i=a.length,j,t; while(i){j=Math.floor(Math.random()*i--); t=a[i];a[i]=a[j];a[j]=t;} return a.join(&amp;quot;&amp;quot;)}) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==字種/数値変換==&lt;br /&gt;
;★半角英数→全角&lt;br /&gt;
;★全角英数→半角&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;半角英数→全角&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2014/02/10&lt;br /&gt;
  return _.replace(/[0-9A-Za-z]/g,function(s){return String.fromCharCode(s.charCodeAt(0)+0xFEE0)}) }]);&lt;br /&gt;
f.push([&amp;quot;全角英数→半角&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2014/02/10&lt;br /&gt;
  return _.replace(/[０-９Ａ-Ｚａ-ｚ]/g,function(s){return String.fromCharCode(s.charCodeAt(0)-0xFEE0)}) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;★半角カナ→全角&lt;br /&gt;
;★全角カナ→半角&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;半角カナ→全角&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2015/03/14&lt;br /&gt;
  return _.replaceBatch([ [&amp;quot;ｳﾞ&amp;quot;,&amp;quot;ヴ&amp;quot;],[&amp;quot;ｶﾞ&amp;quot;,&amp;quot;ガ&amp;quot;],[&amp;quot;ｷﾞ&amp;quot;,&amp;quot;ギ&amp;quot;],[&amp;quot;ｸﾞ&amp;quot;,&amp;quot;グ&amp;quot;],[&amp;quot;ｹﾞ&amp;quot;,&amp;quot;ゲ&amp;quot;],[&amp;quot;ｺﾞ&amp;quot;,&amp;quot;ゴ&amp;quot;],[&amp;quot;ｻﾞ&amp;quot;,&amp;quot;ザ&amp;quot;],[&amp;quot;ｼﾞ&amp;quot;,&amp;quot;ジ&amp;quot;],[&amp;quot;ｽﾞ&amp;quot;,&amp;quot;ズ&amp;quot;],[&amp;quot;ｾﾞ&amp;quot;,&amp;quot;ゼ&amp;quot;],[&amp;quot;ｿﾞ&amp;quot;,&amp;quot;ゾ&amp;quot;],[&amp;quot;ﾀﾞ&amp;quot;,&amp;quot;ダ&amp;quot;],[&amp;quot;ﾁﾞ&amp;quot;,&amp;quot;ヂ&amp;quot;],[&amp;quot;ﾂﾞ&amp;quot;,&amp;quot;ヅ&amp;quot;],[&amp;quot;ﾃﾞ&amp;quot;,&amp;quot;デ&amp;quot;],[&amp;quot;ﾄﾞ&amp;quot;,&amp;quot;ド&amp;quot;],[&amp;quot;ﾊﾞ&amp;quot;,&amp;quot;バ&amp;quot;],[&amp;quot;ﾋﾞ&amp;quot;,&amp;quot;ビ&amp;quot;],[&amp;quot;ﾌﾞ&amp;quot;,&amp;quot;ブ&amp;quot;],[&amp;quot;ﾍﾞ&amp;quot;,&amp;quot;ベ&amp;quot;],[&amp;quot;ﾎﾞ&amp;quot;,&amp;quot;ボ&amp;quot;],[&amp;quot;ﾊﾟ&amp;quot;,&amp;quot;パ&amp;quot;],[&amp;quot;ﾋﾟ&amp;quot;,&amp;quot;ピ&amp;quot;],[&amp;quot;ﾌﾟ&amp;quot;,&amp;quot;プ&amp;quot;],[&amp;quot;ﾍﾟ&amp;quot;,&amp;quot;ペ&amp;quot;],[&amp;quot;ﾎﾟ&amp;quot;,&amp;quot;ポ&amp;quot;],[&amp;quot;｡&amp;quot;,&amp;quot;。&amp;quot;],[&amp;quot;｢&amp;quot;,&amp;quot;「&amp;quot;],[&amp;quot;｣&amp;quot;,&amp;quot;」&amp;quot;],[&amp;quot;､&amp;quot;,&amp;quot;、&amp;quot;],[&amp;quot;･&amp;quot;,&amp;quot;・&amp;quot;],[&amp;quot;ｦ&amp;quot;,&amp;quot;ヲ&amp;quot;],[&amp;quot;ｧ&amp;quot;,&amp;quot;ァ&amp;quot;],[&amp;quot;ｨ&amp;quot;,&amp;quot;ィ&amp;quot;],[&amp;quot;ｩ&amp;quot;,&amp;quot;ゥ&amp;quot;],[&amp;quot;ｪ&amp;quot;,&amp;quot;ェ&amp;quot;],[&amp;quot;ｫ&amp;quot;,&amp;quot;ォ&amp;quot;],[&amp;quot;ｬ&amp;quot;,&amp;quot;ャ&amp;quot;],[&amp;quot;ｭ&amp;quot;,&amp;quot;ュ&amp;quot;],[&amp;quot;ｮ&amp;quot;,&amp;quot;ョ&amp;quot;],[&amp;quot;ｯ&amp;quot;,&amp;quot;ッ&amp;quot;],[&amp;quot;ｰ&amp;quot;,&amp;quot;ー&amp;quot;],[&amp;quot;ｱ&amp;quot;,&amp;quot;ア&amp;quot;],[&amp;quot;ｲ&amp;quot;,&amp;quot;イ&amp;quot;],[&amp;quot;ｳ&amp;quot;,&amp;quot;ウ&amp;quot;],[&amp;quot;ｴ&amp;quot;,&amp;quot;エ&amp;quot;],[&amp;quot;ｵ&amp;quot;,&amp;quot;オ&amp;quot;],[&amp;quot;ｶ&amp;quot;,&amp;quot;カ&amp;quot;],[&amp;quot;ｷ&amp;quot;,&amp;quot;キ&amp;quot;],[&amp;quot;ｸ&amp;quot;,&amp;quot;ク&amp;quot;],[&amp;quot;ｹ&amp;quot;,&amp;quot;ケ&amp;quot;],[&amp;quot;ｺ&amp;quot;,&amp;quot;コ&amp;quot;],[&amp;quot;ｻ&amp;quot;,&amp;quot;サ&amp;quot;],[&amp;quot;ｼ&amp;quot;,&amp;quot;シ&amp;quot;],[&amp;quot;ｽ&amp;quot;,&amp;quot;ス&amp;quot;],[&amp;quot;ｾ&amp;quot;,&amp;quot;セ&amp;quot;],[&amp;quot;ｿ&amp;quot;,&amp;quot;ソ&amp;quot;],[&amp;quot;ﾀ&amp;quot;,&amp;quot;タ&amp;quot;],[&amp;quot;ﾁ&amp;quot;,&amp;quot;チ&amp;quot;],[&amp;quot;ﾂ&amp;quot;,&amp;quot;ツ&amp;quot;],[&amp;quot;ﾃ&amp;quot;,&amp;quot;テ&amp;quot;],[&amp;quot;ﾄ&amp;quot;,&amp;quot;ト&amp;quot;],[&amp;quot;ﾅ&amp;quot;,&amp;quot;ナ&amp;quot;],[&amp;quot;ﾆ&amp;quot;,&amp;quot;ニ&amp;quot;],[&amp;quot;ﾇ&amp;quot;,&amp;quot;ヌ&amp;quot;],[&amp;quot;ﾈ&amp;quot;,&amp;quot;ネ&amp;quot;],[&amp;quot;ﾉ&amp;quot;,&amp;quot;ノ&amp;quot;],[&amp;quot;ﾊ&amp;quot;,&amp;quot;ハ&amp;quot;],[&amp;quot;ﾋ&amp;quot;,&amp;quot;ヒ&amp;quot;],[&amp;quot;ﾌ&amp;quot;,&amp;quot;フ&amp;quot;],[&amp;quot;ﾍ&amp;quot;,&amp;quot;ヘ&amp;quot;],[&amp;quot;ﾎ&amp;quot;,&amp;quot;ホ&amp;quot;],[&amp;quot;ﾏ&amp;quot;,&amp;quot;マ&amp;quot;],[&amp;quot;ﾐ&amp;quot;,&amp;quot;ミ&amp;quot;],[&amp;quot;ﾑ&amp;quot;,&amp;quot;ム&amp;quot;],[&amp;quot;ﾒ&amp;quot;,&amp;quot;メ&amp;quot;],[&amp;quot;ﾓ&amp;quot;,&amp;quot;モ&amp;quot;],[&amp;quot;ﾔ&amp;quot;,&amp;quot;ヤ&amp;quot;],[&amp;quot;ﾕ&amp;quot;,&amp;quot;ユ&amp;quot;],[&amp;quot;ﾖ&amp;quot;,&amp;quot;ヨ&amp;quot;],[&amp;quot;ﾗ&amp;quot;,&amp;quot;ラ&amp;quot;],[&amp;quot;ﾘ&amp;quot;,&amp;quot;リ&amp;quot;],[&amp;quot;ﾙ&amp;quot;,&amp;quot;ル&amp;quot;],[&amp;quot;ﾚ&amp;quot;,&amp;quot;レ&amp;quot;],[&amp;quot;ﾛ&amp;quot;,&amp;quot;ロ&amp;quot;],[&amp;quot;ﾜ&amp;quot;,&amp;quot;ワ&amp;quot;],[&amp;quot;ﾝ&amp;quot;,&amp;quot;ン&amp;quot;],[&amp;quot;ﾞ&amp;quot;,&amp;quot;゛&amp;quot;],[&amp;quot;ﾟ&amp;quot;,&amp;quot;゜&amp;quot;] ]) }]);&lt;br /&gt;
f.push([&amp;quot;全角カナ→半角&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2015/03/14&lt;br /&gt;
  return _.replaceBatch([ [&amp;quot;ヴ&amp;quot;,&amp;quot;ｳﾞ&amp;quot;],[&amp;quot;ガ&amp;quot;,&amp;quot;ｶﾞ&amp;quot;],[&amp;quot;ギ&amp;quot;,&amp;quot;ｷﾞ&amp;quot;],[&amp;quot;グ&amp;quot;,&amp;quot;ｸﾞ&amp;quot;],[&amp;quot;ゲ&amp;quot;,&amp;quot;ｹﾞ&amp;quot;],[&amp;quot;ゴ&amp;quot;,&amp;quot;ｺﾞ&amp;quot;],[&amp;quot;ザ&amp;quot;,&amp;quot;ｻﾞ&amp;quot;],[&amp;quot;ジ&amp;quot;,&amp;quot;ｼﾞ&amp;quot;],[&amp;quot;ズ&amp;quot;,&amp;quot;ｽﾞ&amp;quot;],[&amp;quot;ゼ&amp;quot;,&amp;quot;ｾﾞ&amp;quot;],[&amp;quot;ゾ&amp;quot;,&amp;quot;ｿﾞ&amp;quot;],[&amp;quot;ダ&amp;quot;,&amp;quot;ﾀﾞ&amp;quot;],[&amp;quot;ヂ&amp;quot;,&amp;quot;ﾁﾞ&amp;quot;],[&amp;quot;ヅ&amp;quot;,&amp;quot;ﾂﾞ&amp;quot;],[&amp;quot;デ&amp;quot;,&amp;quot;ﾃﾞ&amp;quot;],[&amp;quot;ド&amp;quot;,&amp;quot;ﾄﾞ&amp;quot;],[&amp;quot;バ&amp;quot;,&amp;quot;ﾊﾞ&amp;quot;],[&amp;quot;ビ&amp;quot;,&amp;quot;ﾋﾞ&amp;quot;],[&amp;quot;ブ&amp;quot;,&amp;quot;ﾌﾞ&amp;quot;],[&amp;quot;ベ&amp;quot;,&amp;quot;ﾍﾞ&amp;quot;],[&amp;quot;ボ&amp;quot;,&amp;quot;ﾎﾞ&amp;quot;],[&amp;quot;パ&amp;quot;,&amp;quot;ﾊﾟ&amp;quot;],[&amp;quot;ピ&amp;quot;,&amp;quot;ﾋﾟ&amp;quot;],[&amp;quot;プ&amp;quot;,&amp;quot;ﾌﾟ&amp;quot;],[&amp;quot;ペ&amp;quot;,&amp;quot;ﾍﾟ&amp;quot;],[&amp;quot;ポ&amp;quot;,&amp;quot;ﾎﾟ&amp;quot;],[&amp;quot;。&amp;quot;,&amp;quot;｡&amp;quot;],[&amp;quot;「&amp;quot;,&amp;quot;｢&amp;quot;],[&amp;quot;」&amp;quot;,&amp;quot;｣&amp;quot;],[&amp;quot;、&amp;quot;,&amp;quot;､&amp;quot;],[&amp;quot;・&amp;quot;,&amp;quot;･&amp;quot;],[&amp;quot;ヲ&amp;quot;,&amp;quot;ｦ&amp;quot;],[&amp;quot;ァ&amp;quot;,&amp;quot;ｧ&amp;quot;],[&amp;quot;ィ&amp;quot;,&amp;quot;ｨ&amp;quot;],[&amp;quot;ゥ&amp;quot;,&amp;quot;ｩ&amp;quot;],[&amp;quot;ェ&amp;quot;,&amp;quot;ｪ&amp;quot;],[&amp;quot;ォ&amp;quot;,&amp;quot;ｫ&amp;quot;],[&amp;quot;ャ&amp;quot;,&amp;quot;ｬ&amp;quot;],[&amp;quot;ュ&amp;quot;,&amp;quot;ｭ&amp;quot;],[&amp;quot;ョ&amp;quot;,&amp;quot;ｮ&amp;quot;],[&amp;quot;ッ&amp;quot;,&amp;quot;ｯ&amp;quot;],[&amp;quot;ー&amp;quot;,&amp;quot;ｰ&amp;quot;],[&amp;quot;ア&amp;quot;,&amp;quot;ｱ&amp;quot;],[&amp;quot;イ&amp;quot;,&amp;quot;ｲ&amp;quot;],[&amp;quot;ウ&amp;quot;,&amp;quot;ｳ&amp;quot;],[&amp;quot;エ&amp;quot;,&amp;quot;ｴ&amp;quot;],[&amp;quot;オ&amp;quot;,&amp;quot;ｵ&amp;quot;],[&amp;quot;カ&amp;quot;,&amp;quot;ｶ&amp;quot;],[&amp;quot;キ&amp;quot;,&amp;quot;ｷ&amp;quot;],[&amp;quot;ク&amp;quot;,&amp;quot;ｸ&amp;quot;],[&amp;quot;ケ&amp;quot;,&amp;quot;ｹ&amp;quot;],[&amp;quot;コ&amp;quot;,&amp;quot;ｺ&amp;quot;],[&amp;quot;サ&amp;quot;,&amp;quot;ｻ&amp;quot;],[&amp;quot;シ&amp;quot;,&amp;quot;ｼ&amp;quot;],[&amp;quot;ス&amp;quot;,&amp;quot;ｽ&amp;quot;],[&amp;quot;セ&amp;quot;,&amp;quot;ｾ&amp;quot;],[&amp;quot;ソ&amp;quot;,&amp;quot;ｿ&amp;quot;],[&amp;quot;タ&amp;quot;,&amp;quot;ﾀ&amp;quot;],[&amp;quot;チ&amp;quot;,&amp;quot;ﾁ&amp;quot;],[&amp;quot;ツ&amp;quot;,&amp;quot;ﾂ&amp;quot;],[&amp;quot;テ&amp;quot;,&amp;quot;ﾃ&amp;quot;],[&amp;quot;ト&amp;quot;,&amp;quot;ﾄ&amp;quot;],[&amp;quot;ナ&amp;quot;,&amp;quot;ﾅ&amp;quot;],[&amp;quot;ニ&amp;quot;,&amp;quot;ﾆ&amp;quot;],[&amp;quot;ヌ&amp;quot;,&amp;quot;ﾇ&amp;quot;],[&amp;quot;ネ&amp;quot;,&amp;quot;ﾈ&amp;quot;],[&amp;quot;ノ&amp;quot;,&amp;quot;ﾉ&amp;quot;],[&amp;quot;ハ&amp;quot;,&amp;quot;ﾊ&amp;quot;],[&amp;quot;ヒ&amp;quot;,&amp;quot;ﾋ&amp;quot;],[&amp;quot;フ&amp;quot;,&amp;quot;ﾌ&amp;quot;],[&amp;quot;ヘ&amp;quot;,&amp;quot;ﾍ&amp;quot;],[&amp;quot;ホ&amp;quot;,&amp;quot;ﾎ&amp;quot;],[&amp;quot;マ&amp;quot;,&amp;quot;ﾏ&amp;quot;],[&amp;quot;ミ&amp;quot;,&amp;quot;ﾐ&amp;quot;],[&amp;quot;ム&amp;quot;,&amp;quot;ﾑ&amp;quot;],[&amp;quot;メ&amp;quot;,&amp;quot;ﾒ&amp;quot;],[&amp;quot;モ&amp;quot;,&amp;quot;ﾓ&amp;quot;],[&amp;quot;ヤ&amp;quot;,&amp;quot;ﾔ&amp;quot;],[&amp;quot;ユ&amp;quot;,&amp;quot;ﾕ&amp;quot;],[&amp;quot;ヨ&amp;quot;,&amp;quot;ﾖ&amp;quot;],[&amp;quot;ラ&amp;quot;,&amp;quot;ﾗ&amp;quot;],[&amp;quot;リ&amp;quot;,&amp;quot;ﾘ&amp;quot;],[&amp;quot;ル&amp;quot;,&amp;quot;ﾙ&amp;quot;],[&amp;quot;レ&amp;quot;,&amp;quot;ﾚ&amp;quot;],[&amp;quot;ロ&amp;quot;,&amp;quot;ﾛ&amp;quot;],[&amp;quot;ワ&amp;quot;,&amp;quot;ﾜ&amp;quot;],[&amp;quot;ン&amp;quot;,&amp;quot;ﾝ&amp;quot;],[&amp;quot;゛&amp;quot;,&amp;quot;ﾞ&amp;quot;],[&amp;quot;゜&amp;quot;,&amp;quot;ﾟ&amp;quot;] ]) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;★全角かな→カナ&lt;br /&gt;
;★全角カナ→かな&lt;br /&gt;
:全角ひらがなと全角カタカナを変換します。&lt;br /&gt;
:ただし、ヴヵヶ → ゔゕゖ の変換は行いません（Shift_JIS では保存できない文字のため）。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;全角かな→カナ&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2014/02/10&lt;br /&gt;
  return _.replace(/[\u3041-\u3096ゝゞ]/g,function(s){return String.fromCharCode(s.charCodeAt(0)+0x60)}) }]);&lt;br /&gt;
f.push([&amp;quot;全角カナ→かな(ヴヵヶ除く)&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2015/02/14&lt;br /&gt;
  return _.replace(/[\u30A1-\u30F3ヽヾ]/g,function(s){return String.fromCharCode(s.charCodeAt(0)-0x60)}) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
:ヴヵヶ → ゔゕゖ の変換も行う場合は、下記の内容に差し替えてください。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;全角カナ→かな&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2014/02/10&lt;br /&gt;
  return _.replace(/[\u30A1-\u30F6ヽヾ]/g,function(s){return String.fromCharCode(s.charCodeAt(0)-0x60)}) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;標準変換&lt;br /&gt;
:マクロ「&amp;lt;b&amp;gt;[[標準変換]]&amp;lt;/b&amp;gt;」を移植（一部改変）したものです。&lt;br /&gt;
:全角英数・全角記号は半角に、半角カナは全角に変換します。&lt;br /&gt;
:{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 文字 !! 変換前&lt;br /&gt;
! 文字 !! 標準変換版&lt;br /&gt;
! 文字 !! テキスト整形版&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| ‘ || 全角左シングルクォート&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| ` || 半角グレーブアクセント&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| &#039; || 半角アポストロフィー/シングルクォート&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| ｀ || 全角グレーブアクセント&lt;br /&gt;
| || ※変換しない&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| ` || 半角グレーブアクセント/バッククォート&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;標準変換&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2015/03/14&lt;br /&gt;
  return _.replaceBatch([ [&amp;quot;　&amp;quot;,&amp;quot; &amp;quot;],[&amp;quot;！&amp;quot;,&amp;quot;!&amp;quot;],[&amp;quot;“&amp;quot;,&#039;&amp;quot;&#039;],[&amp;quot;”&amp;quot;,&#039;&amp;quot;&#039;],[&amp;quot;＃&amp;quot;,&amp;quot;#&amp;quot;],[&amp;quot;＄&amp;quot;,&amp;quot;$&amp;quot;],[&amp;quot;％&amp;quot;,&amp;quot;%&amp;quot;],[&amp;quot;＆&amp;quot;,&amp;quot;&amp;amp;&amp;quot;],[&amp;quot;‘&amp;quot;,&amp;quot;&#039;&amp;quot;],[&amp;quot;’&amp;quot;,&amp;quot;&#039;&amp;quot;],[&amp;quot;（&amp;quot;,&amp;quot;(&amp;quot;],[&amp;quot;）&amp;quot;,&amp;quot;)&amp;quot;],[&amp;quot;＊&amp;quot;,&amp;quot;*&amp;quot;],[&amp;quot;＋&amp;quot;,&amp;quot;+&amp;quot;],[&amp;quot;，&amp;quot;,&amp;quot;,&amp;quot;],[&amp;quot;－&amp;quot;,&amp;quot;-&amp;quot;],[&amp;quot;．&amp;quot;,&amp;quot;.&amp;quot;],[&amp;quot;／&amp;quot;,&amp;quot;/&amp;quot;],[&amp;quot;０&amp;quot;,&amp;quot;0&amp;quot;],[&amp;quot;１&amp;quot;,&amp;quot;1&amp;quot;],[&amp;quot;２&amp;quot;,&amp;quot;2&amp;quot;],[&amp;quot;３&amp;quot;,&amp;quot;3&amp;quot;],[&amp;quot;４&amp;quot;,&amp;quot;4&amp;quot;],[&amp;quot;５&amp;quot;,&amp;quot;5&amp;quot;],[&amp;quot;６&amp;quot;,&amp;quot;6&amp;quot;],[&amp;quot;７&amp;quot;,&amp;quot;7&amp;quot;],[&amp;quot;８&amp;quot;,&amp;quot;8&amp;quot;],[&amp;quot;９&amp;quot;,&amp;quot;9&amp;quot;],[&amp;quot;：&amp;quot;,&amp;quot;:&amp;quot;],[&amp;quot;；&amp;quot;,&amp;quot;;&amp;quot;],[&amp;quot;＜&amp;quot;,&amp;quot;&amp;lt;&amp;quot;],[&amp;quot;＝&amp;quot;,&amp;quot;=&amp;quot;],[&amp;quot;＞&amp;quot;,&amp;quot;&amp;gt;&amp;quot;],[&amp;quot;？&amp;quot;,&amp;quot;?&amp;quot;],[&amp;quot;＠&amp;quot;,&amp;quot;@&amp;quot;],[&amp;quot;Ａ&amp;quot;,&amp;quot;A&amp;quot;],[&amp;quot;Ｂ&amp;quot;,&amp;quot;B&amp;quot;],[&amp;quot;Ｃ&amp;quot;,&amp;quot;C&amp;quot;],[&amp;quot;Ｄ&amp;quot;,&amp;quot;D&amp;quot;],[&amp;quot;Ｅ&amp;quot;,&amp;quot;E&amp;quot;],[&amp;quot;Ｆ&amp;quot;,&amp;quot;F&amp;quot;],[&amp;quot;Ｇ&amp;quot;,&amp;quot;G&amp;quot;],[&amp;quot;Ｈ&amp;quot;,&amp;quot;H&amp;quot;],[&amp;quot;Ｉ&amp;quot;,&amp;quot;I&amp;quot;],[&amp;quot;Ｊ&amp;quot;,&amp;quot;J&amp;quot;],[&amp;quot;Ｋ&amp;quot;,&amp;quot;K&amp;quot;],[&amp;quot;Ｌ&amp;quot;,&amp;quot;L&amp;quot;],[&amp;quot;Ｍ&amp;quot;,&amp;quot;M&amp;quot;],[&amp;quot;Ｎ&amp;quot;,&amp;quot;N&amp;quot;],[&amp;quot;Ｏ&amp;quot;,&amp;quot;O&amp;quot;],[&amp;quot;Ｐ&amp;quot;,&amp;quot;P&amp;quot;],[&amp;quot;Ｑ&amp;quot;,&amp;quot;Q&amp;quot;],[&amp;quot;Ｒ&amp;quot;,&amp;quot;R&amp;quot;],[&amp;quot;Ｓ&amp;quot;,&amp;quot;S&amp;quot;],[&amp;quot;Ｔ&amp;quot;,&amp;quot;T&amp;quot;],[&amp;quot;Ｕ&amp;quot;,&amp;quot;U&amp;quot;],[&amp;quot;Ｖ&amp;quot;,&amp;quot;V&amp;quot;],[&amp;quot;Ｗ&amp;quot;,&amp;quot;W&amp;quot;],[&amp;quot;Ｘ&amp;quot;,&amp;quot;X&amp;quot;],[&amp;quot;Ｙ&amp;quot;,&amp;quot;Y&amp;quot;],[&amp;quot;Ｚ&amp;quot;,&amp;quot;Z&amp;quot;],[&amp;quot;［&amp;quot;,&amp;quot;[&amp;quot;],[&amp;quot;￥&amp;quot;,&amp;quot;\\&amp;quot;],[&amp;quot;］&amp;quot;,&amp;quot;]&amp;quot;],[&amp;quot;＾&amp;quot;,&amp;quot;^&amp;quot;],[&amp;quot;＿&amp;quot;,&amp;quot;_&amp;quot;],[&amp;quot;｀&amp;quot;,&amp;quot;`&amp;quot;],[&amp;quot;ａ&amp;quot;,&amp;quot;a&amp;quot;],[&amp;quot;ｂ&amp;quot;,&amp;quot;b&amp;quot;],[&amp;quot;ｃ&amp;quot;,&amp;quot;c&amp;quot;],[&amp;quot;ｄ&amp;quot;,&amp;quot;d&amp;quot;],[&amp;quot;ｅ&amp;quot;,&amp;quot;e&amp;quot;],[&amp;quot;ｆ&amp;quot;,&amp;quot;f&amp;quot;],[&amp;quot;ｇ&amp;quot;,&amp;quot;g&amp;quot;],[&amp;quot;ｈ&amp;quot;,&amp;quot;h&amp;quot;],[&amp;quot;ｉ&amp;quot;,&amp;quot;i&amp;quot;],[&amp;quot;ｊ&amp;quot;,&amp;quot;j&amp;quot;],[&amp;quot;ｋ&amp;quot;,&amp;quot;k&amp;quot;],[&amp;quot;ｌ&amp;quot;,&amp;quot;l&amp;quot;],[&amp;quot;ｍ&amp;quot;,&amp;quot;m&amp;quot;],[&amp;quot;ｎ&amp;quot;,&amp;quot;n&amp;quot;],[&amp;quot;ｏ&amp;quot;,&amp;quot;o&amp;quot;],[&amp;quot;ｐ&amp;quot;,&amp;quot;p&amp;quot;],[&amp;quot;ｑ&amp;quot;,&amp;quot;q&amp;quot;],[&amp;quot;ｒ&amp;quot;,&amp;quot;r&amp;quot;],[&amp;quot;ｓ&amp;quot;,&amp;quot;s&amp;quot;],[&amp;quot;ｔ&amp;quot;,&amp;quot;t&amp;quot;],[&amp;quot;ｕ&amp;quot;,&amp;quot;u&amp;quot;],[&amp;quot;ｖ&amp;quot;,&amp;quot;v&amp;quot;],[&amp;quot;ｗ&amp;quot;,&amp;quot;w&amp;quot;],[&amp;quot;ｘ&amp;quot;,&amp;quot;x&amp;quot;],[&amp;quot;ｙ&amp;quot;,&amp;quot;y&amp;quot;],[&amp;quot;ｚ&amp;quot;,&amp;quot;z&amp;quot;],[&amp;quot;｛&amp;quot;,&amp;quot;{&amp;quot;],[&amp;quot;｜&amp;quot;,&amp;quot;|&amp;quot;],[&amp;quot;｝&amp;quot;,&amp;quot;}&amp;quot;],[&amp;quot;～&amp;quot;,&amp;quot;~&amp;quot;],[&amp;quot;ｳﾞ&amp;quot;,&amp;quot;ヴ&amp;quot;],[&amp;quot;ｶﾞ&amp;quot;,&amp;quot;ガ&amp;quot;],[&amp;quot;ｷﾞ&amp;quot;,&amp;quot;ギ&amp;quot;],[&amp;quot;ｸﾞ&amp;quot;,&amp;quot;グ&amp;quot;],[&amp;quot;ｹﾞ&amp;quot;,&amp;quot;ゲ&amp;quot;],[&amp;quot;ｺﾞ&amp;quot;,&amp;quot;ゴ&amp;quot;],[&amp;quot;ｻﾞ&amp;quot;,&amp;quot;ザ&amp;quot;],[&amp;quot;ｼﾞ&amp;quot;,&amp;quot;ジ&amp;quot;],[&amp;quot;ｽﾞ&amp;quot;,&amp;quot;ズ&amp;quot;],[&amp;quot;ｾﾞ&amp;quot;,&amp;quot;ゼ&amp;quot;],[&amp;quot;ｿﾞ&amp;quot;,&amp;quot;ゾ&amp;quot;],[&amp;quot;ﾀﾞ&amp;quot;,&amp;quot;ダ&amp;quot;],[&amp;quot;ﾁﾞ&amp;quot;,&amp;quot;ヂ&amp;quot;],[&amp;quot;ﾂﾞ&amp;quot;,&amp;quot;ヅ&amp;quot;],[&amp;quot;ﾃﾞ&amp;quot;,&amp;quot;デ&amp;quot;],[&amp;quot;ﾄﾞ&amp;quot;,&amp;quot;ド&amp;quot;],[&amp;quot;ﾊﾞ&amp;quot;,&amp;quot;バ&amp;quot;],[&amp;quot;ﾋﾞ&amp;quot;,&amp;quot;ビ&amp;quot;],[&amp;quot;ﾌﾞ&amp;quot;,&amp;quot;ブ&amp;quot;],[&amp;quot;ﾍﾞ&amp;quot;,&amp;quot;ベ&amp;quot;],[&amp;quot;ﾎﾞ&amp;quot;,&amp;quot;ボ&amp;quot;],[&amp;quot;ﾊﾟ&amp;quot;,&amp;quot;パ&amp;quot;],[&amp;quot;ﾋﾟ&amp;quot;,&amp;quot;ピ&amp;quot;],[&amp;quot;ﾌﾟ&amp;quot;,&amp;quot;プ&amp;quot;],[&amp;quot;ﾍﾟ&amp;quot;,&amp;quot;ペ&amp;quot;],[&amp;quot;ﾎﾟ&amp;quot;,&amp;quot;ポ&amp;quot;],[&amp;quot;｡&amp;quot;,&amp;quot;。&amp;quot;],[&amp;quot;｢&amp;quot;,&amp;quot;「&amp;quot;],[&amp;quot;｣&amp;quot;,&amp;quot;」&amp;quot;],[&amp;quot;､&amp;quot;,&amp;quot;、&amp;quot;],[&amp;quot;･&amp;quot;,&amp;quot;・&amp;quot;],[&amp;quot;ｦ&amp;quot;,&amp;quot;ヲ&amp;quot;],[&amp;quot;ｧ&amp;quot;,&amp;quot;ァ&amp;quot;],[&amp;quot;ｨ&amp;quot;,&amp;quot;ィ&amp;quot;],[&amp;quot;ｩ&amp;quot;,&amp;quot;ゥ&amp;quot;],[&amp;quot;ｪ&amp;quot;,&amp;quot;ェ&amp;quot;],[&amp;quot;ｫ&amp;quot;,&amp;quot;ォ&amp;quot;],[&amp;quot;ｬ&amp;quot;,&amp;quot;ャ&amp;quot;],[&amp;quot;ｭ&amp;quot;,&amp;quot;ュ&amp;quot;],[&amp;quot;ｮ&amp;quot;,&amp;quot;ョ&amp;quot;],[&amp;quot;ｯ&amp;quot;,&amp;quot;ッ&amp;quot;],[&amp;quot;ｰ&amp;quot;,&amp;quot;ー&amp;quot;],[&amp;quot;ｱ&amp;quot;,&amp;quot;ア&amp;quot;],[&amp;quot;ｲ&amp;quot;,&amp;quot;イ&amp;quot;],[&amp;quot;ｳ&amp;quot;,&amp;quot;ウ&amp;quot;],[&amp;quot;ｴ&amp;quot;,&amp;quot;エ&amp;quot;],[&amp;quot;ｵ&amp;quot;,&amp;quot;オ&amp;quot;],[&amp;quot;ｶ&amp;quot;,&amp;quot;カ&amp;quot;],[&amp;quot;ｷ&amp;quot;,&amp;quot;キ&amp;quot;],[&amp;quot;ｸ&amp;quot;,&amp;quot;ク&amp;quot;],[&amp;quot;ｹ&amp;quot;,&amp;quot;ケ&amp;quot;],[&amp;quot;ｺ&amp;quot;,&amp;quot;コ&amp;quot;],[&amp;quot;ｻ&amp;quot;,&amp;quot;サ&amp;quot;],[&amp;quot;ｼ&amp;quot;,&amp;quot;シ&amp;quot;],[&amp;quot;ｽ&amp;quot;,&amp;quot;ス&amp;quot;],[&amp;quot;ｾ&amp;quot;,&amp;quot;セ&amp;quot;],[&amp;quot;ｿ&amp;quot;,&amp;quot;ソ&amp;quot;],[&amp;quot;ﾀ&amp;quot;,&amp;quot;タ&amp;quot;],[&amp;quot;ﾁ&amp;quot;,&amp;quot;チ&amp;quot;],[&amp;quot;ﾂ&amp;quot;,&amp;quot;ツ&amp;quot;],[&amp;quot;ﾃ&amp;quot;,&amp;quot;テ&amp;quot;],[&amp;quot;ﾄ&amp;quot;,&amp;quot;ト&amp;quot;],[&amp;quot;ﾅ&amp;quot;,&amp;quot;ナ&amp;quot;],[&amp;quot;ﾆ&amp;quot;,&amp;quot;ニ&amp;quot;],[&amp;quot;ﾇ&amp;quot;,&amp;quot;ヌ&amp;quot;],[&amp;quot;ﾈ&amp;quot;,&amp;quot;ネ&amp;quot;],[&amp;quot;ﾉ&amp;quot;,&amp;quot;ノ&amp;quot;],[&amp;quot;ﾊ&amp;quot;,&amp;quot;ハ&amp;quot;],[&amp;quot;ﾋ&amp;quot;,&amp;quot;ヒ&amp;quot;],[&amp;quot;ﾌ&amp;quot;,&amp;quot;フ&amp;quot;],[&amp;quot;ﾍ&amp;quot;,&amp;quot;ヘ&amp;quot;],[&amp;quot;ﾎ&amp;quot;,&amp;quot;ホ&amp;quot;],[&amp;quot;ﾏ&amp;quot;,&amp;quot;マ&amp;quot;],[&amp;quot;ﾐ&amp;quot;,&amp;quot;ミ&amp;quot;],[&amp;quot;ﾑ&amp;quot;,&amp;quot;ム&amp;quot;],[&amp;quot;ﾒ&amp;quot;,&amp;quot;メ&amp;quot;],[&amp;quot;ﾓ&amp;quot;,&amp;quot;モ&amp;quot;],[&amp;quot;ﾔ&amp;quot;,&amp;quot;ヤ&amp;quot;],[&amp;quot;ﾕ&amp;quot;,&amp;quot;ユ&amp;quot;],[&amp;quot;ﾖ&amp;quot;,&amp;quot;ヨ&amp;quot;],[&amp;quot;ﾗ&amp;quot;,&amp;quot;ラ&amp;quot;],[&amp;quot;ﾘ&amp;quot;,&amp;quot;リ&amp;quot;],[&amp;quot;ﾙ&amp;quot;,&amp;quot;ル&amp;quot;],[&amp;quot;ﾚ&amp;quot;,&amp;quot;レ&amp;quot;],[&amp;quot;ﾛ&amp;quot;,&amp;quot;ロ&amp;quot;],[&amp;quot;ﾜ&amp;quot;,&amp;quot;ワ&amp;quot;],[&amp;quot;ﾝ&amp;quot;,&amp;quot;ン&amp;quot;],[&amp;quot;ﾞ&amp;quot;,&amp;quot;゛&amp;quot;],[&amp;quot;ﾟ&amp;quot;,&amp;quot;゜&amp;quot;] ]) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;表外漢字→代替&lt;br /&gt;
:[https://ja.wiktionary.org/wiki/%E8%A1%A8%E5%A4%96%E6%BC%A2%E5%AD%97%E5%AD%97%E4%BD%93%E8%A1%A8%E3%81%AE%E6%BC%A2%E5%AD%97%E4%B8%80%E8%A6%A7 表外漢字字体表] 1022字のうち &amp;lt;span style=&amp;quot;background:#ffee62;&amp;quot;&amp;gt;Shift_JIS (CP932) では保存できない文字40字&amp;lt;/span&amp;gt;を、保存できる文字に置換します。&lt;br /&gt;
:{|class=&amp;quot;wikitable&amp;quot; style=&amp;quot;font:120% &#039;ヒラギノ角ゴ ProN W3&#039;,&#039;ヒラギノ角ゴ ProN&#039;,&#039;メイリオ&#039;,Meiryo,sans-serif;&amp;quot;&lt;br /&gt;
|-style=&amp;quot;background:#ffee62;&amp;quot;&lt;br /&gt;
|啞||焰||鷗||摑||麴||噓||俠||頰||軀||俱||繫||姸||鹼||嚙||攢||𠮟||繡||蔣||醬||蟬||搔||瘦||驒||簞||塡||顚||禱||瀆||吞||囊||剝||潑||醱||屛||幷||麵||萊||屢||沪||蠟&lt;br /&gt;
|-&lt;br /&gt;
|唖||焔||鴎||掴||麹||嘘||侠||頬||躯||倶||繋||妍||鹸||噛||攅||叱||繍||蒋||醤||蝉||掻||痩||騨||箪||填||顛||祷||涜||呑||嚢||剥||溌||醗||屏||并||麺||莱||屡||濾||蝋&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;表外漢字→代替&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2017/06/25&lt;br /&gt;
  return _.replaceBatch([ [&amp;quot;\u555E&amp;quot;,&amp;quot;唖&amp;quot;],[&amp;quot;\u7130&amp;quot;,&amp;quot;焔&amp;quot;],[&amp;quot;\u9DD7&amp;quot;,&amp;quot;鴎&amp;quot;],[&amp;quot;\u6451&amp;quot;,&amp;quot;掴&amp;quot;],[&amp;quot;\u9EB4&amp;quot;,&amp;quot;麹&amp;quot;],[&amp;quot;\u5653&amp;quot;,&amp;quot;嘘&amp;quot;],[&amp;quot;\u4FE0&amp;quot;,&amp;quot;侠&amp;quot;],[&amp;quot;\u9830&amp;quot;,&amp;quot;頬&amp;quot;],[&amp;quot;\u8EC0&amp;quot;,&amp;quot;躯&amp;quot;],[&amp;quot;\u4FF1&amp;quot;,&amp;quot;倶&amp;quot;],[&amp;quot;\u7E6B&amp;quot;,&amp;quot;繋&amp;quot;],[&amp;quot;\u59F8&amp;quot;,&amp;quot;妍&amp;quot;],[&amp;quot;\u9E7C&amp;quot;,&amp;quot;鹸&amp;quot;],[&amp;quot;\u5699&amp;quot;,&amp;quot;噛&amp;quot;],[&amp;quot;\u6522&amp;quot;,&amp;quot;攅&amp;quot;],[&amp;quot;\uD842\uDF9F&amp;quot;,&amp;quot;叱&amp;quot;],[&amp;quot;\u7E61&amp;quot;,&amp;quot;繍&amp;quot;],[&amp;quot;\u8523&amp;quot;,&amp;quot;蒋&amp;quot;],[&amp;quot;\u91AC&amp;quot;,&amp;quot;醤&amp;quot;],[&amp;quot;\u87EC&amp;quot;,&amp;quot;蝉&amp;quot;],[&amp;quot;\u6414&amp;quot;,&amp;quot;掻&amp;quot;],[&amp;quot;\u7626&amp;quot;,&amp;quot;痩&amp;quot;],[&amp;quot;\u9A52&amp;quot;,&amp;quot;騨&amp;quot;],[&amp;quot;\u7C1E&amp;quot;,&amp;quot;箪&amp;quot;],[&amp;quot;\u5861&amp;quot;,&amp;quot;填&amp;quot;],[&amp;quot;\u985A&amp;quot;,&amp;quot;顛&amp;quot;],[&amp;quot;\u79B1&amp;quot;,&amp;quot;祷&amp;quot;],[&amp;quot;\u7006&amp;quot;,&amp;quot;涜&amp;quot;],[&amp;quot;\u541E&amp;quot;,&amp;quot;呑&amp;quot;],[&amp;quot;\u56CA&amp;quot;,&amp;quot;嚢&amp;quot;],[&amp;quot;\u525D&amp;quot;,&amp;quot;剥&amp;quot;],[&amp;quot;\u6F51&amp;quot;,&amp;quot;溌&amp;quot;],[&amp;quot;\u91B1&amp;quot;,&amp;quot;醗&amp;quot;],[&amp;quot;\u5C5B&amp;quot;,&amp;quot;屏&amp;quot;],[&amp;quot;\u5E77&amp;quot;,&amp;quot;并&amp;quot;],[&amp;quot;\u9EB5&amp;quot;,&amp;quot;麺&amp;quot;],[&amp;quot;\u840A&amp;quot;,&amp;quot;莱&amp;quot;],[&amp;quot;\u5C62&amp;quot;,&amp;quot;屡&amp;quot;],[&amp;quot;\u6CAA&amp;quot;,&amp;quot;濾&amp;quot;],[&amp;quot;\u881F&amp;quot;,&amp;quot;蝋&amp;quot;] ]) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;★10→16進数&lt;br /&gt;
:半角数字列を10進数値とみなし、16進数値に変換します。&lt;br /&gt;
:例＞ &amp;lt;span style=&amp;quot;background:#bfdfff;&amp;quot;&amp;gt;291／15／44015&amp;lt;/span&amp;gt; → 123／F／ABEF&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;10→16進数&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2014/05/31&lt;br /&gt;
  return _.replace(/[0-9]+/g,function(s){return Number(s).toString(16).toUpperCase()}) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
;★16→10進数&lt;br /&gt;
:半角英数字列を16進数値とみなし、10進数値に変換します。英字の大小、0x の有無は問いません。&lt;br /&gt;
:例＞ &amp;lt;span style=&amp;quot;background:#bfdfff;&amp;quot;&amp;gt;123／0x0F／abef&amp;lt;/span&amp;gt; → 291／15／44015&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;16→10進数&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2017/06/25&lt;br /&gt;
  return _.replace(/(?:0x)?([0-9a-f]+)/gi,function(_,x){return Number(&amp;quot;0x&amp;quot;+x)}) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;2進接頭辞換算&lt;br /&gt;
:半角数字列を 2&amp;lt;sup&amp;gt;10&amp;lt;/sup&amp;gt; = 1024 の倍量単位 (Ki,Mi,Gi...Yi) に変換します（小数点第3位を四捨五入）。&lt;br /&gt;
:例＞ &amp;lt;span style=&amp;quot;background:#bfdfff;&amp;quot;&amp;gt;1023／1024／54321／1,048,576／1,073,741,824&amp;lt;/span&amp;gt; → 1023／1.00Ki／53.05Ki／1.00Mi／1.00Gi&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;2進接頭辞換算&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2015/03/14&lt;br /&gt;
  var k=1024,p=&amp;quot;?KMGTPEZY&amp;quot;; return _.replace(/[0-9]+(,?[0-9]{3})+/g,function(s){var x=0,n=s.replace(/,/g,&amp;quot;&amp;quot;); if(n&amp;lt;k)return s; while(n&amp;gt;=k&amp;amp;&amp;amp;x&amp;lt;8){n/=k;x++} return n.toFixed(2)+p.charAt(x)+&amp;quot;i&amp;quot;}) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==符号化/復号化==&lt;br /&gt;
&lt;br /&gt;
;URL %エンコード／デコード(UTF-8)&lt;br /&gt;
:URL アドレスに使用されるパーセントエンコーディングの符号化/復号化を行います。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;URL %エンコード(UTF-8)&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2014/02/01&lt;br /&gt;
  return encodeURI(_).replace(/%0D%0A|%0D|%0A/g,&amp;quot;\n&amp;quot;) }]);&lt;br /&gt;
f.push([&amp;quot;URL %デコード(UTF-8)&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2014/02/01&lt;br /&gt;
  return decodeURIComponent(_) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Base64エンコード／デコード(UTF-8)&lt;br /&gt;
:[https://ja.wikipedia.org/wiki/Base64 Base64] 形式の符号化/復号化を行います。&lt;br /&gt;
:※バイナリデータ（画像や音声など）の復号化は、[編集]→[選択範囲の変換]→[Base64デコード] をご利用ください。&lt;br /&gt;
:&amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;注意点&amp;lt;/b&amp;gt;&lt;br /&gt;
:* 改行は LF (0x0A) としてエンコードされます。&lt;br /&gt;
:* A～Z a～z 0～9 + / 以外の文字（改行含む）は除去してからデコードされます。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;Base64エンコード(UTF-8)&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2019/06/01&lt;br /&gt;
  var B=&amp;quot;ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/&amp;quot;.split(&amp;quot;&amp;quot;), asc=unescape(encodeURIComponent(_)), n=asc.length, b64=&amp;quot;&amp;quot;, x; for(var i=0;i&amp;lt;n;){x=(asc.charCodeAt(i++)&amp;lt;&amp;lt;16)|(asc.charCodeAt(i++)&amp;lt;&amp;lt;8)|(asc.charCodeAt(i++)); b64+=B[x&amp;gt;&amp;gt;&amp;gt;18&amp;amp;0x3F]+B[x&amp;gt;&amp;gt;&amp;gt;12&amp;amp;0x3F]+B[x&amp;gt;&amp;gt;&amp;gt;6&amp;amp;0x3F]+B[x&amp;amp;0x3F]} if(n%3)b64=b64.slice(0,n%3-3)+&amp;quot;===&amp;quot;.slice(n%3); return b64 }]);&lt;br /&gt;
f.push([&amp;quot;Base64デコード(UTF-8)&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2019/06/01&lt;br /&gt;
  var B=&amp;quot;ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/&amp;quot;, A={}; for(var i=0;i&amp;lt;B.length;i++){A[B.charAt(i)]=i} var b64=_.replace(/[^A-Za-z0-9+/]/g,&amp;quot;&amp;quot;).split(&amp;quot;&amp;quot;), n=b64.length, asc=&amp;quot;&amp;quot;, x; for(var i=0;i&amp;lt;n;){x=(A[b64[i++]]&amp;lt;&amp;lt;18)|(A[b64[i++]]&amp;lt;&amp;lt;12)|(A[b64[i++]]&amp;lt;&amp;lt;6)|(A[b64[i++]]); asc+=String.fromCharCode(x&amp;gt;&amp;gt;&amp;gt;16&amp;amp;0xFF,x&amp;gt;&amp;gt;&amp;gt;8&amp;amp;0xFF,x&amp;amp;0xFF)} asc=asc.replace(/(?:[\x00-\x7F]|[\xC2-\xDF][\x80-\xBF]|[\xE0-\xEF][\x80-\xBF]{2}|[\xF0-\xF7][\x80-\xBF]{3}|.){1,50}/g,function(asc){return decodeURIComponent(escape(asc))}); if(n%4)asc=asc.slice(0,n%4-4); return asc }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;\uHHHH エンコード／デコード&lt;br /&gt;
:JavaScript などで使用される \uHHHH 形式の変換を行います。※HHHH＝4桁の16進数&lt;br /&gt;
:例＞ &amp;lt;span style=&amp;quot;background:#bfdfff;&amp;quot;&amp;gt;Aわ𩸽&amp;lt;/span&amp;gt; ←→ &amp;lt;span style=&amp;quot;background:#bfdfff;&amp;quot;&amp;gt;\u0041\u308F\uD867\uDE3D&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;\\uHHHH エンコード&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2017/06/25&lt;br /&gt;
  return _.replace(/[^\n]/g,function(s){return &amp;quot;\\u&amp;quot;+(&amp;quot;000&amp;quot;+s.charCodeAt(0).toString(16).toUpperCase()).slice(-4)}) }]);&lt;br /&gt;
f.push([&amp;quot;\\uHHHH デコード&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2014/10/12&lt;br /&gt;
  return _.replace(/\\u([0-9A-Fa-f]{4})/g,function(_,n){return String.fromCharCode(Number(&amp;quot;0x&amp;quot;+n))}) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;\u4H \U8H エンコード／デコード&lt;br /&gt;
:Unicode で使用される \u4H および \U8H 形式の変換を行います。※4H, 8H＝4桁, 8桁の16進数&lt;br /&gt;
:例＞ &amp;lt;span style=&amp;quot;background:#bfdfff;&amp;quot;&amp;gt;Aわ𩸽&amp;lt;/span&amp;gt; ←→ &amp;lt;span style=&amp;quot;background:#bfdfff;&amp;quot;&amp;gt;\u0041\u308F\U00029E3D&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;\\u4H \\U8H エンコード&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2017/06/25&lt;br /&gt;
  return _.replace(/[^\n]+/g,function(s){var r=&amp;quot;&amp;quot;,u,v; for(var i=0;i&amp;lt;s.length;i++){u=s.charCodeAt(i); if(0xD800&amp;lt;=u&amp;amp;&amp;amp;u&amp;lt;=0xDBFF){v=s.charCodeAt(i+1); if(0xDC00&amp;lt;=v&amp;amp;&amp;amp;v&amp;lt;=0xDFFF){i++;u=0x10000+(u-0xD800&amp;lt;&amp;lt;10)+(v-0xDC00);r+=&amp;quot;\\U&amp;quot;+toHex(u,8);continue}} r+=&amp;quot;\\u&amp;quot;+toHex(u,4)} return r}); function toHex(n,d){return (&amp;quot;000&amp;quot;+n.toString(16).toUpperCase()).slice(-d)} }]);&lt;br /&gt;
f.push([&amp;quot;\\u4H \\U8H デコード&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2015/09/30&lt;br /&gt;
  return _.replace(/\\u([0-9A-Fa-f]{4})|\\U([0-9A-Fa-f]{8})/g,function(s,u4,U8){var n=Number(&amp;quot;0x&amp;quot;+(u4||U8)); return (n&amp;lt;=0xFFFF)?String.fromCharCode(n): (n&amp;lt;=0x10FFFF)?String.fromCharCode(n-0x10000&amp;gt;&amp;gt;10|0xD800,n&amp;amp;0x3FF|0xDC00): s}) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;\x{hex} エンコード／デコード&lt;br /&gt;
:Mery の正規表現 (鬼車/鬼雲) などで使用される \x{hex} 形式の変換を行います。※hex＝1～6桁の16進数&lt;br /&gt;
:例＞ &amp;lt;span style=&amp;quot;background:#bfdfff;&amp;quot;&amp;gt;Aわ𩸽&amp;lt;/span&amp;gt; ←→ &amp;lt;span style=&amp;quot;background:#bfdfff;&amp;quot;&amp;gt;\x{41}\x{308f}\x{29e3d}&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;\\x{hex} エンコード&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2017/06/25&lt;br /&gt;
  return _.replace(/[^\n]+/g,function(s){var r=&amp;quot;&amp;quot;,u,v; for(var i=0;i&amp;lt;s.length;i++){u=s.charCodeAt(i); if(0xD800&amp;lt;=u&amp;amp;&amp;amp;u&amp;lt;=0xDBFF){v=s.charCodeAt(i+1); if(0xDC00&amp;lt;=v&amp;amp;&amp;amp;v&amp;lt;=0xDFFF){i++;u=0x10000+(u-0xD800&amp;lt;&amp;lt;10)+(v-0xDC00)}} r+=(&amp;quot;\\x{&amp;quot;+u.toString(16)+&amp;quot;}&amp;quot;)} return r}) }]);&lt;br /&gt;
f.push([&amp;quot;\\x{hex} デコード&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2015/03/14&lt;br /&gt;
  return _.replace(/\\x\{([0-9A-Fa-f]{1,6})\}/g,function(s,n){n=Number(&amp;quot;0x&amp;quot;+n); return (n&amp;lt;=0xFFFF)?String.fromCharCode(n): (n&amp;lt;=0x10FFFF)?String.fromCharCode(n-0x10000&amp;gt;&amp;gt;10|0xD800,n&amp;amp;0x3FF|0xDC00): s}) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;&amp;amp;#dec; エンコード／デコード&lt;br /&gt;
:HTML などで使用される &amp;amp;#dec; 形式の変換を行います。※dec＝1～7桁の10進数&lt;br /&gt;
:例＞ &amp;lt;span style=&amp;quot;background:#bfdfff;&amp;quot;&amp;gt;Aわ𩸽&amp;lt;/span&amp;gt; ←→ &amp;lt;span style=&amp;quot;background:#bfdfff;&amp;quot;&amp;gt;&amp;amp;amp;#65;&amp;amp;amp;#12431;&amp;amp;amp;#171581;&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;&amp;amp;&amp;amp;#dec; エンコード&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2017/06/25&lt;br /&gt;
  return _.replace(/[^\n]+/g,function(s){var r=&amp;quot;&amp;quot;,u,v; for(var i=0;i&amp;lt;s.length;i++){u=s.charCodeAt(i); if(0xD800&amp;lt;=u&amp;amp;&amp;amp;u&amp;lt;=0xDBFF){v=s.charCodeAt(i+1); if(0xDC00&amp;lt;=v&amp;amp;&amp;amp;v&amp;lt;=0xDFFF){i++;u=0x10000+(u-0xD800&amp;lt;&amp;lt;10)+(v-0xDC00)}} r+=(&amp;quot;&amp;amp;#&amp;quot;+u+&amp;quot;;&amp;quot;)} return r}) }]);&lt;br /&gt;
f.push([&amp;quot;&amp;amp;&amp;amp;#dec; デコード&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2015/03/14&lt;br /&gt;
  return _.replace(/&amp;amp;#([0-9]{1,7});/g,function(s,n){n=Number(n); return (n&amp;lt;=0xFFFF)?String.fromCharCode(n): (n&amp;lt;=0x10FFFF)?String.fromCharCode(n-0x10000&amp;gt;&amp;gt;10|0xD800,n&amp;amp;0x3FF|0xDC00): s}) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;&amp;amp;#xHEX; エンコード／デコード&lt;br /&gt;
:HTML などで使用される &amp;amp;#xHEX; 形式の変換を行います。※HEX＝1～6桁の16進数&lt;br /&gt;
:例＞ &amp;lt;span style=&amp;quot;background:#bfdfff;&amp;quot;&amp;gt;Aわ𩸽&amp;lt;/span&amp;gt; ←→ &amp;lt;span style=&amp;quot;background:#bfdfff;&amp;quot;&amp;gt;&amp;amp;amp;#x41;&amp;amp;amp;#x308F;&amp;amp;amp;#x29E3D;&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;&amp;amp;&amp;amp;#xHEX; エンコード&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2017/06/25&lt;br /&gt;
  return _.replace(/[^\n]+/g,function(s){var r=&amp;quot;&amp;quot;,u,v; for(var i=0;i&amp;lt;s.length;i++){u=s.charCodeAt(i); if(0xD800&amp;lt;=u&amp;amp;&amp;amp;u&amp;lt;=0xDBFF){v=s.charCodeAt(i+1); if(0xDC00&amp;lt;=v&amp;amp;&amp;amp;v&amp;lt;=0xDFFF){i++;u=0x10000+(u-0xD800&amp;lt;&amp;lt;10)+(v-0xDC00)}} r+=(&amp;quot;&amp;amp;#x&amp;quot;+u.toString(16).toUpperCase()+&amp;quot;;&amp;quot;)} return r}) }]);&lt;br /&gt;
f.push([&amp;quot;&amp;amp;&amp;amp;#xHEX; デコード&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2017/06/25&lt;br /&gt;
  return _.replace(/&amp;amp;#[Xx]([0-9A-Fa-f]{1,6});/g,function(s,n){n=Number(&amp;quot;0x&amp;quot;+n); return (n&amp;lt;=0xFFFF)?String.fromCharCode(n): (n&amp;lt;=0x10FFFF)?String.fromCharCode(n-0x10000&amp;gt;&amp;gt;10|0xD800,n&amp;amp;0x3FF|0xDC00): s}) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==拡張コード用==&lt;br /&gt;
&lt;br /&gt;
;拡張コード テンプレート&lt;br /&gt;
:拡張コードの雛形を挿入します。コマンドを自作したい場合にご利用ください。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;拡張コード テンプレート&amp;quot;,function(f){ //2019/06/01&lt;br /&gt;
f.push([&amp;quot;コマンド&amp;quot;,&amp;quot;&amp;quot;,function(_,$){&lt;br /&gt;
  $.StartOfLine(); return [&#039;f.push([&amp;quot;コマンド&amp;quot;,&amp;quot;&amp;quot;,function(_,$){\n  &#039; , &#039; }]);\n&#039;] }]);&lt;br /&gt;
f.push([&amp;quot;コマンド s (選択必須)&amp;quot;,&amp;quot;&amp;quot;,function(_,$){&lt;br /&gt;
  $.StartOfLine(); return [&#039;f.push([&amp;quot;コマンド&amp;quot;,&amp;quot;s&amp;quot;,function(_,$){\n  return _.replace(&#039; , &#039;) }]);\n&#039;] }]);&lt;br /&gt;
f.push([&amp;quot;コマンド L (行選択)&amp;quot;,&amp;quot;&amp;quot;,function(_,$){&lt;br /&gt;
  $.StartOfLine(); return [&#039;f.push([&amp;quot;コマンド&amp;quot;,&amp;quot;L&amp;quot;,function(_,$){\n  return _.replace(&#039; , &#039;) }]);\n&#039;] }]);&lt;br /&gt;
f.push([&amp;quot;サブメニュー&amp;quot;,&amp;quot;L&amp;quot;,function(_){&lt;br /&gt;
  return [&#039;f.push([&amp;quot;&#039; , &#039;メニュー&#039; , &#039;&amp;quot;,function(f){\n&#039;+ _ +&#039;\n}]);&#039;] }]);&lt;br /&gt;
f.push([&amp;quot;セパレーター&amp;quot;,&amp;quot;&amp;quot;,function(_,$){&lt;br /&gt;
  $.StartOfLine(); return [&#039;f.push([&amp;quot;--------&amp;quot;]);\n&#039; , &#039;&#039;] }]);&lt;br /&gt;
}]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;replaceBatch 補助&lt;br /&gt;
:[[#replaceBatch メソッド|replaceBatch メソッド]]用の配列作成を補助するコマンド群です。&lt;br /&gt;
:※書式の解析精度は不完全です。検索/置換文字に &amp;lt;code&amp;gt;&amp;quot; &#039; , / \ ]&amp;lt;/code&amp;gt; を含む配列は誤変換する恐れがあります。&lt;br /&gt;
:※書式ミスは考慮していません。誤変換した場合は書式ミスの可能性も疑ってみてください。&lt;br /&gt;
&lt;br /&gt;
;交換 [&amp;quot;a&amp;quot;,&amp;quot;b&amp;quot;] → [&amp;quot;b&amp;quot;,&amp;quot;a&amp;quot;]&lt;br /&gt;
:配列の検索文字列と置換文字列を入れ替えます。正規表現は検索側のみ使用可なので交換しません（例では &amp;lt;code&amp;gt;■,□&amp;lt;/code&amp;gt; のペアが該当）。&lt;br /&gt;
:例＞ &amp;lt;code style=&amp;quot;background:#bfdfff;&amp;quot;&amp;gt;[&amp;quot;●&amp;quot;,&amp;quot;○&amp;quot;],[&#039;▲&#039;,&#039;△&#039;],[/■/g,&amp;quot;□&amp;quot;],[&amp;quot;◆&amp;quot;,&#039;◇&#039;]&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;[&amp;quot;○&amp;quot;,&amp;quot;●&amp;quot;],[&#039;△&#039;,&#039;▲&#039;],[/■/g,&amp;quot;□&amp;quot;],[&#039;◇&#039;,&amp;quot;◆&amp;quot;]&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&#039;交換 [&amp;quot;a&amp;quot;,&amp;quot;b&amp;quot;] → [&amp;quot;b&amp;quot;,&amp;quot;a&amp;quot;]&#039;,&amp;quot;s&amp;quot;,function(_){ //2014/05/31&lt;br /&gt;
  return _.replace(/\[(&amp;quot;[^\\&amp;quot;]*(?:\\.[^\\&amp;quot;]*)*&amp;quot;|&#039;[^\\&#039;]*(?:\\.[^\\&#039;]*)*&#039;),(&amp;quot;[^\\&amp;quot;]*(?:\\.[^\\&amp;quot;]*)*&amp;quot;|&#039;[^\\&#039;]*(?:\\.[^\\&#039;]*)*&#039;)\]/g,&amp;quot;[$2,$1]&amp;quot;) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;分割 [&amp;quot;a&amp;quot;,&amp;quot;b&amp;quot;] → &amp;quot;a&amp;quot; › &amp;quot;b&amp;quot;↵&lt;br /&gt;
;結合 &amp;quot;a&amp;quot; › &amp;quot;b&amp;quot;↵ → [&amp;quot;a&amp;quot;,&amp;quot;b&amp;quot;]&lt;br /&gt;
:配列と TSV 形式を変換します。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&#039;分割 [&amp;quot;a&amp;quot;,&amp;quot;b&amp;quot;] → &amp;quot;a&amp;quot; \u203A &amp;quot;b&amp;quot;\u21B5&#039;,&amp;quot;L&amp;quot;,function(_){ //2017/06/25&lt;br /&gt;
  return _.replace(/,?\[(&amp;quot;[^\\&amp;quot;]*(?:\\.[^\\&amp;quot;]*)*&amp;quot;|&#039;[^\\&#039;]*(?:\\.[^\\&#039;]*)*&#039;|\/.*?\/[gim]*),(&amp;quot;[^\\&amp;quot;]*(?:\\.[^\\&amp;quot;]*)*&amp;quot;|&#039;[^\\&#039;]*(?:\\.[^\\&#039;]*)*&#039;)\],?/g,&amp;quot;\n$1\t$2\n&amp;quot;).replace(/\n\n/g,&amp;quot;\n&amp;quot;) }]);&lt;br /&gt;
f.push([&#039;結合 &amp;quot;a&amp;quot; \u203A &amp;quot;b&amp;quot;\u21B5 → [&amp;quot;a&amp;quot;,&amp;quot;b&amp;quot;]&#039;,&amp;quot;L&amp;quot;,function(_){ //2015/03/14&lt;br /&gt;
  return _.replace(/\n?(((&amp;quot;.*&amp;quot;|&#039;.*&#039;|\/.*\/[gim]*)\t(&amp;quot;.*&amp;quot;|&#039;.*&#039;)\n*)+)/g,function(s,r){return r.replace(/(&amp;quot;.*&amp;quot;|&#039;.*&#039;|\/.*\/[gim]*)\t(&amp;quot;.*&amp;quot;|&#039;.*&#039;)\n*/g,&amp;quot;[$1,$2],&amp;quot;).replace(/,$/,&amp;quot;&amp;quot;)}) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=拡張コード：書式=&lt;br /&gt;
&lt;br /&gt;
==コマンド==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
f.push([&amp;quot;コマンド名&amp;quot;,&amp;quot;オプション&amp;quot;,function(引数){ 処理 }]);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
;オプション&lt;br /&gt;
:{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
| &amp;lt;code&amp;gt;s&amp;lt;/code&amp;gt; || 実行に範囲選択を要求 (require selection)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;c&amp;lt;/code&amp;gt; || 実行にクリップボードを要求 (require clipboard)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;L&amp;lt;/code&amp;gt; || 行選択してから処理 (select Line)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;O&amp;lt;/code&amp;gt; || 非選択時はすべて選択してから処理 (select OR all)&amp;lt;br&amp;gt;※実験的機能（変更・廃止の可能性あり）&lt;br /&gt;
|}&lt;br /&gt;
:複数指定する場合、空白で区切ります。順序は問いません。&amp;lt;br&amp;gt;※仕様上、&amp;lt;code&amp;gt;0-9 A-Z a-z _&amp;lt;/code&amp;gt; 以外の文字ならば区切りと判定されますが、空白を推奨します。&lt;br /&gt;
;引数&lt;br /&gt;
:第1引数に [[マクロリファレンス:Selection_インターフェイス#Text_プロパティ|Document.Selection.Text]] が、&amp;lt;br&amp;gt;第2引数に [[マクロリファレンス:Selection_インターフェイス|Document.Selection]] が渡されます。&lt;br /&gt;
;処理&lt;br /&gt;
:String (文字列) か Array (配列) を return すると、選択範囲を置換してカーソルを移動します。それ以外 (undefined など) の場合は、選択範囲に対し何もしません。&lt;br /&gt;
:なお、処理の途中で選択範囲が変化した場合、変化先で置換が行われます。&lt;br /&gt;
:{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 例 !! 動作&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;quot;abcd&amp;quot;&amp;lt;/code&amp;gt; || abcd に置換後、abcd を選択 = &amp;lt;code&amp;gt;[&amp;quot;&amp;quot;,&amp;quot;abcd&amp;quot;,&amp;quot;&amp;quot;]&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;[&amp;quot;ab&amp;quot;,&amp;quot;cd&amp;quot;]&amp;lt;/code&amp;gt; || abcd に置換後、ab と cd の間に移動&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;[&amp;quot;ab&amp;quot;,&amp;quot;cd&amp;quot;,&amp;quot;&amp;quot;]&amp;lt;/code&amp;gt; || abcd に置換後、cd を選択&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==サブメニュー==&lt;br /&gt;
サブメニューを設けます。サブメニュー内サブメニュー（階層化）も可能です。&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
f.push([&amp;quot;メニュー名&amp;quot;,function(f){&lt;br /&gt;
/* コマンド or サブメニュー or セパレーター */&lt;br /&gt;
}]);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==セパレーター==&lt;br /&gt;
セパレーター（区切り）を設けます。&amp;lt;br&amp;gt;※半角ハイフン &amp;lt;code&amp;gt;-&amp;lt;/code&amp;gt; は何個でも含められますが、他の文字は含められません。&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
f.push([&amp;quot;--------&amp;quot;]);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==replaceBatch メソッド==&lt;br /&gt;
&amp;lt;code&amp;gt;replace&amp;lt;/code&amp;gt; を連鎖させる記法（メソッドチェーン）の省略記法です。&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
f.push([&amp;quot;例 replaceBatch&amp;quot;,&amp;quot;s&amp;quot;,function(_){&lt;br /&gt;
  return _.replaceBatch([ [&amp;quot;ABC&amp;quot;,&amp;quot;DEF&amp;quot;],[&amp;quot;(1)&amp;quot;,&amp;quot;①&amp;quot;],[/GHI/gi,&amp;quot;JKL&amp;quot;] ]) }]);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
上記の処理は、下記と同じ処理になります。&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
f.push([&amp;quot;例 replace&amp;quot;,&amp;quot;s&amp;quot;,function(_){&lt;br /&gt;
  return _.replace(/ABC/g,&amp;quot;DEF&amp;quot;).replace(/\(1\)/g,&amp;quot;①&amp;quot;).replace(/GHI/gi,&amp;quot;JKL&amp;quot;) }]);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== メモ等 ==&lt;br /&gt;
&lt;br /&gt;
*2019/07/11 sukemaru 記&lt;br /&gt;
:本ページ 2019/06/01 版の「[[#Web/HTML]]」の節で &#039;&#039;&#039;&amp;lt;nowiki&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;/pre&amp;gt;&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039; タグで記述された「&amp;amp;&amp;quot;&amp;lt;&amp;gt; ⇔ &amp;amp;xxx;」の [[#実体参照|ソースコード部分]] の表示内容が実体参照変換されていたので、&amp;lt;u&amp;gt;書庫内の JS ファイルの記述とおなじ状態で表示されるように（実体参照文字列が化けないように）&amp;lt;/u&amp;gt; &amp;lt;nowiki&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;/pre&amp;gt;&amp;lt;/nowiki&amp;gt; タグ内のコードの記述を「&amp;amp;」→「&amp;amp;amp;amp;」に書き換えさせていただきました（&#039;&#039;e.g. 「&amp;amp;amp;quot;」 → 「&amp;amp;amp;amp;quot;」&#039;&#039;）。&lt;/div&gt;</summary>
		<author><name>Masme</name></author>
	</entry>
	<entry>
		<id>https://www.haijin-boys.com/wiki/index.php?title=%E8%A1%8C%E4%B8%A6%E3%81%B9%E6%9B%BF%E3%81%88&amp;diff=4893</id>
		<title>行並べ替え</title>
		<link rel="alternate" type="text/html" href="https://www.haijin-boys.com/wiki/index.php?title=%E8%A1%8C%E4%B8%A6%E3%81%B9%E6%9B%BF%E3%81%88&amp;diff=4893"/>
		<updated>2019-12-21T13:14:56Z</updated>

		<summary type="html">&lt;p&gt;Masme: 更新履歴の書式を変更&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;float:right&amp;quot;&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
選択範囲（矩形可）の文字列を比較し、論理行単位で並べ替えるマクロです。&lt;br /&gt;
&lt;br /&gt;
【注意点】&lt;br /&gt;
* 処理速度が遅い上、処理中はCPUをフルに使用します（作者の環境では、1万行の処理に約1～2秒かかりました）。&amp;lt;br&amp;gt;マクロ実行後、ステータスバーに処理時間が表示されますので参考にしてください。&lt;br /&gt;
&lt;br /&gt;
[[ファイル:SortLineBySelection.png]]&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!※全行を&lt;br /&gt;
|&amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;※非選択時に表示。&amp;lt;/b&amp;gt;文書全体が並べ替えの対象になります。&lt;br /&gt;
|-&lt;br /&gt;
!並べ替え(Unicode)&lt;br /&gt;
|Unicode順の並べ替えを実行します。&lt;br /&gt;
|-&lt;br /&gt;
!並べ替え(SJIS風)&lt;br /&gt;
|Shift_JIS風の並べ替えを実行します。→ [[#並べ替え(SJIS風)]]&lt;br /&gt;
|-&lt;br /&gt;
!昇順 - 降順&lt;br /&gt;
|昇順 (A→Z) か降順 (Z→A) かを切り替えます。&lt;br /&gt;
|-&lt;br /&gt;
!文字順 - 数値順&lt;br /&gt;
|半角数字列の並べ方を切り替えます。&amp;lt;br&amp;gt;文字順 (1＜10＜2) は、文字として一字ずつ比較します。&amp;lt;br&amp;gt;数値順 (1＜2＜10) は、非負整数（正の整数）として比較します。→ [[#数値順]]&lt;br /&gt;
|-&lt;br /&gt;
!大文字/小文字を区別する&lt;br /&gt;
|しない場合、大文字を小文字とみなします。&lt;br /&gt;
|-&lt;br /&gt;
!全角/半角英数を区別する&lt;br /&gt;
|しない場合、全角英数を半角とみなします。&lt;br /&gt;
|-&lt;br /&gt;
!半角/全角カナを区別する&lt;br /&gt;
|しない場合、半角カナを全角とみなします。&lt;br /&gt;
|-&lt;br /&gt;
!ひらがな/カタカナを区別する&lt;br /&gt;
|しない場合、ひらがなをカタカナとみなします。&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==ソースコード==&lt;br /&gt;
ダウンロード→ [[メディア:行並べ替え.zip|行並べ替え.zip]] (rev.10)&lt;br /&gt;
&lt;br /&gt;
* 拙作ですがアイコンファイル (行並べ替え.ico) を同梱してあります。&amp;lt;br&amp;gt;Mery 2.4.7 以降の場合、マクロ (行並べ替え.js) と同じフォルダに、&amp;lt;br&amp;gt;Mery 2.4.6 以前の場合、Mery.exe と同じフォルダに、&amp;lt;br&amp;gt;アイコンファイルを配置しておくとツールバーにアイコンが読み込まれます。&lt;br /&gt;
&lt;br /&gt;
==更新履歴==&lt;br /&gt;
[[ファイル:行並べ替え.zip]]&lt;br /&gt;
&lt;br /&gt;
; 2019/04/12 (rev.10)&lt;br /&gt;
* Quit() → break ラベル文に変更。&lt;br /&gt;
*: Chakra エンジンでは Quit() 非対応につき Mery 2.7.0 以降エラーを返す仕様になったため。&lt;br /&gt;
* 安定ソートを明文化し、スクリプトエンジンの実装に依存しないようにした。&lt;br /&gt;
; 2018/04/15 (rev.9)&lt;br /&gt;
* 64 ビット版で動作しない不具合を修正（rev.8 のみの不具合）。&lt;br /&gt;
*: PopupMenu.Add() の Id に負の値を使用しないよう変更。&lt;br /&gt;
; 2017/06/25 (rev.8)&lt;br /&gt;
* アイコンファイルに24x24・32x32・48x48の画像を追加。&lt;br /&gt;
* 非選択時、並べ替え不可 → 文書全体を対象にする仕様に変更。&lt;br /&gt;
* 折り返し行を探査する方法を変更し、高速化（1万表示行で4秒→0.1秒）。&lt;br /&gt;
* 並べ替え実行後、実行範囲を行選択する際、末尾の改行を含めるようにした。&lt;br /&gt;
* 「並べ替え(Shift_JIS風)」→「並べ替え(SJIS風)」に改称。&lt;br /&gt;
* 「辞書順」→「文字順」に改称。&lt;br /&gt;
* 「文字順」→「数値順」に初期設定を変更。&lt;br /&gt;
* 「数値順」で同値の場合、文字順 → 先頭ゼロ比較に変更し、高速化。&lt;br /&gt;
* 「半角/全角英数カナを区別」の対象から&amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;半角カナを除外&amp;lt;/b&amp;gt;し、「全角/半角英数を区別」に変更。&lt;br /&gt;
* 「半角/全角カナを区別」設定を追加。&lt;br /&gt;
* 比較用変換の処理を改造。&lt;br /&gt;
** 索引を「正規表現」と「文字列」の構成に仕様変更。&lt;br /&gt;
&amp;lt;!-- コード変換の処理を charCodeAt() 走査 → match() 配列走査 に変更。 --&amp;gt;&lt;br /&gt;
** 索引の改行文字 [LF] と半角数字 (0～9) の符号位置は変更厳禁だった仕様を解消。&lt;br /&gt;
&amp;lt;!-- U+000D [CR] をデリミタに利用し、コード変換を回避するようにした。 --&amp;gt;&lt;br /&gt;
** 索引の上限字数を 65535 と明文化し、上限以上は処理しないようにした。&lt;br /&gt;
** 数値順の上限桁数が 65519 → 65505 に 14 縮小。&lt;br /&gt;
* &amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;並べ替え(Unicode) 時、サロゲートペアの扱いが変わりました。&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;rev.7 までは、UTF-16順 (U+D7FF～E000 の間) に並びましたが、&amp;lt;br&amp;gt;rev.8 からは、Unicode順 (U+FFFF の次) に並びます。&lt;br /&gt;
* &amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;並べ替え(SJIS風) 時、Shift_JISに無い文字の扱いが変わりました。&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;rev.7 までは、未定義文字 (0xFFFF) に置き換えていましたが、&amp;lt;br&amp;gt;rev.8 からは、Unicode順と同様に並びます。&lt;br /&gt;
; 2015/12/26 (rev.7)&lt;br /&gt;
* アイコンの指定先を &amp;quot;My Macros\行並べ替え.ico&amp;quot; → &amp;quot;行並べ替え.ico&amp;quot; に変更。&lt;br /&gt;
* 矩形選択（始点or終点が左下かつ論理行頭）時、下端の行が範囲から漏れる不具合を修正。&lt;br /&gt;
; 2014/10/12 (rev.6)&lt;br /&gt;
* 「辞書順/数値順」設定を追加。&lt;br /&gt;
* 「半角/全角を区別」の対象から&amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;記号を除外&amp;lt;/b&amp;gt;し、「半角/全角英数カナを区別」に変更。&lt;br /&gt;
*: 半角/全角の対応が定義しづらく、区別の対象となる文字が分かりにくいため。&lt;br /&gt;
* ポップアップメニューにアクセラレータキー（アクセスキー）を割り当て。&lt;br /&gt;
* ポップアップメニューの「半角/全角」「大/小文字」の配置を交換。&lt;br /&gt;
* ポップアップメニューの「大/小文字」「半角/全角」「かな/カナ」をチェックボックス式に変更。&lt;br /&gt;
; 2014/07/27 (rev.5)&lt;br /&gt;
* アイコンファイルを同梱し、読み込むようにした。&lt;br /&gt;
* 並べ替え実行後、実行範囲を行選択するようにした。&lt;br /&gt;
* &amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;矩形選択時、折り返し行が含まれていると、正しく並べ替えられない不具合を修正。&amp;lt;/b&amp;gt;&lt;br /&gt;
*: ただし、折り返し行を探査する処理に時間がかかります（1万表示行で4秒）。&lt;br /&gt;
* rev.4 の処理高速化手法の一部（コード変換）を取り下げ。&lt;br /&gt;
*: マクロの処理速度では大量処理にも限界があるので、可読性を優先しておくことに。&lt;br /&gt;
* 半角/全角変換表の仕様を [&amp;quot;正規表現&amp;quot;,&amp;quot;文字&amp;quot;] → [/正規表現/,&amp;quot;文字&amp;quot;] に変更。&lt;br /&gt;
* 「半角/全角を区別」の対象に ＂ ＇ ＼ の3字を追加。&lt;br /&gt;
* 「大/小文字を区別」の処理を toLowerCase() → toLocaleLowerCase() に変更。&lt;br /&gt;
*: Mery の大文字/小文字変換と同様、OS の言語設定を考慮するようにした。&lt;br /&gt;
* 「かな/カナを区別」の処理を「半角/全角を区別」と同じ仕様に変更（ひらがなが多い場合に高速化）。&lt;br /&gt;
* 「かな/カナを区別」の対象に ゝ ゞ の2字を追加。&lt;br /&gt;
; 2013/09/19 (rev.4) [[ファイル:行並べ替え_r4.zip]]&lt;br /&gt;
* ks 氏の改善策を参考に、高速化（1万行で2秒→1秒）。&lt;br /&gt;
* &amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;並べ替え(Shift_JIS風) 時、Shift_JISに無い文字の扱いが変わりました。&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;rev.3 までは、昇順/降順を問わず最後尾に並びましたが、&amp;lt;br&amp;gt;rev.4 からは、昇順/降順に従います。&lt;br /&gt;
; 2013/09/19 (rev.3) [[ファイル:行並べ替え_r3.zip]]&lt;br /&gt;
* 「半角/全角を区別」設定を追加。&lt;br /&gt;
* 非選択時にエラーが出る不具合を修正。&lt;br /&gt;
*: ポップアップメニューに「並べ替えが行えない」旨を表示するようにした。&lt;br /&gt;
* 並べ替え(Unicode) 時においても Shift_JIS 用の準備をしていたムダを解消。&lt;br /&gt;
; 2013/08/29 (rev.2) [[ファイル:行並べ替え_r2.zip]]&lt;br /&gt;
* ks 氏の改善策を参考に、高速化（1万行で30秒→2秒）。&lt;br /&gt;
* &amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;並べ替え(Unicode) 時、水平タブが空行より前に並ぶバグがあります&amp;lt;/b&amp;gt;（rev.3 で修正）。&lt;br /&gt;
; 2013/08/25 (rev.1)&lt;br /&gt;
* 初版公開。&lt;br /&gt;
&lt;br /&gt;
==仕様==&lt;br /&gt;
&lt;br /&gt;
===並べ替え(SJIS風)===&lt;br /&gt;
Microsoft コードページ932 [http://ja.wikipedia.org/wiki/Microsoft%E3%82%B3%E3%83%BC%E3%83%89%E3%83%9A%E3%83%BC%E3%82%B8932] をベースに、下記の仕様で並べます。&lt;br /&gt;
* NEC特殊 / IBM拡張記号類 &amp;lt;code&amp;gt;①～＂&amp;lt;/code&amp;gt; は、全角記号の次に。&amp;lt;code&amp;gt;㍻&amp;lt;/code&amp;gt;は&amp;lt;code&amp;gt;㍼&amp;lt;/code&amp;gt;の次に並べる。&lt;br /&gt;
* ローマ数字の小文字形 &amp;lt;code&amp;gt;ⅰ～ⅹ&amp;lt;/code&amp;gt; は、大文字形 &amp;lt;code&amp;gt;Ⅰ～Ⅹ&amp;lt;/code&amp;gt; の次に並べる。&lt;br /&gt;
* 未定義文字 (0x80, A0, FD, FE, FF)、ユーザー定義外字 (0xF0A0～F9FC) は非対応。&lt;br /&gt;
* Shift_JIS(CP932)に無い文字は、Unicode順に並べる。&amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;(rev.8以降)&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===数値順===&lt;br /&gt;
半角数字列を非負整数（正の整数）の順に並べます。&lt;br /&gt;
* 負数&amp;lt;code&amp;gt;-12&amp;lt;/code&amp;gt; 小数&amp;lt;code&amp;gt;0.12&amp;lt;/code&amp;gt; 分数&amp;lt;code&amp;gt;1/2&amp;lt;/code&amp;gt; 指数&amp;lt;code&amp;gt;1.2e3&amp;lt;/code&amp;gt; などには対応していません。&lt;br /&gt;
* &amp;lt;b style=&amp;quot;color:#c00;&amp;gt;全角数字&amp;lt;/b&amp;gt;は「全角/半角英数を区別」設定で扱いが変わります。&amp;lt;br&amp;gt;区別する場合、全角数字は対象外となり、文字順になります。&amp;lt;br&amp;gt;区別しない場合、半角数字とみなすため、数値順になります。&lt;br /&gt;
* 同値の場合、先頭ゼロの個数で比較します。例＞ &amp;lt;code&amp;gt;001&amp;lt;/code&amp;gt;＜&amp;lt;code&amp;gt;01&amp;lt;/code&amp;gt;＜&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;。&lt;br /&gt;
* 仕様上、10の65505乗 以上の数値は扱えません。超過した数値同士は文字順で比較されます。&lt;br /&gt;
&lt;br /&gt;
===大文字/小文字を区別しない===&lt;br /&gt;
大文字を小文字とみなして並べます。&lt;br /&gt;
* &amp;lt;code&amp;gt;[ ] \ ^ _&amp;lt;/code&amp;gt; が &amp;lt;code&amp;gt;A&amp;lt;/code&amp;gt; の前に並ぶようになります。&lt;br /&gt;
* ギリシャ文字やローマ数字など、大小が存在する文字も区別しなくなります。&lt;br /&gt;
* 小さい &amp;lt;code&amp;gt;っ ぁ ゃ&amp;lt;/code&amp;gt; など仮名文字は対象外です。&lt;br /&gt;
&lt;br /&gt;
===全角/半角英数を区別しない===&lt;br /&gt;
全角英数 &amp;lt;code&amp;gt;０～９ Ａ～Ｚ ａ～ｚ&amp;lt;/code&amp;gt; を半角とみなして並べます。&lt;br /&gt;
&lt;br /&gt;
===半角/全角カナを区別しない===&lt;br /&gt;
半角カナ類 &amp;lt;code&amp;gt;ｦ～ｯ ｱ～ﾝ ｡ ｢ ｣ ､ ･ ｰ ﾞ ﾟ&amp;lt;/code&amp;gt; を全角とみなして並べます。&lt;br /&gt;
&lt;br /&gt;
===ひらがな/カタカナを区別しない===&lt;br /&gt;
ひらがなをカタカナとみなして並べます。&lt;br /&gt;
* &amp;lt;code&amp;gt;゛ ゜ ゟ&amp;lt;/code&amp;gt; が &amp;lt;code&amp;gt;ぁ&amp;lt;/code&amp;gt; の前に並ぶようになります。&lt;br /&gt;
* &amp;lt;code&amp;gt;ゔ ゕ ゖ&amp;lt;/code&amp;gt; は &amp;lt;code&amp;gt;ヴ ヵ ヶ&amp;lt;/code&amp;gt; とみなすため、Shift_JIS(CP932)に無い文字と扱われなくなります。&lt;br /&gt;
&lt;br /&gt;
==コメント==&lt;br /&gt;
* [http://merysmacro.seesaa.net/article/372975309.html 処理速度の改善を図ってみました]ので，ご参考まで (ks)&lt;br /&gt;
** ありがとうございます。おかげさまで処理速度を大幅に改善することができました。 (masme)&lt;br /&gt;
&lt;br /&gt;
* Mery 64 ビット版だと動作しないようです。マクロの 154, 155 行目ですが、PopupMenu インターフェイスの Add メソッドの Id 引数は UINT_PTR なので正の値を指定してやる必要があります。マクロリファレンスには int と記載しておりましたが間違いでした、申し訳ございません。(kuro)&lt;/div&gt;</summary>
		<author><name>Masme</name></author>
	</entry>
	<entry>
		<id>https://www.haijin-boys.com/wiki/index.php?title=%E3%82%B3%E3%83%A1%E3%83%B3%E3%83%88%E3%83%9E%E3%83%BC%E3%82%AF%E4%BB%98%E3%81%91%E5%A4%96%E3%81%97&amp;diff=4892</id>
		<title>コメントマーク付け外し</title>
		<link rel="alternate" type="text/html" href="https://www.haijin-boys.com/wiki/index.php?title=%E3%82%B3%E3%83%A1%E3%83%B3%E3%83%88%E3%83%9E%E3%83%BC%E3%82%AF%E4%BB%98%E3%81%91%E5%A4%96%E3%81%97&amp;diff=4892"/>
		<updated>2019-12-21T13:10:16Z</updated>

		<summary type="html">&lt;p&gt;Masme: 更新履歴の書式を変更&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= 手石 版 (2014/03) =&lt;br /&gt;
コメントマークの付け外しをするマクロです。&amp;lt;br&amp;gt;&lt;br /&gt;
js 以外の拡張子に対応させる時は、最後の関数に追加してください。&lt;br /&gt;
&lt;br /&gt;
== 更新履歴 ==&lt;br /&gt;
* 2013/03/28&lt;br /&gt;
** 無題のときに対応しました。&lt;br /&gt;
* 2014/03/22&lt;br /&gt;
** できるだけ短くしてみました。&lt;br /&gt;
&lt;br /&gt;
== ソースコード ==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
// コメントマーク.js&lt;br /&gt;
// 行頭コメントマークを付けたり外したり。&lt;br /&gt;
// 空白文字の後ろにあっても外す。つけるときは行頭に。&lt;br /&gt;
&lt;br /&gt;
var sel = Editor.ActiveDocument.Selection;&lt;br /&gt;
var ty = sel.GetTopPointY( mePosLogical );&lt;br /&gt;
var bx = sel.GetBottomPointX( mePosLogical );&lt;br /&gt;
var by = sel.GetBottomPointY( mePosLogical );&lt;br /&gt;
if ( bx == 1 &amp;amp;&amp;amp; ty != by ){ by--; };&lt;br /&gt;
sel.SetActivePoint( mePosLogical, 1, ty, false );&lt;br /&gt;
sel.SetActivePoint( mePosLogical, 1, by+1, true );&lt;br /&gt;
&lt;br /&gt;
var mark = commentMark();&lt;br /&gt;
var reg = new RegExp( &amp;quot;^([ \t]*&amp;quot; + mark + &amp;quot;\\s?)?(?=.)&amp;quot;, &amp;quot;mg&amp;quot; );&lt;br /&gt;
mark += &amp;quot; &amp;quot;;&lt;br /&gt;
&lt;br /&gt;
sel.Text = sel.Text.replace( reg, function( s0, s1 ){ return ( s1 == undefined )? mark : &amp;quot;&amp;quot; } );&lt;br /&gt;
&lt;br /&gt;
function commentMark(){&lt;br /&gt;
	switch( Document.Mode.toLowerCase() ){&lt;br /&gt;
	case &amp;quot;text&amp;quot; : return &amp;quot;//&amp;quot;;&lt;br /&gt;
	case &amp;quot;javascript&amp;quot; : return &amp;quot;//&amp;quot;;&lt;br /&gt;
	case &amp;quot;tex&amp;quot; : return &amp;quot;%&amp;quot;;&lt;br /&gt;
	case &amp;quot;ruby&amp;quot; : return &amp;quot;#&amp;quot;;&lt;br /&gt;
	default : return Prompt( &amp;quot;コメントマーク？&amp;quot;, &amp;quot;//&amp;quot;);&lt;br /&gt;
	};&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= masme 版 =&lt;br /&gt;
マクロ「[[テキスト整形]]」の「行頭 // を挿入/削除」を独立・改造したものです。&amp;lt;br&amp;gt;&lt;br /&gt;
論理行頭にコメント文字が有れば削除（アンコメント）し、無ければ挿入（コメントアウト）します。&lt;br /&gt;
&lt;br /&gt;
* 空白行（改行/半角空白/水平タブのみの行）はコメントアウトしないようにしました。&lt;br /&gt;
* 初期設定では、インデントされたコメント文字には対応していません。&amp;lt;br&amp;gt;「indent」変数を「false」から「true」に書き換えると、手石 版のように行頭空白後のコメント文字も削除するようになります。&amp;lt;br&amp;gt;インデントへの対応は、手石 版と同様に削除限定です。挿入するときは論理行頭になります。&lt;br /&gt;
* 編集モードによる定義切替は、マクロ「[[Eclipse風コメントアウト]]」を参考にしました。&lt;br /&gt;
&lt;br /&gt;
== 更新履歴 ==&lt;br /&gt;
; 2019/06/01&lt;br /&gt;
* コメント文字を付け外しした次の行に変更行の印がつかないようにした。&lt;br /&gt;
*: 末尾の改行（次の行頭）を範囲に含めず書き換えるように変更。&lt;br /&gt;
; 2016/02/28&lt;br /&gt;
* 編集モードによる定義切替が正常に機能していないミスを修正。&lt;br /&gt;
; 2015/02/14&lt;br /&gt;
* 特殊文字があると誤動作する不具合を再修正。&lt;br /&gt;
; 2015/02/14&lt;br /&gt;
* 「行コメント文字の定義」に正規表現の特殊文字があると誤動作する不具合を修正。&lt;br /&gt;
* 矩形選択（始点or終点が左下かつ論理行頭）時、下端の行が範囲から漏れる不具合を修正。&lt;br /&gt;
* テキストの処理方法を変更。&lt;br /&gt;
; 2014/02/22&lt;br /&gt;
* 初版公開。&lt;br /&gt;
&lt;br /&gt;
== ソースコード ==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
//■行コメントのアン・アウト&lt;br /&gt;
//　2014/02/11-2019/06/01&lt;br /&gt;
//・行頭にコメント文字が有れば削除し、無ければ挿入する。空白行には挿入しない。&lt;br /&gt;
&lt;br /&gt;
//■行コメント文字の定義 ●初期値=&amp;quot;//&amp;quot;&lt;br /&gt;
var comment = &amp;quot;//&amp;quot;;&lt;br /&gt;
//■インデントされたコメント文字も削除(true:する/false:しない) ●初期値=false&lt;br /&gt;
var indent = false ? &amp;quot;[ \t]*&amp;quot; : &amp;quot;&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
//▼編集モードによる定義切替&lt;br /&gt;
comment = (function(){&lt;br /&gt;
  switch (Document.Mode.toLowerCase()) {&lt;br /&gt;
  case &amp;quot;bat&amp;quot;:&lt;br /&gt;
    return &amp;quot;::&amp;quot;;&lt;br /&gt;
  case &amp;quot;c#&amp;quot;:&lt;br /&gt;
  case &amp;quot;c++&amp;quot;:&lt;br /&gt;
  case &amp;quot;javascript&amp;quot;:&lt;br /&gt;
    return &amp;quot;//&amp;quot;;&lt;br /&gt;
  case &amp;quot;ini&amp;quot;:&lt;br /&gt;
  case &amp;quot;python&amp;quot;:&lt;br /&gt;
  case &amp;quot;ruby&amp;quot;:&lt;br /&gt;
    return &amp;quot;#&amp;quot;;&lt;br /&gt;
  case &amp;quot;visualbasic&amp;quot;:&lt;br /&gt;
  case &amp;quot;vbscript&amp;quot;:&lt;br /&gt;
    return &amp;quot;&#039;&amp;quot;;&lt;br /&gt;
  default:&lt;br /&gt;
    return comment;&lt;br /&gt;
  }&lt;br /&gt;
}());&lt;br /&gt;
&lt;br /&gt;
var Sel = Document.Selection;&lt;br /&gt;
var ty = Sel.GetTopPointY(mePosLogical);&lt;br /&gt;
var by = Sel.GetBottomPointY(mePosLogical);&lt;br /&gt;
var bx = Sel.GetBottomPointX(mePosLogical);&lt;br /&gt;
var nn =(Sel.Text.match(/\n/g)||[]).length;&lt;br /&gt;
if (bx===1 &amp;amp;&amp;amp; nn&amp;lt;=by-ty &amp;amp;&amp;amp; nn) by--; //末尾改行対策&lt;br /&gt;
Sel.SetActivePoint(mePosLogical, 1, by);&lt;br /&gt;
Sel.EndOfLine(false, mePosLogical);&lt;br /&gt;
Sel.SetAnchorPoint(mePosLogical, 1, ty);&lt;br /&gt;
Sel.Text = Sel.Text.replace(new RegExp(&lt;br /&gt;
  &amp;quot;^(&amp;quot;+indent+&amp;quot;)&amp;quot;+comment.replace(/[$()*+.?[\\\]^{|}]/g,&amp;quot;\\$&amp;amp;&amp;quot;); //コメント行&lt;br /&gt;
 +&amp;quot;|^(?![ \t]*$)&amp;quot; ,&amp;quot;gm&amp;quot;) //空白行でない行頭&lt;br /&gt;
 ,function($0,$indent){return $0 ? $indent : comment}&lt;br /&gt;
);&lt;br /&gt;
Sel.SetActivePoint(mePosLogical,1,by+1);&lt;br /&gt;
Sel.SetAnchorPoint(mePosLogical,1,ty);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= sukemaru 版 =&lt;br /&gt;
「行コメント」マクロ （コメントマーク付けはずし sukemaru版）&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;ダウンロード&#039;&#039;&#039;　&amp;gt;&amp;gt; 「[[メディア:行コメント.zip|行コメント.zip]]」（アイコン入り）　最終更新 2019/12/01&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
masme 版の設定用変数　&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot; style=&amp;quot;white-space:nowrap&amp;quot; inline&amp;gt;indent = true&amp;lt;/syntaxhighlight&amp;gt;　の状態（インデントされたコメントマークを削除できる）を下地として、&#039;&#039;&#039;インデントされた行の字下げ位置にあわせてコメントアウト&#039;&#039;&#039; できるようにしました。&amp;lt;br&amp;gt;&lt;br /&gt;
選択範囲内のもっとも字下げの少ない位置にあわせてコメントマークを付けられるので、コードブロックのコメントアウトのさいに各行の先頭位置が少しだけ分かりやすくなります。&lt;br /&gt;
:* 空白行（タブ文字／半角スペースのみの行と、完全な空行）は無視します。&lt;br /&gt;
:* 編集モードによるコメントマーク定義の切り替えは、masme版 (2016/02/28) のコードを翻案しています。&lt;br /&gt;
:* 設定変数 comment の定義に &amp;quot;&#039;&#039;&#039;&amp;gt;&amp;lt;span style=&amp;quot;color:#c0c0c0;&amp;quot;&amp;gt;␣&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;quot; などの引用マークを指定すると、引用マークの付けはずしにも利用できます。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
「コメントアウトするときは　&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot; inline style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;// コメント&amp;lt;/syntaxhighlight&amp;gt; 　や　&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot; inline style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;&amp;gt; コメント&amp;lt;/syntaxhighlight&amp;gt;　のようにうしろに半角スペースを入れたいけれど、拾い物のコード内やコピペした文章内の半角スペースなしのコメント行　&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot; inline style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;//コメント&amp;lt;/syntaxhighlight&amp;gt;　や　&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot; inline style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;&amp;gt;コメント&amp;lt;/syntaxhighlight&amp;gt;　も手軽にアンコメントしたい」という使い方も想定しています。&lt;br /&gt;
:* コメントマークの定義の末尾に「半角スペース×１」がついている状態をデフォルト状態にしてあります（初期値も編集モードごとの個別定義も）。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
選択範囲が１行内の場合は、選択範囲の先頭位置で コメントアウト／アンコメント できますので、&#039;&#039;&#039;行の途中からのインラインコメントアウト&#039;&#039;&#039;ができます。&lt;br /&gt;
:* 選択範囲の先頭が空白文字なら字下げオプションに準じて処理します。&lt;br /&gt;
:* 行の途中から１行内の　&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot; inline style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;// インラインコメント部分&amp;lt;/syntaxhighlight&amp;gt;　を範囲選択している状態で Ctrl キーを押しながらマクロを実行した場合は、選択範囲の先頭のコメントマークを削除します（アンコメント）。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;warningbox&amp;quot;&amp;gt;&lt;br /&gt;
このマクロは、pizz 氏作成の「[[GetKeyState.exe(キー状態取得実行ファイル)]]」で機能を拡張できます。&amp;lt;br&amp;gt; マクロライブラリから ZIP ファイルをダウンロードして &#039;&#039;&#039;Mery\Macros&#039;&#039;&#039; フォルダに解凍してください。&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Ctrl キー&#039;&#039;&#039;を押しながら実行したときは、コメントアウト状態の反転ではなく、選択範囲をふくむ行全体を &#039;&#039;&#039;強制的にコメントアウト&#039;&#039;&#039; します。&lt;br /&gt;
:* &amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot; inline style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;// コメント行&amp;lt;/syntaxhighlight&amp;gt;　を含むコードブロックをまとめてコメントアウトするさいに、既存の　&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot; inline style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;// コメント行&amp;lt;/syntaxhighlight&amp;gt;　を　&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot; inline style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;// // 二重にコメントアウト&amp;lt;/syntaxhighlight&amp;gt;　できます。&lt;br /&gt;
:* &amp;lt;span style=&amp;quot;color:#c00;&amp;quot;&amp;gt;強制コメントアウトでコメントマークを挿入する位置は、基本的に &#039;&#039;&#039;行頭&#039;&#039;&#039; に限定されます。&amp;lt;/span&amp;gt;&lt;br /&gt;
:: ※ 設定項目で　&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot; inline style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;inLineEnable = true;&amp;lt;/syntaxhighlight&amp;gt;　の場合は、選択範囲が１行内のときに選択範囲の先頭位置で強制コメントアウトします。&lt;br /&gt;
:* 「GetKeyState.exe」を導入している場合、Ctrl キーの押し下げ状態でマクロの機能を切り替えるので、このマクロに &#039;&#039;&#039;ショートカットキー&#039;&#039;&#039; を割り当てる場合は、「Ctrl キーをふくむキーパターン」と「Ctrl キーをふくまないキーパターン」の２つを登録する必要があります。&lt;br /&gt;
:: e.g.1 「Ctrl + /」キー  と  「Alt + /」キー&lt;br /&gt;
:: e.g.2 「Ctrl + Alt + /」キー  と  「Alt + /」キー&lt;br /&gt;
:: ※ ツールバーアイコンやメニューから実行するときも、Ctrl キーを押し下げながらのクリックにより強制コメントアウトモードになります。&lt;br /&gt;
:* 「GetKeyState.exe」を導入してない場合でも、&amp;quot;強制コメントアウト&amp;quot; 以外の機能はそのまま使用できます。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;2019/11/10 22:40&#039;&#039;&#039; &amp;lt;br&amp;gt;&lt;br /&gt;
ブックマーク行のあるドキュメント／選択範囲でこのマクロを実行しても、ブックマーク状態を保持できるようにしました。&lt;br /&gt;
:* &amp;lt;span style=&amp;quot;color:#c00;&amp;quot;&amp;gt;&#039;&#039;&#039;Mery ver 2.8.6&#039;&#039;&#039; でブックマークを正常に保持できることを確認してあります。&amp;lt;/span&amp;gt;&lt;br /&gt;
:: それ以前のバージョンでは、Mery 本体側のブックマーク機能の仕様が安定していないので、ブックマークを正しく復元できないことがあります。&lt;br /&gt;
:: ※ Mery ver 2.8.x でブックマークの探索や再設定の処理が速くなったので、文書全体のブックマーク行番号を保存 → JavaScript の replace() メソッドでコメントアウト／アンコメント → ブックマークをクリア → 保存したブックマーク情報で復元 という処理に変更しました （ver 2.6.x や 2.7.x の Mery では十分な速度が出なかったり、ブックマークの復元処理がうまくいかないことがあったりするかもしれません）。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
▼ &#039;&#039;&#039;注意事項&#039;&#039;&#039; (仕様上の制限) ▼&lt;br /&gt;
&lt;br /&gt;
* 動作モードの優先順位&lt;br /&gt;
:# Ctrl キーを押しながらの強制コメントアウト（行の先頭で強制コメントアウト）&lt;br /&gt;
:# インラインコメントアウト／アンコメント（行の途中からのコメントアウト）&lt;br /&gt;
:# 字下げオプションに応じたコメントアウト／アンコメントのトグル（反転）&lt;br /&gt;
&lt;br /&gt;
* 字下げルールが「半角スペースのみ または タブ文字のみである」か、混在する場合には「半角スペースとタブ文字の出現順序が同じである」という前提になっています。タブ文字ひとつを半角スペースひとつと同じように数え、表示上の幅で評価しません。&lt;br /&gt;
: 半角スペースとタブ文字が不規則に混在しているなら、字下げオプションの変数を　&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot; inline style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;indentMode = 0 &amp;lt;/syntaxhighlight&amp;gt;　または　&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot; inline style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;indentMode = 1 &amp;lt;/syntaxhighlight&amp;gt;　にして使ってください。手石･masme版と同様に行の先頭でコメントアウトします。&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;GetKeyState&amp;quot; を導入しない場合は、コメントアウトの状態を&#039;&#039;&#039;反転&#039;&#039;&#039;させるだけのマクロとなり、&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot; inline style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;// コメントアウトされている行&amp;lt;/syntaxhighlight&amp;gt;　を二重にコメントアウトすることはできなくなります。&lt;br /&gt;
: 字下げオプションの設定値が 0 でも、行頭１文字目にコメントマークがある行は、かならずアンコメントされます。&lt;br /&gt;
&lt;br /&gt;
* コメントマークの定義が　&amp;quot;&#039;&#039;&#039;&amp;gt;&#039;&#039;&#039;&amp;quot;　または　&amp;quot;&#039;&#039;&#039;&amp;gt;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#c0c0c0;&amp;quot;&amp;gt;␣&amp;lt;/span&amp;gt;&amp;quot;　のときに、行頭が 「&#039;&#039;&#039;&amp;gt;&amp;gt;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#c0c0c0;&amp;quot;&amp;gt;␣&amp;lt;/span&amp;gt;」 の行で連続実行すると、以下のように作用します。&lt;br /&gt;
::* １回目: さいしょの　&amp;quot;&#039;&#039;&#039;&amp;gt;&#039;&#039;&#039;&amp;quot;　を削除 （アンコメント）&lt;br /&gt;
::* ２回目: つぎの　&amp;quot;&#039;&#039;&#039;&amp;gt;&#039;&#039;&#039;&amp;quot;　または　&amp;quot;&#039;&#039;&#039;&amp;gt;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#c0c0c0;&amp;quot;&amp;gt;␣&amp;lt;/span&amp;gt;&amp;quot;　を削除 （アンコメント）&lt;br /&gt;
::* ３回目: 先頭に　&amp;quot;&#039;&#039;&#039;&amp;gt;&#039;&#039;&#039;&amp;quot;　または　&amp;quot;&#039;&#039;&#039;&amp;gt;&#039;&#039;&#039;&amp;lt;span style=&amp;quot;color:#c0c0c0;&amp;quot;&amp;gt;␣&amp;lt;/span&amp;gt;&amp;quot;　を追加 （コメントアウト）&lt;br /&gt;
:: &amp;lt;span style=&amp;quot;color:#c00;&amp;quot;&amp;gt;この場合、連続で実行しても アンコメント／コメントアウト トグルによる元の状態への復元はできません。&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* コメントマーク末尾の半角空白 あり/なし の差分について。&lt;br /&gt;
:* &amp;lt;span style=&amp;quot;color:#c00&amp;quot;&amp;gt;コメントマーク定義の末尾につける空白は半角スペース１文字しか想定していません。&amp;lt;/span&amp;gt;&lt;br /&gt;
:* コメントマークの定義文字列に「正規表現のメタ文字」が含まれていても大丈夫なはずですが、保証はいたしかねます。&lt;br /&gt;
:* もしも誤動作などで使いづらくなってしまうことがあった場合は、設定項目 &amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot; inline style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;var varEnable = true;&amp;lt;/syntaxhighlight&amp;gt; の &amp;quot;&#039;&#039;true&#039;&#039;&amp;quot; を &amp;quot;&#039;&#039;false&#039;&#039;&amp;quot; にしてください。&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:#c00;&amp;quot;&amp;gt; コメント定義の先頭には空白文字をつけないでください。&amp;lt;/span&amp;gt;&lt;br /&gt;
: 行コメント文字の変数　&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot; inline style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;comment = &amp;quot;hoge&amp;quot;;&amp;lt;/syntaxhighlight&amp;gt;　の先頭が空白文字だとアンコメントできなくなるので、先頭の空白文字は無視します。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
▼ &#039;&#039;&#039;使用例&#039;&#039;&#039; ▼&lt;br /&gt;
&lt;br /&gt;
※コメントマークの定義文字列: &amp;quot;&#039;&#039;&#039;//&amp;lt;span style=&amp;quot;color:#c0c0c0;&amp;quot;&amp;gt;␣&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;height:30em; overflow:auto;&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;例０-１&#039;&#039;&#039;. 字下げに非対応だと…&lt;br /&gt;
: ※ indentMode = &#039;&#039;&#039;0&#039;&#039;&#039;;  varEnable = false;  のばあい&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
//comment 0     =&amp;gt;  |// //comment 0     =&amp;gt;  |//comment 0   &lt;br /&gt;
// comment 1    =&amp;gt;  |comment 1          =&amp;gt;  |// comment 1  &lt;br /&gt;
  // comment 2  =&amp;gt;  |//  // comment 2   =&amp;gt;  |  // comment 2&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;例０-２&#039;&#039;&#039;. 字下げには非対応でも…	&lt;br /&gt;
: ※ indentMode = &#039;&#039;&#039;0&#039;&#039;&#039;;  varEnable = &#039;&#039;&#039;true&#039;&#039;&#039;;  (sukemaru版 独自拡張)&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
//comment 0     =&amp;gt;  |comment 0          =&amp;gt;  |// comment 0  &lt;br /&gt;
// comment 1    =&amp;gt;  |comment 1          =&amp;gt;  |// comment 1  &lt;br /&gt;
  // comment 2  =&amp;gt;  |//  // comment 2   =&amp;gt;  |  // comment 2&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;例１-１&#039;&#039;&#039;. ６行まとめて選択すると…&lt;br /&gt;
: ※ indentMode = &#039;&#039;&#039;1&#039;&#039;&#039;;  varEnable = false;  (従来版とおなじ動作)&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
//comment 0     =&amp;gt;  |// //comment 0     =&amp;gt;  |//comment 0   &lt;br /&gt;
// comment 1    =&amp;gt;  |comment 1          =&amp;gt;  |// comment 1  &lt;br /&gt;
  // comment 2  =&amp;gt;  |  comment 2        =&amp;gt;  |//   comment 2&lt;br /&gt;
  hoge          =&amp;gt;  |//   hoge          =&amp;gt;  |  hoge        &lt;br /&gt;
    fuga        =&amp;gt;  |//     fuga        =&amp;gt;  |    fuga      &lt;br /&gt;
      piyo      =&amp;gt;  |//       piyo      =&amp;gt;  |      piyo    &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;例１-２&#039;&#039;&#039;. ６行まとめて選択でも…&lt;br /&gt;
: ※ indentMode = &#039;&#039;&#039;1&#039;&#039;&#039;;  varEnable = &#039;&#039;&#039;true&#039;&#039;&#039;;  (sukemaru版 独自拡張)&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
//comment 0     =&amp;gt;  |comment 0          =&amp;gt;  |// comment 0  &lt;br /&gt;
// comment 1    =&amp;gt;  |comment 1          =&amp;gt;  |// comment 1  &lt;br /&gt;
  // comment 2  =&amp;gt;  |  comment 2        =&amp;gt;  |//   comment 2&lt;br /&gt;
  hoge          =&amp;gt;  |//   hoge          =&amp;gt;  |  hoge        &lt;br /&gt;
    fuga        =&amp;gt;  |//     fuga        =&amp;gt;  |    fuga      &lt;br /&gt;
      piyo      =&amp;gt;  |//       piyo      =&amp;gt;  |      piyo    &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;例２-１&#039;&#039;&#039;. 下３行だけを選択すれば…&lt;br /&gt;
: ※ indentMode = &#039;&#039;&#039;2&#039;&#039;&#039; or &#039;&#039;&#039;3&#039;&#039;&#039;;  (sukemaru版 独自拡張)&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
//comment 0     =&amp;gt;  |//comment 0        =&amp;gt;  |//comment 0   &lt;br /&gt;
// comment 1    =&amp;gt;  |// comment 1       =&amp;gt;  |// comment 1  &lt;br /&gt;
  // comment 2  =&amp;gt;  |  // comment 2     =&amp;gt;  |  // comment 2&lt;br /&gt;
  hoge          =&amp;gt;  |  // hoge          =&amp;gt;  |  hoge        &lt;br /&gt;
    fuga        =&amp;gt;  |  //   fuga        =&amp;gt;  |    fuga      &lt;br /&gt;
      piyo      =&amp;gt;  |  //     piyo      =&amp;gt;  |      piyo    &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;例２-２&#039;&#039;&#039;. 下４行を選択だと…&lt;br /&gt;
: ※ indentMode = &#039;&#039;&#039;2&#039;&#039;&#039; or &#039;&#039;&#039;3&#039;&#039;&#039;;  (sukemaru版 独自拡張)&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
//comment 0     =&amp;gt;  |//comment 0        =&amp;gt;  |//comment 0   &lt;br /&gt;
// comment 1    =&amp;gt;  |// comment 1       =&amp;gt;  |// comment 1  &lt;br /&gt;
  // comment 2  =&amp;gt;  |  comment 2        =&amp;gt;  |  // comment 2&lt;br /&gt;
  hoge          =&amp;gt;  |  // hoge          =&amp;gt;  |  hoge        &lt;br /&gt;
    fuga        =&amp;gt;  |  //   fuga        =&amp;gt;  |    fuga      &lt;br /&gt;
      piyo      =&amp;gt;  |  //     piyo      =&amp;gt;  |      piyo    &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;例３&#039;&#039;&#039;. ６行まとめて選択しても、コメントアウトとアンコメントで別々の先頭位置を使うこともできる&lt;br /&gt;
: ※ indentMode = &#039;&#039;&#039;3&#039;&#039;&#039;;  varEnable = &#039;&#039;&#039;true&#039;&#039;&#039;;  (sukemaru版 独自拡張)&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
//comment 0     =&amp;gt;  |comment 0          =&amp;gt;  |// comment 0  &lt;br /&gt;
// comment 1    =&amp;gt;  |comment 1          =&amp;gt;  |// comment 1  &lt;br /&gt;
  // comment 2  =&amp;gt;  |  comment 2        =&amp;gt;  |//   comment 2&lt;br /&gt;
  hoge          =&amp;gt;  |  // hoge          =&amp;gt;  |  hoge        &lt;br /&gt;
    fuga        =&amp;gt;  |  //   fuga        =&amp;gt;  |    fuga      &lt;br /&gt;
      piyo      =&amp;gt;  |  //     piyo      =&amp;gt;  |      piyo    &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;例４&#039;&#039;&#039;. 一応、こういうこともできる&lt;br /&gt;
: ※ indentMode = &#039;&#039;&#039;4&#039;&#039;&#039;;  varEnable = true;  (sukemaru版 独自拡張)&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
//comment 0     =&amp;gt;  |comment 0          =&amp;gt;  |// comment 0  &lt;br /&gt;
// comment 1    =&amp;gt;  |comment 1          =&amp;gt;  |// comment 1  &lt;br /&gt;
  // comment 2  =&amp;gt;  |  comment 2        =&amp;gt;  |  // comment 2&lt;br /&gt;
  hoge          =&amp;gt;  |  // hoge          =&amp;gt;  |  hoge        &lt;br /&gt;
    fuga        =&amp;gt;  |    // fuga        =&amp;gt;  |    fuga      &lt;br /&gt;
      piyo      =&amp;gt;  |      // piyo      =&amp;gt;  |      piyo    &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;例５&#039;&#039;&#039;. コードブロックをまとめて強制的にコメントアウトするなら&lt;br /&gt;
: ※ &#039;&#039;&#039;Ctrl キー&#039;&#039;&#039;を押しながらマクロを実行  (sukemaru版 独自拡張)&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
//comment 0     =&amp;gt;  |// //comment 0     =&amp;gt;  |//comment 0   &lt;br /&gt;
// comment 1    =&amp;gt;  |// // comment 1    =&amp;gt;  |// comment 1  &lt;br /&gt;
  // comment 2  =&amp;gt;  |//   // comment 2  =&amp;gt;  |  // comment 2&lt;br /&gt;
  hoge          =&amp;gt;  |//   hoge          =&amp;gt;  |  hoge        &lt;br /&gt;
   fuga         =&amp;gt;  |//     fuga        =&amp;gt;  |    fuga      &lt;br /&gt;
     piyo       =&amp;gt;  |//       piyo      =&amp;gt;  |      piyo    &lt;br /&gt;
&amp;lt;/source&amp;gt; &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ソースコード ==&lt;br /&gt;
&#039;&#039;&#039;ダウンロードページ&#039;&#039;&#039;　&amp;gt;&amp;gt; 「[[ファイル:行コメント.zip|行コメント.zip]]」（アイコン入り）&amp;lt;br&amp;gt;&lt;br /&gt;
（最終更新 2019/12/01) &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot; style=&amp;quot;height:80em; overflow:auto;&amp;quot;&amp;gt;&lt;br /&gt;
#title = &amp;quot;行コメント&amp;quot;&lt;br /&gt;
#tooltip = &amp;quot;コメントマーク付けはずし&amp;quot;&lt;br /&gt;
#icon = &amp;quot;double-slash[2].ico&amp;quot;&lt;br /&gt;
// #tooltip = &amp;quot;Ctrl: 強制コメントアウト&amp;quot;&lt;br /&gt;
// #icon = &amp;quot;Mery用 マテリアルデザインっぽいアイコン.icl&amp;quot;,215&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * --------------------------------------------------------------&lt;br /&gt;
 * 「コメントマーク付け外し」マクロ &lt;br /&gt;
 *   Orginal created by 手石 &amp;amp; masme, 2013/03/28 - 2019/06/01 &lt;br /&gt;
 * 「行コメント」マクロ （sukemaru版）&lt;br /&gt;
 *   Modified by sukemaru, 2018/10/28 - 2019/12/01&lt;br /&gt;
 * --------------------------------------------------------------&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
var start = new Date();&lt;br /&gt;
var d = editor.ActiveDocument;&lt;br /&gt;
&lt;br /&gt;
var $ctrl = 0;&lt;br /&gt;
var gks = editor.FullName.replace( /[^\\]+$/i , &amp;quot;&amp;quot; )&lt;br /&gt;
        + &amp;quot;Macros\\GetKeyState.exe&amp;quot;;&lt;br /&gt;
if ( new ActiveXObject( &amp;quot;Scripting.FileSystemObject&amp;quot; ).FileExists( gks ) ) {&lt;br /&gt;
  var WshShell = new ActiveXObject( &amp;quot;WScript.Shell&amp;quot; );&lt;br /&gt;
  // Ctrl キーの状態を取得&lt;br /&gt;
  $ctrl = WshShell.Run( &#039;&amp;quot;&#039; + gks + &#039;&amp;quot; ctrl&#039;, 0, true );&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// ---------- ▼ 設定項目 ▼ ---------- //&lt;br /&gt;
&lt;br /&gt;
// ● 行の途中にある選択範囲をコメントアウトするか？&lt;br /&gt;
var inLineEnable = true;	// (※初期値 true )&lt;br /&gt;
  /**&lt;br /&gt;
   * true  ならインラインコメントアウトする&lt;br /&gt;
   * false ならインラインコメントアウトしない&lt;br /&gt;
   */&lt;br /&gt;
&lt;br /&gt;
// ● 字下げされたコメントマークも削除するか？&lt;br /&gt;
var mode = 3;	// (※初期値 3 )&lt;br /&gt;
  /**&lt;br /&gt;
   * mode = 0; なら 追加／削除 する位置は「常に行頭」のみ&lt;br /&gt;
   * ※ 1 ～ 4  なら字下げされたコメントマークも削除する。&lt;br /&gt;
   * 追加する位置は以下のとおり。&lt;br /&gt;
   * mode = 1; なら「常に先頭」にコメントマークを追加する&lt;br /&gt;
   * ※ 2 ～ 4  なら追加する位置は字下げに対応可。&lt;br /&gt;
   * mode = 2; なら追加と削除で同じ判定基準の先頭位置検出をする&lt;br /&gt;
   * mode = 3; なら追加と削除で別々の判定基準の先頭位置検出をする&lt;br /&gt;
   * mode = 4; なら「常に各行の字下げ位置」にあわせてコメントマークを追加する&lt;br /&gt;
   */&lt;br /&gt;
&lt;br /&gt;
// ◆ コメントマーク末尾に空白つきで定義しているときに、末尾空白のないコメントマークも削除するか？&lt;br /&gt;
var varEnable = true;	// (※初期値 true )&lt;br /&gt;
  /**&lt;br /&gt;
   * varEnable = true  なら削除する&lt;br /&gt;
   * varEnable = false なら削除しない&lt;br /&gt;
   *   コメントマーク comment を末尾に空白なしで定義した場合は無視する。&lt;br /&gt;
   */&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
// ■ 行コメント文字の定義  (※初期値  &amp;quot;// &amp;quot; )&lt;br /&gt;
var comment = &amp;quot;// &amp;quot;;&lt;br /&gt;
&lt;br /&gt;
// ▼ コメントマークの定義切替  ▼&lt;br /&gt;
comment = ( function() {&lt;br /&gt;
&lt;br /&gt;
  // ▼ 拡張子による定義切り替え ▼&lt;br /&gt;
  if ( d.Name.match( /\.def$|\.asm$|\.reg$|\.key$|\.inf$/i ) ) {&lt;br /&gt;
    return &amp;quot;; &amp;quot;;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  // ▼ ファイル名による定義切り替え ▼&lt;br /&gt;
  else if ( d.Name.match( /^hosts$/i ) ) {&lt;br /&gt;
    return &amp;quot;# &amp;quot;;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  // ▼ 編集モードによる定義切り替え ▼&lt;br /&gt;
  else {&lt;br /&gt;
    switch ( d.Mode.toLowerCase() ) {&lt;br /&gt;
      case &amp;quot;text&amp;quot;:&lt;br /&gt;
        return &amp;quot;&amp;gt; &amp;quot;;&lt;br /&gt;
      case &amp;quot;bat&amp;quot;:&lt;br /&gt;
        return &amp;quot;:: &amp;quot;;	// return &amp;quot;REM &amp;quot;;	// &amp;quot;: &amp;quot; や &amp;quot;&#039; &amp;quot; でも可&lt;br /&gt;
      case &amp;quot;c#&amp;quot;:  case &amp;quot;c++&amp;quot;:  case &amp;quot;delphi&amp;quot;:  case &amp;quot;java&amp;quot;:&lt;br /&gt;
      case &amp;quot;javascript&amp;quot;:  case &amp;quot;jsp&amp;quot;:  case &amp;quot;windows script&amp;quot;: &lt;br /&gt;
      case &amp;quot;mery_macro_js&amp;quot;:  case &amp;quot;mery_macros_js&amp;quot;: &lt;br /&gt;
      case &amp;quot;mery macro js&amp;quot;:  case &amp;quot;mery macros js&amp;quot;:  &lt;br /&gt;
      case &amp;quot;janestyle （正規表現用）&amp;quot;:&lt;br /&gt;
        return &amp;quot;// &amp;quot;;&lt;br /&gt;
      case &amp;quot;ini&amp;quot;:  case &amp;quot;mery msy&amp;quot;:&lt;br /&gt;
        return &amp;quot;# &amp;quot;;&lt;br /&gt;
      case &amp;quot;perl&amp;quot;:  case &amp;quot;perlscript&amp;quot;:  case &amp;quot;php&amp;quot;:  &lt;br /&gt;
      case &amp;quot;python&amp;quot;:  case &amp;quot;ruby&amp;quot;:   case &amp;quot;powershell&amp;quot;:&lt;br /&gt;
      case &amp;quot;ini&amp;quot;:  case &amp;quot;mery msy&amp;quot;:		// ini は &amp;quot;; &amp;quot; でも可&lt;br /&gt;
        return &amp;quot;# &amp;quot;;&lt;br /&gt;
      case &amp;quot;visualbasic&amp;quot;:  case &amp;quot;vbscript&amp;quot;:&lt;br /&gt;
        return &amp;quot;&#039; &amp;quot;;&lt;br /&gt;
      case &amp;quot;hsp&amp;quot;:  case &amp;quot;autohotkey&amp;quot;:&lt;br /&gt;
        return &amp;quot;; &amp;quot;;&lt;br /&gt;
      case &amp;quot;sql&amp;quot;:&lt;br /&gt;
        return &amp;quot;-- &amp;quot;;&lt;br /&gt;
      case &amp;quot;tex&amp;quot;:&lt;br /&gt;
        return &amp;quot;% &amp;quot;;&lt;br /&gt;
      default:&lt;br /&gt;
        return comment;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
} )();&lt;br /&gt;
&lt;br /&gt;
// ---------- ▲ 設定項目 ▲ ---------- //&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if ( d.ReadOnly ) {&lt;br /&gt;
  Status = &amp;quot;　ドキュメントは書き換え禁止です。&amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
else if ( /^\s*$/.test( comment ) ) {&lt;br /&gt;
  Status = &amp;quot;　コメントマークの定義が無効です。&amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
else {&lt;br /&gt;
  var cmStr = &amp;quot;&amp;quot;;&lt;br /&gt;
  Redraw = false;&lt;br /&gt;
&lt;br /&gt;
  // コメントマークの先頭の空白文字を除去&lt;br /&gt;
  comment = comment.replace( /^\s+/, &amp;quot;&amp;quot; );&lt;br /&gt;
  // コメントマークの末尾が空白文字の場合、末尾空白なしのコメントマークを定義&lt;br /&gt;
  if ( varEnable &amp;amp;&amp;amp; /\s+$/.test( comment ) ) {&lt;br /&gt;
    comStr = comment.replace( /\s+$/, &amp;quot;&amp;quot; );&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  // 選択範囲&lt;br /&gt;
  var s   = editor.ActiveDocument.selection;&lt;br /&gt;
  var tx  = s.GetTopPointX( mePosLogical );&lt;br /&gt;
  var ty  = s.GetTopPointY( mePosLogical );&lt;br /&gt;
  var bx  = s.GetBottomPointX( mePosLogical );&lt;br /&gt;
  var by  = s.GetBottomPointY( mePosLogical );&lt;br /&gt;
  var anc = s.GetAnchorPos();&lt;br /&gt;
  var act = s.GetActivePos();&lt;br /&gt;
  var pos = s.IsEmpty;	// 範囲選択なしのフラグ&lt;br /&gt;
  var sx = ScrollX,  sy = ScrollY;&lt;br /&gt;
&lt;br /&gt;
  // １行内で範囲選択しているとき（インラインモード） ※選択範囲を拡張しない&lt;br /&gt;
  var inLine = ( ! pos &amp;amp;&amp;amp; inLineEnable &amp;amp;&amp;amp; ty == by );&lt;br /&gt;
&lt;br /&gt;
  // 範囲選択なし または 複数行選択のとき（行全体のコメントアウト）&lt;br /&gt;
  if ( ! inLine ) {&lt;br /&gt;
    // 選択範囲を拡張と末尾改行の調整&lt;br /&gt;
    if ( ty &amp;lt; by &amp;amp;&amp;amp; bx == 1 ) { by --; }&lt;br /&gt;
    s.SetActivePoint( mePosLogical, 1, by );&lt;br /&gt;
    s.EndOfLine( false, mePosLogical );&lt;br /&gt;
    s.SetAnchorPoint( mePosLogical, 1, ty );&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  // ブックマークを保存&lt;br /&gt;
  var bmArray = [];&lt;br /&gt;
  if ( ty &amp;lt; by ) {&lt;br /&gt;
    var tp = s.GetAnchorPos(),  bp = s.GetActivePos();&lt;br /&gt;
    s.SetActivePoint( mePosLogical, 1, 2 );&lt;br /&gt;
    if ( s.PreviousBookmark() ) {&lt;br /&gt;
      bmArray.push( s.GetActivePointY( mePosLogical ) );&lt;br /&gt;
    }&lt;br /&gt;
    s.SetActivePos( 0 );&lt;br /&gt;
    while ( s.NextBookmark() ) {&lt;br /&gt;
      bmArray.push( s.GetActivePointY( mePosLogical ) );&lt;br /&gt;
    }&lt;br /&gt;
    s.SetAnchorPos( tp );  s.SetActivePos( bp, true );&lt;br /&gt;
    ScrollX = sx;  ScrollY = sy;&lt;br /&gt;
  }&lt;br /&gt;
  var bmCount = bmArray.length;&lt;br /&gt;
&lt;br /&gt;
  // コメントアウト／アンコメント&lt;br /&gt;
  var st = s.Text;&lt;br /&gt;
  var ad = AddDeleteComment( st, mode, comment, comStr, $ctrl );&lt;br /&gt;
  if ( ad != st ) {		// 変更なしなら undo 履歴に残さない&lt;br /&gt;
    s.Text = ad;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  // ブックマークを復元&lt;br /&gt;
  if ( bmCount ) {&lt;br /&gt;
    var ep = s.GetActivePos();&lt;br /&gt;
    editor.ExecuteCommandByID( 2129 );		// ブックマークをクリア&lt;br /&gt;
    for ( var i = 0; i &amp;lt; bmCount; i ++ ) {&lt;br /&gt;
      s.SetActivePoint( mePosLogical, 1, bmArray[i], false );&lt;br /&gt;
      editor.ExecuteCommandByID( 2126 );	// ブックマークを設定/解除（設定）&lt;br /&gt;
    }&lt;br /&gt;
    s.SetActivePos( ep );&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  var gap = ad.length - st.length;&lt;br /&gt;
&lt;br /&gt;
  // 選択範囲なしで実行したときは選択範囲を残さない&lt;br /&gt;
  if ( pos ) {&lt;br /&gt;
    var id = 1 + d.GetLine( ty, 0 ).search( /[^\s]/ );&lt;br /&gt;
    var x = ( gap &amp;gt; 0 &amp;amp;&amp;amp; tx &amp;gt;= id ) ? tx + gap :		// コメントアウト&lt;br /&gt;
            ( tx &amp;gt; gap &amp;amp;&amp;amp; tx &amp;gt; id ) ? tx + gap : tx;	// アンコメント&lt;br /&gt;
    s.SetActivePoint( mePosLogical, x, ty );&lt;br /&gt;
  }&lt;br /&gt;
  // 選択範囲が１行だけのときは選択範囲を復旧する&lt;br /&gt;
  else if ( inLine ) {&lt;br /&gt;
    s.SetActivePos( ( anc &amp;lt; act ) ? act + gap : act );&lt;br /&gt;
    s.SetAnchorPos( ( anc &amp;lt; act ) ? anc : anc + gap );&lt;br /&gt;
  }&lt;br /&gt;
  // 複数行選択なら拡張した選択範囲を復旧する&lt;br /&gt;
  else {&lt;br /&gt;
    s.SetActivePoint( mePosLogical, 1, by + 1 );&lt;br /&gt;
    s.SetAnchorPoint( mePosLogical, 1, ty );&lt;br /&gt;
  }&lt;br /&gt;
  ScrollX = sx;  ScrollY = sy;&lt;br /&gt;
  Redraw = true;&lt;br /&gt;
&lt;br /&gt;
  var elapsedSec = ( ( new Date() - start ) / 1000 ).toFixed( 3 );&lt;br /&gt;
  Status = &amp;quot;　「行コメント」マクロ　　[ &amp;quot;&lt;br /&gt;
         + elapsedSec.replace( /\./, &amp;quot;. &amp;quot; )&lt;br /&gt;
         + &amp;quot; 秒 ]&amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
// ---------- ▼ 関数 ▼ ---------- //&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * 関数 AddDeleteComment( str )&lt;br /&gt;
 * 選択範囲の各行の字下げ量をチェックして、字下げ位置にあわせてコメントアウトする&lt;br /&gt;
 * ※ Ctrl キーで強制コメントアウト&lt;br /&gt;
 */ &lt;br /&gt;
function AddDeleteComment( str, mode, comment, comStr, $ctrl ) {&lt;br /&gt;
  // Ctrl キー押し下げで強制コメントアウト（※行頭にコメントマーク追加）&lt;br /&gt;
  if ( $ctrl == 1 ) {&lt;br /&gt;
    return str.replace( /^/gm, comment );&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  var a = str.split( &amp;quot;\n&amp;quot; );	// 選択範囲を行単位に分解&lt;br /&gt;
  var b = [];&lt;br /&gt;
  var len = a.length;&lt;br /&gt;
  var comLength = comment.length;&lt;br /&gt;
  var comStrLength = comStr.length;&lt;br /&gt;
  var id,  c0,  d0;		// 字下げ量（空白以外の文字の最初の出現位置）&lt;br /&gt;
  c0 = Infinity,  d0 = Infinity;&lt;br /&gt;
&lt;br /&gt;
  // 選択範囲内の各行の字下げ量を取得	→ 配列 b, c, d に&lt;br /&gt;
  for ( var i = 0; i &amp;lt; len; i ++ ) {&lt;br /&gt;
    // 各行ごとの字下げ量 （空白行では -1 ）&lt;br /&gt;
    id = a[i].indexOf( a[i].match( /[^ \t]/ ) );&lt;br /&gt;
&lt;br /&gt;
    b.push( id );	// 各行の字下げ量	→ 削除の基準 b[i]&lt;br /&gt;
    if ( mode == 3 &amp;amp;&amp;amp; d0 != 0 &amp;amp;&amp;amp; id != -1 &amp;amp;&amp;amp; id &amp;lt; d0 &amp;amp;&amp;amp;&lt;br /&gt;
         a[i].substr( id, comLength ) != comment ) {&lt;br /&gt;
      d0 = id;		// 非コメント行の字下げ量&lt;br /&gt;
    }&lt;br /&gt;
    else if ( mode == 2 &amp;amp;&amp;amp; c0 != 0 &amp;amp;&amp;amp; id != -1 &amp;amp;&amp;amp; id &amp;lt; c0 ) {&lt;br /&gt;
      c0 = id;		// 最小の字下げ量&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  // 各行をコメントアウト／アンコメント処理&lt;br /&gt;
  for ( var i = 0, ai, bi; i &amp;lt; len; i ++ ) {&lt;br /&gt;
    if ( b[i] == -1 ) { continue; }	// 空白行はスキップ&lt;br /&gt;
    ai = a[i],  bi = b[i];&lt;br /&gt;
&lt;br /&gt;
    // 行頭の空白 b[i] の直後がコメントマークかチェック&lt;br /&gt;
    if ( ai.substr( bi, comLength ) == comment ) {&lt;br /&gt;
      // アンコメント または コメントアウト&lt;br /&gt;
      a[i] = ( mode != 0 || bi == 0 )&lt;br /&gt;
           ? ai.substr( 0, bi ) + ai.substr( bi + comLength )&lt;br /&gt;
           : comment + ai;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    // 各行が末尾空白なしの &amp;quot;//&amp;quot; でコメントアウトされているか再チェック&lt;br /&gt;
    else if ( comStr &amp;amp;&amp;amp; ai.substr( bi, comStrLength ) == comStr ) {&lt;br /&gt;
      // アンコメント または コメントアウト&lt;br /&gt;
      a[i] = ( mode != 0 || bi == 0 )&lt;br /&gt;
           ? ai.substr( 0, bi ) + ai.substr( bi + comStrLength )&lt;br /&gt;
           : comment + ai;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    // 非コメント行なら字下げ位置にあわせてコメントマークを追加する&lt;br /&gt;
    else {&lt;br /&gt;
      a[i] = ( mode == 4 ) ? ai.slice( 0, bi ) + comment + ai.slice( bi )&lt;br /&gt;
           : ( mode == 3 ) ? ai.slice( 0, d0 ) + comment + ai.slice( d0 )&lt;br /&gt;
           : ( mode == 2 ) ? ai.slice( 0, c0 ) + comment + ai.slice( c0 )&lt;br /&gt;
           : /*  else  */    comment + ai;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
  }&lt;br /&gt;
  return a.join( &amp;quot;\n&amp;quot; );&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 更新履歴 ==&lt;br /&gt;
&lt;br /&gt;
 * 2018/08/08: 自家用として改造に着手&lt;br /&gt;
 * 2018/10/28: マクロライブラリに投稿（※&#039;&#039;&#039;初版&#039;&#039;&#039;）&lt;br /&gt;
 * 2018/11/02: 字下げ対応の設定項目を indent 変数に一本化（※&#039;&#039;&#039;第２版&#039;&#039;&#039;）&lt;br /&gt;
 * 2018/11/14: 人柱版コード（コメントマーク末尾の半角空白あり/なしの差分に対応）を追加&lt;br /&gt;
 * 2018/12/02: インラインモード（行の途中から右側のコメントに対応）を追加&lt;br /&gt;
 * 2019/03/19: 人柱版コードを統合&lt;br /&gt;
 *             Ctrl キーで強制コメントアウト可（[[GetKeyState.exe(キー状態取得実行ファイル)|GetKeyState.exe]] が必要）&lt;br /&gt;
 * 2019/03/25: マクロライブラリに投稿（※&#039;&#039;&#039;第３版&#039;&#039;&#039;）&lt;br /&gt;
 * 2019/04/07: Quit() メソッドを削除（※&#039;&#039;&#039;第３版 ➁&#039;&#039;&#039;）&lt;br /&gt;
 * 2019/04/11: ブックマーク対応コードを追加（Mery 2.7.0 以上 が必要）&lt;br /&gt;
 * 2019/04/12: ブックマーク対応を設定変数で切り替え&lt;br /&gt;
 * 2019/04/15: ブックマーク対応を Shift キーで切り替え（GetKeyState.exe）&lt;br /&gt;
               GetKeyState.exe の有無や Mery 本体バージョンの自動チェックを追加&lt;br /&gt;
 * 2019/04/18: 本体バージョンの自動チェックを関数化&lt;br /&gt;
 * 2019/10/15: 関数コード内の a[i], b[i] を変数に格納してみた&lt;br /&gt;
 * 2019/11/10: ブックマークの保守方法を変更（※&#039;&#039;&#039;第４版&#039;&#039;&#039;）&lt;br /&gt;
               undo しても選択範囲の復帰可&lt;br /&gt;
               Mery 本体バージョンの自動チェックを削除&lt;br /&gt;
 * 2019/11/10: コードのミスを修正（※&#039;&#039;&#039;第４版 ➁&#039;&#039;&#039;）&lt;br /&gt;
               ブックマークの復元がバージョン依存なしになるように変更&lt;br /&gt;
 * 2019/12/01: 関数コード内の配列 c, d を排除（※&#039;&#039;&#039;第５版&#039;&#039;&#039;）&lt;br /&gt;
               複数行選択のときのみブックマークの保存／復元するように変更&lt;br /&gt;
 *             &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== おまけ ==&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
; ブロックコメント&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot; inline&amp;gt; /* &amp;lt;/syntaxhighlight&amp;gt;　と　&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot; inline&amp;gt; */ &amp;lt;/syntaxhighlight&amp;gt;　と　&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot; inline&amp;gt; * &amp;lt;/syntaxhighlight&amp;gt;　で複数行のコメントブロックをつくるなら、&amp;lt;br&amp;gt; &lt;br /&gt;
「[[カッコで囲う|カッコで囲う（ポップアップメニューあり）]]」マクロか「[[引用符／コメント]]」マクロで。&lt;br /&gt;
&lt;br /&gt;
: 例： 字下げされている &amp;lt;span style=&amp;quot;background:#bfdfff;&amp;quot;&amp;gt;&amp;lt;u&amp;gt;hoge, fuga, piyo&amp;lt;/u&amp;gt;&amp;lt;/span&amp;gt; の３行をコメントアウトする&lt;br /&gt;
 &amp;lt;span style=&amp;quot;background:#bfdfff;&amp;quot;&amp;gt;      hoge&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;background:#bfdfff;&amp;quot;&amp;gt;        fuga&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;background:#bfdfff;&amp;quot;&amp;gt;          piyo&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* 「&#039;&#039;&#039;カッコで囲う&#039;&#039;&#039;（ポップアップメニューあり）」マクロの「JS コメントアウト２」&amp;lt;br&amp;gt; つねに行の先頭へコメントマークを挿入します。&lt;br /&gt;
 &amp;lt;span style=&amp;quot;background:#bfdfff;&amp;quot;&amp;gt;/*&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;background:#bfdfff;&amp;quot;&amp;gt; *        hoge&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;background:#bfdfff;&amp;quot;&amp;gt; *          fuga&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;background:#bfdfff;&amp;quot;&amp;gt; *            piyo&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;background:#bfdfff;&amp;quot;&amp;gt; */&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* 「&#039;&#039;&#039;引用符／コメント&#039;&#039;&#039;」マクロの「JS コメントアウト２」&amp;lt;br&amp;gt; 字下げされたブロックの先頭位置へコメントマークを挿入します。&lt;br /&gt;
 &amp;lt;span style=&amp;quot;background:#bfdfff;&amp;quot;&amp;gt;      /* &amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;background:#bfdfff;&amp;quot;&amp;gt;       * hoge&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;background:#bfdfff;&amp;quot;&amp;gt;       *   fuga&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;background:#bfdfff;&amp;quot;&amp;gt;       *     piyo&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;background:#bfdfff;&amp;quot;&amp;gt;       */&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
※どちらのマクロもアンコメント機能がありますが、「カッコで囲う」マクロは、「引用符／コメント」マクロによって字下げ位置に挿入されたコメントマークを正しく削除できません。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
; インラインコメントアウト&lt;br /&gt;
※どちらのマクロも　&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot; inline&amp;gt; /* &amp;lt;/syntaxhighlight&amp;gt;　と　&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot; inline&amp;gt; */ &amp;lt;/syntaxhighlight&amp;gt;　だけでコメントアウトすることもできます。&lt;br /&gt;
: また、&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot; inline&amp;gt; &amp;lt;!-- &amp;lt;/syntaxhighlight&amp;gt;　と　&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot; inline&amp;gt; --&amp;gt; &amp;lt;/syntaxhighlight&amp;gt;　でのコメントアウトとアンコメントもできます。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* 「カッコで囲う」マクロは選択範囲内を、「引用符／コメント」マクロは選択範囲のある行全体をコメントアウトします。&lt;br /&gt;
&lt;br /&gt;
: 例： ｢hijklmn｣ を範囲選択してコメントアウトする&lt;br /&gt;
 abcdefg&amp;lt;b style=&amp;quot;background:#bfdfff;&amp;quot;&amp;gt;hijklmn&amp;lt;/b&amp;gt;opqrstuvwxyz&lt;br /&gt;
 &lt;br /&gt;
 「カッコで囲う」マクロ&lt;br /&gt;
 abcdefg&amp;lt;span style=&amp;quot;background:#bfdfff;&amp;quot;&amp;gt; &#039;&#039;&#039;&#039;&#039;/* hijklmn */&#039;&#039;&#039;&#039;&#039; &amp;lt;/span&amp;gt;opqrstuvwxyz&lt;br /&gt;
 abcdefg&amp;lt;span style=&amp;quot;background:#bfdfff;&amp;quot;&amp;gt; &#039;&#039;&#039;&#039;&#039;&amp;lt;nowiki&amp;gt;&amp;lt;!-- hijklmn --&amp;gt;&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;&#039;&#039; &amp;lt;/span&amp;gt;opqrstuvwxyz&lt;br /&gt;
 &lt;br /&gt;
 「引用符／コメント」マクロ&lt;br /&gt;
 &amp;lt;span style=&amp;quot;background:#bfdfff;&amp;quot;&amp;gt;&#039;&#039;&#039;&#039;&#039;/* abcdefghijklmnopqrstuvwxyz */&#039;&#039;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span style=&amp;quot;background:#bfdfff;&amp;quot;&amp;gt;&#039;&#039;&#039;&#039;&#039;&amp;lt;nowiki&amp;gt;&amp;lt;!-- abcdefghijklmnopqrstuvwxyz --&amp;gt;&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;/div&gt;</summary>
		<author><name>Masme</name></author>
	</entry>
	<entry>
		<id>https://www.haijin-boys.com/wiki/index.php?title=%E6%A4%9C%E7%B4%A2(SJIS%E4%BB%A5%E5%A4%96)&amp;diff=4891</id>
		<title>検索(SJIS以外)</title>
		<link rel="alternate" type="text/html" href="https://www.haijin-boys.com/wiki/index.php?title=%E6%A4%9C%E7%B4%A2(SJIS%E4%BB%A5%E5%A4%96)&amp;diff=4891"/>
		<updated>2019-12-21T13:08:24Z</updated>

		<summary type="html">&lt;p&gt;Masme: 更新履歴の書式を変更&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Shift_JIS (CP932) で保存できない Unicode 文字を検索します。&lt;br /&gt;
&lt;br /&gt;
Mery の検索機能を利用しているため、下記の特徴があります。&lt;br /&gt;
* 検索文字列および検索強調が変更されます。&lt;br /&gt;
* マクロ実行後は「次を検索(F3)」「前を検索(Shift+F3)」で次/前を検索できます。&lt;br /&gt;
&lt;br /&gt;
==ソースコード==&lt;br /&gt;
ダウンロード→ [[メディア:検索(SJIS以外).zip|検索(SJIS以外).zip]] (2019/06/01)&lt;br /&gt;
&lt;br /&gt;
* 拙作ですがアイコンファイル (検索(SJIS以外).ico) を同梱してあります。&amp;lt;br&amp;gt;Mery 2.4.7 以降の場合、マクロ (検索(SJIS以外).js) と同じフォルダに、&amp;lt;br&amp;gt;Mery 2.4.6 以前の場合、Mery.exe と同じフォルダに、&amp;lt;br&amp;gt;アイコンファイルを配置しておくとツールバーにアイコンが読み込まれます。&lt;br /&gt;
&lt;br /&gt;
おまけ→ [[メディア:検索強調を解除.zip|検索強調を解除.zip]] (2019/06/01)&lt;br /&gt;
&lt;br /&gt;
* 「検索文字列の強調を解除」をマクロで再現したものです。アイコンファイルも同梱してあります。&lt;br /&gt;
&lt;br /&gt;
==更新履歴==&lt;br /&gt;
[[ファイル:検索(SJIS以外).zip]] / [[ファイル:検索強調を解除.zip]]&lt;br /&gt;
&lt;br /&gt;
; 2019/06/01&lt;br /&gt;
* アイコンを一部変更。カラーパレットを調整。&lt;br /&gt;
** (SJIS以外) 双眼鏡を中央下寄せ。&lt;br /&gt;
** (強調を解除) 全体的に下寄せ。帯の色を緑→橙に。16x16の帯を長く。24x24の双眼鏡を大きく。&lt;br /&gt;
; 2017/06/26&lt;br /&gt;
* 単独サロゲートは検索対象外とした（仕様上、正しく検索できないため）。&lt;br /&gt;
; 2017/06/25&lt;br /&gt;
* アイコンファイルに24x24・32x32・48x48の画像を追加。&lt;br /&gt;
* 変数を使用しないことにした。&lt;br /&gt;
; 2015/12/26&lt;br /&gt;
* アイコンの指定先を &amp;quot;My Macros\検索(SJIS以外).ico&amp;quot; → &amp;quot;検索(SJIS以外).ico&amp;quot; に変更。&lt;br /&gt;
* アイコンの指定先を &amp;quot;My Macros\検索強調を解除.ico&amp;quot; → &amp;quot;検索強調を解除.ico&amp;quot; に変更。&lt;br /&gt;
; 2014/09/16&lt;br /&gt;
* 初版公開。&lt;br /&gt;
&lt;br /&gt;
==既知の不具合==&lt;br /&gt;
* 単独サロゲートは検索対象外です。&lt;br /&gt;
*: 仕様上、単独サロゲートを正しく検索できないため、非対応としています。&lt;/div&gt;</summary>
		<author><name>Masme</name></author>
	</entry>
	<entry>
		<id>https://www.haijin-boys.com/wiki/index.php?title=%E6%95%B0%E5%80%A4%E3%82%92%E5%A2%97%E6%B8%9B&amp;diff=4890</id>
		<title>数値を増減</title>
		<link rel="alternate" type="text/html" href="https://www.haijin-boys.com/wiki/index.php?title=%E6%95%B0%E5%80%A4%E3%82%92%E5%A2%97%E6%B8%9B&amp;diff=4890"/>
		<updated>2019-12-21T13:07:13Z</updated>

		<summary type="html">&lt;p&gt;Masme: 更新履歴の書式を変更&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;float:right&amp;quot;&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
カーソル付近 or 選択範囲に半角数字列があれば 1 増やし／減らします。&lt;br /&gt;
&lt;br /&gt;
* カーソル位置は、数字の左端・中間・右端どこでもかまいません。&amp;lt;br&amp;gt;範囲選択時は、範囲内のみが対象となります。&amp;lt;br&amp;gt;※マクロの仕様上、&amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;矩形選択には対応していません。&amp;lt;/b&amp;gt;&lt;br /&gt;
:{|class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
!  !! 左端 !!colspan=&amp;quot;2&amp;quot;|中間 !! 右端 !! 範囲選択時&lt;br /&gt;
|-&lt;br /&gt;
! 元値&lt;br /&gt;
|&amp;lt;samp&amp;gt;&amp;lt;span style=&amp;quot;border-right:2px solid;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;999&amp;lt;/samp&amp;gt;&lt;br /&gt;
|&amp;lt;samp&amp;gt;9&amp;lt;span style=&amp;quot;border-right:2px solid;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;99&amp;lt;/samp&amp;gt;&lt;br /&gt;
|&amp;lt;samp&amp;gt;99&amp;lt;span style=&amp;quot;border-right:2px solid;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;9&amp;lt;/samp&amp;gt;&lt;br /&gt;
|&amp;lt;samp&amp;gt;999&amp;lt;span style=&amp;quot;border-right:2px solid;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/samp&amp;gt;&lt;br /&gt;
|&amp;lt;samp&amp;gt;9&amp;lt;span style=&amp;quot;border-right:2px solid; background:#bfdfff;&amp;quot;&amp;gt;99,99&amp;lt;/span&amp;gt;9&amp;lt;/samp&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! 増やす&lt;br /&gt;
|&amp;lt;samp&amp;gt;&amp;lt;span style=&amp;quot;border-right:2px solid;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;1000&amp;lt;/samp&amp;gt;&lt;br /&gt;
|&amp;lt;samp&amp;gt;10&amp;lt;span style=&amp;quot;border-right:2px solid;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;00&amp;lt;/samp&amp;gt;&lt;br /&gt;
|&amp;lt;samp&amp;gt;100&amp;lt;span style=&amp;quot;border-right:2px solid;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;0&amp;lt;/samp&amp;gt;&lt;br /&gt;
|&amp;lt;samp&amp;gt;1000&amp;lt;span style=&amp;quot;border-right:2px solid;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/samp&amp;gt;&lt;br /&gt;
|&amp;lt;samp&amp;gt;9&amp;lt;span style=&amp;quot;border-right:2px solid; background:#bfdfff;&amp;quot;&amp;gt;100,100&amp;lt;/span&amp;gt;9&amp;lt;/samp&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
* 0 埋め (ゼロパディング／ゼロフィル) された数値は桁数を維持して増減します。&lt;br /&gt;
* 負数 (-1)／小数 (0.1)／指数 (1.2e3) などには対応していません。&lt;br /&gt;
:{|class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot;|ゼロなし/あり !!colspan=&amp;quot;2&amp;quot;|負数の例 !! 小数の例 !! 指数の例&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;samp&amp;gt;99&amp;lt;/samp&amp;gt;&lt;br /&gt;
|&amp;lt;samp&amp;gt;&amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;00&amp;lt;/b&amp;gt;99&amp;lt;/samp&amp;gt;&lt;br /&gt;
|&amp;lt;samp&amp;gt;&amp;lt;span style=&amp;quot;border-left:2px solid;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;-1&amp;lt;/samp&amp;gt;&lt;br /&gt;
|&amp;lt;samp&amp;gt;-&amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;0&amp;lt;/b&amp;gt;&amp;lt;span style=&amp;quot;border-left:2px solid;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/samp&amp;gt;&lt;br /&gt;
|&amp;lt;samp&amp;gt;0.&amp;lt;span style=&amp;quot;border-left:2px solid;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;9&amp;lt;/b&amp;gt;&amp;lt;/samp&amp;gt;&lt;br /&gt;
|&amp;lt;samp&amp;gt;&amp;lt;span style=&amp;quot;border-left:2px solid; background:#bfdfff;&amp;quot;&amp;gt;9.8e1&amp;lt;/span&amp;gt;&amp;lt;/samp&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;samp&amp;gt;100&amp;lt;/samp&amp;gt;&lt;br /&gt;
|&amp;lt;samp&amp;gt;&amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;0&amp;lt;/b&amp;gt;100&amp;lt;/samp&amp;gt;&lt;br /&gt;
|&amp;lt;samp&amp;gt;&amp;lt;span style=&amp;quot;border-left:2px solid;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;-1&amp;lt;/samp&amp;gt;&lt;br /&gt;
|&amp;lt;samp&amp;gt;-&amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;1&amp;lt;/b&amp;gt;&amp;lt;span style=&amp;quot;border-left:2px solid;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/samp&amp;gt;&lt;br /&gt;
|&amp;lt;samp&amp;gt;0.&amp;lt;span style=&amp;quot;border-left:2px solid;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;10&amp;lt;/b&amp;gt;&amp;lt;/samp&amp;gt;&lt;br /&gt;
|&amp;lt;samp&amp;gt;&amp;lt;span style=&amp;quot;border-left:2px solid; background:#bfdfff;&amp;quot;&amp;gt;10.9e2&amp;lt;/span&amp;gt;&amp;lt;/samp&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;samp&amp;gt;101&amp;lt;/samp&amp;gt;&lt;br /&gt;
|&amp;lt;samp&amp;gt;&amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;0&amp;lt;/b&amp;gt;101&amp;lt;/samp&amp;gt;&lt;br /&gt;
|&amp;lt;samp&amp;gt;&amp;lt;span style=&amp;quot;border-left:2px solid;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;-1&amp;lt;/samp&amp;gt;&lt;br /&gt;
|&amp;lt;samp&amp;gt;-&amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;2&amp;lt;/b&amp;gt;&amp;lt;span style=&amp;quot;border-left:2px solid;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/samp&amp;gt;&lt;br /&gt;
|&amp;lt;samp&amp;gt;0.&amp;lt;span style=&amp;quot;border-left:2px solid;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;11&amp;lt;/b&amp;gt;&amp;lt;/samp&amp;gt;&lt;br /&gt;
|&amp;lt;samp&amp;gt;&amp;lt;span style=&amp;quot;border-left:2px solid; background:#bfdfff;&amp;quot;&amp;gt;11.10e3&amp;lt;/span&amp;gt;&amp;lt;/samp&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==更新履歴==&lt;br /&gt;
; 2016/02/28&lt;br /&gt;
* (数値を増やす) 正規表現を ([0-8]?)(9*) → ([0-9])(9*) に一部変更。他微調整。&lt;br /&gt;
*: 空文字マッチが発生し、処理にムダができていたのを改善。&lt;br /&gt;
* 文字数変化量を Document.Text.length の変化から算出するようにして単純化。&lt;br /&gt;
* 数値の増減処理を変更（二段階 replace していた処理を一段階に）。&lt;br /&gt;
; 2014/06/19&lt;br /&gt;
* 非選択時、探索終了位置(bx)の算出方法を変更。&lt;br /&gt;
* 数値の増減処理を変更（繰り上げ・繰り下げの場合分けを不要に）。&lt;br /&gt;
; 2014/06/17&lt;br /&gt;
* 初版公開。&lt;br /&gt;
&lt;br /&gt;
==数値を増やす(インクリメント)==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
//■数値を増やす(インクリメント)&lt;br /&gt;
//　2014/06/17-2016/02/28&lt;br /&gt;
//・カーソル付近or選択範囲の10進数値(半角)を 1 増やす。&lt;br /&gt;
//▲負数(-1)／小数(0.1)／指数(1.2e3)などは対応外。&lt;br /&gt;
&lt;br /&gt;
var Sel = Document.Selection;&lt;br /&gt;
var gap = Document.Text.length;&lt;br /&gt;
var anp = Sel.GetAnchorPos();&lt;br /&gt;
var acp = Sel.GetActivePos();&lt;br /&gt;
var isAcp = (acp&amp;lt;anp); //範囲終点(カーソル)が前方にあるか？&lt;br /&gt;
var isSel = !Sel.IsEmpty;&lt;br /&gt;
if (Sel.IsEmpty) { //非選択時、文字を探索して範囲選択&lt;br /&gt;
  var px = Sel.GetActivePointX(mePosLogical);&lt;br /&gt;
  var py = Sel.GetActivePointY(mePosLogical);&lt;br /&gt;
  var ln = Document.GetLine(py,0);&lt;br /&gt;
  var tx = 1 + ln.slice(0,px-1).match(/[0-9]*$/).index;&lt;br /&gt;
  var bx = tx + ln.slice(tx-1).match(/[0-9]*/)[0].length;&lt;br /&gt;
  Sel.SetActivePoint(mePosLogical,bx,py);&lt;br /&gt;
  Sel.SetAnchorPoint(mePosLogical,tx,py);&lt;br /&gt;
  isAcp = (px===tx); //カーソルが数値の左端(前方)にあるか？&lt;br /&gt;
}&lt;br /&gt;
Sel.Text = Sel.Text.replace(/([0-9])(9*)(?![0-9])/g,function($0,a,z){&lt;br /&gt;
  return (parseInt(a)+1)+ new Array(z.length+1).join(&amp;quot;0&amp;quot;);&lt;br /&gt;
});&lt;br /&gt;
gap = Document.Text.length - gap; //文字数変化量&lt;br /&gt;
Sel.SetAnchorPos(anp+(isAcp? gap : 0));&lt;br /&gt;
Sel.SetActivePos(acp+(isAcp? 0 : gap), isSel);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==数値を減らす(デクリメント)==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
//■数値を減らす(デクリメント)&lt;br /&gt;
//　2014/06/17-2016/02/28&lt;br /&gt;
//・カーソル付近or選択範囲の10進数値(半角)を 1 減らす。&lt;br /&gt;
//▲負数(-1)／小数(0.1)／指数(1.2e3)などは対応外。&lt;br /&gt;
&lt;br /&gt;
var Sel = Document.Selection;&lt;br /&gt;
var gap = Document.Text.length;&lt;br /&gt;
var anp = Sel.GetAnchorPos();&lt;br /&gt;
var acp = Sel.GetActivePos();&lt;br /&gt;
var isAcp = (acp&amp;lt;anp); //範囲終点(カーソル)が前方にあるか？&lt;br /&gt;
var isSel = !Sel.IsEmpty;&lt;br /&gt;
if (Sel.IsEmpty) { //非選択時、文字を探索して範囲選択&lt;br /&gt;
  var px = Sel.GetActivePointX(mePosLogical);&lt;br /&gt;
  var py = Sel.GetActivePointY(mePosLogical);&lt;br /&gt;
  var ln = Document.GetLine(py,0);&lt;br /&gt;
  var tx = 1 + ln.slice(0,px-1).match(/[0-9]*$/).index;&lt;br /&gt;
  var bx = tx + ln.slice(tx-1).match(/[0-9]*/)[0].length;&lt;br /&gt;
  Sel.SetActivePoint(mePosLogical,bx,py);&lt;br /&gt;
  Sel.SetAnchorPoint(mePosLogical,tx,py);&lt;br /&gt;
  isAcp = (px===tx); //カーソルが数値の左端(前方)にあるか？&lt;br /&gt;
}&lt;br /&gt;
Sel.Text = Sel.Text.replace(/([0-9]?)([1-9])(0*)(?![0-9])/g,function($0,y,a,z){&lt;br /&gt;
  //桁下がり　    　y/a/z 　y/a/z&lt;br /&gt;
  //◆　する＞100 ⇒ /1/00⇒ / /99⇒99&lt;br /&gt;
  //◆しない＞1100⇒1/1/00⇒1/0/99⇒1099&lt;br /&gt;
  return ((!y &amp;amp;&amp;amp; a==1 &amp;amp;&amp;amp; z)? &amp;quot;&amp;quot; : y+(a-1))+ new Array(z.length+1).join(&amp;quot;9&amp;quot;);&lt;br /&gt;
});&lt;br /&gt;
gap = Document.Text.length - gap; //文字数変化量&lt;br /&gt;
Sel.SetAnchorPos(anp+(isAcp? gap : 0));&lt;br /&gt;
Sel.SetActivePos(acp+(isAcp? 0 : gap), isSel);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==位取り対応==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
  var bx = tx + ln.slice(tx-1).match(/[0-9]*/)[0].length;&lt;br /&gt;
　↓&lt;br /&gt;
  var bx = (px!==tx)? px : tx + ln.slice(tx-1).match(/[0-9]*/)[0].length;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
* マクロの中盤(17行目)を上記のように書き換えると、カーソル左側を基準に増減するようになります。&amp;lt;br&amp;gt;※カーソルが数字の左端にある場合／範囲選択時は、通常どおり増減します。&lt;br /&gt;
:{|class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
! ※左端 !! 千の位 !! 百の位 !! 十の位 !! 一の位 !! ※範囲選択時&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;samp&amp;gt;&amp;lt;span style=&amp;quot;border-left:2px solid;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;999&amp;lt;/b&amp;gt;&amp;lt;/samp&amp;gt;&lt;br /&gt;
|&amp;lt;samp&amp;gt;&amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;0&amp;lt;/b&amp;gt;&amp;lt;span style=&amp;quot;border-left:2px solid;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;000&amp;lt;/samp&amp;gt;&lt;br /&gt;
|&amp;lt;samp&amp;gt;&amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;9&amp;lt;/b&amp;gt;&amp;lt;span style=&amp;quot;border-left:2px solid;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;00&amp;lt;/samp&amp;gt;&lt;br /&gt;
|&amp;lt;samp&amp;gt;&amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;99&amp;lt;/b&amp;gt;&amp;lt;span style=&amp;quot;border-left:2px solid;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;0&amp;lt;/samp&amp;gt;&lt;br /&gt;
|&amp;lt;samp&amp;gt;&amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;999&amp;lt;/b&amp;gt;&amp;lt;span style=&amp;quot;border-left:2px solid;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/samp&amp;gt;&lt;br /&gt;
|&amp;lt;samp&amp;gt;9&amp;lt;span style=&amp;quot;border-right:2px solid; background:#bfdfff;&amp;quot;&amp;gt;99,99&amp;lt;/span&amp;gt;9&amp;lt;/samp&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;samp&amp;gt;&amp;lt;span style=&amp;quot;border-left:2px solid;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;1000&amp;lt;/b&amp;gt;&amp;lt;/samp&amp;gt;&lt;br /&gt;
|&amp;lt;samp&amp;gt;&amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;1&amp;lt;/b&amp;gt;&amp;lt;span style=&amp;quot;border-left:2px solid;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;000&amp;lt;/samp&amp;gt;&lt;br /&gt;
|&amp;lt;samp&amp;gt;&amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;10&amp;lt;/b&amp;gt;&amp;lt;span style=&amp;quot;border-left:2px solid;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;00&amp;lt;/samp&amp;gt;&lt;br /&gt;
|&amp;lt;samp&amp;gt;&amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;100&amp;lt;/b&amp;gt;&amp;lt;span style=&amp;quot;border-left:2px solid;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;0&amp;lt;/samp&amp;gt;&lt;br /&gt;
|&amp;lt;samp&amp;gt;&amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;1000&amp;lt;/b&amp;gt;&amp;lt;span style=&amp;quot;border-left:2px solid;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/samp&amp;gt;&lt;br /&gt;
|&amp;lt;samp&amp;gt;9&amp;lt;span style=&amp;quot;border-right:2px solid; background:#bfdfff;&amp;quot;&amp;gt;100,100&amp;lt;/span&amp;gt;9&amp;lt;/samp&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;samp&amp;gt;&amp;lt;span style=&amp;quot;border-left:2px solid;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;1001&amp;lt;/b&amp;gt;&amp;lt;/samp&amp;gt;&lt;br /&gt;
|&amp;lt;samp&amp;gt;&amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;2&amp;lt;/b&amp;gt;&amp;lt;span style=&amp;quot;border-left:2px solid;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;000&amp;lt;/samp&amp;gt;&lt;br /&gt;
|&amp;lt;samp&amp;gt;&amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;11&amp;lt;/b&amp;gt;&amp;lt;span style=&amp;quot;border-left:2px solid;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;00&amp;lt;/samp&amp;gt;&lt;br /&gt;
|&amp;lt;samp&amp;gt;&amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;101&amp;lt;/b&amp;gt;&amp;lt;span style=&amp;quot;border-left:2px solid;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;0&amp;lt;/samp&amp;gt;&lt;br /&gt;
|&amp;lt;samp&amp;gt;&amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;1001&amp;lt;/b&amp;gt;&amp;lt;span style=&amp;quot;border-left:2px solid;&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/samp&amp;gt;&lt;br /&gt;
|&amp;lt;samp&amp;gt;9&amp;lt;span style=&amp;quot;border-right:2px solid; background:#bfdfff;&amp;quot;&amp;gt;101,101&amp;lt;/span&amp;gt;9&amp;lt;/samp&amp;gt;&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Masme</name></author>
	</entry>
	<entry>
		<id>https://www.haijin-boys.com/wiki/index.php?title=%E5%AD%97%E4%B8%8B%E3%81%92%E3%83%BB%E5%AD%97%E4%B8%8A%E3%81%92&amp;diff=4889</id>
		<title>字下げ・字上げ</title>
		<link rel="alternate" type="text/html" href="https://www.haijin-boys.com/wiki/index.php?title=%E5%AD%97%E4%B8%8B%E3%81%92%E3%83%BB%E5%AD%97%E4%B8%8A%E3%81%92&amp;diff=4889"/>
		<updated>2019-12-21T13:06:06Z</updated>

		<summary type="html">&lt;p&gt;Masme: 更新履歴の書式を変更&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;論理行単位で字下げ・字上げします。&amp;lt;br&amp;gt;&lt;br /&gt;
インデントには任意の文字列を設定できます。※初期設定は半角空白2個です。&lt;br /&gt;
&lt;br /&gt;
[[ファイル:Indent-Unindent.png]]&lt;br /&gt;
&lt;br /&gt;
= masme 版 =&lt;br /&gt;
==更新履歴==&lt;br /&gt;
; 2019/06/01&lt;br /&gt;
* 字下げ・字上げした次の行に変更行の印がつかないようにした。&lt;br /&gt;
*: 末尾の改行（次の行頭）を範囲に含めず書き換えるように変更。&lt;br /&gt;
* with 文を使用せず変数化した（他の自作マクロに合わせた）。&lt;br /&gt;
; 2019/04/12&lt;br /&gt;
* (字下げ) Quit() → break ラベル文に変更。&lt;br /&gt;
; 2015/02/14&lt;br /&gt;
* (字上げ) 「インデントの定義」に正規表現の特殊文字があると誤動作する不具合を修正。&lt;br /&gt;
* 矩形選択（始点or終点が左下かつ論理行頭）時、下端の行が範囲から漏れる不具合を修正。&lt;br /&gt;
; 2014/02/09&lt;br /&gt;
* 初版公開。&lt;br /&gt;
&lt;br /&gt;
==字下げ (インデント)==&lt;br /&gt;
* 複数行選択時 (選択範囲が2行以上) は字下げします。&amp;lt;br&amp;gt;単一行選択時 (選択範囲が1行以内) または非選択時はタブ文字を挿入します。&amp;lt;br&amp;gt;&amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;※選択範囲の行数はステータスバーの「xx文字 (xx行) 選択」の部分で判断してください。&amp;lt;/b&amp;gt;&lt;br /&gt;
* 空行 (改行のみの行) は初期状態では字下げしません。&lt;br /&gt;
* 「Tab」キーなどに割り当ててご利用ください。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
//■字下げ(インデント)&lt;br /&gt;
//　2014/02/09-2019/06/01&lt;br /&gt;
//・論理行単位で字下げする。空行は字下げしない。非選択時/単行選択時はタブ挿入。&lt;br /&gt;
&lt;br /&gt;
//■インデントの定義 ●初期値=&amp;quot;  &amp;quot;&lt;br /&gt;
var INDENT = &amp;quot;  &amp;quot;;&lt;br /&gt;
&lt;br /&gt;
quit: {&lt;br /&gt;
var Sel = Document.Selection;&lt;br /&gt;
if (Sel.GetTopPointY(mePosView)===Sel.GetBottomPointY(mePosView)) {&lt;br /&gt;
  Sel.Text = &amp;quot;\t&amp;quot;; break quit; //非選択時/単行選択時はタブ挿入して終了&lt;br /&gt;
}&lt;br /&gt;
var ty = Sel.GetTopPointY(mePosLogical);&lt;br /&gt;
var by = Sel.GetBottomPointY(mePosLogical);&lt;br /&gt;
var bx = Sel.GetBottomPointX(mePosLogical);&lt;br /&gt;
var nn =(Sel.Text.match(/\n/g)||[]).length;&lt;br /&gt;
if (bx===1 &amp;amp;&amp;amp; nn&amp;lt;=by-ty &amp;amp;&amp;amp; nn) by--; //末尾改行対策&lt;br /&gt;
Sel.SetActivePoint(mePosLogical, 1, by);&lt;br /&gt;
Sel.EndOfLine(false, mePosLogical);&lt;br /&gt;
Sel.SetAnchorPoint(mePosLogical, 1, ty);&lt;br /&gt;
Sel.Text = Sel.Text.replace(/^(?!$)/gm,INDENT);&lt;br /&gt;
Sel.SetActivePoint(mePosLogical, 1, by+1);&lt;br /&gt;
Sel.SetAnchorPoint(mePosLogical, 1, ty);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==字上げ (アンインデント)==&lt;br /&gt;
* 単一行選択時 (選択範囲が1行以内) または非選択時でも字上げします。&lt;br /&gt;
* 「Shift + Tab」キーなどに割り当ててご利用ください。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
//■字上げ(アンインデント)&lt;br /&gt;
//　2014/02/09-2019/06/01&lt;br /&gt;
//・論理行単位で字上げする。非選択時/単行選択時でも字上げする。&lt;br /&gt;
&lt;br /&gt;
//■インデントの定義 ●初期値=&amp;quot;  &amp;quot;&lt;br /&gt;
var INDENT = &amp;quot;  &amp;quot;;&lt;br /&gt;
&lt;br /&gt;
var Sel = Document.Selection;&lt;br /&gt;
var ty = Sel.GetTopPointY(mePosLogical);&lt;br /&gt;
var by = Sel.GetBottomPointY(mePosLogical);&lt;br /&gt;
var bx = Sel.GetBottomPointX(mePosLogical);&lt;br /&gt;
var nn =(Sel.Text.match(/\n/g)||[]).length;&lt;br /&gt;
if (bx===1 &amp;amp;&amp;amp; nn&amp;lt;=by-ty &amp;amp;&amp;amp; nn) by--; //末尾改行対策&lt;br /&gt;
Sel.SetActivePoint(mePosLogical, 1, by);&lt;br /&gt;
Sel.EndOfLine(false, mePosLogical);&lt;br /&gt;
Sel.SetAnchorPoint(mePosLogical, 1, ty);&lt;br /&gt;
var pat = &amp;quot;^&amp;quot;+ INDENT.replace(/[$()*+.?\[\\\]^{|}]/g,&amp;quot;\\$&amp;amp;&amp;quot;);&lt;br /&gt;
Sel.Text = Sel.Text.replace(new RegExp(pat,&amp;quot;gm&amp;quot;),&amp;quot;&amp;quot;);&lt;br /&gt;
Sel.SetActivePoint(mePosLogical, 1, by+1);&lt;br /&gt;
Sel.SetAnchorPoint(mePosLogical, 1, ty);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= sukemaru 版 =&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;ダウンロード:&#039;&#039;&#039; 「[[ファイル:字下げ／字上げ.zip]]」（アイコン入り）&amp;lt;br&amp;gt;&lt;br /&gt;
最終更新: 2019/12/01　&#039;&#039;&#039;ブックマーク対応版&#039;&#039;&#039;&lt;br /&gt;
* [[#字下げ（スペース×２ 追加）|スペース×２ 追加]].js&lt;br /&gt;
* [[#字上げ（スペース×２ 削除）|スペース×２ 削除]].js&lt;br /&gt;
* [[#インデント|インデント]].js&lt;br /&gt;
* [[#逆インデント|アンインデント]].js&lt;br /&gt;
: それぞれ専用の「マテリアルデザインっぽいアイコン」を同梱&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
※ ブックマーク対応の &#039;&#039;&#039;2019/12/01 版&#039;&#039;&#039;の推奨要件: &#039;&#039;&#039;Mery ver 2.8.6 以上&#039;&#039;&#039; &amp;lt;br&amp;gt;&amp;lt;span style=&amp;quot;color:#0000c0;&amp;quot;&amp;gt;　 Mery ver 2.6.7 と ver 2.8.6 以上でブックマークを正常に保持できることを確認しています。&amp;lt;/span&amp;gt;&lt;br /&gt;
:* Mery ver 2.7.0 - ver 2.8.5 では、Mery 本体側のブックマーク機能の仕様が安定していないので、ブックマークを正しく復元できないことがあります。&lt;br /&gt;
:* Mery ver 2.7.0 以降では、文書全体が１行のみで１行目をブックマークしている状態のばあい、「1行目のブックマーク状態」を取得することができないのですが、ver 2.8.6 であればブックマークを正常に保持できるはず。&lt;br /&gt;
:※ ブックマーク行が 数十件～ 大量にある文書で実行すると動作がモタつくことがあります。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 字下げ（スペース×２ 追加） ==&lt;br /&gt;
;スペース×２ 追加.js &amp;lt;br&amp;gt;&lt;br /&gt;
キャレットまたは選択範囲をふくむ論理行の各先頭に「半角スペース×２」を追加します。&lt;br /&gt;
* 選択範囲がなかった場合は「タブ文字」を追加、または「半角スペース×２」を行頭に追加します。&lt;br /&gt;
* 選択範囲があった場合は、つねに「半角スペース×２」を行頭に追加します。&lt;br /&gt;
* 行頭に「半角スペース×２」を追加する場合は、空行を無視します。&lt;br /&gt;
* 選択範囲が末尾に改行を含んでいた場合は、最後の改行を無視します。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot; style=&amp;quot;height:40em; overflow:auto;&amp;quot;&amp;gt;&lt;br /&gt;
#title = &amp;quot;字下げ&amp;quot;&lt;br /&gt;
#tooltip = &amp;quot;スペース×２ 追加&amp;quot;&lt;br /&gt;
// #icon = &amp;quot;space_x2[1].ico&amp;quot;&lt;br /&gt;
// #icon = &amp;quot;Mery用 マテリアルデザインっぽいアイコン.icl&amp;quot;,247&lt;br /&gt;
&lt;br /&gt;
var start = new Date();&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * ---------------------------------------------------------&lt;br /&gt;
 * 「字下げ（スペース×２ 追加）」マクロ&lt;br /&gt;
 *   sukemaru, 2018/11/01 - 2019/12/01&lt;br /&gt;
 * ---------------------------------------------------------&lt;br /&gt;
 * 最初に選択範囲がなかった場合は「タブ文字」を追加、&lt;br /&gt;
 * または「半角スペース×２」を行頭に追加する。&lt;br /&gt;
 * 選択範囲があった場合は、つねに「半角スペース×２」を行頭に追加する（空行は無視）。&lt;br /&gt;
 * &lt;br /&gt;
 * 2019/11/17: ブックマークの保守方法を変更&lt;br /&gt;
 * 2019/12/01: 複数行選択のときのみブックマークの保存／復元するように変更&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
// ---------- ▼ 設定項目 ▼ ----------&lt;br /&gt;
&lt;br /&gt;
// ■ 選択範囲なしのときには「タブ文字×１」を追加するか？&lt;br /&gt;
var tabEnable = 0;&lt;br /&gt;
  /**&lt;br /&gt;
   * 0: 「半角空白×２」を行頭に追加する（空行は無視）&lt;br /&gt;
   * 1: 選択範囲なしのときは「タブ文字×１」を行頭に追加&lt;br /&gt;
   * 2: 選択範囲なしのときは「タブ文字×１」をキャレット位置に追加&lt;br /&gt;
   */&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
// ■ 行頭に追加する空白文字の定義（初期値：「半角空白×２」）&lt;br /&gt;
var blank = &amp;quot;  &amp;quot;;		// 半角空白×２&lt;br /&gt;
&lt;br /&gt;
// ---------- ▲ 設定項目 ▲ ----------&lt;br /&gt;
&lt;br /&gt;
var tab = &amp;quot;\t&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
Redraw = false;&lt;br /&gt;
var sx = ScrollX,  sy = ScrollY;&lt;br /&gt;
var d = editor.ActiveDocument;&lt;br /&gt;
var s = d.selection;&lt;br /&gt;
&lt;br /&gt;
// &amp;quot;選択範囲なし&amp;quot; のフラグ&lt;br /&gt;
var pos = s.IsEmpty ? s.GetActivePos() : &amp;quot;&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
if ( d.ReadOnly ) {&lt;br /&gt;
  Status = &amp;quot;　ドキュメントは書き換え禁止です。&amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* キャレット位置に「タブ文字×１」を挿入するパターン */&lt;br /&gt;
else if ( tabEnable == 2 &amp;amp;&amp;amp; pos ) {&lt;br /&gt;
  s.Text = tab;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
else {&lt;br /&gt;
  // 選択範囲を取得&lt;br /&gt;
  var ty = s.GetTopPointY( mePosLogical );&lt;br /&gt;
  var bx = s.GetBottomPointX( mePosLogical );&lt;br /&gt;
  var by = s.GetBottomPointY( mePosLogical );&lt;br /&gt;
  // 選択範囲を拡張&lt;br /&gt;
  if ( by != ty &amp;amp;&amp;amp; bx == 1 ) { by -= 1; }&lt;br /&gt;
  s.SetActivePoint( mePosLogical, 1, by );&lt;br /&gt;
  s.EndOfLine( false, mePosLogical );&lt;br /&gt;
  s.SetAnchorPoint( mePosLogical, 1, ty );&lt;br /&gt;
&lt;br /&gt;
  // ブックマークを保存&lt;br /&gt;
  var bmArray = [];&lt;br /&gt;
  if ( ty &amp;lt; by ) {&lt;br /&gt;
    var tp = s.GetAnchorPos(),  bp = s.GetActivePos();&lt;br /&gt;
    s.SetActivePoint( mePosLogical, 1, 2 );&lt;br /&gt;
    if ( s.PreviousBookmark() ) {&lt;br /&gt;
      bmArray.push( s.GetActivePointY( mePosLogical ) );&lt;br /&gt;
    }&lt;br /&gt;
    s.SetActivePos( 0 );&lt;br /&gt;
    while ( s.NextBookmark() ) {&lt;br /&gt;
      bmArray.push( s.GetActivePointY( mePosLogical ) );&lt;br /&gt;
    }&lt;br /&gt;
    s.SetAnchorPos( tp );  s.SetActivePos( bp, true );&lt;br /&gt;
    ScrollX = sx;  ScrollY = sy;&lt;br /&gt;
  }&lt;br /&gt;
  var bmCount = bmArray.length;&lt;br /&gt;
&lt;br /&gt;
  // 選択範囲の文字列を取得&lt;br /&gt;
  var st = s.Text;&lt;br /&gt;
&lt;br /&gt;
  /* 最初に選択範囲がなかった場合は、行頭に「タブ文字×１」を追加するパターン */&lt;br /&gt;
  if ( tabEnable == 1 &amp;amp;&amp;amp; pos ) {&lt;br /&gt;
    s.Text = InsertSpace( st, tab );&lt;br /&gt;
    s.SetActivePos( pos + tab.length );	// 範囲選択を残さない&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  /* 選択範囲があった場合は、行頭に「半角スペース×２」を追加（空行は無視） */&lt;br /&gt;
  else {	// ( tabEnable == 0 || ! pos )&lt;br /&gt;
    var t = InsertSpace( st, blank );&lt;br /&gt;
    if ( t != st ) {&lt;br /&gt;
      s.Text = t;&lt;br /&gt;
&lt;br /&gt;
      // ブックマークを復元&lt;br /&gt;
      if ( bmCount ) {&lt;br /&gt;
        var ep = s.GetActivePos();&lt;br /&gt;
        editor.ExecuteCommandByID( 2129 );	// ブックマークをクリア&lt;br /&gt;
        for ( var i = 0; i &amp;lt; bmCount; i ++ ) {&lt;br /&gt;
          s.SetActivePoint( mePosLogical, 1, bmArray[i], false );&lt;br /&gt;
          editor.ExecuteCommandByID( 2126 );	// ブックマークを設定&lt;br /&gt;
        }&lt;br /&gt;
        s.SetActivePos( ep );&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    if ( pos ) {	// 範囲選択を残さない&lt;br /&gt;
      s.SetActivePos( pos + ( t.length - st.length ) );&lt;br /&gt;
    }&lt;br /&gt;
    else {			// 範囲選択を残す（論理行単位）&lt;br /&gt;
      s.SetActivePos( s.GetActivePos() + 1 );&lt;br /&gt;
      s.SetAnchorPoint( mePosLogical, 1, ty );&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
ScrollX = sx;  ScrollY = sy;&lt;br /&gt;
Redraw = true;&lt;br /&gt;
&lt;br /&gt;
if ( ! d.ReadOnly ) {&lt;br /&gt;
  var elapsedSec = ( ( new Date() - start ) / 1000 ).toFixed( 3 );&lt;br /&gt;
  Status = &amp;quot;　「スペース×２ 追加」マクロ　　[ &amp;quot;&lt;br /&gt;
         + elapsedSec.replace( /\./, &amp;quot;. &amp;quot; )&lt;br /&gt;
         + &amp;quot; 秒 ]&amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * 関数 InsertSpace( str, blank )&lt;br /&gt;
 * str の各行の先頭に blank を挿入する&lt;br /&gt;
 */&lt;br /&gt;
function InsertSpace( str, blank ) {&lt;br /&gt;
  var a = str.split( &amp;quot;\n&amp;quot; );&lt;br /&gt;
  for ( var i = 0, len = a.length; i &amp;lt; len; i ++ ) {&lt;br /&gt;
    if ( a[i].length || blank == &amp;quot;\t&amp;quot; ) {&lt;br /&gt;
      a[i] = blank + a[i];&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  return a.join( &amp;quot;\n&amp;quot; );&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 字上げ（スペース×２ 削除） ==&lt;br /&gt;
;スペース×２ 削除.js &amp;lt;br&amp;gt;&lt;br /&gt;
キャレットまたは選択範囲をふくむ論理行の各先頭から「半角スペース×２」を削除します。&lt;br /&gt;
* 行頭の「空白文字」を削除、またはキャレット位置の前後にある「タブ文字」を削除します。&lt;br /&gt;
* 選択範囲があった場合は、つねに行頭の「空白文字」だけを削除します。&lt;br /&gt;
* 削除対象の行頭の「空白文字」には「半角スペース×２」以外の空白文字もふくめます。&lt;br /&gt;
: &#039;&#039;e.g.&#039;&#039; 「半角スペース×２」「半角スペース×１」「全角スペース×１」「タブ文字×１」&lt;br /&gt;
* 選択範囲が末尾に改行を含んでいた場合は、最後の改行を無視します。&lt;br /&gt;
&lt;br /&gt;
※ sukemaru 版の「字上げ」と「逆インデント」マクロを並存させるメリットは少ないとおもいますので、どちらかお好みで選んでください。 &amp;lt;br&amp;gt; &lt;br /&gt;
「字上げ」マクロの場合、削除対象に「空白文字」以外の任意の &amp;quot;文字列&amp;quot; や &amp;quot;記号&amp;quot; なども追加できます。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot; style=&amp;quot;height:40em; overflow:auto;&amp;quot;&amp;gt;&lt;br /&gt;
#title = &amp;quot;字上げ&amp;quot;&lt;br /&gt;
#tooltip = &amp;quot;スペース×２ 削除&amp;quot;&lt;br /&gt;
// #icon = &amp;quot;space_x2[2].ico&amp;quot;&lt;br /&gt;
// #icon = &amp;quot;Mery用 マテリアルデザインっぽいアイコン.icl&amp;quot;,249&lt;br /&gt;
&lt;br /&gt;
var start = new Date();&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * ---------------------------------------------------------&lt;br /&gt;
 * 「字上げ（スペース×２ 削除）」マクロ&lt;br /&gt;
 *   sukemaru, 2018/11/01 - 2019/12/01&lt;br /&gt;
 * ---------------------------------------------------------&lt;br /&gt;
 * 行頭の「空白文字」を削除、またはキャレット位置の前後にある「タブ文字」を削除する。&lt;br /&gt;
 * 選択範囲があった場合は、つねに行頭の「空白文字」だけを削除する。&lt;br /&gt;
 * 削除対象の「空白文字」は、「半角スペース×２」以外の空白文字もふくめて&lt;br /&gt;
 * 配列 blank で定義する。&lt;br /&gt;
 * &lt;br /&gt;
 * 2019/11/17: ブックマークの保守方法を変更&lt;br /&gt;
 * 2019/12/01: 複数行選択のときのみブックマークの保存／復元するように変更&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
// ---------- ▼ 設定項目 ▼ ----------&lt;br /&gt;
&lt;br /&gt;
// ■ 選択範囲なしのときに、キャレット位置の前後にある「タブ文字」を優先的に削除するか？&lt;br /&gt;
var deleteNearestTab = true;&lt;br /&gt;
  /**&lt;br /&gt;
   * false にすると、つねに行頭の空白文字のみを削除&lt;br /&gt;
   * true にすると、キャレット付近の「タブ文字×１」を優先的に削除&lt;br /&gt;
   *    （タブ文字がなければ行頭の空白を削除）&lt;br /&gt;
   */&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
// ■ 削除対象（削除の単位）にする行頭の空白文字の定義&lt;br /&gt;
var blank = [ &amp;quot;  &amp;quot; , &amp;quot; &amp;quot; , &amp;quot;　&amp;quot; , &amp;quot;\t&amp;quot; ];&lt;br /&gt;
  /**&lt;br /&gt;
   * 初期値： [ &amp;quot;  &amp;quot; , &amp;quot; &amp;quot; , &amp;quot;　&amp;quot; , &amp;quot;\t&amp;quot; ]&lt;br /&gt;
   * i.e. 「半角空白×２」「半角空白×１」「全角空白×１」「タブ文字×１」&lt;br /&gt;
   * ※ 前に置いたもののほうが優先順位が高くなる。&lt;br /&gt;
   *    e.g. 行頭に半角空白が３つある行で連続で実行した場合、&lt;br /&gt;
   *   １回目では「半角空白×２」を削除し、２回目で「半角空白×１」を削除する。&lt;br /&gt;
   * ※ 削除対象を「半角空白×４ ～ １」「全角空白×２ ～ １」「タブ文字×１」にするなら&lt;br /&gt;
   *   blank = [ &amp;quot;    &amp;quot; , &amp;quot;   &amp;quot; , &amp;quot;  &amp;quot; , &amp;quot; &amp;quot; , &amp;quot;　　&amp;quot; , &amp;quot;　&amp;quot; , &amp;quot;\t&amp;quot; ];&lt;br /&gt;
   * ※ 空白文字以外の &amp;quot;文字列&amp;quot; を [ ... ] のなかに追加するのも可。&lt;br /&gt;
   */&lt;br /&gt;
&lt;br /&gt;
// ---------- ▲ 設定項目 ▲ ----------&lt;br /&gt;
&lt;br /&gt;
Redraw = false;&lt;br /&gt;
var sx = ScrollX,  sy = ScrollY;&lt;br /&gt;
var d = editor.ActiveDocument;&lt;br /&gt;
var s = d.selection;&lt;br /&gt;
&lt;br /&gt;
var pos = s.IsEmpty ? s.GetActivePos() : &amp;quot;&amp;quot;;	// &amp;quot;選択範囲なし&amp;quot; のフラグ&lt;br /&gt;
var isDone = false;		// Quit() メソッドの代用フラグ&lt;br /&gt;
&lt;br /&gt;
if ( d.ReadOnly ) {&lt;br /&gt;
  Status = &amp;quot;　ドキュメントは書き換え禁止です。&amp;quot;;&lt;br /&gt;
  isDone = true;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* カーソル付近の「タブ文字×１」を削除するパターン（左側優先） */&lt;br /&gt;
else if ( pos &amp;amp;&amp;amp; deleteNearestTab ) {&lt;br /&gt;
  if ( d.Text.charAt( pos - 1 ) == &amp;quot;\t&amp;quot; ) {&lt;br /&gt;
    s.DeleteLeft();&lt;br /&gt;
    isDone = true;&lt;br /&gt;
  }&lt;br /&gt;
  else if ( d.Text.charAt( pos ) == &amp;quot;\t&amp;quot; ) {&lt;br /&gt;
    s.Delete();&lt;br /&gt;
    isDone = true;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
if ( ! isDone ) {&lt;br /&gt;
  // 選択範囲を取得&lt;br /&gt;
  var tx = s.GetTopPointX( mePosLogical );&lt;br /&gt;
  var ty = s.GetTopPointY( mePosLogical );&lt;br /&gt;
  var bx = s.GetBottomPointX( mePosLogical );&lt;br /&gt;
  var by = s.GetBottomPointY( mePosLogical );&lt;br /&gt;
  // 選択範囲を拡張&lt;br /&gt;
  if ( by != ty &amp;amp;&amp;amp; bx == 1 ) { by -= 1; }&lt;br /&gt;
  s.SetActivePoint( mePosLogical, 1, by );&lt;br /&gt;
  s.EndOfLine( false, mePosLogical );&lt;br /&gt;
  s.SetAnchorPoint( mePosLogical, 1, ty );&lt;br /&gt;
&lt;br /&gt;
  // ブックマークを保存&lt;br /&gt;
  var bmArray = [];&lt;br /&gt;
  if ( ty &amp;lt; by ) {&lt;br /&gt;
    var tp = s.GetAnchorPos(),  bp = s.GetActivePos();&lt;br /&gt;
    s.SetActivePoint( mePosLogical, 1, 2 );&lt;br /&gt;
    if ( s.PreviousBookmark() ) {&lt;br /&gt;
      bmArray.push( s.GetActivePointY( mePosLogical ) );&lt;br /&gt;
    }&lt;br /&gt;
    s.SetActivePos( 0 );&lt;br /&gt;
    while ( s.NextBookmark() ) {&lt;br /&gt;
      bmArray.push( s.GetActivePointY( mePosLogical ) );&lt;br /&gt;
    }&lt;br /&gt;
    s.SetAnchorPos( tp );  s.SetActivePos( bp, true );&lt;br /&gt;
    ScrollX = sx;  ScrollY = sy;&lt;br /&gt;
  }&lt;br /&gt;
  var bmCount = bmArray.length;&lt;br /&gt;
&lt;br /&gt;
  /* 行頭の空白文字を削除 */&lt;br /&gt;
  var st = s.Text;&lt;br /&gt;
  var t = DeleteSpace( st, blank );&lt;br /&gt;
  if ( t != st ) {&lt;br /&gt;
    s.Text = t;&lt;br /&gt;
&lt;br /&gt;
    // ブックマークを復元&lt;br /&gt;
    if ( bmCount ) {&lt;br /&gt;
      var ep = s.GetActivePos();&lt;br /&gt;
      editor.ExecuteCommandByID( 2129 );	// ブックマークをクリア&lt;br /&gt;
      for ( var i = 0; i &amp;lt; bmCount; i ++ ) {&lt;br /&gt;
        s.SetActivePoint( mePosLogical, 1, bmArray[i], false );&lt;br /&gt;
        editor.ExecuteCommandByID( 2126 );	// ブックマークを設定&lt;br /&gt;
      }&lt;br /&gt;
      s.SetActivePos( ep );&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  if ( pos ) {	// 範囲選択を残さない&lt;br /&gt;
    if ( st.length - t.length &amp;gt;= tx ) {&lt;br /&gt;
      s.SetActivePoint( mePosLogical, 1, ty );&lt;br /&gt;
    }&lt;br /&gt;
    else {&lt;br /&gt;
      s.SetActivePos( pos - ( st.length - t.length ) );&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  else {		// 範囲選択を残す（論理行単位）&lt;br /&gt;
    s.SetActivePos( s.GetActivePos() + 1 );&lt;br /&gt;
    s.SetAnchorPoint( mePosLogical, 1, ty );&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
ScrollX = sx;  ScrollY = sy;&lt;br /&gt;
Redraw = true;&lt;br /&gt;
&lt;br /&gt;
if ( ! d.ReadOnly ) {&lt;br /&gt;
  var elapsedSec = ( ( new Date() - start ) / 1000 ).toFixed( 3 );&lt;br /&gt;
  Status = &amp;quot;　「スペース×２ 削除」マクロ　　[ &amp;quot;&lt;br /&gt;
         + elapsedSec.replace( /\./, &amp;quot;. &amp;quot; )&lt;br /&gt;
         + &amp;quot; 秒 ]&amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * 関数 DeleteSpace( str, blank )&lt;br /&gt;
 * str の各行の先頭から blank を削除する&lt;br /&gt;
 * ※ blank は空白文字列のパターンを収録した配列&lt;br /&gt;
 */&lt;br /&gt;
function DeleteSpace( str, blank ) {&lt;br /&gt;
  var a = str.split( &amp;quot;\n&amp;quot; );&lt;br /&gt;
  for ( var i = 0, aLen = a.length; i &amp;lt; aLen; i ++ ) {&lt;br /&gt;
    if ( ! a[i] ) { continue; }&lt;br /&gt;
    for ( var j = 0, bLen = blank.length; j &amp;lt; bLen; j ++ ) {&lt;br /&gt;
      if ( blank[j] &amp;amp;&amp;amp; a[i].substr( 0, blank[j].length ) == blank[j] ) {&lt;br /&gt;
        a[i] = a[i].substr( blank[j].length );&lt;br /&gt;
        break;&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  return a.join( &amp;quot;\n&amp;quot; ); &lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== インデント ==&lt;br /&gt;
;インデント.js &amp;lt;br&amp;gt; &lt;br /&gt;
既存のツールバーアイコンのアイテム「インデント」から置きかえて使う目的のマクロで、&amp;lt;span style=&amp;quot;color:#0000c0;&amp;quot;&amp;gt;選択範囲がなくてもタブインデント&amp;lt;/span&amp;gt;します。 &amp;lt;br&amp;gt; ソースコードの内容は「字上げ（スペース×２ 追加）」マクロとほぼ同じですが、こちらの「インデント」マクロの場合は、挿入する空白は「タブ文字」のみで空白行にたいしてもインデントを追加します。&lt;br /&gt;
* 論理行全体をタブインデント（行頭）して範囲選択します。 &amp;lt;br&amp;gt; 選択範囲が１行内ならもとの選択範囲を維持し、複数行なら対象の論理行全体を範囲選択します。&lt;br /&gt;
* またはカーソル位置にタブ文字を挿入します。&lt;br /&gt;
* 選択範囲が末尾に改行を含んでいた場合は、最後の改行を無視します。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
【推奨設定】 &amp;lt;br&amp;gt;&lt;br /&gt;
Tab キーに割りあてるなら &amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot; inline&amp;gt;var tabEnable = 2&amp;lt;/syntaxhighlight&amp;gt;,&amp;lt;br&amp;gt;&lt;br /&gt;
ツールバーアイコンにするなら &amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot; inline&amp;gt;var tabEnable = 0&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot; style=&amp;quot;height:40em; overflow:auto;&amp;quot;&amp;gt;&lt;br /&gt;
#title = &amp;quot;インデント&amp;quot;&lt;br /&gt;
#tooltip = &amp;quot;選択範囲がなくてもインデント&amp;quot;&lt;br /&gt;
// #icon = &amp;quot;indent_right.ico&amp;quot;&lt;br /&gt;
// #icon = &amp;quot;Mery用 マテリアルデザインっぽいアイコン.icl&amp;quot;,260&lt;br /&gt;
&lt;br /&gt;
var start = new Date();&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * ---------------------------------------------------------&lt;br /&gt;
 * 「インデント」マクロ&lt;br /&gt;
 *   sukemaru, 2018/11/15 - 2019/12/01&lt;br /&gt;
 * ---------------------------------------------------------&lt;br /&gt;
 * ・選択範囲なしでも、論理行全体をタブインデント（行頭）して範囲選択する&lt;br /&gt;
 *   選択範囲が１行内ならもとの選択範囲を維持し、&lt;br /&gt;
 *   複数行なら対象の論理行全体を範囲選択する&lt;br /&gt;
 * ・またはカーソル位置にタブ文字を挿入する&lt;br /&gt;
 * 【推奨設定】 Tab キーに割りあてるなら		tabEnable = 2&lt;br /&gt;
 *              ツールバーアイコンにするなら	tabEnable = 0&lt;br /&gt;
 * &lt;br /&gt;
 * 2019/11/17: ブックマークの保守方法を変更&lt;br /&gt;
 * 2019/12/01: 複数行選択のときのみブックマークの保存／復元するように変更&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
// ---------- ▼ 設定項目 ▼ ----------&lt;br /&gt;
&lt;br /&gt;
// ■選択範囲があるときに、選択範囲を「タブ文字」にするか？ 行全体をタブインデントするか？&lt;br /&gt;
var tabEnable = 0;&lt;br /&gt;
  /**&lt;br /&gt;
   * 0: 選択範囲がなくてもつねに行全体をタブインデント（行頭）&lt;br /&gt;
   * 1: 選択範囲があれば行全体をタブインデント、&lt;br /&gt;
   *    なければキャレット位置に「タブ文字」を挿入&lt;br /&gt;
   *  （※ツールバーアイコンの「インデント」に似た動作）&lt;br /&gt;
   * 2: 選択範囲が１行内（論理行）のときは選択範囲を「タブ文字」にする&lt;br /&gt;
   *    選択範囲がないときはキャレット位置に「タブ文字」を挿入&lt;br /&gt;
   *    選択範囲が複数行（論理行）のときはタブインデントする&lt;br /&gt;
   *  （※Tab キーの通常動作にちかい ← Mery 標準機能では &amp;quot;表示行&amp;quot; で１行内）&lt;br /&gt;
   * 3: つねに選択範囲を「タブ文字」にする（※インデントしない）&lt;br /&gt;
   * 4: 選択範囲があり、１行内（論理行）のときは選択範囲の先頭に「タブ文字」を追加し、&lt;br /&gt;
   *    それ以外の場合には 0 と同じ動作（行全体をタブインデント）をする&lt;br /&gt;
   * &lt;br /&gt;
   * ※ 0 の場合、「タブ文字」を挿入することができないので、&lt;br /&gt;
   *       ツールバーアイコン向けの設定。&lt;br /&gt;
   * ※ 1 の場合、選択範囲を「タブ文字」にすることができないので、&lt;br /&gt;
   *      Tab キーにマクロを割りあてると少し不便になるかも？&lt;br /&gt;
   *      範囲選択 → 削除 (Delete / BackSpace) → 「インデント」マクロ (Tab)&lt;br /&gt;
   * ※ 2 の場合に１行だけインデントさせるなら、行頭でクリックするか、&lt;br /&gt;
   *      行内でトリプルクリック、または行番号のクリックで行全体を選択範囲にして&lt;br /&gt;
   *    「インデント」マクロを実行する （末尾改行まで含める必要あり）。&lt;br /&gt;
   *     [EOF] マークのある文書末行（さいごに改行がない）だけの１行選択では&lt;br /&gt;
   *      インデントできない。&lt;br /&gt;
   *      ⇔ Tab キーの通常動作では末尾改行を含める必要はない&lt;br /&gt;
   * ※ 3 は、わざわざマクロでやる意味もないかと。&lt;br /&gt;
   * ※ 4 は、0 と 1 の動作の統合型（1 の動作条件を反転させたもの）。&lt;br /&gt;
   */&lt;br /&gt;
&lt;br /&gt;
// ---------- ▲ 設定項目 ▲ ----------&lt;br /&gt;
&lt;br /&gt;
var tab = &amp;quot;\t&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
var d = editor.ActiveDocument;&lt;br /&gt;
var s = d.selection;&lt;br /&gt;
&lt;br /&gt;
if ( d.ReadOnly ) {&lt;br /&gt;
  Status = &amp;quot;　ドキュメントは書き換え禁止です。&amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
else {&lt;br /&gt;
  Redraw = false;&lt;br /&gt;
  var sx = ScrollX,  sy = ScrollY;&lt;br /&gt;
&lt;br /&gt;
  // 選択範囲&lt;br /&gt;
  var act = s.GetActivePos();&lt;br /&gt;
  var anc = s.GetAnchorPos();&lt;br /&gt;
  var tx = s.GetTopPointX( mePosLogical );&lt;br /&gt;
  var ty = s.GetTopPointY( mePosLogical );&lt;br /&gt;
  var bx = s.GetBottomPointX( mePosLogical );&lt;br /&gt;
  var by = yy = s.GetBottomPointY( mePosLogical );&lt;br /&gt;
&lt;br /&gt;
  var inLine = ( ty == by &amp;amp;&amp;amp; act != anc );&lt;br /&gt;
&lt;br /&gt;
  /* 行の途中の選択範囲を字下げするパターン */&lt;br /&gt;
  if ( inLine &amp;amp;&amp;amp; tabEnable == 4 ) {&lt;br /&gt;
    s.Text = tab + s.Text;&lt;br /&gt;
    s.SetAnchorPoint( mePosLogical, tx, ty );&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  /* カーソル位置にタブを挿入するパターン */&lt;br /&gt;
  else if ( ( tabEnable == 1 &amp;amp;&amp;amp; s.IsEmpty )&lt;br /&gt;
         || ( tabEnable == 2 &amp;amp;&amp;amp; ty == by )&lt;br /&gt;
         ||   tabEnable == 3 ) {&lt;br /&gt;
    s.Text = tab;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  else {&lt;br /&gt;
    // 選択範囲を拡張&lt;br /&gt;
    if ( ty != by &amp;amp;&amp;amp; bx == 1 ) { yy --; }&lt;br /&gt;
    s.SetActivePoint( mePosLogical, 1, yy );&lt;br /&gt;
    s.EndOfLine( false, mePosLogical );&lt;br /&gt;
    s.SetAnchorPoint( mePosLogical, 1, ty );&lt;br /&gt;
&lt;br /&gt;
    // ブックマークを保存&lt;br /&gt;
    var bmArray = [];&lt;br /&gt;
    if ( ty &amp;lt; by ) {&lt;br /&gt;
      var tp = s.GetAnchorPos(),  bp = s.GetActivePos();&lt;br /&gt;
      s.SetActivePoint( mePosLogical, 1, 2 );&lt;br /&gt;
      if ( s.PreviousBookmark() ) {&lt;br /&gt;
        bmArray.push( s.GetActivePointY( mePosLogical ) );&lt;br /&gt;
      }&lt;br /&gt;
      s.SetActivePos( 0 );&lt;br /&gt;
      while ( s.NextBookmark() ) {&lt;br /&gt;
        bmArray.push( s.GetActivePointY( mePosLogical ) );&lt;br /&gt;
      }&lt;br /&gt;
      s.SetAnchorPos( tp );  s.SetActivePos( bp, true );&lt;br /&gt;
      ScrollX = sx;  ScrollY = sy;&lt;br /&gt;
    }&lt;br /&gt;
    var bmCount = bmArray.length;&lt;br /&gt;
&lt;br /&gt;
    // インデント&lt;br /&gt;
    var st = s.Text;&lt;br /&gt;
    var t = st.replace( /^/gm , tab );&lt;br /&gt;
    if ( t != st ) {&lt;br /&gt;
      s.Text = t;&lt;br /&gt;
&lt;br /&gt;
      // ブックマークを復元&lt;br /&gt;
      if ( bmCount ) {&lt;br /&gt;
        var ep = s.GetActivePos();&lt;br /&gt;
        editor.ExecuteCommandByID( 2129 );		// ブックマークをクリア&lt;br /&gt;
        for ( var i = 0; i &amp;lt; bmCount; i ++ ) {&lt;br /&gt;
          s.SetActivePoint( mePosLogical, 1, bmArray[i], false );&lt;br /&gt;
          editor.ExecuteCommandByID( 2126 );	// ブックマークを設定&lt;br /&gt;
        }&lt;br /&gt;
        s.SetActivePos( ep );&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    // 選択範囲を復元&lt;br /&gt;
    if ( ty == by ) {&lt;br /&gt;
      s.SetActivePos( act + tab.length );&lt;br /&gt;
      s.SetAnchorPos( anc + tab.length );&lt;br /&gt;
    }&lt;br /&gt;
    else {&lt;br /&gt;
      s.SetActivePos( s.GetActivePos() + 1 );&lt;br /&gt;
      s.SetAnchorPoint( mePosLogical, 1, ty );&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  ScrollX = sx;  ScrollY = sy;&lt;br /&gt;
  Redraw = true;&lt;br /&gt;
&lt;br /&gt;
  var elapsedSec = ( ( new Date() - start ) / 1000 ).toFixed( 3 );&lt;br /&gt;
  Status = &amp;quot;　「インデント」マクロ　　[ &amp;quot;&lt;br /&gt;
         + elapsedSec.replace( /\./, &amp;quot;. &amp;quot; )&lt;br /&gt;
         + &amp;quot; 秒 ]&amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 逆インデント ==&lt;br /&gt;
;アンインデント.js &amp;lt;br&amp;gt; &lt;br /&gt;
既存のツールバーアイコンのアイテム「逆インデント」から置きかえて使う目的のマクロで、&amp;lt;span style=&amp;quot;color:#0000c0;&amp;quot;&amp;gt;選択範囲がなくてもアンインデント&amp;lt;/span&amp;gt;します。 &amp;lt;br&amp;gt; &lt;br /&gt;
機能的には「字上げ（スペース×２ 削除）」マクロとほぼ同じですが、削除できる「半角スペース×ｎ」の最大数をかんたんに設定できるようにしてあります &amp;lt;br&amp;gt;&lt;br /&gt;
（ &amp;quot;␣␣␣␣&amp;quot;, &amp;quot;␣␣␣&amp;quot;, &amp;quot;␣␣&amp;quot;, &amp;quot;␣&amp;quot; なら &amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot; inline style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;var deleteSpace = 4&amp;lt;/syntaxhighlight&amp;gt; と指定するだけ）。&lt;br /&gt;
* 行頭またはカーソル付近の「タブ文字×１」か、行頭の「半角スペース×ｎ」を削除します（&amp;lt;q&amp;gt;半角スペース×ｎ&amp;lt;/q&amp;gt; は行頭だけが対象です）。&lt;br /&gt;
* 選択範囲なしならカーソル付近のタブを削除するか、またはカーソルのある１行をアンインデントして、カーソル位置を復帰します。&lt;br /&gt;
* 選択範囲ありなら論理行全体をアンインデント（行頭）して範囲選択します。&lt;br /&gt;
* 選択範囲が末尾に改行を含んでいた場合は、最後の改行を無視します。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
【推奨設定】&amp;lt;br&amp;gt;&lt;br /&gt;
「字上げ」マクロと並存させるなら &amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot; inline&amp;gt;var deleteSpace = 0&amp;lt;/syntaxhighlight&amp;gt; ,&amp;lt;br&amp;gt;&lt;br /&gt;
「字上げ」マクロなしで Shift＋Tab キーに割りあてるなら &amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot; inline&amp;gt;var deleteSpace ≠ 0&amp;lt;/syntaxhighlight&amp;gt; （ 1 以上の値）&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
※ 設定用変数 &amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot; inline&amp;gt;var deleteSpace = ｎ&amp;lt;/syntaxhighlight&amp;gt; で &#039;&#039;&#039;3&#039;&#039;&#039; 以上の数値を指定するさいは、Mery のオプション設定の「タブの桁数」を目安にしてください（大きな数字や非整数値を入れての動作検証はしていません）。&lt;br /&gt;
&lt;br /&gt;
※ sukemaru 版の「逆インデント」と「字上げ（スペース×２ 削除）」マクロを並存させるメリットは特にないとおもいますので、どちらかお好みで選んでください。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot; style=&amp;quot;height:40em; overflow:auto;&amp;quot;&amp;gt;&lt;br /&gt;
#title = &amp;quot;逆インデント&amp;quot;&lt;br /&gt;
#tooltip = &amp;quot;選択範囲がなくてもアンインデント&amp;quot;&lt;br /&gt;
// #icon = &amp;quot;indent_left.ico&amp;quot;&lt;br /&gt;
// #icon = &amp;quot;Mery用 マテリアルデザインっぽいアイコン.icl&amp;quot;,261&lt;br /&gt;
&lt;br /&gt;
var start = new Date();&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * ---------------------------------------------------------&lt;br /&gt;
 * 「逆インデント」マクロ&lt;br /&gt;
 *   sukemaru, 2018/11/15 - 2019/12/01&lt;br /&gt;
 * ---------------------------------------------------------&lt;br /&gt;
 * 選択範囲なしでも、行頭またはカーソル付近の「タブ文字×１」か、&lt;br /&gt;
 * 行頭の「半角スペース×２」を削除する&lt;br /&gt;
 * ・選択範囲なしならカーソル付近のタブを削除するか、&lt;br /&gt;
 *   またはカーソルのある１行をアンインデントして、カーソル位置を復帰する&lt;br /&gt;
 * ・選択範囲ありなら論理行全体をアンインデントして範囲選択する&lt;br /&gt;
 * &lt;br /&gt;
 * 2019/11/17: ブックマークの保守方法を変更&lt;br /&gt;
 * 2019/12/01: 複数行選択のときのみブックマークの保存／復元するように変更&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
// ---------- ▼ 設定項目 ▼ ----------&lt;br /&gt;
&lt;br /&gt;
// ■選択範囲なしのときに、カーソル位置の前後にある「タブ文字」を優先的に削除するか？&lt;br /&gt;
// ※ 選択範囲が１行内で、先頭に「タブ文字」がある場合も優先的に削除する&lt;br /&gt;
var deleteNearestTab = true;&lt;br /&gt;
  /**&lt;br /&gt;
   * false にすると、つねに行頭の空白文字のみを削除&lt;br /&gt;
   * true にすると、カーソル付近の「タブ文字×１」を優先的に削除&lt;br /&gt;
   * （タブ文字がなければ行頭の空白を削除）&lt;br /&gt;
   */&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
// ■行頭の「半角スペース」や「全角スペース」も削除するか？&lt;br /&gt;
var deleteSpace = 1;&lt;br /&gt;
  /**&lt;br /&gt;
   * ※ 正の整数値で指定してください&lt;br /&gt;
   * 0: 行頭の「タブ文字×１」だけを削除&lt;br /&gt;
   * 1: 行頭の「タブ文字×１」と「半角スペース×１～２」も削除&lt;br /&gt;
   * 2: 行頭の「タブ文字×１」と「半角スペース×１～２」と「全角スペース×１」も削除&lt;br /&gt;
   * 3: １回の逆インデントで削除できる「半角スペース×ｎ」の最大数が増加&lt;br /&gt;
   *  ※ 削除できる「全角スペース」の最大数は ｎ / 2 （ → roundDecimal 変数で設定 ）&lt;br /&gt;
   */&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    // ■deleteSpace が 3 以上のとき、削除できる「全角スペース」の最大数&lt;br /&gt;
    var roundDecimal = false;&lt;br /&gt;
      /**&lt;br /&gt;
       * ※ deleteSpace が奇数のときの小数点以下の処理&lt;br /&gt;
       * false にすると ( deleteSpace / 2 ) の小数点以下を切り捨て&lt;br /&gt;
       * true にすると  ( deleteSpace / 2 ) の小数点以下を切り上げ（四捨五入）&lt;br /&gt;
       */&lt;br /&gt;
&lt;br /&gt;
// ---------- ▲ 設定項目 ▲ ----------&lt;br /&gt;
&lt;br /&gt;
Redraw = false;&lt;br /&gt;
var sx = ScrollX,  sy = ScrollY;&lt;br /&gt;
var d = editor.ActiveDocument;&lt;br /&gt;
var s = d.selection;&lt;br /&gt;
&lt;br /&gt;
var pos = s.IsEmpty ? s.GetActivePos() : &amp;quot;&amp;quot;;	// &amp;quot;選択範囲なし&amp;quot; のフラグ&lt;br /&gt;
var isDone = false;	// Quit() メソッドの代用フラグ&lt;br /&gt;
&lt;br /&gt;
if ( d.ReadOnly ) {&lt;br /&gt;
  Status = &amp;quot;　ドキュメントは書き換え禁止です。&amp;quot;;&lt;br /&gt;
  isDone = true;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* カーソル付近の「タブ文字×１」を削除するパターン（左側優先） */&lt;br /&gt;
else if ( pos &amp;amp;&amp;amp; deleteNearestTab ) {&lt;br /&gt;
  if ( d.Text.charAt( pos - 1 ) == &amp;quot;\t&amp;quot; ) {&lt;br /&gt;
    s.DeleteLeft();&lt;br /&gt;
    isDone = true;&lt;br /&gt;
  }&lt;br /&gt;
  else if ( d.Text.charAt( pos ) == &amp;quot;\t&amp;quot; ) {&lt;br /&gt;
    s.Delete();&lt;br /&gt;
    isDone = true;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
if ( ! isDone ) {&lt;br /&gt;
  // 選択範囲&lt;br /&gt;
  var act = s.GetActivePos();&lt;br /&gt;
  var anc = s.GetAnchorPos();&lt;br /&gt;
  var tx = s.GetTopPointX( mePosLogical );&lt;br /&gt;
  var ty = s.GetTopPointY( mePosLogical );&lt;br /&gt;
  var bx = s.GetBottomPointX( mePosLogical );&lt;br /&gt;
  var by = yy = s.GetBottomPointY( mePosLogical );&lt;br /&gt;
  var inLine = ( ty == by &amp;amp;&amp;amp; act != anc );&lt;br /&gt;
  var st = s.Text;&lt;br /&gt;
&lt;br /&gt;
  /* 選択範囲が１行内のときに、先頭の「タブ文字」を優先的に削除するパターン */&lt;br /&gt;
  if ( inLine &amp;amp;&amp;amp; deleteNearestTab &amp;amp;&amp;amp; st.charAt( 0 ) == &amp;quot;\t&amp;quot; ) {&lt;br /&gt;
    s.Text = st.replace( /^\t/, &amp;quot;&amp;quot; );&lt;br /&gt;
    s.SetAnchorPoint( mePosLogical, tx, ty );&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  else {&lt;br /&gt;
    // 選択範囲を拡張&lt;br /&gt;
    if ( ty != by &amp;amp;&amp;amp; bx == 1 ) { yy --; }&lt;br /&gt;
    s.SetActivePoint( mePosLogical, 1, yy );&lt;br /&gt;
    s.EndOfLine( false, mePosLogical );&lt;br /&gt;
    s.SetAnchorPoint( mePosLogical, 1, ty );&lt;br /&gt;
&lt;br /&gt;
    // ブックマークを保存&lt;br /&gt;
    var bmArray = [];&lt;br /&gt;
    if ( ty &amp;lt; by ) {&lt;br /&gt;
      var tp = s.GetAnchorPos(),  bp = s.GetActivePos();&lt;br /&gt;
      s.SetActivePoint( mePosLogical, 1, 2 );&lt;br /&gt;
      if ( s.PreviousBookmark() ) {&lt;br /&gt;
        bmArray.push( s.GetActivePointY( mePosLogical ) );&lt;br /&gt;
      }&lt;br /&gt;
      s.SetActivePos( 0 );&lt;br /&gt;
      while ( s.NextBookmark() ) {&lt;br /&gt;
        bmArray.push( s.GetActivePointY( mePosLogical ) );&lt;br /&gt;
      }&lt;br /&gt;
      s.SetAnchorPos( tp );  s.SetActivePos( bp, true );&lt;br /&gt;
      ScrollX = sx;  ScrollY = sy;&lt;br /&gt;
    }&lt;br /&gt;
    var bmCount = bmArray.length;&lt;br /&gt;
&lt;br /&gt;
    /* 逆インデント */&lt;br /&gt;
    var regStr1 = &amp;quot;^\\t|^[ ]{1,2}&amp;quot;;&lt;br /&gt;
    var regStr2 = &amp;quot;^\\t|^[ ]{1,2}|^[　]&amp;quot;;&lt;br /&gt;
    var regStr3 = &amp;quot;^\\t|^[ ]{1,&amp;quot; + deleteSpace + &amp;quot;}|^[　]{1,&amp;quot;&lt;br /&gt;
                + ( roundDecimal ? Math.round( deleteSpace / 2 )	// 切り上げ&lt;br /&gt;
                                 : Math.floor( deleteSpace / 2 ) )	// 切り捨て&lt;br /&gt;
                + &amp;quot;}&amp;quot;;&lt;br /&gt;
    var indent = ( deleteSpace == 1 ) ? regStr1&lt;br /&gt;
               : ( deleteSpace == 2 ) ? regStr2&lt;br /&gt;
               : ( deleteSpace &amp;gt;= 3 ) ? regStr3&lt;br /&gt;
               : /*     else       */   &amp;quot;^\\t&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
    st = s.Text;&lt;br /&gt;
    var u = st.replace( new RegExp( indent , &amp;quot;gm&amp;quot; ) , &amp;quot;&amp;quot; );&lt;br /&gt;
    if ( u != st ) {&lt;br /&gt;
      s.Text = u;&lt;br /&gt;
&lt;br /&gt;
      // ブックマークを復元&lt;br /&gt;
      if ( bmCount ) {&lt;br /&gt;
        var ep = s.GetActivePos();&lt;br /&gt;
        editor.ExecuteCommandByID( 2129 );		// ブックマークをクリア&lt;br /&gt;
        for ( var i = 0; i &amp;lt; bmCount; i ++ ) {&lt;br /&gt;
          s.SetActivePoint( mePosLogical, 1, bmArray[i], false );&lt;br /&gt;
          editor.ExecuteCommandByID( 2126 );	// ブックマークを設定/解除（設定）&lt;br /&gt;
        }&lt;br /&gt;
        s.SetActivePos( ep );&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    // 選択範囲が１行だったときは、位置関係を維持して選択範囲を復元する&lt;br /&gt;
    if ( ty == by ) {&lt;br /&gt;
      var gap = st.length - u.length;&lt;br /&gt;
      if ( bx &amp;lt;= gap ) {&lt;br /&gt;
        s.SetActivePoint( mePosLogical, 1, ty );&lt;br /&gt;
      }&lt;br /&gt;
      else if ( anc &amp;lt; act &amp;amp;&amp;amp; tx &amp;lt;= gap ) {&lt;br /&gt;
        s.SetActivePos( act - gap );&lt;br /&gt;
        s.SetAnchorPoint( mePosLogical, 1, ty );&lt;br /&gt;
      }&lt;br /&gt;
      else if ( tx &amp;lt;= gap ) {&lt;br /&gt;
        s.SetActivePoint( mePosLogical, 1, ty );&lt;br /&gt;
        s.SetAnchorPos( anc - gap );&lt;br /&gt;
      }&lt;br /&gt;
      else {&lt;br /&gt;
        s.SetActivePos( act - gap );&lt;br /&gt;
        s.SetAnchorPos( anc - gap );&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
    // 選択範囲が複数行だったときは、拡張した選択範囲を復元する&lt;br /&gt;
    else {&lt;br /&gt;
      s.SetActivePos( s.GetActivePos() + 1 );&lt;br /&gt;
      s.SetAnchorPoint( mePosLogical, 1, ty );&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
ScrollX = sx;  ScrollY = sy;&lt;br /&gt;
Redraw = true;&lt;br /&gt;
&lt;br /&gt;
if ( ! d.ReadOnly ) {&lt;br /&gt;
  var elapsedSec = ( ( new Date() - start ) / 1000 ).toFixed( 3 );&lt;br /&gt;
  Status = &amp;quot;　「逆インデント」マクロ　　[ &amp;quot;&lt;br /&gt;
         + elapsedSec.replace( /\./, &amp;quot;. &amp;quot; )&lt;br /&gt;
         + &amp;quot; 秒 ]&amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== メモ ==&lt;br /&gt;
*(2019/04/07 sukemaru)&lt;br /&gt;
:ソースコードから Quit() メソッドを削除&lt;br /&gt;
----&lt;br /&gt;
*(2019/11/10 sukemaru)&lt;br /&gt;
:Mery 2.8.6 以上でブックマークを保持&lt;br /&gt;
:※ Mery 2.8.5 以前ではブックマーク機能の仕様が不安定なので、個別対応はあきらめた…。&lt;br /&gt;
----&lt;br /&gt;
*(2019/11/17 sukemaru)&lt;br /&gt;
:Mery 2.8.6 以上、または Mery 2.6.7 でブックマークを保持&lt;br /&gt;
:※ Mery 2.7.0 - 2.8.5 ではブックマーク機能の仕様が不安定なので、1行のみの字下げ／字上げ（インデント／逆インデント）をしたときにブックマークがおかしくなることがある。 現時点での最新の正式版と最新ベータ版で正常に機能するように調整した。&lt;br /&gt;
*(2019/11/18 sukemaru)&lt;br /&gt;
:「スペース×２ 削除.js」のソースコードで設定項目部分がダブっていたのを修正&lt;br /&gt;
----&lt;br /&gt;
*(2019/12/01 sukemaru)&lt;br /&gt;
: 複数行選択のときのみブックマークの保存／復元するように変更&lt;br /&gt;
:（ブックマークが大量にある文書で、範囲選択１行内で実行したときの速度を改善）&lt;br /&gt;
----&lt;/div&gt;</summary>
		<author><name>Masme</name></author>
	</entry>
	<entry>
		<id>https://www.haijin-boys.com/wiki/index.php?title=%E6%97%A5%E4%BB%98%E3%81%A8%E6%99%82%E5%88%BB%E3%82%92%E6%8C%BF%E5%85%A5&amp;diff=4888</id>
		<title>日付と時刻を挿入</title>
		<link rel="alternate" type="text/html" href="https://www.haijin-boys.com/wiki/index.php?title=%E6%97%A5%E4%BB%98%E3%81%A8%E6%99%82%E5%88%BB%E3%82%92%E6%8C%BF%E5%85%A5&amp;diff=4888"/>
		<updated>2019-12-21T13:05:18Z</updated>

		<summary type="html">&lt;p&gt;Masme: 更新履歴の書式を変更&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= n 版 =&lt;br /&gt;
メモ帳のF5キーの再現です。いまの時刻をカーソル位置に挿入します。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
// 日付と時刻を挿入.js&lt;br /&gt;
d = new Date&lt;br /&gt;
&lt;br /&gt;
document.selection.Text = d.getHours() + &#039;:&#039; + p(d.getMinutes()) + &#039; &#039; + [p(d.getYear()), p(d.getMonth() + 1), p(d.getDate())].join(&#039;/&#039;)&lt;br /&gt;
&lt;br /&gt;
function p(x) { return x &amp;lt; 10 ? &#039;0&#039; + x : x }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= masme 版 =&lt;br /&gt;
書式設定（※下表参考）を元に現在日時を出力・挿入します。&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 書式設定の例 !! 出力結果の例&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;h:mm YYYY/MM/DD&amp;lt;/code&amp;gt; ||&amp;lt;code&amp;gt;4:05 2001/02/03&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;YYYY-MM-DD hh:mm:ss&amp;lt;/code&amp;gt; ||&amp;lt;code&amp;gt;2001-02-03 04:05:06&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;ddd, MMM D, YYYY&amp;lt;/code&amp;gt; ||&amp;lt;code&amp;gt;Sat, Feb 3, 2001&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;YY年M月D日(d) h時m分s秒&amp;lt;/code&amp;gt; ||&amp;lt;code&amp;gt;01年2月3日(土) 4時5分6秒&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;hhmm &#039;hhmm&#039; h&#039;hm&#039;m &amp;amp;#x27;&amp;amp;#x27;&amp;lt;/code&amp;gt; ||&amp;lt;code&amp;gt;0405 hhmm 4hm5 &#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== 更新履歴 ==&lt;br /&gt;
; 2016/02/28&lt;br /&gt;
* 書式 d と ddd の内容を交換し、d を 日～土 出力、ddd を Sun～Sat 出力にした。&lt;br /&gt;
** MMM が Jan～Dec 出力なので字数を揃えた。&lt;br /&gt;
* アポストロフィー &amp;lt;code&amp;gt;&#039;&amp;lt;/code&amp;gt; によるエスケープを導入。&lt;br /&gt;
; 2014/02/12&lt;br /&gt;
* 初版公開。&lt;br /&gt;
&lt;br /&gt;
== ソースコード ==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
//■日付と時刻&lt;br /&gt;
//　2014/02/12-2016/02/28&lt;br /&gt;
&lt;br /&gt;
//■書式設定 ●初期値=&amp;quot;h:mm YYYY/MM/DD&amp;quot;&lt;br /&gt;
var format = &amp;quot;h:mm YYYY/MM/DD&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
var symbol = (function(){&lt;br /&gt;
  var t = new Date(), pad = function(n){return n&amp;lt;10? &amp;quot;0&amp;quot;+n : n};&lt;br /&gt;
  return {&lt;br /&gt;
  &amp;quot;YYYY&amp;quot;:  (t.getFullYear()),&lt;br /&gt;
  &amp;quot;YY&amp;quot;: pad(t.getFullYear()%100),&lt;br /&gt;
  &amp;quot;MMM&amp;quot;: [&amp;quot;Jan&amp;quot;,&amp;quot;Feb&amp;quot;,&amp;quot;Mar&amp;quot;,&amp;quot;Apr&amp;quot;,&amp;quot;May&amp;quot;,&amp;quot;Jun&amp;quot;,&amp;quot;Jul&amp;quot;,&amp;quot;Aug&amp;quot;,&amp;quot;Sep&amp;quot;,&amp;quot;Oct&amp;quot;,&amp;quot;Nov&amp;quot;,&amp;quot;Dec&amp;quot;][t.getMonth()],&lt;br /&gt;
  &amp;quot;MM&amp;quot;: pad(t.getMonth()+1),&lt;br /&gt;
  &amp;quot;M&amp;quot;:     (t.getMonth()+1),&lt;br /&gt;
  &amp;quot;DD&amp;quot;: pad(t.getDate()),&lt;br /&gt;
  &amp;quot;D&amp;quot;:     (t.getDate()),&lt;br /&gt;
  &amp;quot;ddd&amp;quot;: [&amp;quot;Sun&amp;quot;,&amp;quot;Mon&amp;quot;,&amp;quot;Tue&amp;quot;,&amp;quot;Wed&amp;quot;,&amp;quot;Thu&amp;quot;,&amp;quot;Fri&amp;quot;,&amp;quot;Sat&amp;quot;][t.getDay()],&lt;br /&gt;
  &amp;quot;d&amp;quot;:   [&amp;quot;日&amp;quot;,&amp;quot;月&amp;quot;,&amp;quot;火&amp;quot;,&amp;quot;水&amp;quot;,&amp;quot;木&amp;quot;,&amp;quot;金&amp;quot;,&amp;quot;土&amp;quot;][t.getDay()],&lt;br /&gt;
  &amp;quot;hh&amp;quot;: pad(t.getHours()),&lt;br /&gt;
  &amp;quot;h&amp;quot;:     (t.getHours()),&lt;br /&gt;
  &amp;quot;mm&amp;quot;: pad(t.getMinutes()),&lt;br /&gt;
  &amp;quot;m&amp;quot;:     (t.getMinutes()),&lt;br /&gt;
  &amp;quot;ss&amp;quot;: pad(t.getSeconds()),&lt;br /&gt;
  &amp;quot;s&amp;quot;:     (t.getSeconds())&lt;br /&gt;
  };&lt;br /&gt;
})();&lt;br /&gt;
&lt;br /&gt;
var result = format.replace(/(&#039;)(.*?)\1|([YMDdhms])\3*/g,&lt;br /&gt;
  function($0,esc,ltr){return ltr || esc || symbol[$0] || $0;}&lt;br /&gt;
);&lt;br /&gt;
Document.Write(result);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= sukemaru 版 =&lt;br /&gt;
現在日時を日本時間　&#039;&#039;&#039;&amp;quot;YYYY/MM/DD hh:mm:ss&amp;quot;&#039;&#039;&#039;　の文字列で返します。&lt;br /&gt;
&lt;br /&gt;
ログへの書き出し用のフォーマットとして現在日時を日本時間　&#039;&#039;&#039;&amp;quot;YYYY-MM-DD hh:mm:ss UTC+0900&amp;quot;&#039;&#039;&#039;　の文字列で返すこともできます。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
/**&lt;br /&gt;
 * 関数 DateTime(bar,utc)&lt;br /&gt;
 * 現在日時を日本時間  &amp;quot;YYYY-MM-DD hh:mm:ss UTC+0900&amp;quot;  の文字列で返す&lt;br /&gt;
 * 引数 bar は年月日の区切り文字 ( デフォルト: &amp;quot;/&amp;quot; )&lt;br /&gt;
 * 引数 utc は文字列  &amp;quot;UTC+0900&amp;quot;  の表示の設定用 ( true / false )&lt;br /&gt;
 * 引数を省略した場合は  &amp;quot;YYYY/MM/DD hh:mm:ss&amp;quot;  の文字列で返す&lt;br /&gt;
 */&lt;br /&gt;
function DateTime(bar,utc) {&lt;br /&gt;
  var d = new Date();&lt;br /&gt;
  var yymmdd = bar ? d.getFullYear()+bar+(d.getMonth()+1)+bar+d.getDate()&lt;br /&gt;
                   : d.getFullYear()+&amp;quot;/&amp;quot;+(d.getMonth()+1)+&amp;quot;/&amp;quot;+d.getDate();&lt;br /&gt;
  var hhmmss = utc ? d.toTimeString()&lt;br /&gt;
                   : d.toLocaleTimeString();&lt;br /&gt;
  var pad = function(str) {&lt;br /&gt;
    return str.replace(/[0-9]+/g,function($0) {&lt;br /&gt;
      return $0.length&amp;lt;2 ? &amp;quot;0&amp;quot;+$0 : $0;&lt;br /&gt;
    });&lt;br /&gt;
  }&lt;br /&gt;
  return pad(yymmdd+&amp;quot; &amp;quot;+hhmmss);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
// ▼ 使用例 ▼&lt;br /&gt;
// ※変数に代入でも、文字列値としてそのまま使ってもよい&lt;br /&gt;
{&lt;br /&gt;
  var $now;&lt;br /&gt;
&lt;br /&gt;
// エディタ上に YYYY/MM/DD hh:mm:ss で記述する&lt;br /&gt;
  $now = DateTime();&lt;br /&gt;
  document.Writeln( $now );&lt;br /&gt;
  document.selection.Text = $now;&lt;br /&gt;
&lt;br /&gt;
// ステータスバーに YYYY/MM/DD hh:mm:ss で表示する&lt;br /&gt;
  $now = DateTime( 0,0 );&lt;br /&gt;
  Status = &amp;quot;現在の時刻 &amp;quot; + $now;&lt;br /&gt;
&lt;br /&gt;
// アウトプットバーに YYYY-MM-DD hh:mm:ss UTC+0900 で出力する&lt;br /&gt;
  OutputBar.Writeln( DateTime( &amp;quot;-&amp;quot;, true ) );&lt;br /&gt;
&lt;br /&gt;
// ダイアログに YYYY-MM-DD hh:mm:ss で表示する&lt;br /&gt;
  $now = DateTime( &amp;quot;-&amp;quot; );&lt;br /&gt;
  Alert( &amp;quot;日本時間の現在時刻:\n&amp;quot; + $now );&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* マクロに組み込みやすいように、&#039;&#039;&#039;引数なし&#039;&#039;&#039;のシンプルなバージョンも。&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
/**&lt;br /&gt;
 * 関数 DateTime()&lt;br /&gt;
 * 現在日時を日本時間  &amp;quot;YYYY-MM-DD hh:mm:ss UTC+0900&amp;quot;  で返す（年月日の区切り： &amp;quot;-&amp;quot; ）&lt;br /&gt;
 * 末尾の&amp;quot;UTC+0900&amp;quot;  が不要なら、toTimeString → toLocaleTimeString&lt;br /&gt;
 */&lt;br /&gt;
function DateTime(){&lt;br /&gt;
  var d = new Date();&lt;br /&gt;
  var pad = function(str){return str.replace(/[0-9]+/g,function($0){return $0.length&amp;lt;2 ? &amp;quot;0&amp;quot;+$0 : $0;});}&lt;br /&gt;
  return pad(d.getFullYear()+&amp;quot;-&amp;quot;+(d.getMonth()+1)+&amp;quot;-&amp;quot;+d.getDate()+&amp;quot; &amp;quot;+d.toTimeString());&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// ▼ 使用例 ▼&lt;br /&gt;
// アウトプットバーに YYYY-MM-DD hh:mm:ss UTC+0900 で出力する&lt;br /&gt;
OutputBar.Writeln( DateTime() );&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* さらにログ用っぽく、&#039;&#039;&#039;ミリ秒つき&#039;&#039;&#039;バージョンも。&lt;br /&gt;
: マクロ内の各処理の時刻を出力する場合、変数 d = new Date() は関数スコープのなかに置いてください。&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
/**&lt;br /&gt;
 * 関数 DateTime_ms()&lt;br /&gt;
 * 現在日時（ミリ秒つき）を  &amp;quot;YYYY-MM-DD hh:mm:ss.sss UTC+0900&amp;quot;  で返す（年月日の区切り： &amp;quot;-&amp;quot; ）&lt;br /&gt;
 */&lt;br /&gt;
function DateTime_ms(){&lt;br /&gt;
  var d = newDate();&lt;br /&gt;
  var pad = function(str){return str.replace(/[0-9]+/g,function($0){return $0.length&amp;lt;2 ? &amp;quot;0&amp;quot;+$0 : $0;});}&lt;br /&gt;
  return d.getFullYear()+&amp;quot;-&amp;quot;+pad((d.getMonth()+1)+&amp;quot;-&amp;quot;+d.getDate()+&amp;quot; &amp;quot;+d.toLocaleTimeString())+&amp;quot;.&amp;quot;+(d.getMilliseconds()+&amp;quot;000&amp;quot;).substr(0,3)+&amp;quot; UTC+0900&amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// ▼ 使用例 ▼&lt;br /&gt;
// アウトプットバーに YYYY-MM-DD hh:mm:ss.sss UTC+0900 で出力する&lt;br /&gt;
OutputBar.Writeln( DateTime_ms() );&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;&amp;quot;YYYY年M月D日 hh:mm:ss&amp;quot;&#039;&#039;&#039; バージョンも。&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
/**&lt;br /&gt;
 * 関数 DateTime_JP()&lt;br /&gt;
 * 現在日時を日本時間  &amp;quot;YYYY年M月D日 hh:mm:ss&amp;quot;  で返す&lt;br /&gt;
 */&lt;br /&gt;
function DateTime_JP(){&lt;br /&gt;
  var d = new Date();&lt;br /&gt;
  return d.getFullYear()+&amp;quot;年&amp;quot;+(d.getMonth()+1)+&amp;quot;月&amp;quot;+d.getDate()+&amp;quot;日 &amp;quot;+d.toLocaleTimeString();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// ▼ 使用例 ▼&lt;br /&gt;
// エディタ上に YYYY年M月D日 hh:mm:ss で記述する&lt;br /&gt;
  document.Writeln( DateTime_JP() );&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Masme</name></author>
	</entry>
	<entry>
		<id>https://www.haijin-boys.com/wiki/index.php?title=%E5%AF%BE%E5%BF%9C%E3%81%99%E3%82%8B%E6%8B%AC%E5%BC%A7%E3%81%AB%E7%A7%BB%E5%8B%95&amp;diff=4887</id>
		<title>対応する括弧に移動</title>
		<link rel="alternate" type="text/html" href="https://www.haijin-boys.com/wiki/index.php?title=%E5%AF%BE%E5%BF%9C%E3%81%99%E3%82%8B%E6%8B%AC%E5%BC%A7%E3%81%AB%E7%A7%BB%E5%8B%95&amp;diff=4887"/>
		<updated>2019-12-21T13:04:34Z</updated>

		<summary type="html">&lt;p&gt;Masme: 更新履歴の書式を変更&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Kuro, kurama 版 (2009/08) =&lt;br /&gt;
* 「shift」変数を「true」に書き換えると、選択しながら移動します。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
// -----------------------------------------------------------------------------&lt;br /&gt;
// 対応する括弧に移動&lt;br /&gt;
//&lt;br /&gt;
// Copyright (c) Kuro. All Rights Reserved.&lt;br /&gt;
// www:    http://www.haijin-boys.com/&lt;br /&gt;
// Special Thanks for Kurama さん, Take さん&lt;br /&gt;
// -----------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
// シフトの状態(オンの場合は選択、オフの場合は移動)&lt;br /&gt;
var shift = false;&lt;br /&gt;
// 括弧として認識する文字&lt;br /&gt;
var lp = &amp;quot;(&amp;lt;[{「『【（&amp;quot;;&lt;br /&gt;
var rp = &amp;quot;)&amp;gt;]}」』】）&amp;quot;;&lt;br /&gt;
// 描画停止&lt;br /&gt;
Redraw = false;&lt;br /&gt;
// ステータスバーを消去&lt;br /&gt;
Status = &amp;quot;&amp;quot;;&lt;br /&gt;
with (document.selection) {&lt;br /&gt;
  // カーソル位置を保存&lt;br /&gt;
  var ax = GetActivePointX(mePosLogical);&lt;br /&gt;
  var ay = GetActivePointY(mePosLogical);&lt;br /&gt;
  // スクロール位置を保存&lt;br /&gt;
  var sx = ScrollX;&lt;br /&gt;
  var sy = ScrollY;&lt;br /&gt;
  // カーソル位置を復元&lt;br /&gt;
  SetActivePoint(mePosLogical, ax, ay, false);&lt;br /&gt;
  // 単語を選択&lt;br /&gt;
  SelectWord();&lt;br /&gt;
  // 現在位置の括弧を取得&lt;br /&gt;
  var c1 = Text;&lt;br /&gt;
  // 選択範囲を解除&lt;br /&gt;
  Collapse();&lt;br /&gt;
  var l = lp.indexOf(c1);&lt;br /&gt;
  var r = rp.indexOf(c1);&lt;br /&gt;
  var st = 0;&lt;br /&gt;
  if (l &amp;gt; -1) {&lt;br /&gt;
    // 対応する括弧の種類を取得&lt;br /&gt;
    var c2 = rp.charAt(l);&lt;br /&gt;
    EndOfDocument(true);&lt;br /&gt;
    var s = Text;&lt;br /&gt;
    // カーソル位置を復元&lt;br /&gt;
    SetActivePoint(mePosLogical, ax, ay, false);&lt;br /&gt;
    // スクロール位置を復元&lt;br /&gt;
    ScrollX = sx;&lt;br /&gt;
    ScrollY = sy;&lt;br /&gt;
    var x = ax;&lt;br /&gt;
    var y = ay;&lt;br /&gt;
    for (var i = 0; i &amp;lt; s.length; i++) {&lt;br /&gt;
      x++;&lt;br /&gt;
      if (s.charAt(i) == c1)&lt;br /&gt;
        st++;&lt;br /&gt;
      if (s.charAt(i) == c2)&lt;br /&gt;
        st--;&lt;br /&gt;
      if (st == 0) {&lt;br /&gt;
        y = GetActivePointY(mePosLogical);&lt;br /&gt;
        // カーソル位置を復元&lt;br /&gt;
        SetActivePoint(mePosLogical, ax, ay, false);&lt;br /&gt;
        SetActivePoint(mePosLogical, x, y, shift);&lt;br /&gt;
        // 左に戻る&lt;br /&gt;
        CharLeft(shift, 1);&lt;br /&gt;
        break;&lt;br /&gt;
      }&lt;br /&gt;
      if (s.charAt(i) == &amp;quot;\n&amp;quot;) {&lt;br /&gt;
        x = 1;&lt;br /&gt;
        y = GetActivePointY(mePosLogical) + 1;&lt;br /&gt;
        SetActivePoint(mePosLogical, x, y, false);&lt;br /&gt;
        StartOfLine(false, mePosLogical);&lt;br /&gt;
        x = GetActivePointX(mePosLogical);&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  } else if (r &amp;gt; -1) {&lt;br /&gt;
    // 対応する括弧の種類を取得&lt;br /&gt;
    var c2 = lp.charAt(r);&lt;br /&gt;
    CharRight(false, 1);&lt;br /&gt;
    StartOfDocument(true);&lt;br /&gt;
    var s = Text;&lt;br /&gt;
    // カーソル位置を復元&lt;br /&gt;
    SetActivePoint(mePosLogical, ax, ay, false);&lt;br /&gt;
    // スクロール位置を復元&lt;br /&gt;
    ScrollX = sx;&lt;br /&gt;
    ScrollY = sy;&lt;br /&gt;
    var x = ax;&lt;br /&gt;
    for (var i = s.length - 1; i &amp;gt;= 0; i--) {&lt;br /&gt;
      x--;&lt;br /&gt;
      if (s.charAt(i) == c1)&lt;br /&gt;
        st++;&lt;br /&gt;
      if (s.charAt(i) == c2)&lt;br /&gt;
        st--;&lt;br /&gt;
      if (st == 0) {&lt;br /&gt;
        y = GetActivePointY(mePosLogical);&lt;br /&gt;
        // カーソル位置を復元&lt;br /&gt;
        SetActivePoint(mePosLogical, ax, ay, false);&lt;br /&gt;
        SetActivePoint(mePosLogical, x, y, shift);&lt;br /&gt;
        // 右に進む&lt;br /&gt;
        CharRight(shift, 1);&lt;br /&gt;
        break;&lt;br /&gt;
      }&lt;br /&gt;
      if (s.charAt(i) == &amp;quot;\n&amp;quot;) {&lt;br /&gt;
        x = 1;&lt;br /&gt;
        y = GetActivePointY(mePosLogical) - 1;&lt;br /&gt;
        SetActivePoint(mePosLogical, x, y, false);&lt;br /&gt;
        EndOfLine(false, mePosLogical);&lt;br /&gt;
        x = GetActivePointX(mePosLogical);&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  } else {&lt;br /&gt;
    // 括弧が無い場合は元の位置に戻す&lt;br /&gt;
    SetActivePoint(mePosLogical, ax, ay, false);&lt;br /&gt;
    Status = &amp;quot;カーソル位置に括弧が見つかりませんでした&amp;quot;;&lt;br /&gt;
  }&lt;br /&gt;
  if (st != 0) {&lt;br /&gt;
    SetActivePoint(mePosLogical, ax, ay, false);&lt;br /&gt;
    Status = &amp;quot;対応する括弧が見つかりませんでした&amp;quot;;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
// 描画開始&lt;br /&gt;
Redraw = true;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= masme 版 =&lt;br /&gt;
* ステータスバーに括弧間の文字数を表示するようにしました。&lt;br /&gt;
* Kuro, kurama 版の不安定な挙動を調整しました。&lt;br /&gt;
** カーソル右側が改行か[EOF]の場合、左側の括弧に反応するのを修正。例外なく右側のみ反応するようにした。&lt;br /&gt;
** 開き括弧の直前ではなく、直後に移動する場合&amp;lt;sup&amp;gt;※&amp;lt;/sup&amp;gt;があるのを修正。直前に移動するよう統一した。&amp;lt;br&amp;gt;※カーソル右側が改行か[EOF]の場合。改行をまたぐ移動になる場合。対応する括弧が行頭にある場合。&lt;br /&gt;
&lt;br /&gt;
== 更新履歴 ==&lt;br /&gt;
; 2019/04/12&lt;br /&gt;
* Quit() → break ラベル文に変更。&lt;br /&gt;
; 2017/05/27&lt;br /&gt;
* 処理方法を正規表現検索 → 文字列検索に変更し、高速化。&lt;br /&gt;
* 対応する括弧が見つからなかった場合、選択解除する → しない仕様に変更。&lt;br /&gt;
; 2014/02/05&lt;br /&gt;
* 初版公開。&lt;br /&gt;
&lt;br /&gt;
== ソースコード ==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
//■対応する括弧に移動&lt;br /&gt;
//　2014/02/05-2019/04/12&lt;br /&gt;
&lt;br /&gt;
//■括弧の定義(0+2n:開き/1+2n:閉じ)&lt;br /&gt;
var BRACKET = &amp;quot;()&amp;lt;&amp;gt;[]{}「」『』【】（）&amp;quot;;&lt;br /&gt;
//■範囲選択(true:する/false:しない)&lt;br /&gt;
var SHIFT = false;&lt;br /&gt;
&lt;br /&gt;
quit: {&lt;br /&gt;
var Sel = Document.Selection;&lt;br /&gt;
var txt = Document.Text;&lt;br /&gt;
var sPos = Sel.GetActivePos(), ePos = sPos; //カーソル始点, 探索位置＆終点&lt;br /&gt;
var sBrc = txt.charAt(sPos); //カーソル右側の文字を取得&lt;br /&gt;
var iBrc = BRACKET.indexOf(sBrc);&lt;br /&gt;
if (iBrc===-1 || sBrc===&amp;quot;&amp;quot;) { Status = &amp;quot;カーソル右側に括弧がありません&amp;quot;; break quit; }&lt;br /&gt;
var nest = 1, s, e;&lt;br /&gt;
if (iBrc % 2) { //◆閉じ括弧の場合、先頭方向へ探す&lt;br /&gt;
  var eBrc = BRACKET.charAt(iBrc-1); //対応する開き括弧を取得&lt;br /&gt;
  while (nest) {&lt;br /&gt;
    s = txt.lastIndexOf(sBrc,ePos-1);&lt;br /&gt;
    e = txt.lastIndexOf(eBrc,ePos-1);&lt;br /&gt;
    if (e===-1 || ePos&amp;lt;=0) break;&lt;br /&gt;
    if (e&amp;lt;s) {nest++; ePos=s;} else {nest--; ePos=e;}&lt;br /&gt;
  }&lt;br /&gt;
} else { //◆開き括弧の場合、末尾方向へ探す&lt;br /&gt;
  var eBrc = BRACKET.charAt(iBrc+1); //対応する閉じ括弧を取得&lt;br /&gt;
  while (nest) {&lt;br /&gt;
    s = txt.indexOf(sBrc,ePos+1);&lt;br /&gt;
    e = txt.indexOf(eBrc,ePos+1);&lt;br /&gt;
    if (e===-1) break;&lt;br /&gt;
    if (s&amp;lt;e &amp;amp;&amp;amp; s!==-1) {nest++; ePos=s;} else {nest--; ePos=e;}&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
if (nest!==0) { Status = &amp;quot;対応する括弧が見つかりませんでした&amp;quot;; break quit; }&lt;br /&gt;
Sel.SetActivePos(sPos);&lt;br /&gt;
Sel.SetActivePos(ePos, SHIFT);&lt;br /&gt;
Status = &amp;quot;対応する括弧の距離: &amp;quot;+(Math.abs(ePos - sPos)-1)+&amp;quot;文字&amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= masme 版用 機能拡張コード =&lt;br /&gt;
== 範囲選択の拡張 ==&lt;br /&gt;
(sukemaru 2019/04/24)&amp;lt;br&amp;gt;&lt;br /&gt;
[[GetKeyState.exe(キー状態取得実行ファイル)]] を利用して、&#039;&#039;&#039;カッコを含めた全体を範囲選択&#039;&#039;&#039;、または &#039;&#039;&#039;カッコの内側部分だけを範囲選択&#039;&#039;&#039; するための追加コードです。&amp;lt;br&amp;gt;&lt;br /&gt;
[[#masme 版|masme 版]] (2019/04/12) のソースコードに追加コードを挿入してください（&#039;&#039;&#039;2ヵ所&#039;&#039;&#039;）。&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#c00;&amp;quot;&amp;gt;ツールバーアイコンやメニュー（マクロメニューや右クリックメニュー）からマクロを実行するさいに Ctrl または Shift キーを押しながら実行すると、拡張コードが適用されます。 &amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Ctrl&#039;&#039;&#039; キーを押しながらマクロを実行した場合には、カッコを含めた全体を範囲選択します。&lt;br /&gt;
::&amp;lt;span style=&amp;quot;background:#bfdfff;&amp;quot;&amp;gt;【　Ctrl ありでの選択範囲　】&amp;lt;/span&amp;gt;　→　※カーソルは 開きカッコの左 （選択範囲の先頭）&lt;br /&gt;
* &#039;&#039;&#039;Shift&#039;&#039;&#039; キーを押しながらマクロを実行した場合には、カッコの内側部分だけを範囲選択します。&lt;br /&gt;
:: 【&amp;lt;span style=&amp;quot;background:#bfdfff;&amp;quot;&amp;gt;　Shift ありでの選択範囲　&amp;lt;/span&amp;gt;】　→　※カーソルは 閉じカッコの左 （選択範囲の末尾）&lt;br /&gt;
* &#039;&#039;&#039;Ctrl&#039;&#039;&#039;+&#039;&#039;&#039;Shift&#039;&#039;&#039; キー両方が押されている（または両方とも押されていない）場合には、masme 版の設定変数「SHIFT」の true / false で指定された動作をします。&lt;br /&gt;
::&amp;lt;span style=&amp;quot;background:#bfdfff;&amp;quot;&amp;gt;【　SHIFT=true のばあい　&amp;lt;/span&amp;gt;】&lt;br /&gt;
※「対応する括弧に移動」を連続で実行（トグル移動）できるよう、拡張機能で範囲選択したあともカーソルは開きカッコか閉じカッコいずれかの「カッコの左」にセットされます。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
※ ショートカットキーでマクロを実行する場合、Ctrl キーを含むパターン、Shift キーを含むパターン、Ctrl と Shift 両方を含む（または両方を含まない）パターンのみっつのショートカットキーを登録する必要があります。 すでに masme 版「対応する括弧に移動」マクロにショートカットキーを割り当てて使用している場合、この追加コードを使用するにあたり、ショートカットの再割り当てをしてください。&amp;lt;br&amp;gt;&lt;br /&gt;
 e.g. Ctrl＋F9 / Shift＋F9 / Ctrl＋Shift＋F9（または Alt＋F9 など）&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#c00;&amp;quot;&amp;gt;※ 外部実行ファイル GetKeyState.exe を2回呼び出すため、拡張コードの処理にはタイムラグが生じます。選択範囲が確定するまで Ctrl または Shift キーを押しっぱなしにしてください。&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
※ GetKeyState.exe のダウンロードや導入方法については、マクロライブラリ内の「[[GetKeyState.exe(キー状態取得実行ファイル)]] 」のページへ&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;追加コード➀&amp;lt;br&amp;gt;&lt;br /&gt;
15行目&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot; inline&amp;gt;if (iBrc===-1 || sBrc===&amp;quot;&amp;quot;) { Status = &amp;quot;カーソル右側に括弧がありません&amp;quot;; break quit; }&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
の下に追加する&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
// ▼ GetKeyState を利用した機能拡張 ▼&lt;br /&gt;
  // Ctrl / Shift キーの状態を取得&lt;br /&gt;
  var $ctrl = 0, $shift = 0;&lt;br /&gt;
  var getKeyState = editor.FullName.replace(/mery\.exe$/i,&amp;quot;&amp;quot;) + &amp;quot;Macros\\GetKeyState.exe&amp;quot;;&lt;br /&gt;
  var WshShell = new ActiveXObject(&amp;quot;WScript.Shell&amp;quot;);&lt;br /&gt;
  $ctrl = WshShell.Run(&#039;&amp;quot;&#039; + getKeyState + &#039;&amp;quot; ctrl&#039;,0,true);&lt;br /&gt;
  $shift = WshShell.Run(&#039;&amp;quot;&#039; + getKeyState + &#039;&amp;quot; shift&#039;,0,true);&lt;br /&gt;
// ▲ GetKeyState を利用した機能拡張 ▲&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
※「[[#カーソルの右側にカッコがないなら左側のカッコで|カーソルの右側にカッコがないなら左側のカッコで]]」の改造コードと併用する場合は、改造コードの下に挿入してください。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
;追加コード➁&amp;lt;br&amp;gt;&lt;br /&gt;
37行目&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot; inline&amp;gt;Status = &amp;quot;対応する括弧の距離: &amp;quot;+(Math.abs(ePos - sPos)-1)+&amp;quot;文字&amp;quot;;&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
の下に追加する&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
// ▼ GetKeyState を利用した機能拡張 ▼&lt;br /&gt;
  // ※SHIFT 変数による選択範囲を上書きする（SHIFT = false; でも拡張コードでの範囲選択は有効）&lt;br /&gt;
  if ($ctrl || $shift) {&lt;br /&gt;
    var tPos = Math.min(sPos,ePos);&lt;br /&gt;
    var bPos = Math.max(sPos,ePos);&lt;br /&gt;
    // Ctrl キーだけ押し下げ時にはカッコを含めた全体を範囲選択&lt;br /&gt;
    if ($ctrl&amp;gt;0 &amp;amp;&amp;amp; $shift==0) {&lt;br /&gt;
      Sel.SetActivePos(tPos);&lt;br /&gt;
      Sel.SetAnchorPos(bPos+1);&lt;br /&gt;
    }&lt;br /&gt;
    // Shift キーだけ押し下げ時にはカッコの内側だけを範囲選択&lt;br /&gt;
    else if ($ctrl==0 &amp;amp;&amp;amp; $shift&amp;gt;0) {&lt;br /&gt;
      Sel.SetActivePos(bPos);&lt;br /&gt;
      Sel.SetAnchorPos(tPos+1);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
// ▲ GetKeyState を利用した機能拡張 ▲&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
* 2019/05/12 変数名間違いを修正　sel → Sel （sukemaru)&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== カーソルの右側にカッコがないなら左側のカッコで ==&lt;br /&gt;
(sukemaru 2019/12/01)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#c00;&amp;quot;&amp;gt;カーソルの右側にカッコがないとき&amp;lt;/span&amp;gt; で、左側にカッコがあるなら、そのカッコに対応するカッコに移動します。&amp;lt;br&amp;gt;&lt;br /&gt;
* &amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;右側のカッコ優先&amp;lt;/b&amp;gt; です。&amp;lt;br&amp;gt;&lt;br /&gt;
: 移動後は対応する &#039;&#039;&#039;カッコの左側&#039;&#039;&#039; にカーソルがセットされます（連続で実行しても元のカッコの左側に）。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[#masme 版|masme 版]] (2019/04/12) のソースコードを以下のとおり書き換えてください。&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;変更箇所&#039;&#039;&#039;: 15 行目&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot; inline&amp;gt;if (iBrc===-1 || sBrc===&amp;quot;&amp;quot;) { Status = &amp;quot;カーソル右側に括弧がありません&amp;quot;; break quit; }&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
をコメントアウトして&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
// if (iBrc===-1 || sBrc===&amp;quot;&amp;quot;) { Status = &amp;quot;カーソル右側に括弧がありません&amp;quot;; break quit; }	// ※ １行 コメントアウト&lt;br /&gt;
&lt;br /&gt;
// ▼ カーソルの左側にカッコがある場合に対応 ▼&lt;br /&gt;
  if (iBrc&amp;gt;-1 &amp;amp;&amp;amp; sBrc) { /* empty */ ; }&lt;br /&gt;
  else if (BRACKET.indexOf(txt.charAt(sPos-1))&amp;gt;-1) {&lt;br /&gt;
    sPos = ePos = sPos-1;&lt;br /&gt;
    sBrc = txt.charAt(sPos);&lt;br /&gt;
    iBrc = BRACKET.indexOf(txt.charAt(sPos));&lt;br /&gt;
  }&lt;br /&gt;
  else { Status = &amp;quot;カーソルの側に括弧がありません&amp;quot;; break quit; }&lt;br /&gt;
// ▲ カーソルの左側にカッコがある場合に対応 ▲&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
※「[[#範囲選択の拡張|範囲選択の拡張]]」コードを併用する場合は、この変更箇所の下に「追加コード①」を挿入してください。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== カッコの種類を追加 ==&lt;br /&gt;
(sukemaru, 2019/12/01)&amp;lt;br&amp;gt;&lt;br /&gt;
[[#masme 版|masme 版]] (2019/04/12) のソースコードにカッコの種類を追加します。&lt;br /&gt;
:※ Mery 本体のオプション機能の「対応する括弧を強調する」には非対応です。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
4 行目&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot; inline&amp;gt;var BRACKET = &amp;quot;()&amp;lt;&amp;gt;[]{}「」『』【】（）&amp;quot;;&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
の下に追加する&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
BRACKET += &amp;quot;＜＞［］｛｝｢｣〖〗｟｠〈〉《》〚〛〔〕〘〙‹›«»≪≫〝〟‘’“”︵︶︿﹀︽︾︷︸﹁﹂﹃﹄︻︼︹︺&amp;quot;;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
※ 左右のカッコのかたち（文字）が異なるペアしか登録できないので、半角二重引用符 &amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot; inline&amp;gt; &amp;quot;&amp;quot; &amp;lt;/syntaxhighlight&amp;gt; や 半角一重引用符 &amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot; inline&amp;gt; &#039;&#039; &amp;lt;/syntaxhighlight&amp;gt; などは不可。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= sukemaru 版 =&lt;br /&gt;
【自家用】 &#039;&#039;&#039;対応するカッコを選択&#039;&#039;&#039; (sukemaru, 2019/12/02)&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[#masme 版|masme 版]] (2019/04/12) をベースに、&amp;lt;q&amp;gt;ジャンプ後の範囲選択の拡張&amp;lt;/q&amp;gt;、 &amp;lt;q&amp;gt;キャレットの左側にあるカッコ&amp;lt;/q&amp;gt; に対応、 &amp;lt;q&amp;gt;カッコの種類を追加&amp;lt;/q&amp;gt;、 &amp;lt;q&amp;gt;タグなどの複数文字のペアに対応&amp;lt;/q&amp;gt; などの改造をした【自家用版】も貼っておきます（おもっていたほど便利ではないアルファバージョンですが）。&lt;br /&gt;
&amp;lt;div class=&amp;quot;warningbox&amp;quot;&amp;gt;&lt;br /&gt;
要：[[GetKeyState.exe(キー状態取得実行ファイル)]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot; style=&amp;quot;height:60em; overflow:auto;&amp;quot;&amp;gt;&lt;br /&gt;
#title   = &amp;quot;対応するカッコを選択&amp;quot; &lt;br /&gt;
#tooltip = &amp;quot;対応するカッコに移動・選択&amp;quot; &lt;br /&gt;
// #icon    = &amp;quot;Mery用 マテリアルデザインっぽいアイコン.icl&amp;quot; ,127&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * ---------------------------------------------------------&lt;br /&gt;
 * 「対応するカッコに移動」&lt;br /&gt;
 * Original Coded by: Kuro, kurama,      ( - 2009/08)&lt;br /&gt;
 *                  ; masme,(2014/02/05 - 2019/04/12)&lt;br /&gt;
 * 「対応するカッコを選択」&lt;br /&gt;
 * Modified by: sukemaru,   (2019/04/24 - 2019/12/05)&lt;br /&gt;
 * ---------------------------------------------------------&lt;br /&gt;
 * ・masme 版「対応するカッコに移動」マクロ (2019/04/12) をベースに、&lt;br /&gt;
 *   キャレットの左側にあるカッコの取得や、&lt;br /&gt;
 *   タグなどの複数文字同士のペアに対応できるようにしました。&lt;br /&gt;
 * &lt;br /&gt;
 * ・以下の優先順位でカッコを検索します。&lt;br /&gt;
 *   ➀ カッコを範囲選択しているとき、対応するカッコを検索&lt;br /&gt;
 *   ➁ 選択範囲が HTML タグ形式 &amp;lt;hoge&amp;gt; のときは &amp;lt;/hoge&amp;gt; を、&lt;br /&gt;
 *      終了タグ &amp;lt;/fuga&amp;gt; の ときは &amp;lt;fuga&amp;gt; を検索（オプション設定）&lt;br /&gt;
 *   ➂ キャレットの右側にカッコがあるとき、対応するカッコを検索&lt;br /&gt;
 *   ➃ キャレットの左側にカッコがあるとき、対応するカッコを検索（オプション設定）&lt;br /&gt;
 * &lt;br /&gt;
 * ・pizz 氏作成の &amp;quot;GetKeyState.exe(キー状態取得実行ファイル)&amp;quot; を利用して&lt;br /&gt;
 *   対応するカッコに移動後の範囲選択状態を選択できます。&lt;br /&gt;
 *   GetKeyState.exe を Mery\Macros フォルダに用意してください。&lt;br /&gt;
 *   &lt;br /&gt;
 * ▼ Ctrl, Shift キーを押しながらマクロを実行したとき ▼&lt;br /&gt;
 * &lt;br /&gt;
 * ・Ctrl + Shift キー両方を押しているとき&lt;br /&gt;
 *     → 対応するカッコの右側にキャレットを移動します。&lt;br /&gt;
 * ・Ctrl キーのみ押しているとき&lt;br /&gt;
 *     → 対応するカッコをふくむ全体（外側）を範囲選択します。&lt;br /&gt;
 * ・Shift キーのみ押しているとき&lt;br /&gt;
 *     → 対応するカッコの中身（内側）を範囲選択します。&lt;br /&gt;
 * &lt;br /&gt;
 * ・Ctrl / Shift キーを押していないときは&lt;br /&gt;
 *     → 対応するカッコだけを範囲選択します。&lt;br /&gt;
 * &lt;br /&gt;
 * 【仕様上の制限】&lt;br /&gt;
 * ・カッコの定義は、通例として前後関係が定まっているもののみとしてください。&lt;br /&gt;
 *   同一の記号を使う &#039;一重引用符&#039; や &amp;quot;二重引用符&amp;quot;、―ダーシ― などでは、&lt;br /&gt;
 *   開き ← 閉じ の方向に戻れないので使用できません。&lt;br /&gt;
 * ・\ などでエスケープされたものを考慮せずにジャンプします。&lt;br /&gt;
 * ・HTML/XML タグなどのように &amp;lt; &amp;gt; をカッコとして使用しているものと&lt;br /&gt;
 *   比較・計算で使用している半角不等号 &amp;lt; &amp;gt; とを区別しません。&lt;br /&gt;
 * ・&amp;lt;div id=&amp;quot;hoge&amp;quot;&amp;gt; や &amp;lt;div style=&amp;quot;fuga&amp;quot;&amp;gt; のような属性つきのタグを&lt;br /&gt;
 *   個別に登録することはできません。&lt;br /&gt;
 *  (終了側のタグが同一 &amp;lt;/div&amp;gt; なので、&amp;lt;/div&amp;gt; から前方に検索したときに&lt;br /&gt;
 *   &amp;lt;div&amp;gt; や &amp;lt;div class=&amp;quot;piyo&amp;quot;&amp;gt; などと区別をつけられない)&lt;br /&gt;
 * &lt;br /&gt;
 *  (2019/12/05)&lt;br /&gt;
 * ・設定項目 tagEnable と altTagInvert を追加。&lt;br /&gt;
 *   &amp;lt;hoge&amp;gt; &amp;lt;/hoge&amp;gt; 形式のタグ全般に対応 (配列 brackets2 への登録不要)。&lt;br /&gt;
 * &lt;br /&gt;
 * ※ タグを範囲選択しているときのみ有効。&lt;br /&gt;
 *    範囲選択なしの場合、キャレットの左または右にあるタグを自動取得しません&lt;br /&gt;
 *   (配列 brackets2 に登録されたペアであれば、自動取得しますが…)。&lt;br /&gt;
 * ※ 開始タグ側から実行する場合、キャレットがタグの先頭位置にあるとき、&lt;br /&gt;
 *    または選択範囲に属性部分を含めていないときのみ有効。&lt;br /&gt;
 * ※ 基本的に、開始タグは &amp;quot;&amp;lt;&amp;quot; の直後が空白でないこと（正規表現 ^&amp;lt;\w+ ）、&lt;br /&gt;
 *    終了タグ内には空白文字を含めないこと（正規表現 \/\w+&amp;gt;$ ）を条件とします。&lt;br /&gt;
 *    e.g. &amp;lt; hoge &amp;gt; &amp;lt;/hoge &amp;gt; などは NG.&lt;br /&gt;
 *    &amp;lt;fuga/&amp;gt; &amp;lt;!PIYO&amp;gt; を範囲選択している場合も通常のカッコ囲いとして扱います。&lt;br /&gt;
 * ※ &amp;lt;hoge&amp;gt; の hoge 部分が有効な HTML タグであるかをチェックしないので、&lt;br /&gt;
 *    &amp;lt;ABC&amp;gt; 形式のカッコにたいしては、通常の「対応するカッコに移動・選択」&lt;br /&gt;
 *    の動作になりません（設定項目 tagEnable = false で無効化できます）。&lt;br /&gt;
 *   ｢対応するカッコがない｣ となって両端の &amp;quot;&amp;lt;&amp;quot; と &amp;quot;&amp;gt;&amp;quot; での移動ができなくなります。&lt;br /&gt;
 * ※ tagEnable = true の場合、配列 brackets2 にタグが登録されていると&lt;br /&gt;
 *    うまく動作しないことがあります。&lt;br /&gt;
 * ※ tagEnable = false の場合でも、配列 brackets2 に登録されたペアであれば&lt;br /&gt;
 *    通常のカッコと同様に扱います。&lt;br /&gt;
 * ※ 同種のタグがネストすることはないはずですが、&lt;br /&gt;
 *    便宜上、通常のカッコと同様にネストのチェックをします。&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
// ---------- ▼ 設定項目 ▼ ---------- //&lt;br /&gt;
&lt;br /&gt;
// ■ &amp;lt;hoge&amp;gt; &amp;lt;/hoge&amp;gt; 形式のタグを検索対象にする（優先オプション）&lt;br /&gt;
var tagEnable = true;&lt;br /&gt;
&lt;br /&gt;
// ■ Alt キー押し下げで tabEnable の true / false を一時的に反転させる&lt;br /&gt;
var altTagInvert = true;&lt;br /&gt;
&lt;br /&gt;
// ■ キャレットの左側のカッコも検索対象にする（true でも右側が優先）&lt;br /&gt;
var leftsideEnable = true;&lt;br /&gt;
&lt;br /&gt;
// ■ Shift キーのみ押し下げのとき、実行後の選択範囲が複数行になるなら&lt;br /&gt;
//    カッコの内側の行だけを範囲選択する&lt;br /&gt;
var insideLines = false;&lt;br /&gt;
&lt;br /&gt;
// ■ カッコの定義１ (開きカッコと閉じカッコをペアにして列挙する)&lt;br /&gt;
var brackets1 = &amp;quot;()&amp;lt;&amp;gt;[]{}「」『』【】（）&amp;quot; 	// Mery で強調表示可能なカッコ&lt;br /&gt;
brackets1    += &amp;quot;＜＞［］｛｝｢｣〖〗｟｠〈〉《》〚〛〔〕〘〙&amp;quot; &lt;br /&gt;
              + &amp;quot;︵︶︿﹀︽︾︷︸﹁﹂﹃﹄︻︼︹︺&amp;quot; &lt;br /&gt;
              + &amp;quot;‹›«»≪≫〝〟‘’“”&amp;quot; ;		// ―——&lt;br /&gt;
&lt;br /&gt;
// ■ カッコの定義２ (タグなどの複数文字のペアを配列に列挙する)&lt;br /&gt;
// ※ おなじ開きカッコを持つペアや、おなじ閉じカッコを持つペア、&lt;br /&gt;
//    braclets1 に含まれているカッコ１文字だけの要素は不可。&lt;br /&gt;
var brackets2 = [];&lt;br /&gt;
brackets2 = [&lt;br /&gt;
  &amp;quot;\\(&amp;quot; , &amp;quot;\\)&amp;quot; , &amp;quot;\\[&amp;quot; , &amp;quot;\\]&amp;quot; , &amp;quot;\\{&amp;quot; , &amp;quot;\\}&amp;quot; ,&amp;quot;[[&amp;quot; , &amp;quot;]]&amp;quot; , &lt;br /&gt;
  /* HTML/XML 形式のタグは登録不要 (2019/12/05) */ &lt;br /&gt;
  // &amp;quot;&amp;lt;b&amp;gt;&amp;quot; , &amp;quot;&amp;lt;/b&amp;gt;&amp;quot; , &amp;quot;&amp;lt;a&amp;gt;&amp;quot; , &amp;quot;&amp;lt;/a&amp;gt;&amp;quot; , &amp;quot;&amp;lt;pre&amp;gt;&amp;quot; , &amp;quot;&amp;lt;/pre&amp;gt;&amp;quot; , &lt;br /&gt;
  // &amp;quot;&amp;lt;b&amp;quot; , &amp;quot;/b&amp;gt;&amp;quot; , &amp;quot;&amp;lt;a&amp;quot; , &amp;quot;/a&amp;gt;&amp;quot; , 	// &amp;lt;abc&amp;gt; や &amp;lt;blah&amp;gt; に反応しなくなるかも？&lt;br /&gt;
  // &amp;quot;&amp;lt;div&amp;gt;&amp;quot; , &amp;quot;&amp;lt;/div&amp;gt;&amp;quot; , &amp;quot;&amp;lt;div&amp;quot; , &amp;quot;/div&amp;gt;&amp;quot; , &lt;br /&gt;
  &amp;quot;/**&amp;quot; , &amp;quot; */&amp;quot; , &amp;quot;/*&amp;quot; , &amp;quot;*/&amp;quot; , &amp;quot;&amp;lt;!--&amp;quot; , &amp;quot;--&amp;gt;&amp;quot;&lt;br /&gt;
];&lt;br /&gt;
&lt;br /&gt;
// ---------- ▲ 設定項目 ▲ ---------- //&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
// Ctrl キーと Shift キーの状態を取得&lt;br /&gt;
var $ctrl = 0,  $shift = 0,  $alt = 0;&lt;br /&gt;
var gks = editor.FullName.replace( /[^\\]+$/, &amp;quot;&amp;quot; )&lt;br /&gt;
        + &amp;quot;Macros\\GetKeyState.exe&amp;quot;;&lt;br /&gt;
if ( new ActiveXObject( &amp;quot;Scripting.FileSystemObject&amp;quot; ).FileExists( gks ) ) {&lt;br /&gt;
  var WshShell = new ActiveXObject( &amp;quot;WScript.Shell&amp;quot; );&lt;br /&gt;
  $ctrl  = WshShell.Run( &#039;&amp;quot;&#039; + gks + &#039;&amp;quot; control&#039;, 0, true );&lt;br /&gt;
  $shift = WshShell.Run( &#039;&amp;quot;&#039; + gks + &#039;&amp;quot; shift&#039;, 0, true );&lt;br /&gt;
  if ( altTagInvert ) {&lt;br /&gt;
    $alt = WshShell.Run( &#039;&amp;quot;&#039; + gks + &#039;&amp;quot; alt&#039;, 0, true );&lt;br /&gt;
    if ( $alt === 1 ) { tagEnable = ! tagEnable; }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
var start = new Date();	// ここでタイマースタート&lt;br /&gt;
&lt;br /&gt;
// カッコの定義をひとつの配列に統合する (brackets2 が前、brackets1 が後ろ)&lt;br /&gt;
var brackets = brackets2.concat( brackets1.split( &amp;quot;&amp;quot; ) );&lt;br /&gt;
var len = brackets.length;&lt;br /&gt;
&lt;br /&gt;
var d = editor.ActiveDocument,  sel = d.selection;&lt;br /&gt;
var dt = d.Text,  st = sel.Text;&lt;br /&gt;
var act = sel.GetActivePos(),  anc = sel.GetAnchorPos();&lt;br /&gt;
var tPos = Math.min( act, anc ),  bPos = Math.max( act, anc );&lt;br /&gt;
var txt, brc, bLen, sPos, ePos, sBrc, iBrc;&lt;br /&gt;
if ( tagEnable ) {&lt;br /&gt;
  var isTag = false,  isEndTag = false;&lt;br /&gt;
  var pos, gt;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// 選択範囲がカッコか&lt;br /&gt;
check: {&lt;br /&gt;
  if ( st ) {&lt;br /&gt;
    for ( var i = 0; i &amp;lt; len; i ++ ) {&lt;br /&gt;
      brc = brackets[i];&lt;br /&gt;
      if ( st === brc ) {&lt;br /&gt;
        sPos = ePos = tPos;  sBrc = brc;  iBrc = i;&lt;br /&gt;
        break check;&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
    // 選択範囲が &amp;lt;HTML&amp;gt; タグ（開始タグ）か&lt;br /&gt;
    // ※ 開始タグの閉じカッコを含めずに &amp;quot;開きカッコ&amp;quot; とする&lt;br /&gt;
    if ( ! sBrc &amp;amp;&amp;amp; tagEnable &amp;amp;&amp;amp; ! /(?:\/\s*&amp;gt;|\W&amp;gt;)$/.test( st ) &amp;amp;&amp;amp;&lt;br /&gt;
         ( /^&amp;lt;\w+[\t &amp;gt;]?$/.test( st ) ||&lt;br /&gt;
           ( act &amp;lt; anc &amp;amp;&amp;amp; /^&amp;lt;\w+[\t &amp;gt;](?!\s*\/)/.test( st ) ) ) ) {&lt;br /&gt;
      brc = /^(&amp;lt;\w+)[ &amp;gt;]?/.exec( st )[1];		// &amp;lt;hoge&lt;br /&gt;
      bLen = brc.length;  isTag = true;&lt;br /&gt;
      eBrc = &amp;quot;&amp;lt;/&amp;quot; + brc.slice( 1 ) + &amp;quot;&amp;gt;&amp;quot;;		// &amp;lt;/hoge&amp;gt;&lt;br /&gt;
      sPos = ePos = tPos;  sBrc = brc;  iBrc = 0;&lt;br /&gt;
      break check;&lt;br /&gt;
    }&lt;br /&gt;
    // 選択範囲が &amp;lt;/HTML&amp;gt; タグ（終了タグ）か	// &amp;lt;/hoge&amp;gt;&lt;br /&gt;
    else if ( ! sBrc &amp;amp;&amp;amp; tagEnable &amp;amp;&amp;amp;&lt;br /&gt;
              ( /^&amp;lt;?\/\w+&amp;gt;$/.test( st ) ||&lt;br /&gt;
                ( anc &amp;lt; act &amp;amp;&amp;amp; /&amp;lt;\/\w+&amp;gt;$/.test( st ) ) ) ) {&lt;br /&gt;
      brc = &amp;quot;&amp;lt;&amp;quot; + /&amp;lt;?(\/\w+&amp;gt;)$/.exec( st )[1];&lt;br /&gt;
      bLen = brc.length;  isEndTag = true;&lt;br /&gt;
      eBrc = &amp;quot;&amp;lt;&amp;quot; + brc.slice( 2, -1 );		// &amp;lt;hoge&lt;br /&gt;
      sPos = ePos = bPos - bLen;  sBrc = brc;  iBrc = 1;&lt;br /&gt;
      break check;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  // 右側にカッコがあるか&lt;br /&gt;
  if ( ! sBrc &amp;amp;&amp;amp; act &amp;lt; dt.length ) {&lt;br /&gt;
    txt = dt.slice( act );&lt;br /&gt;
    for ( var i = 0; i &amp;lt; len; i ++ ) {&lt;br /&gt;
      brc = brackets[i];  bLen = brc.length;&lt;br /&gt;
      if ( txt.slice( 0, bLen ) === brc ) {&lt;br /&gt;
        sPos = ePos = act;  sBrc = brc;  iBrc = i;&lt;br /&gt;
        break check;&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  // 左側にカッコがあるか&lt;br /&gt;
  if ( ! sBrc &amp;amp;&amp;amp; act &amp;gt; 0 &amp;amp;&amp;amp; leftsideEnable ) {&lt;br /&gt;
    txt = dt.slice( 0, act );&lt;br /&gt;
    for ( var i = 0; i &amp;lt; len; i ++ ) {&lt;br /&gt;
      brc = brackets[i];  bLen = brc.length;&lt;br /&gt;
      if ( txt.slice( - bLen ) === brc ) {&lt;br /&gt;
        sPos = ePos = act - bLen;  sBrc = brc;  iBrc = i;&lt;br /&gt;
        break check;&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
if ( sBrc ) {&lt;br /&gt;
  // カッコありならネスト（入れ子）をチェックする&lt;br /&gt;
  var nest = 1;&lt;br /&gt;
  var s, e, eBrc, eLen;&lt;br /&gt;
  var sLen = sBrc.length;	// 検索元のカッコの文字数&lt;br /&gt;
&lt;br /&gt;
  // 閉じカッコの場合、先頭方向へ探す	※剰余あり = 奇数&lt;br /&gt;
  if ( iBrc % 2 ) {&lt;br /&gt;
    eBrc = eBrc ? eBrc : brackets[ iBrc - 1 ];	// 対応する開きカッコ&lt;br /&gt;
    eLen = eBrc.length;				// 開きカッコの文字数&lt;br /&gt;
    // ネストが無くなるまで探す&lt;br /&gt;
    while ( nest &amp;gt; 0 ) {&lt;br /&gt;
      s = dt.lastIndexOf( sBrc, ePos - sLen );	// 開きカッコが見つかった位置&lt;br /&gt;
      e = dt.lastIndexOf( eBrc, ePos - eLen );	// 閉じカッコが見つかった位置&lt;br /&gt;
      if ( e === -1 || ePos &amp;lt;= 0 ) { break; }	// 閉じカッコがなければ終了&lt;br /&gt;
      if ( e &amp;lt; s ) { nest ++;  ePos = s; }	// ( ) セットで見つかれば&lt;br /&gt;
      else { nest --;  ePos = e; }			// 開きカッコだけが見つかれば&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  // 開きカッコの場合、末尾方向へ探す	※剰余なし = 偶数&lt;br /&gt;
  else {&lt;br /&gt;
    eBrc = eBrc ? eBrc : brackets[ iBrc + 1 ];	// 対応する閉じカッコ&lt;br /&gt;
    eLen = eBrc.length;				// 閉じカッコの文字数&lt;br /&gt;
    //ネストが無くなるまで探す&lt;br /&gt;
    while ( nest &amp;gt; 0 ) {&lt;br /&gt;
      s = dt.indexOf( sBrc, ePos + sLen );	// 開きカッコが見つかった位置&lt;br /&gt;
      e = dt.indexOf( eBrc, ePos + eLen );	// 閉じカッコが見つかった位置&lt;br /&gt;
      if ( e === -1 ) { break };			// 閉じカッコがなければ終了&lt;br /&gt;
      if ( s &amp;gt; -1 &amp;amp;&amp;amp; s &amp;lt; e ) { nest ++;  ePos = s; }	// ( ) セットで見つかれば&lt;br /&gt;
      else { nest --;  ePos = e; }					// 閉じカッコだけが見つかれば&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  // 対応するカッコにジャンプ&lt;br /&gt;
  if ( nest === 0 ) {&lt;br /&gt;
    // 修飾キーなし  →  対応するカッコを範囲選択&lt;br /&gt;
    if ( $ctrl !== 1 &amp;amp;&amp;amp; $shift !== 1 ) {&lt;br /&gt;
      pos = ePos + eLen;&lt;br /&gt;
      if ( isEndTag ) {	// 開始タグの閉じカッコを探す&lt;br /&gt;
        gt = dt.slice( pos, sPos ).indexOf( &amp;quot;&amp;gt;&amp;quot; ) + 1;&lt;br /&gt;
        sel.SetActivePos( pos + gt );&lt;br /&gt;
      } else {&lt;br /&gt;
        sel.SetActivePos( pos );&lt;br /&gt;
      }&lt;br /&gt;
      sel.SetActivePos( ePos, true );&lt;br /&gt;
    }&lt;br /&gt;
    // Ctrl + Shift キー両方  →  対応するカッコの左側にジャンプ&lt;br /&gt;
    else if ( $ctrl === 1 &amp;amp;&amp;amp; $shift === 1 ) {&lt;br /&gt;
      sel.SetActivePos( ePos );&lt;br /&gt;
    }&lt;br /&gt;
    // Ctrl キーのみ  →  対応するカッコをふくめて範囲選択（外側）&lt;br /&gt;
    else if ( $ctrl === 1 &amp;amp;&amp;amp; $shift !== 1 ) {&lt;br /&gt;
      if ( ePos &amp;lt; sPos ) {&lt;br /&gt;
        sel.SetActivePos( sPos + sLen );&lt;br /&gt;
        sel.SetActivePos( ePos, true );&lt;br /&gt;
      } else {	// ( sPos &amp;lt; ePos )&lt;br /&gt;
        sel.SetActivePos( sPos );&lt;br /&gt;
        sel.SetActivePos( ePos + eLen, true );&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
    // Shift キーのみ  →  対応するカッコとの中身を範囲選択（内側）&lt;br /&gt;
    else if ( $shift === 1 &amp;amp;&amp;amp; $ctrl !== 1 ) {&lt;br /&gt;
      if ( ePos &amp;lt; sPos ) {&lt;br /&gt;
        pos = ePos + eLen;&lt;br /&gt;
        sel.SetActivePos( sPos );&lt;br /&gt;
        if ( isEndTag ) {&lt;br /&gt;
          gt = dt.slice( pos, sPos ).indexOf( &amp;quot;&amp;gt;&amp;quot; ) + 1;&lt;br /&gt;
          sel.SetActivePos( pos + gt, true );&lt;br /&gt;
        } else {&lt;br /&gt;
          sel.SetActivePos( pos, true );&lt;br /&gt;
        }&lt;br /&gt;
      } else {	// ( sPos &amp;lt; ePos )&lt;br /&gt;
        pos = sPos + sLen;&lt;br /&gt;
        if ( isTag ) {&lt;br /&gt;
          gt = dt.slice( pos, ePos ).indexOf( &amp;quot;&amp;gt;&amp;quot; ) + 1;&lt;br /&gt;
          sel.SetActivePos( pos + gt );&lt;br /&gt;
        } else {&lt;br /&gt;
          sel.SetActivePos( pos );&lt;br /&gt;
        }&lt;br /&gt;
        sel.SetActivePos( ePos, true );&lt;br /&gt;
      }&lt;br /&gt;
      // カッコの内側の行を範囲選択&lt;br /&gt;
      if ( insideLines ) {&lt;br /&gt;
        var ty = sel.GetTopPointY( mePosLogical );&lt;br /&gt;
        var by = sel.GetBottomPointY( mePosLogical );&lt;br /&gt;
        var bx = sel.GetBottomPointX( mePosLogical );&lt;br /&gt;
        var strTest = /[^\t ]/.test( d.GetLine( by, 0 ).slice( 0, bx -1 ) );&lt;br /&gt;
        if ( ( by - ty ) &amp;gt; 1 &amp;amp;&amp;amp; ! strTest ) {&lt;br /&gt;
          sel.SetActivePoint( mePosLogical, 1, by - 1 );&lt;br /&gt;
          sel.EndOfLine( false, mePosLogical );&lt;br /&gt;
          sel.SetAnchorPoint( mePosLogical, 1, ty + 1 );&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
    Status = &amp;quot;　対応するカッコに移動&amp;quot; ; &lt;br /&gt;
  } else { Status = &amp;quot;　対応するカッコが見つかりませんでした&amp;quot;; }&lt;br /&gt;
} else { Status = &amp;quot;　カーソルの側にカッコがありません&amp;quot;; }&lt;br /&gt;
&lt;br /&gt;
// var elapsedSec = ( ( new Date() - start ) / 1000 ).toFixed( 3 );&lt;br /&gt;
// Status += &amp;quot;　[ &amp;quot; + elapsedSec.replace( /\./, &amp;quot;. &amp;quot; ) + &amp;quot; 秒 ]&amp;quot; ;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Masme</name></author>
	</entry>
	<entry>
		<id>https://www.haijin-boys.com/wiki/index.php?title=%E6%96%87%E5%AD%97%E3%82%AB%E3%82%A6%E3%83%B3%E3%83%88&amp;diff=4886</id>
		<title>文字カウント</title>
		<link rel="alternate" type="text/html" href="https://www.haijin-boys.com/wiki/index.php?title=%E6%96%87%E5%AD%97%E3%82%AB%E3%82%A6%E3%83%B3%E3%83%88&amp;diff=4886"/>
		<updated>2019-12-21T13:01:26Z</updated>

		<summary type="html">&lt;p&gt;Masme: 「教育漢字を数える」節を追加。更新履歴の書式を変更。&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;float:right&amp;quot;&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
選択範囲 or 文書全体の字数を算出するマクロです。&lt;br /&gt;
&lt;br /&gt;
[[ファイル:CharacterCounter.png|border]]&lt;br /&gt;
&lt;br /&gt;
==注意点==&lt;br /&gt;
* 範囲選択時は選択範囲の字数を、非選択時は文書全体の字数をカウントします。&lt;br /&gt;
* 改行・半角文字・全角文字、すべて1文字とカウントします。&lt;br /&gt;
* 文字の分類は Shift_JIS (CP932) を基準にしています。&lt;br /&gt;
* Unicode 対応は一部に留まります。&lt;br /&gt;
** サロゲートペアは、Mery では仕様上2文字とカウントされますが、このマクロでは1文字とカウントします。&lt;br /&gt;
** 結合文字列や異体字セレクタなどには対応していません。他の文字と同じようにカウントされます。&lt;br /&gt;
* 文字数や文字種が増えるほど処理に時間がかかります（作者の環境では100万字の処理に約1.5秒かかりました）。&amp;lt;br&amp;gt;マクロ実行後、ステータスバーに処理に要した時間が表示されるので参考にしてください。&lt;br /&gt;
&lt;br /&gt;
==ソースコード==&lt;br /&gt;
ダウンロード→ [[メディア:文字カウント.zip|文字カウント.zip]]&lt;br /&gt;
&lt;br /&gt;
* 拙作ですがアイコンファイル (文字カウント.ico) を同梱してあります。&amp;lt;br&amp;gt;Mery 2.4.7 以降の場合、マクロ (文字カウント.js) と同じフォルダに、&amp;lt;br&amp;gt;Mery 2.4.6 以前の場合、Mery.exe と同じフォルダに、&amp;lt;br&amp;gt;アイコンファイルを配置しておくとツールバーにアイコンが読み込まれます。&lt;br /&gt;
&lt;br /&gt;
==更新履歴==&lt;br /&gt;
[[ファイル:文字カウント.zip]]&lt;br /&gt;
&lt;br /&gt;
; 2019/06/16&lt;br /&gt;
* 容量は ADODB.Stream を利用して算出するようにした（マクロ「[[バイト数]]」の ks 氏版を参考）。&lt;br /&gt;
* 文字分類を改訂。&lt;br /&gt;
** 容量の定義を撤廃し、統合できる項目を統合。&lt;br /&gt;
** 分類「階層」を削除。&lt;br /&gt;
** 分類「空白」に「改行」を含めるようにした。&lt;br /&gt;
** 分類「半カナ」を「半ｶﾅ」に改称。&lt;br /&gt;
** 分類「MS依存」を追加。&lt;br /&gt;
** CP932 未定義文字の分類を &amp;quot;総数,MS外字&amp;quot; → &amp;quot;総数,MS依存&amp;quot; に変更。&lt;br /&gt;
* 結果表示を改訂。&lt;br /&gt;
** 「段落」を復活。&lt;br /&gt;
** 「仮名」を追加（仮名文字の数と、「字数」に占める割合を表示）。&lt;br /&gt;
** 「サイズ」を追加（現在のエンコードでの容量を表示）。&lt;br /&gt;
** 「UTF-16」「UTF-8」「SJIS」は非表示に変更。&lt;br /&gt;
** 「原稿」「漢字」「UTF-7」「EUC」「JIS」を追加（非表示）。&lt;br /&gt;
* アイコンのカラーパレットを調整。48x48の画像を一部変更（1と3）。&lt;br /&gt;
; 2018/08/04&lt;br /&gt;
* 改行コードの判別に Document.LineEnding が使える場合は使うようにした（Mery 2.6.10 以降）。&lt;br /&gt;
*: 判別にクリップボードを使わずに済むため、難点が解消されます。&lt;br /&gt;
; 2017/06/25&lt;br /&gt;
* アイコンファイルに24x24・32x32・48x48の画像を追加。&lt;br /&gt;
; 2015/12/26&lt;br /&gt;
* アイコンの指定先を &amp;quot;My Macros\文字カウント.ico&amp;quot; → &amp;quot;文字カウント.ico&amp;quot; に変更。&lt;br /&gt;
; 2015/09/30&lt;br /&gt;
* 改行コードを判別し、容量に反映するようにした。ただし、判別にクリップボードを使うため、難点があります。&lt;br /&gt;
** 計測範囲に改行が存在しない場合は判別できない。&lt;br /&gt;
** クリップボード履歴が重複してしまう。&lt;br /&gt;
* 結果表示を改訂。&lt;br /&gt;
** 「段落」は非表示に変更（後述の定義変更による）。&lt;br /&gt;
** 「拡張」を「依存」に改称し、MS拡張 → MS拡張+MS外字 の数に変更。&lt;br /&gt;
** 「ｻﾛｹﾞｰﾄ」を「ペア」に改称。&lt;br /&gt;
** 「SJIS」の内容を「数値 bytes」→「数値 バイト」に変更。&lt;br /&gt;
** 「UTF-16」の内容を「数値 bytes (BOM無)」→「数値+2(BOM) バイト」に変更。&lt;br /&gt;
** 「UTF-8」の内容を「数値 bytes (BOM無)」→「数値+3(BOM) バイト」に変更。&lt;br /&gt;
* 文字分類を改訂。&lt;br /&gt;
** 分類「段落」の定義を変更。 /^(?=　[^　\s])/gm → /^(?![ 　\t]*$)/gm&lt;br /&gt;
** 分類「英単」を「半英単」に改称し、定義を変更。 /\b(?=\w)/g → /(?=[!-~](?![!-~]))/g&lt;br /&gt;
**: Microsoft Word の文字カウント仕様（段落数、半角英数の単語数）に近づけた。&amp;lt;br&amp;gt;※仕様が不明なため、完全再現は目指していません。&lt;br /&gt;
** 分類「会話」を削除。&lt;br /&gt;
** ユーザー定義外字の分類を &amp;quot;総数,MS外字&amp;quot; → &amp;quot;総数,MS外字,全角&amp;quot; に変更。&lt;br /&gt;
** 文字 U+0080 の分類を &amp;quot;総数,Uni&amp;quot; → &amp;quot;総数,MS外字&amp;quot; に変更。&lt;br /&gt;
** Shift_JIS で保存すると似た字に化ける文字群を追加。&lt;br /&gt;
; 2014/02/17&lt;br /&gt;
* アウトラインやアウトプットにフォーカスがある場合、カウントできないのを修正。&lt;br /&gt;
*: 文書の取得を Document → Editor.ActiveDocument に変更。&lt;br /&gt;
* 分類「段落」の正規表現を短縮。 /^(?=　[^　\s]+)/gm → /^(?=　[^　\s])/gm&lt;br /&gt;
* 分類「会話」の定義を変更。 /^(?=「.+」$)/gm → /^(?=「.*」$)/gm&lt;br /&gt;
; 2014/02/01&lt;br /&gt;
* 初版公開。&lt;br /&gt;
&lt;br /&gt;
==文字分類==&lt;br /&gt;
現在の定義は下表のとおりです。分類は Shift_JIS (CP932) を基準にしています。&lt;br /&gt;
* &amp;lt;b style=&amp;quot;background:#fcc;&amp;quot;&amp;gt;赤地&amp;lt;/b&amp;gt; の項目は、初期状態で結果表示される項目です。&lt;br /&gt;
* 「字数」は &amp;lt;b style=&amp;quot;background:#fcc;&amp;quot;&amp;gt;総数&amp;lt;/b&amp;gt; − &amp;lt;b style=&amp;quot;background:#ccf;&amp;quot;&amp;gt;空白&amp;lt;/b&amp;gt; で算出されます。&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;4&amp;quot;| 分類 (type) !! 正規表現 (re) !! 備考&lt;br /&gt;
|-&lt;br /&gt;
!rowspan=&amp;quot;2&amp;quot; style=&amp;quot;background:#ccc;&amp;quot;|&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot;| 半英単&lt;br /&gt;
| /(?=[!-~](?![!-~]))/g || ASCII文字の単語（半角英数の単語）&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot; style=&amp;quot;background:#fcc;&amp;quot;| 段落&lt;br /&gt;
| /^(?![ 　\t]*$)/gm || 空白行でない論理行&lt;br /&gt;
|-&lt;br /&gt;
!rowspan=&amp;quot;28&amp;quot; style=&amp;quot;background:#fcc;&amp;quot;| 総数&lt;br /&gt;
|-&lt;br /&gt;
!rowspan=&amp;quot;3&amp;quot;| 制御&lt;br /&gt;
!rowspan=&amp;quot;2&amp;quot; style=&amp;quot;background:#ccf;&amp;quot;| 空白&lt;br /&gt;
!style=&amp;quot;background:#fcc;&amp;quot;| 改行&lt;br /&gt;
| /\n/g || ASCII制御文字（改行）&lt;br /&gt;
|-&lt;br /&gt;
! タブ&lt;br /&gt;
| /\t/g || ASCII制御文字（水平タブ）&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot; style=&amp;quot;background:#ccc;&amp;quot;|&lt;br /&gt;
| /[\u0000-\u001F\u007F]/g || 上記以外のASCII制御文字&lt;br /&gt;
|-&lt;br /&gt;
!rowspan=&amp;quot;6&amp;quot; style=&amp;quot;background:#fcc;&amp;quot;| 半角&lt;br /&gt;
!style=&amp;quot;background:#ccf;&amp;quot;| 空白 !! 半空&lt;br /&gt;
| / /g || ASCII文字（半角空白）&lt;br /&gt;
|-&lt;br /&gt;
! 数字 !! 半数&lt;br /&gt;
| /[0-9]/g || ASCII文字（半角数字）&lt;br /&gt;
|-&lt;br /&gt;
! 英字 !! 半英&lt;br /&gt;
| /[A-Za-z]/g || ASCII文字（半角英字）&lt;br /&gt;
|-&lt;br /&gt;
!rowspan=&amp;quot;2&amp;quot;| 記号&lt;br /&gt;
!style=&amp;quot;background:#ccc;&amp;quot;|&lt;br /&gt;
| /[\u0020-\u007E]/g || 上記以外のASCII文字&lt;br /&gt;
|-&lt;br /&gt;
!rowspan=&amp;quot;2&amp;quot; style=&amp;quot;background:#fcc;&amp;quot;| 半ｶﾅ&lt;br /&gt;
| /[｡｢｣､･ｰﾞﾟ]/g ||&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;background:#fcc;&amp;quot;| 仮名&lt;br /&gt;
| /[ｦ-ｯｱ-ﾝ]/g ||&lt;br /&gt;
|-&lt;br /&gt;
!rowspan=&amp;quot;15&amp;quot; style=&amp;quot;background:#fcc;&amp;quot;| 全角&lt;br /&gt;
!style=&amp;quot;background:#ccf;&amp;quot;| 空白 !! 全空&lt;br /&gt;
| /　/g ||&lt;br /&gt;
|-&lt;br /&gt;
! 数字 !! 全数&lt;br /&gt;
| /[０-９]/g ||&lt;br /&gt;
|-&lt;br /&gt;
! 英字 !! 全英&lt;br /&gt;
| /[Ａ-Ｚａ-ｚ]/g ||&lt;br /&gt;
|-&lt;br /&gt;
!rowspan=&amp;quot;2&amp;quot; style=&amp;quot;background:#fcc;&amp;quot;| 仮名&lt;br /&gt;
! かな&lt;br /&gt;
| /[ぁ-ん]/g || ※SJISでは ゔ ゕ ゖ などは扱えない&lt;br /&gt;
|-&lt;br /&gt;
! カナ&lt;br /&gt;
| /[ァ-ヶ]/g || ※長音符や踊り字は記号扱い&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot;| ギリシャ&lt;br /&gt;
| /[Α-ΡΣ-Ωα-ρσ-ω]/g || ※SJISではシグマの語末形 ς は扱えない&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot;| キリル&lt;br /&gt;
| /[ЁА-Яа-яё]/g || ※Unicodeでは Ё ё の配置がJISと異なる&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot;| 記号&lt;br /&gt;
| /[、。， (中略) ‡¶◯]/g || 記号 (146字)&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot;| 罫線&lt;br /&gt;
| /[─│┌ (中略) ┥┸╂]/g || 罫線素片 (32字)&lt;br /&gt;
|-&lt;br /&gt;
!rowspan=&amp;quot;3&amp;quot;| 漢字&lt;br /&gt;
! 第一&lt;br /&gt;
| /[亜唖娃 (中略) 湾碗腕]/g || JIS第一水準漢字 (2965字)&lt;br /&gt;
|-&lt;br /&gt;
! 第二&lt;br /&gt;
| /[弌丐丕 (中略) 瑤凜熙]/g || JIS第二水準漢字 (3390字)&lt;br /&gt;
|-&lt;br /&gt;
!rowspan=&amp;quot;2&amp;quot;| MS拡張&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot;| /[纊褜鍈 (中略) 鶴鸙黑]/g ||rowspan=&amp;quot;2&amp;quot;| IBM拡張文字 (漢字360字)&lt;br /&gt;
|-&lt;br /&gt;
!rowspan=&amp;quot;4&amp;quot; style=&amp;quot;background:#fcc;&amp;quot;| MS依存&lt;br /&gt;
|-&lt;br /&gt;
! MS拡張&lt;br /&gt;
| /[①-⑳ (中略) ￤＇＂]/g || NEC特殊文字/IBM拡張文字 (記号等87字)&lt;br /&gt;
|-&lt;br /&gt;
! MS外字&lt;br /&gt;
| /[\uE000-\uE757]/g || Microsoft ユーザー定義外字 (1880字)&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;background:#ccc;&amp;quot;|&lt;br /&gt;
!style=&amp;quot;background:#ccc;&amp;quot;|&lt;br /&gt;
| /[\u0080\uF8F0-\uF8F3]/g || CP932 未定義文字 (5字)&lt;br /&gt;
|-&lt;br /&gt;
!rowspan=&amp;quot;2&amp;quot; style=&amp;quot;background:#fcc;&amp;quot;| Uni&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot; style=&amp;quot;background:#fcc;&amp;quot;| SP&lt;br /&gt;
| /[\uD800-\uDBFF][\uDC00-\uDFFF]/g || サロゲートペア (U+10000～10FFFF)&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot; style=&amp;quot;background:#ccc;&amp;quot;|&lt;br /&gt;
| /[\u0000-\uFFFF]/g || 上記以外の全文字&lt;br /&gt;
|}&lt;br /&gt;
* &amp;lt;b style=&amp;quot;background:#fcc;&amp;quot;&amp;gt;Uni&amp;lt;/b&amp;gt; に分類される文字は、Shift_JIS では正常に保存できません。保存を強行した場合、似た文字や &amp;lt;code&amp;gt;?&amp;lt;/code&amp;gt; に化けます。&lt;br /&gt;
* &amp;lt;b style=&amp;quot;background:#fcc;&amp;quot;&amp;gt;MS依存&amp;lt;/b&amp;gt; に分類される文字は、Shift_JIS では「環境依存文字」に該当します。&lt;br /&gt;
* 改行の定義が &amp;lt;code&amp;gt;/\n/g&amp;lt;/code&amp;gt; なのは Mery の内部改行コードが [LF] で統一されているためです。&lt;br /&gt;
&lt;br /&gt;
===文字分類の仕様===&lt;br /&gt;
文字分類は、ソースコードの最初あたりにある「■文字分類」以下で定義されています。&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
//■文字分類&lt;br /&gt;
{type:&amp;quot;総数,全角,カナ&amp;quot;, re:/[ァ-ヶ]/g},  //一例&lt;br /&gt;
/* 以下略 */&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! re&lt;br /&gt;
| カウントする対象を正規表現で記述します。&amp;lt;br&amp;gt;たとえば全角カタカナなら、&amp;lt;code style=&amp;quot;color:#c00;&amp;quot;&amp;gt;re:/[ァ-ヶ]/g&amp;lt;/code&amp;gt; という具合です。&amp;lt;br&amp;gt;利用できる正規表現は、実行環境 JScript (JavaScript) の仕様に依存します。&lt;br /&gt;
|-&lt;br /&gt;
! type&lt;br /&gt;
| 分類名です。複数設定する場合はコンマで区切ります。&amp;lt;br&amp;gt;たとえば、&amp;lt;code style=&amp;quot;color:#c00;&amp;quot;&amp;gt;type:&amp;quot;総数,全角,カナ&amp;quot;&amp;lt;/code&amp;gt; という具合です。&amp;lt;br&amp;gt;この場合、type[&amp;quot;総数&amp;quot;], type[&amp;quot;全角&amp;quot;], type[&amp;quot;カナ&amp;quot;] の各変数にカウントが加算されます。&lt;br /&gt;
|}&lt;br /&gt;
「文字カウント」マクロは、この定義を上から順に見て、該当する箇所を数えます。&lt;br /&gt;
&lt;br /&gt;
==結果表示==&lt;br /&gt;
現在の定義は下表のとおりです。&lt;br /&gt;
* &amp;lt;b style=&amp;quot;background:#fcc;&amp;quot;&amp;gt;赤地&amp;lt;/b&amp;gt; の項目は、初期状態で表示される項目です。&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 項目名 !! 表示例 !! 関係する分類 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;background:#fcc;&amp;quot;| 総字数&lt;br /&gt;
| 12345 (文書全体)&amp;lt;br&amp;gt;12345 (選択範囲)&lt;br /&gt;
| 総数 || スペースを含む文字数と、計測範囲&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;background:#fcc;&amp;quot;| 字数&lt;br /&gt;
| 12345 (改行･空白抜き)&lt;br /&gt;
| 総数−空白 || スペースを含まない文字数&lt;br /&gt;
|-&lt;br /&gt;
! 原稿&lt;br /&gt;
| 12～16枚 (12分)&amp;lt;br&amp;gt;123～164枚 (1.2時間)&lt;br /&gt;
| 総数、字数 || 原稿用紙枚数（400～300字/枚）と、読了時間（400字/分）&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;background:#fcc;&amp;quot;| 改行&lt;br /&gt;
| 12345 (CR+LF)&lt;br /&gt;
| 改行 || 改行の数と、改行コード&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;background:#fcc;&amp;quot;| 段落&lt;br /&gt;
| 12345&lt;br /&gt;
| 段落 || 空白行でない論理行数&lt;br /&gt;
|-&lt;br /&gt;
! 半英単&lt;br /&gt;
| 12345&lt;br /&gt;
| 半英単 || ASCII文字（半角英数）の単語数&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;background:#fcc;&amp;quot;| 半角&lt;br /&gt;
| 12345 (半ｶﾅ 12345)&lt;br /&gt;
| 半角、半ｶﾅ || 半角文字の数と、半角カナの数&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;background:#fcc;&amp;quot;| 全角&lt;br /&gt;
| 12345 (依存 12345)&lt;br /&gt;
| 全角、MS依存 || 全角文字の数と、Shift_JIS での環境依存文字の数&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;background:#fcc;&amp;quot;| 仮名&lt;br /&gt;
| 12345 (12.3%/字数)&lt;br /&gt;
| 仮名 || 仮名文字の数と、「字数」に占める割合&lt;br /&gt;
|-&lt;br /&gt;
! 漢字&lt;br /&gt;
| 12345 (12.3%/字数)&lt;br /&gt;
| 漢字 || 漢字の数と、「字数」に占める割合&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;background:#fcc;&amp;quot;| Unicode&lt;br /&gt;
| 12345 (ペア 12345)&lt;br /&gt;
| Uni、SP || Shift_JIS では保存できない文字の数と、サロゲートペアの数&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;background:#fcc;&amp;quot;| サイズ&lt;br /&gt;
| 12,345 バイト&lt;br /&gt;
| || 現在のエンコードでの容量&lt;br /&gt;
|-&lt;br /&gt;
! UTF-16&lt;br /&gt;
| 12,345+2(BOM) バイト&lt;br /&gt;
| || UTF-16 での容量&lt;br /&gt;
|-&lt;br /&gt;
! UTF-8&lt;br /&gt;
| 12,345+3(BOM) バイト&lt;br /&gt;
| || UTF-8 での容量&lt;br /&gt;
|-&lt;br /&gt;
! UTF-7&lt;br /&gt;
| 12,345 バイト&lt;br /&gt;
| || UTF-7 での容量&lt;br /&gt;
|-&lt;br /&gt;
! EUC&lt;br /&gt;
| 12,345 バイト&lt;br /&gt;
| || 日本語 (EUC) / EUC-JP (CP51932) での容量&lt;br /&gt;
|-&lt;br /&gt;
! JIS&lt;br /&gt;
| 12,345 バイト&lt;br /&gt;
| || 日本語 (JIS) / ISO-2022-JP (CP50222) での容量&lt;br /&gt;
|-&lt;br /&gt;
! SJIS&lt;br /&gt;
| 12,345 バイト&lt;br /&gt;
| || 日本語 (シフトJIS) / Shift_JIS (CP932) での容量&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===結果表示の仕様===&lt;br /&gt;
結果表示は、ソースコードの最後あたりにある「▼結果表示」以下で定義されています。&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
//▼結果表示&lt;br /&gt;
/* 中略 */&lt;br /&gt;
Alert( [&amp;quot;&amp;quot;&lt;br /&gt;
// ----------------- ↓ここから表示&lt;br /&gt;
,&amp;quot;総字数\t: &amp;quot;+(type[&amp;quot;総数&amp;quot;])+&amp;quot; (&amp;quot;+ RANGE +&amp;quot;)&amp;quot;&lt;br /&gt;
,&amp;quot;　字数\t: &amp;quot;+(type[&amp;quot;字数&amp;quot;])+&amp;quot; (改行･空白抜き)&amp;quot;&lt;br /&gt;
//,&amp;quot;　原稿\t: &amp;quot;+paper(type[&amp;quot;総数&amp;quot;])+&amp;quot; (&amp;quot;+time(type[&amp;quot;字数&amp;quot;])+&amp;quot;)&amp;quot;&lt;br /&gt;
,&amp;quot;　改行\t: &amp;quot;+(type[&amp;quot;改行&amp;quot;])+&amp;quot; (&amp;quot;+ BREAK +&amp;quot;)&amp;quot;&lt;br /&gt;
,&amp;quot;　段落\t: &amp;quot;+(type[&amp;quot;段落&amp;quot;])&lt;br /&gt;
//,&amp;quot;半英単\t: &amp;quot;+(type[&amp;quot;半英単&amp;quot;])&lt;br /&gt;
,&amp;quot;　半角\t: &amp;quot;+(type[&amp;quot;半角&amp;quot;])+&amp;quot; (半ｶﾅ &amp;quot;+(type[&amp;quot;半ｶﾅ&amp;quot;])+&amp;quot;)&amp;quot;&lt;br /&gt;
,&amp;quot;　全角\t: &amp;quot;+(type[&amp;quot;全角&amp;quot;])+&amp;quot; (依存 &amp;quot;+(type[&amp;quot;MS依存&amp;quot;])+&amp;quot;)&amp;quot;&lt;br /&gt;
,&amp;quot;　仮名\t: &amp;quot;+(type[&amp;quot;仮名&amp;quot;])+&amp;quot; (&amp;quot;+per(type[&amp;quot;仮名&amp;quot;],type[&amp;quot;字数&amp;quot;])+&amp;quot;/字数)&amp;quot;&lt;br /&gt;
//,&amp;quot;　漢字\t: &amp;quot;+(type[&amp;quot;漢字&amp;quot;])+&amp;quot; (&amp;quot;+per(type[&amp;quot;漢字&amp;quot;],type[&amp;quot;字数&amp;quot;])+&amp;quot;/字数)&amp;quot;&lt;br /&gt;
,&amp;quot;Unicode\t: &amp;quot;+(type[&amp;quot;Uni&amp;quot;])+&amp;quot; (ペア &amp;quot;+(type[&amp;quot;SP&amp;quot;])+&amp;quot;)&amp;quot;&lt;br /&gt;
,&amp;quot;&amp;quot;&lt;br /&gt;
,&amp;quot;サイズ\t: &amp;quot;+(bytes())+&amp;quot; バイト&amp;quot;&lt;br /&gt;
//,&amp;quot;UTF-16\t: &amp;quot;+(bytes(&amp;quot;utf-16&amp;quot;))+&amp;quot;+2(BOM) バイト&amp;quot;&lt;br /&gt;
//,&amp;quot;UTF-8 \t: &amp;quot;+(bytes(&amp;quot;utf-8&amp;quot;,-3))+&amp;quot;+3(BOM) バイト&amp;quot;&lt;br /&gt;
//,&amp;quot;UTF-7 \t: &amp;quot;+(bytes(&amp;quot;utf-7&amp;quot;))+&amp;quot; バイト&amp;quot;&lt;br /&gt;
//,&amp;quot;EUC   \t: &amp;quot;+(bytes(&amp;quot;euc-jp&amp;quot;))+&amp;quot; バイト&amp;quot;&lt;br /&gt;
//,&amp;quot;JIS   \t: &amp;quot;+(bytes(&amp;quot;iso-2022-jp&amp;quot;))+&amp;quot; バイト&amp;quot;&lt;br /&gt;
//,&amp;quot;SJIS  \t: &amp;quot;+(bytes(&amp;quot;shift_jis&amp;quot;))+&amp;quot; バイト&amp;quot;&lt;br /&gt;
// ----------------- ↑ここまで表示&lt;br /&gt;
].join(&amp;quot;\n&amp;quot;).replace(/^\n+|\n+$/g,&amp;quot;&amp;quot;) );&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! type[分類名]&lt;br /&gt;
| カウント結果。たとえば「総数」に該当した数は type[&amp;quot;総数&amp;quot;] で得られます。&lt;br /&gt;
|-&lt;br /&gt;
! paper(n)&lt;br /&gt;
| 原稿用紙枚数を求める関数（1枚400～300字で概算）。&amp;lt;br&amp;gt;単純に n÷400 と n÷300（切り上げ）で算出します。&lt;br /&gt;
|-&lt;br /&gt;
! time(n)&lt;br /&gt;
| 読了時間を求める関数（1分400字で概算）。&amp;lt;br&amp;gt;60分未満は「分」表示（切り上げ）、60分以上は「時間」表示（小数第1位まで四捨五入）です。&lt;br /&gt;
|-&lt;br /&gt;
! per(n,m)&lt;br /&gt;
| m に占める n の割合（百分率）を求める関数。&amp;lt;br&amp;gt;10%未満は小数第2位まで切り捨て、100%未満は第1位まで切り捨て、100%以上は切り上げです。&lt;br /&gt;
|-&lt;br /&gt;
! bytes(enc)&lt;br /&gt;
| 容量（バイト数）を求める関数。&amp;lt;br&amp;gt;enc には[[マクロリファレンス:エンコード定数|エンコード定数]] または ADODB.Stream の Charset プロパティに渡す文字列を指定します。&amp;lt;br&amp;gt;指定しない場合、現在のエンコードになります。&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===表示項目を増やす===&lt;br /&gt;
初期状態で表示されない項目を表示するには、ソースコードの行頭の &amp;lt;code&amp;gt;//&amp;lt;/code&amp;gt; を削除してください。&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
,&amp;quot;サイズ\t: &amp;quot;+(bytes())+&amp;quot; バイト&amp;quot;&lt;br /&gt;
//,&amp;quot;UTF-16\t: &amp;quot;+(bytes(&amp;quot;utf-16&amp;quot;))+&amp;quot;+2(BOM) バイト&amp;quot;&lt;br /&gt;
//,&amp;quot;UTF-8 \t: &amp;quot;+(bytes(&amp;quot;utf-8&amp;quot;,-3))+&amp;quot;+3(BOM) バイト&amp;quot;&lt;br /&gt;
//,&amp;quot;UTF-7 \t: &amp;quot;+(bytes(&amp;quot;utf-7&amp;quot;))+&amp;quot; バイト&amp;quot;&lt;br /&gt;
//,&amp;quot;EUC   \t: &amp;quot;+(bytes(&amp;quot;euc-jp&amp;quot;))+&amp;quot; バイト&amp;quot;&lt;br /&gt;
//,&amp;quot;JIS   \t: &amp;quot;+(bytes(&amp;quot;iso-2022-jp&amp;quot;))+&amp;quot; バイト&amp;quot;&lt;br /&gt;
//,&amp;quot;SJIS  \t: &amp;quot;+(bytes(&amp;quot;shift_jis&amp;quot;))+&amp;quot; バイト&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
:↓「サイズ」を非表示、「UTF-16」「UTF-8」「SJIS」を表示する場合&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
//,&amp;quot;サイズ\t: &amp;quot;+(bytes())+&amp;quot; バイト&amp;quot;&lt;br /&gt;
,&amp;quot;UTF-16\t: &amp;quot;+(bytes(&amp;quot;utf-16&amp;quot;))+&amp;quot;+2(BOM) バイト&amp;quot;&lt;br /&gt;
,&amp;quot;UTF-8 \t: &amp;quot;+(bytes(&amp;quot;utf-8&amp;quot;,-3))+&amp;quot;+3(BOM) バイト&amp;quot;&lt;br /&gt;
//,&amp;quot;UTF-7 \t: &amp;quot;+(bytes(&amp;quot;utf-7&amp;quot;))+&amp;quot; バイト&amp;quot;&lt;br /&gt;
//,&amp;quot;EUC   \t: &amp;quot;+(bytes(&amp;quot;euc-jp&amp;quot;))+&amp;quot; バイト&amp;quot;&lt;br /&gt;
//,&amp;quot;JIS   \t: &amp;quot;+(bytes(&amp;quot;iso-2022-jp&amp;quot;))+&amp;quot; バイト&amp;quot;&lt;br /&gt;
,&amp;quot;SJIS  \t: &amp;quot;+(bytes(&amp;quot;shift_jis&amp;quot;))+&amp;quot; バイト&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==教育漢字を数える==&lt;br /&gt;
応用例として、小学校で学年別に習う漢字のカウントを追加する方法を紹介します。&lt;br /&gt;
&lt;br /&gt;
[[ファイル:CharacterCounter_EducationKanji.png|border]]&lt;br /&gt;
&lt;br /&gt;
; 参考文献&lt;br /&gt;
* [https://www.mext.go.jp/content/1413522_001.pdf 文部科学省 - 小学校学習指導要領(平成29年告示) (PDF 5.8MB)] pp.42–45 学年別漢字配当表&lt;br /&gt;
* [https://ja.wikipedia.org/wiki/%E5%AD%A6%E5%B9%B4%E5%88%A5%E6%BC%A2%E5%AD%97%E9%85%8D%E5%BD%93%E8%A1%A8 Wikipedia - 学年別漢字配当表]&lt;br /&gt;
&lt;br /&gt;
===文字分類への追加===&lt;br /&gt;
; 2017(平成29)年改定版&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
{type:&amp;quot;総数,全角,罫線&amp;quot; /* 中略 */ },&lt;br /&gt;
// ↓ここより下に追加してください&lt;br /&gt;
&lt;br /&gt;
  //★学年別漢字配当表 1026字 2017(平成29)年改定&lt;br /&gt;
{type:&amp;quot;総数,全角,漢字,第一,小学,小一&amp;quot;, re:/[一右雨円王音下火花貝学気九休玉金空月犬見五口校左三山子四糸字耳七車手十出女小上森人水正生青夕石赤千川先早草足村大男竹中虫町天田土二日入年白八百文木本名目立力林六]/g},&lt;br /&gt;
{type:&amp;quot;総数,全角,漢字,第一,小学,小二&amp;quot;, re:/[引羽雲園遠何科夏家歌画回会海絵外角楽活間丸岩顔汽記帰弓牛魚京強教近兄形計元言原戸古午後語工公広交光考行高黄合谷国黒今才細作算止市矢姉思紙寺自時室社弱首秋週春書少場色食心新親図数西声星晴切雪船線前組走多太体台地池知茶昼長鳥朝直通弟店点電刀冬当東答頭同道読内南肉馬売買麦半番父風分聞米歩母方北毎妹万明鳴毛門夜野友用曜来里理話]/g},&lt;br /&gt;
{type:&amp;quot;総数,全角,漢字,第一,小学,小三&amp;quot;, re:/[悪安暗医委意育員院飲運泳駅央横屋温化荷界開階寒感漢館岸起期客究急級宮球去橋業曲局銀区苦具君係軽血決研県庫湖向幸港号根祭皿仕死使始指歯詩次事持式実写者主守取酒受州拾終習集住重宿所暑助昭消商章勝乗植申身神真深進世整昔全相送想息速族他打対待代第題炭短談着注柱丁帳調追定庭笛鉄転都度投豆島湯登等動童農波配倍箱畑発反坂板皮悲美鼻筆氷表秒病品負部服福物平返勉放味命面問役薬由油有遊予羊洋葉陽様落流旅両緑礼列練路和]/g},&lt;br /&gt;
{type:&amp;quot;総数,全角,漢字,第一,小学,小四&amp;quot;, re:/[愛案以衣位茨印英栄媛塩岡億加果貨課芽賀改械害街各覚潟完官管関観願岐希季旗器機議求泣給挙漁共協鏡競極熊訓軍郡群径景芸欠結建健験固功好香候康佐差菜最埼材崎昨札刷察参産散残氏司試児治滋辞鹿失借種周祝順初松笑唱焼照城縄臣信井成省清静席積折節説浅戦選然争倉巣束側続卒孫帯隊達単置仲沖兆低底的典伝徒努灯働特徳栃奈梨熱念敗梅博阪飯飛必票標不夫付府阜富副兵別辺変便包法望牧末満未民無約勇要養浴利陸良料量輪類令冷例連老労録]/g},&lt;br /&gt;
{type:&amp;quot;総数,全角,漢字,第一,小学,小五&amp;quot;, re:/[圧囲移因永営衛易益液演応往桜可仮価河過快解格確額刊幹慣眼紀基寄規喜技義逆久旧救居許境均禁句型経潔件険検限現減故個護効厚耕航鉱構興講告混査再災妻採際在財罪殺雑酸賛士支史志枝師資飼示似識質舎謝授修述術準序招証象賞条状常情織職制性政勢精製税責績接設絶祖素総造像増則測属率損貸態団断築貯張停提程適統堂銅導得毒独任燃能破犯判版比肥非費備評貧布婦武復複仏粉編弁保墓報豊防貿暴脈務夢迷綿輸余容略留領歴]/g},&lt;br /&gt;
{type:&amp;quot;総数,全角,漢字,第一,小学,小六&amp;quot;, re:/[胃異遺域宇映延沿恩我灰拡革閣割株干巻看簡危机揮貴疑吸供胸郷勤筋系敬警劇激穴券絹権憲源厳己呼誤后孝皇紅降鋼刻穀骨困砂座済裁策冊蚕至私姿視詞誌磁射捨尺若樹収宗就衆従縦縮熟純処署諸除承将傷障蒸針仁垂推寸盛聖誠舌宣専泉洗染銭善奏窓創装層操蔵臓存尊退宅担探誕段暖値宙忠著庁頂腸潮賃痛敵展討党糖届難乳認納脳派拝背肺俳班晩否批秘俵腹奮並陛閉片補暮宝訪亡忘棒枚幕密盟模訳郵優預幼欲翌乱卵覧裏律臨朗論]/g},&lt;br /&gt;
&lt;br /&gt;
// ↑ここより上に追加してください&lt;br /&gt;
{type:&amp;quot;総数,全角,漢字,第一&amp;quot; /* 中略 */ },&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; 1989(平成元)年改定版&lt;br /&gt;
: ※小学1～3年は2017(平成29)年改定版と同一なので省略。&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
  //★学年別漢字配当表 1006字 1989(平成元)年改定&lt;br /&gt;
{type:&amp;quot;総数,全角,漢字,第一,小学,小四&amp;quot;, re:/[愛案以衣位囲胃印英栄塩億加果貨課芽改械害街各覚完官管関観願希季紀喜旗器機議求泣救給挙漁共協鏡競極訓軍郡径型景芸欠結建健験固功好候航康告差菜最材昨札刷殺察参産散残士氏史司試児治辞失借種周祝順初松笑唱焼象照賞臣信成省清静席積折節説浅戦選然争倉巣束側続卒孫帯隊達単置仲貯兆腸低底停的典伝徒努灯堂働特得毒熱念敗梅博飯飛費必票標不夫付府副粉兵別辺変便包法望牧末満未脈民無約勇要養浴利陸良料量輪類令冷例歴連老労録]/g},&lt;br /&gt;
{type:&amp;quot;総数,全角,漢字,第一,小学,小五&amp;quot;, re:/[圧移因永営衛易益液演応往桜恩可仮価河過賀快解格確額刊幹慣眼基寄規技義逆久旧居許境均禁句群経潔件券険検限現減故個護効厚耕鉱構興講混査再災妻採際在財罪雑酸賛支志枝師資飼示似識質舎謝授修述術準序招承証条状常情織職制性政勢精製税責績接設舌絶銭祖素総造像増則測属率損退貸態団断築張提程適敵統銅導徳独任燃能破犯判版比肥非備俵評貧布婦富武復複仏編弁保墓報豊防貿暴務夢迷綿輸余預容略留領]/g},&lt;br /&gt;
{type:&amp;quot;総数,全角,漢字,第一,小学,小六&amp;quot;, re:/[異遺域宇映延沿我灰拡革閣割株干巻看簡危机揮貴疑吸供胸郷勤筋系敬警劇激穴絹権憲源厳己呼誤后孝皇紅降鋼刻穀骨困砂座済裁策冊蚕至私姿視詞誌磁射捨尺若樹収宗就衆従縦縮熟純処署諸除将傷障城蒸針仁垂推寸盛聖誠宣専泉洗染善奏窓創装層操蔵臓存尊宅担探誕段暖値宙忠著庁頂潮賃痛展討党糖届難乳認納脳派拝背肺俳班晩否批秘腹奮並陛閉片補暮宝訪亡忘棒枚幕密盟模訳郵優幼欲翌乱卵覧裏律臨朗論]/g},&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===結果表示への追加例===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
,&amp;quot;　漢字\t: &amp;quot;+(type[&amp;quot;漢字&amp;quot;])+&amp;quot; (&amp;quot;+per(type[&amp;quot;漢字&amp;quot;],type[&amp;quot;字数&amp;quot;])+&amp;quot;/字数)&amp;quot;&lt;br /&gt;
// ↓ここより下に追加してください&lt;br /&gt;
&lt;br /&gt;
,&amp;quot;　小学\t: &amp;quot;+(type[&amp;quot;小学&amp;quot;])+&amp;quot; (&amp;quot;+per(type[&amp;quot;小学&amp;quot;],type[&amp;quot;漢字&amp;quot;])+&amp;quot;/漢字)&amp;quot;&lt;br /&gt;
,&amp;quot;　一 &amp;quot;+per(type[&amp;quot;小一&amp;quot;],type[&amp;quot;小学&amp;quot;])&lt;br /&gt;
+&amp;quot;　二 &amp;quot;+per(type[&amp;quot;小二&amp;quot;],type[&amp;quot;小学&amp;quot;])&lt;br /&gt;
+&amp;quot;　三 &amp;quot;+per(type[&amp;quot;小三&amp;quot;],type[&amp;quot;小学&amp;quot;])&lt;br /&gt;
,&amp;quot;　四 &amp;quot;+per(type[&amp;quot;小四&amp;quot;],type[&amp;quot;小学&amp;quot;])&lt;br /&gt;
+&amp;quot;　五 &amp;quot;+per(type[&amp;quot;小五&amp;quot;],type[&amp;quot;小学&amp;quot;])&lt;br /&gt;
+&amp;quot;　六 &amp;quot;+per(type[&amp;quot;小六&amp;quot;],type[&amp;quot;小学&amp;quot;])&lt;br /&gt;
&lt;br /&gt;
// ↑ここより上に追加してください&lt;br /&gt;
,&amp;quot;Unicode\t: &amp;quot;+(type[&amp;quot;Uni&amp;quot;])+&amp;quot; (ペア &amp;quot;+(type[&amp;quot;SP&amp;quot;])+&amp;quot;)&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Masme</name></author>
	</entry>
	<entry>
		<id>https://www.haijin-boys.com/wiki/index.php?title=%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:CharacterCounter_EducationKanji.png&amp;diff=4885</id>
		<title>ファイル:CharacterCounter EducationKanji.png</title>
		<link rel="alternate" type="text/html" href="https://www.haijin-boys.com/wiki/index.php?title=%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:CharacterCounter_EducationKanji.png&amp;diff=4885"/>
		<updated>2019-12-21T12:59:04Z</updated>

		<summary type="html">&lt;p&gt;Masme: マクロ「文字カウント」の説明用画像（教育漢字）&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 概要 ==&lt;br /&gt;
マクロ「文字カウント」の説明用画像（教育漢字）&lt;/div&gt;</summary>
		<author><name>Masme</name></author>
	</entry>
	<entry>
		<id>https://www.haijin-boys.com/wiki/index.php?title=%E9%80%A3%E7%95%AA%E3%82%92%E6%8C%BF%E5%85%A5&amp;diff=4884</id>
		<title>連番を挿入</title>
		<link rel="alternate" type="text/html" href="https://www.haijin-boys.com/wiki/index.php?title=%E9%80%A3%E7%95%AA%E3%82%92%E6%8C%BF%E5%85%A5&amp;diff=4884"/>
		<updated>2019-12-21T12:56:00Z</updated>

		<summary type="html">&lt;p&gt;Masme: マクロ更新&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;float:right&amp;quot;&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
カーソル行頭 or 選択範囲行頭に連番を挿入するマクロです。&lt;br /&gt;
&lt;br /&gt;
[[ファイル:InsertSequentialNumber_Popup.png]]&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 連番を挿入&lt;br /&gt;
| 連番の挿入を実行します。&lt;br /&gt;
|-&lt;br /&gt;
! 形式&lt;br /&gt;
| 連番の種類（スタイル）。&amp;lt;br&amp;gt;プリセット（あらかじめ用意した設定）の適応もここで行います。&lt;br /&gt;
|-&lt;br /&gt;
! 開始&lt;br /&gt;
| 開始番号（0以上の整数）。&lt;br /&gt;
|-&lt;br /&gt;
! 個数&lt;br /&gt;
| 行数（1以上の整数）。&amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;範囲選択時は変更できません。&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;..数値&amp;lt;/code&amp;gt; と入力すると、数値を終了番号とみなします。&amp;lt;br&amp;gt;たとえば、&amp;lt;code&amp;gt;..9&amp;lt;/code&amp;gt; なら9までで終わる連番になるよう個数を逆算します。&lt;br /&gt;
|-&lt;br /&gt;
! 増分&lt;br /&gt;
| 増加幅（0以上の整数）。&lt;br /&gt;
|-&lt;br /&gt;
! 桁数&lt;br /&gt;
| 最低桁数（0以上の整数。0 で最長桁揃え）。&amp;lt;br&amp;gt;桁埋めしたくない場合、1 を指定してください。&lt;br /&gt;
|-&lt;br /&gt;
! 桁埋&lt;br /&gt;
| 桁埋め文字（1文字）。&amp;lt;b&amp;gt;結合文字列には対応していません。&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;空欄にすると、スタイル既定の桁埋め文字が適用されます。&lt;br /&gt;
|-&lt;br /&gt;
! 接頭&amp;lt;br&amp;gt;接尾&lt;br /&gt;
| 連番の前後に付加する文字列。下記の特殊記法が使えます。&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;%t&amp;lt;/code&amp;gt; (タブ)、&amp;lt;code&amp;gt;%%&amp;lt;/code&amp;gt; (文字 %)、&amp;lt;code&amp;gt;%A&amp;lt;/code&amp;gt; (始値)、&amp;lt;code&amp;gt;%Z&amp;lt;/code&amp;gt; (終値)&lt;br /&gt;
|-&lt;br /&gt;
! (プレビュー)&amp;lt;br&amp;gt;もっと見る&lt;br /&gt;
| 連番の内容（最初と最後）の下見です。&amp;lt;br&amp;gt;&amp;lt;b&amp;gt;[もっと見る]&amp;lt;/b&amp;gt; で最初6個と最後6個を下見できます。&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==注意点==&lt;br /&gt;
* 範囲選択時は行全体を選択してから、論理行頭（論理座標）に連番を挿入します。&lt;br /&gt;
* 連番の限度は &amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;9007兆&amp;lt;/b&amp;gt;1992億5474万0991 (2&amp;lt;sup&amp;gt;53&amp;lt;/sup&amp;gt;−1) です。超過した場合の動作は保証しません。&amp;lt;br&amp;gt;JavaScript の仕様では、この数値を超えると整数の取り扱いに不都合が生じます。&lt;br /&gt;
* 個数の限度は &amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;42億&amp;lt;/b&amp;gt;9496万7295 (2&amp;lt;sup&amp;gt;32&amp;lt;/sup&amp;gt;−1) です。メモリ不足の場合の動作は保証しません。&lt;br /&gt;
* 桁埋・接頭・接尾の入力時にキャンセルすると、前の状態に戻るのではなく、空欄となります。&amp;lt;br&amp;gt;これは仕様上解決できませんので、ご了承ください。&lt;br /&gt;
* 桁埋・接頭・接尾・プレビューでは、下記のような代替表示が行われます。&lt;br /&gt;
** 半角空白 (U+0020) → &amp;lt;code&amp;gt;␣&amp;lt;/code&amp;gt; (U+2423) と表示&lt;br /&gt;
** 全角空白 (U+3000) → &amp;lt;code&amp;gt;〼&amp;lt;/code&amp;gt; (U+303C) と表示&lt;br /&gt;
** 水平タブ (U+0009) → &amp;lt;code&amp;gt;&amp;amp;nbsp;›&amp;amp;nbsp;&amp;lt;/code&amp;gt; (U+203A) と表示&lt;br /&gt;
* プレビューでは、最長桁数を実際より少なく見積もることがあります。&lt;br /&gt;
&lt;br /&gt;
==ソースコード==&lt;br /&gt;
ダウンロード→ [[メディア:連番を挿入.zip|連番を挿入.zip]]&lt;br /&gt;
&lt;br /&gt;
* 拙作ですがアイコンファイル (連番を挿入.ico) を同梱してあります。&amp;lt;br&amp;gt;Mery 2.4.7 以降の場合、マクロ (連番を挿入.js) と同じフォルダに、&amp;lt;br&amp;gt;Mery 2.4.6 以前の場合、Mery.exe と同じフォルダに、&amp;lt;br&amp;gt;アイコンファイルを配置しておくとツールバーにアイコンが読み込まれます。&lt;br /&gt;
&lt;br /&gt;
==更新履歴==&lt;br /&gt;
[[ファイル:連番を挿入.zip]]&lt;br /&gt;
&lt;br /&gt;
; 2019/12/21 (rev.2)&lt;br /&gt;
* アイコンファイルを同梱し、読み込むようにした。&lt;br /&gt;
* 連番の挿入を実行後、実行範囲を行選択するようにした。&lt;br /&gt;
* 「プレビュー」を一番下に移動し、「もっと見る」を追加。&lt;br /&gt;
* スタイルの概念を導入（英字・仮名・ローマ数字・漢数字連番などに対応）。&lt;br /&gt;
** 「形式」を追加。「プリセット」は削除。&lt;br /&gt;
* 個数で、&amp;lt;code&amp;gt;..数値&amp;lt;/code&amp;gt; と入力すると終了番号とみなすようにした。&lt;br /&gt;
* 指定した桁数までしか桁埋めしない仕様に変更。&lt;br /&gt;
** 桁数を 0 にすると、最長桁揃えができるようにした。&lt;br /&gt;
* 桁埋を空欄にした場合、スタイルの既定を適用する仕様に変更。&lt;br /&gt;
* 接頭・接尾で、% による特殊記法を導入。&lt;br /&gt;
* 入力ダイアログの見出しを「項目名:」→「項目名: 現在値」に変更。&lt;br /&gt;
* 開始・個数・増分・桁数で、限度を超過した数値を受け付けないようにした。&lt;br /&gt;
* 桁埋で、2文字以上を指定した場合、最初の1文字のみ受け付けるようにした。&lt;br /&gt;
* 桁埋・接頭・接尾・プレビューで、文字 &amp;amp;amp; が正常に表示されないのを修正。&lt;br /&gt;
* 代替表示の対象に全角空白を追加。空欄を除外。&lt;br /&gt;
* サロゲートペアに対応。&lt;br /&gt;
; 2013/08/25 (rev.1)&lt;br /&gt;
* 初版公開。&lt;br /&gt;
&lt;br /&gt;
==連番の形式==&lt;br /&gt;
「形式」の内容は、ソースコードの最初あたりで定義されています。&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
//■形式&lt;br /&gt;
// ----------------- ↓ここより下に定義を追加&lt;br /&gt;
/* スタイル切替の例 */&lt;br /&gt;
,{text:&amp;quot;%{style.text}\t%{style.pad}埋&amp;quot;, style:&amp;quot;dec&amp;quot;}&lt;br /&gt;
,{text:&amp;quot;%{style.text}\t%{style.pad}埋&amp;quot;, style:&amp;quot;up-roman&amp;quot;}&lt;br /&gt;
,{text:&amp;quot;%{style.text}\t%{style.pad}埋&amp;quot;, style:&amp;quot;up-latin&amp;quot;}&lt;br /&gt;
,{text:&amp;quot;%{style.text}\t%{style.pad}埋&amp;quot;, style:&amp;quot;hira&amp;quot;}&lt;br /&gt;
,{text:&amp;quot;%{style.text}\t%{style.pad}埋&amp;quot;, style:&amp;quot;kanji&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
/* プリセットの例 */&lt;br /&gt;
,{text:&amp;quot;(1),(2),(3) ...&amp;quot;, style:&amp;quot;dec&amp;quot;, prefix:&amp;quot;(&amp;quot;, suffix:&amp;quot;)&amp;quot;}&lt;br /&gt;
,{text:&amp;quot;1.␣,2.␣,3.␣ ...&amp;quot;, style:&amp;quot;dec&amp;quot;, prefix:&amp;quot;&amp;quot;, suffix:&amp;quot;. &amp;quot;}&lt;br /&gt;
,{text:&amp;quot;1/Z › ,2/Z › ,3/Z › ... (Z:終値)&amp;quot;, style:&amp;quot;dec&amp;quot;, prefix:&amp;quot;&amp;quot;, suffix:&amp;quot;/%Z%t&amp;quot;}&lt;br /&gt;
,{text:&amp;quot;A ... Z [%{count}個]&amp;quot;, style:&amp;quot;up-latin&amp;quot;, start:&amp;quot;1&amp;quot;, count:&amp;quot;26&amp;quot;, step:&amp;quot;1&amp;quot;}&lt;br /&gt;
,{text:&amp;quot;あ ... ん [%{count}個]&amp;quot;, style:&amp;quot;hira&amp;quot;, start:&amp;quot;1&amp;quot;, count:&amp;quot;48&amp;quot;, step:&amp;quot;1&amp;quot;}&lt;br /&gt;
,{text:&amp;quot;北海道 ... 沖縄県 [%{count}個]&amp;quot;, style:&amp;quot;pref&amp;quot;, start:&amp;quot;1&amp;quot;, count:&amp;quot;47&amp;quot;, step:&amp;quot;1&amp;quot;}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
,{text:&amp;quot;表示文&amp;quot;, style:&amp;quot;スタイル&amp;quot;, start:&amp;quot;開始&amp;quot;, count:&amp;quot;個数&amp;quot;, step:&amp;quot;増分&amp;quot;, digit:&amp;quot;桁数&amp;quot;, pad:&amp;quot;桁埋&amp;quot;, prefix:&amp;quot;接頭&amp;quot;, suffix:&amp;quot;接尾&amp;quot;}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; style, start, count, step, digit, pad, prefix, suffix&lt;br /&gt;
: 適用する設定。&lt;br /&gt;
: ※&amp;lt;code&amp;gt;style&amp;lt;/code&amp;gt; に存在しないスタイル名を指定すると、適用時にエラーになります。&lt;br /&gt;
: ※範囲選択時は個数が固定されるため、&amp;lt;code&amp;gt;count&amp;lt;/code&amp;gt; の指定は無視されます。&lt;br /&gt;
; text&lt;br /&gt;
: メニューに表示する文章。下記の特殊記法が使えます。&lt;br /&gt;
:* &amp;lt;code&amp;gt;%{xxx}&amp;lt;/code&amp;gt;：適用する設定 xxx の値。たとえば、&amp;lt;code&amp;gt;%{start}&amp;lt;/code&amp;gt; など。&lt;br /&gt;
:* &amp;lt;code&amp;gt;%{style.xxx}&amp;lt;/code&amp;gt;：適用する style の xxx の値。たとえば、&amp;lt;code&amp;gt;%{style.text}&amp;lt;/code&amp;gt; など。&lt;br /&gt;
: ※ xxx が存在しない場合、&amp;lt;code&amp;gt;%{...}&amp;lt;/code&amp;gt; 部分は置換されず、そのまま表示されます。&lt;br /&gt;
: ※&amp;lt;code&amp;gt;pad&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;prefix&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;suffix&amp;lt;/code&amp;gt; の値には代替表示が適用されます。&lt;br /&gt;
&lt;br /&gt;
===定義済みスタイル===&lt;br /&gt;
初期状態で定義されているスタイルです。&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! style !! 形式表示 !! 例 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
| dec || 1,2,3 || 0,1,2,3 ... 9,10,11 ... || 算用数字（アラビア数字）。&lt;br /&gt;
|-&lt;br /&gt;
| dec-full || １,２,３ || ０,１,２,３ ... ９,１０,１１ ... || 全角算用数字。&lt;br /&gt;
|-&lt;br /&gt;
| dec-kanji || 一,二,三 || 〇,一,二,三 ... 九,一〇,一一 ... || 漢数字・位取り表記。&lt;br /&gt;
|-&lt;br /&gt;
| up-roman || I,II,III || I,II,III ... IX,X,XI ... ||rowspan=&amp;quot;2&amp;quot;| ローマ数字（英字表記）。1から3999まで。&amp;lt;br&amp;gt;0と4000以上は算用数字になります。&lt;br /&gt;
|-&lt;br /&gt;
| lo-roman || i,ii,iii || i,ii,iii ... ix,x,xi ...&lt;br /&gt;
|-&lt;br /&gt;
| up-latin || A,B,C || A,B,C ... Z,AA,AB ... ||rowspan=&amp;quot;2&amp;quot;| 英字（ラテン・アルファベット）。26種。&lt;br /&gt;
|-&lt;br /&gt;
| lo-latin || a,b,c || a,b,c ... z,aa,ab ...&lt;br /&gt;
|-&lt;br /&gt;
| up-latin-full || Ａ,Ｂ,Ｃ || Ａ,Ｂ,Ｃ ... Ｚ,ＡＡ,ＡＢ ... ||rowspan=&amp;quot;2&amp;quot;| 全角英字。&lt;br /&gt;
|-&lt;br /&gt;
| lo-latin-full || ａ,ｂ,ｃ || ａ,ｂ,ｃ ... ｚ,ａａ,ａｂ ...&lt;br /&gt;
|-&lt;br /&gt;
| up-greek || Α,Β,Γ || Α,Β,Γ ... Ω,ΑΑ,ΑΒ ... ||rowspan=&amp;quot;2&amp;quot;| ギリシャ文字。24種。&lt;br /&gt;
|-&lt;br /&gt;
| lo-greek || α,β,γ || α,β,γ ... ω,αα,αβ ...&lt;br /&gt;
|-&lt;br /&gt;
| hira || あ,い,う || あ,い,う ... ん,ああ,あい ... ||rowspan=&amp;quot;2&amp;quot;| 仮名文字・五十音順。48種。&lt;br /&gt;
|-&lt;br /&gt;
| kata || ア,イ,ウ || ア,イ,ウ ... ン,アア,アイ ...&lt;br /&gt;
|-&lt;br /&gt;
| kata-half || ｱ,ｲ,ｳ || ｱ,ｲ,ｳ ... ﾝ,ｱｱ,ｱｲ ... || 半角カタカナ・五十音順。46種（「ヰヱ」が無い）。&lt;br /&gt;
|-&lt;br /&gt;
| hira-iroha || い,ろ,は || い,ろ,は ... す,いい,いろ ... ||rowspan=&amp;quot;2&amp;quot;| 仮名文字・いろは順。47種（「ン」が無い）。&lt;br /&gt;
|-&lt;br /&gt;
| kata-iroha || イ,ロ,ハ || イ,ロ,ハ ... ス,イイ,イロ ...&lt;br /&gt;
|-&lt;br /&gt;
| kanji || 一,十,百 || 〇,一,二,三 ... 九,十,十一 ... || 漢数字。&lt;br /&gt;
|-&lt;br /&gt;
| daiji || 壱,拾,百 || 零,壱,弐,参 ... 九,拾,拾壱 ... || 漢数字・大字。&lt;br /&gt;
|-&lt;br /&gt;
| circled-num || ①,②,③ || ①,②,③ ... ⑨,⑩,⑪ ... || 丸数字。1から20まで。&lt;br /&gt;
|-&lt;br /&gt;
| stem || 十干 || 甲,乙,丙 ... 癸,甲,乙 ... || 十干（天干 / Heavenly Stems）。10種ループ。&lt;br /&gt;
|-&lt;br /&gt;
| branch || 十二支 || 子,丑,寅 ... 亥,子,丑 ... || 十二支（地支 / Earthly Branches）。12種ループ。&lt;br /&gt;
|-&lt;br /&gt;
| stem-branch || 六十干支 || 甲子,乙丑,丙寅 ... || 六十干支。60種ループ。&lt;br /&gt;
|-&lt;br /&gt;
| pref || 都道府県 || 北海道,青森県,岩手県 ... || 都道府県（prefecture）。47種ループ。&lt;br /&gt;
|-&lt;br /&gt;
| hitotsu || 一 || 一,一,一 ... || 一つ書き。1種ループ。&lt;br /&gt;
|-&lt;br /&gt;
| naka || ・ || ・,・,・ ... || 中黒・中点。和文の箇条書きで用いられる。&lt;br /&gt;
|-&lt;br /&gt;
| disc || • || •,•,• ... || Bullet（ビュレット）。欧文の箇条書きで用いる。&lt;br /&gt;
|-&lt;br /&gt;
| none || 無し || || 連番無し。&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
|-&lt;br /&gt;
| up-hex || 1,F,10 || 0,1,2,3 ... F,10,11 ... ||rowspan=&amp;quot;2&amp;quot;| 十六進数（hexadecimal）。&lt;br /&gt;
|-&lt;br /&gt;
| lo-hex || 1,f,10 || 0,1,2,3 ... f,10,11 ...&lt;br /&gt;
|-&lt;br /&gt;
| up-roman-full || Ｉ,Ｍ || Ｉ,ＩＩ,ＩＩＩ ... ||rowspan=&amp;quot;2&amp;quot;| ローマ数字（全角英字表記）。&lt;br /&gt;
|-&lt;br /&gt;
| lo-roman-full || ｉ,ｍ || ｉ,ｉｉ,ｉｉｉ ...&lt;br /&gt;
|-&lt;br /&gt;
| up-roman-num || Ⅰ,Ⅹ || Ⅰ,ⅠⅠ,ⅠⅠⅠ ... ||rowspan=&amp;quot;2&amp;quot;| ローマ数字。1から39まで。&lt;br /&gt;
|-&lt;br /&gt;
| lo-roman-num || ⅰ,ⅹ || ⅰ,ⅰⅰ,ⅰⅰⅰ ...&lt;br /&gt;
|-&lt;br /&gt;
| up-roman-lig || Ⅰ,Ⅱ,Ⅲ || Ⅰ,Ⅱ,Ⅲ ... Ⅸ,Ⅹ,ⅩⅠ ... ||rowspan=&amp;quot;2&amp;quot;| ローマ数字（合字表記）。1から39まで。&lt;br /&gt;
|-&lt;br /&gt;
| lo-roman-lig || ⅰ,ⅱ,ⅲ || ⅰ,ⅱ,ⅲ ... ⅸ,ⅹ,ⅹⅰ ...&lt;br /&gt;
|-&lt;br /&gt;
| circled-num || ①,②,③ || ⓪,①,②,③ ... ⑨,⑩,⑪ ... || 丸数字。0から50まで。⓪と㉑以上は Unicode 文字。&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===スタイルの定義===&lt;br /&gt;
スタイルについては HTML / CSS の @counter-style を一部参考にしています。&lt;br /&gt;
* [https://www.w3.org/TR/css-counter-styles-3/ W3C - CSS Counter Styles Level 3] / [https://triple-underscore.github.io/css-counter-styles-ja.html 非公式日本語訳]&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
//■スタイル&lt;br /&gt;
// ----------------- ↓ここより下に定義を追加&lt;br /&gt;
/* system:&amp;quot;numeric&amp;quot; の例 */&lt;br /&gt;
,&amp;quot;dec&amp;quot;:{label:&amp;quot;1,2,3&amp;quot;, text:&amp;quot;1,2,3 ... 9,10,11 ...&amp;quot;,&lt;br /&gt;
 system:&amp;quot;numeric&amp;quot;, pad:&amp;quot;0&amp;quot;, zero:&amp;quot;0&amp;quot;, symbols:&amp;quot;0123456789&amp;quot;.split(&amp;quot;&amp;quot;)}&lt;br /&gt;
&lt;br /&gt;
/* system:&amp;quot;alphabetic&amp;quot; の例 */&lt;br /&gt;
,&amp;quot;up-latin&amp;quot;:{label:&amp;quot;A,B,C&amp;quot;, text:&amp;quot;A,B,C ... Z,AA,AB ... (26種)&amp;quot;,&lt;br /&gt;
 system:&amp;quot;alphabetic&amp;quot;, pad:&amp;quot; &amp;quot;, symbols:&amp;quot;ABCDEFGHIJKLMNOPQRSTUVWXYZ&amp;quot;.split(&amp;quot;&amp;quot;)}&lt;br /&gt;
&lt;br /&gt;
/* system:&amp;quot;cyclic&amp;quot; の例 */&lt;br /&gt;
,&amp;quot;stem&amp;quot;:{label:&amp;quot;十干&amp;quot;, text:&amp;quot;甲,乙,丙 ... 癸,甲,乙 ... (10種)&amp;quot;,&lt;br /&gt;
 system:&amp;quot;cyclic&amp;quot;, pad:&amp;quot;　&amp;quot;, symbols:&amp;quot;甲乙丙丁戊己庚辛壬癸&amp;quot;.split(&amp;quot;&amp;quot;)}&lt;br /&gt;
&lt;br /&gt;
/* system:&amp;quot;additive&amp;quot; の例 */&lt;br /&gt;
,&amp;quot;up-roman&amp;quot;:{label:&amp;quot;I,II,III&amp;quot;, text:&amp;quot;I,II,III ... IX,X,XI ... (～3999)&amp;quot;, range:[1,3999],&lt;br /&gt;
 system:&amp;quot;additive&amp;quot;, pad:&amp;quot; &amp;quot;, symbols:[1000,&amp;quot;M&amp;quot;,900,&amp;quot;CM&amp;quot;,500,&amp;quot;D&amp;quot;,400,&amp;quot;CD&amp;quot;,100,&amp;quot;C&amp;quot;,90,&amp;quot;XC&amp;quot;,50,&amp;quot;L&amp;quot;,40,&amp;quot;XL&amp;quot;,10,&amp;quot;X&amp;quot;,9,&amp;quot;IX&amp;quot;,5,&amp;quot;V&amp;quot;,4,&amp;quot;IV&amp;quot;,1,&amp;quot;I&amp;quot;]}&lt;br /&gt;
&lt;br /&gt;
/* system:&amp;quot;kanji&amp;quot; の例 */&lt;br /&gt;
,&amp;quot;daiji&amp;quot;:{label:&amp;quot;壱,拾,百&amp;quot;, text:&amp;quot;壱,弐,参 ... 九,拾,拾壱 ...&amp;quot;,&lt;br /&gt;
 system:&amp;quot;kanji&amp;quot;, pad:&amp;quot;　&amp;quot;, zero:&amp;quot;零&amp;quot;, symbols:[[&amp;quot;&amp;quot;,&amp;quot;壱&amp;quot;,&amp;quot;弐&amp;quot;,&amp;quot;参&amp;quot;,&amp;quot;四&amp;quot;,&amp;quot;五&amp;quot;,&amp;quot;六&amp;quot;,&amp;quot;七&amp;quot;,&amp;quot;八&amp;quot;,&amp;quot;九&amp;quot;],[&amp;quot;&amp;quot;,&amp;quot;拾&amp;quot;,&amp;quot;百&amp;quot;,&amp;quot;千&amp;quot;],[&amp;quot;&amp;quot;,&amp;quot;万&amp;quot;,&amp;quot;億&amp;quot;,&amp;quot;兆&amp;quot;]]}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
,&amp;quot;スタイル名&amp;quot;:{label:&amp;quot;形式表示&amp;quot;, text:&amp;quot;表示文&amp;quot;, range:[下限値,上限値],&lt;br /&gt;
 system:&amp;quot;生成方式&amp;quot;, pad:&amp;quot;桁埋&amp;quot;, zero:&amp;quot;ゼロの表現&amp;quot;, symbols:配列}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
; label&lt;br /&gt;
: 形式表示。メニューの「形式: ○○○」の ○○○ 部分に使用されます。&lt;br /&gt;
; text&lt;br /&gt;
: 表示文。&amp;lt;code&amp;gt;%{style.text}&amp;lt;/code&amp;gt; で表示される文章。&lt;br /&gt;
; range&lt;br /&gt;
: 生成できる連番の範囲。範囲を超えると算用数字の連番に移行します。&lt;br /&gt;
; pad&lt;br /&gt;
: スタイル既定の桁埋め文字。&lt;br /&gt;
; zero&lt;br /&gt;
: ゼロの表現。省略するとゼロ非対応とみなし、算用数字の &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; を出力します。&lt;br /&gt;
; system, symbols&lt;br /&gt;
:{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! system !! 説明・例示&lt;br /&gt;
|-&lt;br /&gt;
| numeric || 位取り記数法式の連番を生成します。&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;symbols:[&amp;quot;0&amp;quot;,&amp;quot;1&amp;quot;,&amp;quot;2&amp;quot;]&amp;lt;/code&amp;gt; → 1, 2, 10, 11, 12, 20, 21 ...&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;symbols:[&amp;quot;a&amp;quot;,&amp;quot;b&amp;quot;,&amp;quot;c&amp;quot;]&amp;lt;/code&amp;gt; → b, c, ba, bb, bc, ca, cb ...&lt;br /&gt;
|-&lt;br /&gt;
| alphabetic || アルファベット式の連番を生成します。&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;symbols:[&amp;quot;a&amp;quot;,&amp;quot;b&amp;quot;,&amp;quot;c&amp;quot;]&amp;lt;/code&amp;gt; → a, b, c, aa, ab, ac, ba ...&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;symbols:[&amp;quot;0&amp;quot;,&amp;quot;1&amp;quot;,&amp;quot;2&amp;quot;]&amp;lt;/code&amp;gt; → 0, 1, 2, 00, 01, 02, 10 ...&lt;br /&gt;
|-&lt;br /&gt;
| cyclic || 巡回する連番を生成します。&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;symbols:[&amp;quot;a&amp;quot;,&amp;quot;b&amp;quot;,&amp;quot;c&amp;quot;]&amp;lt;/code&amp;gt; → a, b, c, a, b, c, a ...&lt;br /&gt;
|-&lt;br /&gt;
| symbolic || 段々重ねとなる連番を生成します。&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;symbols:[&amp;quot;a&amp;quot;,&amp;quot;b&amp;quot;,&amp;quot;c&amp;quot;]&amp;lt;/code&amp;gt; → a, b, c, aa, bb, cc, aaa ...&lt;br /&gt;
|-&lt;br /&gt;
| additive || ローマ数字式の連番を生成します。&lt;br /&gt;
|-&lt;br /&gt;
| kanji || 漢数字式の連番を生成します。&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Masme</name></author>
	</entry>
	<entry>
		<id>https://www.haijin-boys.com/wiki/index.php?title=%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:%E9%80%A3%E7%95%AA%E3%82%92%E6%8C%BF%E5%85%A5.zip&amp;diff=4883</id>
		<title>ファイル:連番を挿入.zip</title>
		<link rel="alternate" type="text/html" href="https://www.haijin-boys.com/wiki/index.php?title=%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:%E9%80%A3%E7%95%AA%E3%82%92%E6%8C%BF%E5%85%A5.zip&amp;diff=4883"/>
		<updated>2019-12-21T12:54:07Z</updated>

		<summary type="html">&lt;p&gt;Masme: Masme が ファイル:連番を挿入.zip の新しいバージョンを アップロードしました&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;連番を挿入.js&lt;/div&gt;</summary>
		<author><name>Masme</name></author>
	</entry>
	<entry>
		<id>https://www.haijin-boys.com/wiki/index.php?title=%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:InsertSequentialNumber_Popup.png&amp;diff=4882</id>
		<title>ファイル:InsertSequentialNumber Popup.png</title>
		<link rel="alternate" type="text/html" href="https://www.haijin-boys.com/wiki/index.php?title=%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:InsertSequentialNumber_Popup.png&amp;diff=4882"/>
		<updated>2019-12-21T12:53:37Z</updated>

		<summary type="html">&lt;p&gt;Masme: Masme が ファイル:InsertSequentialNumber Popup.png の新しいバージョンを アップロードしました&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;マクロ「連番を挿入」のポップアップメニュー画像&lt;/div&gt;</summary>
		<author><name>Masme</name></author>
	</entry>
	<entry>
		<id>https://www.haijin-boys.com/wiki/index.php?title=%E3%83%9E%E3%82%AF%E3%83%AD%E3%83%A9%E3%82%A4%E3%83%96%E3%83%A9%E3%83%AA&amp;diff=4403</id>
		<title>マクロライブラリ</title>
		<link rel="alternate" type="text/html" href="https://www.haijin-boys.com/wiki/index.php?title=%E3%83%9E%E3%82%AF%E3%83%AD%E3%83%A9%E3%82%A4%E3%83%96%E3%83%A9%E3%83%AA&amp;diff=4403"/>
		<updated>2019-06-16T08:05:13Z</updated>

		<summary type="html">&lt;p&gt;Masme: 「文字カウント」「キーアサイン集」更新&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Mery で使用できるマクロを集めたライブラリです。&lt;br /&gt;
&lt;br /&gt;
スクリプトを拡張子「js」 (JavaScript、JScript の場合) にして「Macros」フォルダ等に保存し、マクロメニューの「選択」や「カスタマイズ」から読み込んで使用してください。&lt;br /&gt;
&lt;br /&gt;
マクロライブラリはどなたでも自由に編集できますので、みなさんが作成した便利なマクロをどんどん掲載してください。&lt;br /&gt;
&lt;br /&gt;
== テキスト操作補助 ==&lt;br /&gt;
&lt;br /&gt;
*[https://github.com/haijinboys/mery-macro-emmet Emmet] (Kuro)&lt;br /&gt;
*[[Zen Coding]] (Kuro)&lt;br /&gt;
*[[CSV のカーソル位置の列を削除]] (Kuro)&lt;br /&gt;
*[[対応する括弧に移動]] (Kuro, kurama, masme 他) update 2019/04/24&lt;br /&gt;
*[[選択文字列を強調]] (Kuro)&lt;br /&gt;
*[[行頭に移動]] (Kuro, 他) update 2014/03/15&lt;br /&gt;
:[[行頭か行末 または 選択範囲の始点か終点|行頭か行末 または 選択範囲の始点か終点 に移動]] (sukemaru) update 2019/03/29&lt;br /&gt;
*[[文書の先頭か末尾|文書の 先頭か末尾 に移動]] (sukemaru) update 2019/03/29&lt;br /&gt;
*[[バイト数]] (Kuro, ks, sukemaru) update 2018/11/18&lt;br /&gt;
*[[日付と時刻を挿入]] (n, masme, sukemaru) update 2018/12/09&lt;br /&gt;
*[[日付と時刻を挿入（カレンダー版）]] (papagoat) update 2016/05/24&lt;br /&gt;
*[[選択範囲を上下に移動]] (ks)&lt;br /&gt;
*[[行を複製 (複数行可)]] (sukemaru) update 2019/05/07&lt;br /&gt;
*[[TeraPadのCtrl↑と同じような動作をするマクロ]] (suke)&lt;br /&gt;
*[[TeraPadのCtrl↓と同じような動作をするマクロ]] (suke)&lt;br /&gt;
*[[Vz 風テキストスタック 2 ストロークキー]] (papagoat) update 2013/11/22&lt;br /&gt;
*[[非選択状態でも逆インデント]] (papagoat)&lt;br /&gt;
*[[ラクラク罫線]] (手石) Update 2012/12/22&lt;br /&gt;
*[[ファイル:XHTML.zip]] (アラフォー親父) HTMLタグを、ショートカット・キーに登録して入力するマクロ（文章挟み込み仕様）&lt;br /&gt;
*[[矩形ペースト]] (手石)&lt;br /&gt;
*[[自動箇条書き]] (手石) update 2013/03/15&lt;br /&gt;
*[[インデントを考慮した折り返し（改行挿入）]] (手石) update 2013/02/23&lt;br /&gt;
*[[青空文庫用整形補助]] (ks, 有志)&lt;br /&gt;
*[[部分編集]] (ks)&lt;br /&gt;
*[[文字カウント]] (masme) 2014/02/01, update 2019/06/16&lt;br /&gt;
*[[字下げ・字上げ]](インデント・逆インデント) (masme, sukemaru) 2014/02/09, update 2019/06/01&lt;br /&gt;
:「[[字下げ・字上げ#インデント|インデント／逆インデント]]」を追加&lt;br /&gt;
*[[数値を増減]](インクリメント・デクリメント) (masme) 2014/06/17, update 2016/02/28&lt;br /&gt;
*[[少し便利な Undo/Redo]] (ks)&lt;br /&gt;
*[[自動ルビ振り]] (急急如律令)&lt;br /&gt;
*[[貼付け実行後のカーソル位置を貼付け文字列の先頭にする]] (yuko, sukemaru) update 2018/11/14&lt;br /&gt;
*[[ドイツ語特殊文字]] (鯉)&lt;br /&gt;
*[[矩形選択範囲の各行先頭に文字挿入]] (yuko)&lt;br /&gt;
*[[行の先頭に貼り付け]] (sukemaru) 2018/08/24&lt;br /&gt;
*[[文章で使用されている文字をユニーク抽出]] (Kuro)&lt;br /&gt;
*[[アウトライン用ノード追加]] (mik) 2018/06/25&lt;br /&gt;
*[[アウトラインのノードレベルを上げる]] (mik) 2018/06/25&lt;br /&gt;
*[[アウトラインのノードレベルを下げる]] (mik) 2018/06/25&lt;br /&gt;
*[[アウトラインのノードの完了/未完了を切り替える]] (mik) 2018/10/18 update&lt;br /&gt;
*[[ハルナアウトライン用の完了/未完了フラグをノード名に反映する]] (mik) 2018/10/18 update&lt;br /&gt;
*[[Markdown文書で改行時にリスト、引用ブロック開始記号を自動入力する]] (catfist, yuko) 2018/10/15 update&lt;br /&gt;
*[[Markdown 向け、リスト記号 (*) のトグル]] (yuko) 2019/04/29&lt;br /&gt;
*[[引用符／コメント]] ※ポップアップメニュー (行頭の文字列操作. 「引用の追加」マクロの増補改訂版)　(sukemaru) last modified 2019/04/07&lt;br /&gt;
*[[カッコで囲う]] (ポップアップメニューあり)　(sukemaru) last modified 2019/04/07&lt;br /&gt;
:「[[カッコで囲う#カッコで囲う (ポップアップメニューなし)|カッコで囲う (簡易版 ポップアップメニューなし)]]」&amp;lt;br&amp;gt; 「[[カッコで囲う#引用符を追加／削除|引用符を追加／削除]]」（ &amp;quot;二重引用符&amp;quot; の追加／削除トグル）&lt;br /&gt;
*[[定型文を挿入]]マクロ集 (sukemaru) 2018/12/03&lt;br /&gt;
*[[何年生で習う漢字？]] (シリル) 2019/03/10&lt;br /&gt;
*[[上に行挿入]] (yuko) 2019/05/11&lt;br /&gt;
&lt;br /&gt;
== ファイル操作補助 ==&lt;br /&gt;
&lt;br /&gt;
*[[ファイルのプロパティ]] (sukemaru) 2018/12/18&lt;br /&gt;
*[[文字列中のパス起動]] (ks)&lt;br /&gt;
:[[選択範囲のURL・パスを開く|ひらけゴマ！]] (sukemaru) update 2019/04/07 ※「選択範囲のURL・パスを開く」&lt;br /&gt;
*[[自動バックアップ]] (ks)&lt;br /&gt;
*[[終了時状態保持・復元]] (ks)&lt;br /&gt;
*[[上書き保存(UAC対応)]] (ks)&lt;br /&gt;
*[[含んでいるフォルダを開く]] (ks)&lt;br /&gt;
*[[パスを取得]] (Kuro)&lt;br /&gt;
*[[フォルダ内のファイルをすべて開く]] (Kuro)&lt;br /&gt;
*[[ファイルを比較]] (Kuro)&lt;br /&gt;
*[[ファイル名を引数にしてアプリ起動]] (Kuro, miso)&lt;br /&gt;
*[[ブックマーク一覧ジャンプ]] (goat, sukemaru) update 2019/04/16&lt;br /&gt;
*[[拡張子の違うファイルを開く]] (n)&lt;br /&gt;
*[[フォルダを開く]] (n)&lt;br /&gt;
*[[コマンドプロンプトを開く]] (n)&lt;br /&gt;
*[[SDIウィンドウの記憶と復帰]] (papagoat) Update 2012/10/23 (説明文変更 2013/11/22)&lt;br /&gt;
*[[よく使うフォルダ]] (手石) Update 2014/02/22&lt;br /&gt;
*[[ファイル（選択範囲）の仮保存]] (手石)&lt;br /&gt;
*[[ポップアップメニューでファイル選択]] (手石)&lt;br /&gt;
*[[フォルダツリーをポップアップ表示]] (n)&lt;br /&gt;
*[[タグジャンプ]] (o)&lt;br /&gt;
*[[ウィンドウの位置とサイズを拡張子で指定]] (papagoat) Update 2014/04/17&lt;br /&gt;
*[[編集モードの自動選択]] または「書き換え禁止で開く」 ※イベントマクロ (sukemaru, Bleat) update 2019/04/24&lt;br /&gt;
*[[書き換え禁止モード色反転]] (Bleat)&lt;br /&gt;
*[[特定のフォルダで「ファイルを開く」ダイアログ]] (sukemaru) fixed 2018/12/19&lt;br /&gt;
*[[すべて閉じる]]マクロ集 (sukemaru) update 2019/05/03 &amp;lt;br&amp;gt;｢他（右側／左側）のタブを閉じる｣ などを追加&lt;br /&gt;
*[[文書が変更されていなければ変更マークを消す]] (Noah)&lt;br /&gt;
*[[変更なしのタブをすべて閉じる]] (Noah)&lt;br /&gt;
*[[ファイルを読み直す・開きなおす]] ※ポップアップメニュー (sukemaru) update &amp;amp; fix 2019/05/30 &amp;lt;br&amp;gt; エンコード指定で読み直し・読み取り専用属性の変更・編集モードの変更・プロパティを開く・さいごに閉じたファイルを開く・etc.&lt;br /&gt;
*[[さいごに閉じたファイルを開く]] ※ポップアップメニュー (sukemaru) 2019/04/30&lt;br /&gt;
&lt;br /&gt;
== 変換・ソート・整形 ==&lt;br /&gt;
&lt;br /&gt;
*[[可変長を固定長に変換]] (Kuro)&lt;br /&gt;
*[[SHA でハッシュ化]] (Kuro)&lt;br /&gt;
*[[標準変換]] (Kuro)&lt;br /&gt;
*[[連続する重複行を削除]] (Kuro)&lt;br /&gt;
*[[昇順で並び替え]] (Kuro)&lt;br /&gt;
*[[降順で並び替え]] (Kuro)&lt;br /&gt;
:*[[昇順で並び替え／降順で並び替え]] トグル変換 (sukemaru) 2019/06/03&lt;br /&gt;
*[[ブックマーク系コマンド集]] (ks)&lt;br /&gt;
*[[テキスト変換]] (ks)&lt;br /&gt;
**[[テキスト整形]] (masme) 2013/09/15, update 2019/06/01&lt;br /&gt;
*[[旧漢字から新漢字に変換]] (furu)&lt;br /&gt;
*[[clustalw を用いてアライメントを実行]] (suke)&lt;br /&gt;
*[[連番の挿入]] (手石)&lt;br /&gt;
*[[TSV(CSV) ⇒ 固定長]] (手石) update 2013/04/16&lt;br /&gt;
*[[行並べ替え]] (masme) 2013/08/25, update 2019/04/12&lt;br /&gt;
*[[連番を挿入]] (masme) 2013/08/25&lt;br /&gt;
*[[GFMをHTMLに変換]] (noonworks) 2014/03/09&lt;br /&gt;
*[[TrueとFalse_を切り替える|YES／NO マクロ]] (sukemaru) update 2018/11/27 ※「&amp;lt;span style=&amp;quot;color:#0000c0;&amp;quot;&amp;gt;True&amp;lt;/span&amp;gt;と&amp;lt;span style=&amp;quot;color:#c00;&amp;quot;&amp;gt;False&amp;lt;/span&amp;gt;をトグル切り替え」&amp;lt;br&amp;gt;＋ 改造版「ToDoリストモード」 (sukemaru) Added 2019/05/06&lt;br /&gt;
*[[基数変換10_16]] (シリル) 2019/02/10&lt;br /&gt;
*[[スネークケース ⇔ キャメルケースの変換]] (Noah)&lt;br /&gt;
*[[罫線変換]] (シリル) 2019/03/09&lt;br /&gt;
*[[大文字／小文字／頭文字 トグル変換]] (sukemaru) fixed 2019/05/20&lt;br /&gt;
&lt;br /&gt;
== 検索・置換 ==&lt;br /&gt;
&lt;br /&gt;
*[[文書から検索]] (Kuro)&lt;br /&gt;
*[[単語を抽出]] (Kuro)&lt;br /&gt;
*[[このファイルから検索(マッチしない行)]] (Kuro)&lt;br /&gt;
*[[このファイルから検索(マッチする行)]] (Kuro)&lt;br /&gt;
*[[タグの外側（内側）だけ置換]] (手石)&lt;br /&gt;
*[[ポップアップメニューで検索先にジャンプ]] (手石, sukemaru) Last Update 2019/04/16&lt;br /&gt;
*[[検索(SJIS以外)]] + 検索強調を解除 (masme) 2014/09/16, update 2019/06/01&lt;br /&gt;
*[https://github.com/TakamiChie/mery-scripts/blob/master/SearchWithMode.js 現在開いているファイルの言語名をつけてWeb検索] (高見知英)→[[https://vine.co/v/eeY59rFMail 実際の動作例]]&lt;br /&gt;
*[https://github.com/GunseiPaseri/Mery_macro 文字出現量ランキング] (群生系パセリ) 2015/12/28&lt;br /&gt;
*[[検索ヒット数表示]] (ks)&lt;br /&gt;
:[[検索ヒット数表示（選択文字列）]] (sukemaru) 2019/05/04&lt;br /&gt;
*[[任意の検索エンジンで検索]] (Noah)&lt;br /&gt;
*[[デフォルトの検索フラグを設定して検索ウィンドウ表示]] (yuko)&lt;br /&gt;
*[[簡易検索一覧]] (シリル) 2018/12/24&lt;br /&gt;
*[[簡易検索一覧などをアウトプット]] (シリル) 2018/12/31&lt;br /&gt;
*[[複数置換]] (Noah)&lt;br /&gt;
*[[類義語アウトプット【Python】]] (シリル) 2019/03/24&lt;br /&gt;
*[[校正支援アウトプット]] (シリル) 2019/05/01&lt;br /&gt;
&lt;br /&gt;
== プログラミング補助 ==&lt;br /&gt;
&lt;br /&gt;
*[[Eclipse風コメントアウト]] (ks)&lt;br /&gt;
*[[Eclipse風コメントアウト(改)]] (pizz) 2019/04/12&lt;br /&gt;
*[[コメントマーク付け外し]] (手石, masme, sukemaru) last update 2019/06/01&lt;br /&gt;
*[[スマートインデント(C 構文)]] (ks)&lt;br /&gt;
*[[ctags.exeでtagsファイルを生成、タグジャンプを行うマクロ]] (kazy)&lt;br /&gt;
*[[タグファイルから補完]] (n)&lt;br /&gt;
*[[コードスニペットもどき]] (手石) Update 2012/12/20&lt;br /&gt;
*[[TeX文書のコンパイル]] (手石)&lt;br /&gt;
*[[TeX数式のチェック]] (手石)&lt;br /&gt;
*[[簡易数式計算]] (ks)&lt;br /&gt;
*[[定義へ移動]] (ks)&lt;br /&gt;
*[[タブの桁数]] (手石)&lt;br /&gt;
*[[行末の空白を削除]] (n) 2014/12/19&lt;br /&gt;
*[https://github.com/TakamiChie/mery-scripts/tree/master/ 開いているスクリプトファイルを実行(掲載時点ではバッチファイル・Javascript・Lua・PHP・Perl・Python・Ruby・UWSCに対応。順次追加予定)] (高見知英)&lt;br /&gt;
*[https://github.com/TakamiChie/mery-scripts/tree/master/ 開いているスクリプトファイルを構文チェック(掲載時点ではPHP・Perlに対応。順次追加予定)] (高見知英)&lt;br /&gt;
*[[説明を出力]] (s) Create 2015/08/16&lt;br /&gt;
*[[拡張子からコンソール実行]] (YOS G-spec) 2016/12/11更新&lt;br /&gt;
*[[JSON整形]](Ovis) Create 2019/03/25&lt;br /&gt;
&lt;br /&gt;
== おもしろ ==&lt;br /&gt;
&lt;br /&gt;
*[[テキストブラウザ]] (Kuro)&lt;br /&gt;
*[[Yahoo!天気情報]] (Kuro)&lt;br /&gt;
*[[メール送信]] (ks)&lt;br /&gt;
*[[あつまれ☆みんなのおもしろアイコン]] (有志)&lt;br /&gt;
&lt;br /&gt;
== 実験的マクロ・練習マクロなど ==&lt;br /&gt;
&lt;br /&gt;
*【自家用】[[カッコをはずす]]＆[[カッコをはずす#カッコを削除／追加|カッコを削除／追加]]＆[[カッコをはずす#カッコを追加／削除|カッコを追加／削除]] (sukemaru)  2019/03/14 - 2019/05/03 fixed&lt;br /&gt;
*【自家用】[[ファイルのフルパスをコピーして閉じる]] ※イベントマクロ (sukemaru) update 2019/04/14&lt;br /&gt;
*【実験】 [[行を上下に移動（Mery 2.7 用）]] (sukemaru) 2019/05/07&lt;br /&gt;
*【自家用】[[全角／半角変換]] (sukemaru) fixed 2019/05/11&lt;br /&gt;
*【実験】[[全角／半角 トグル変換]] (sukemaru) fixed 2019/05/20&lt;br /&gt;
*【実験】 [[ファイルへ移動（物理座標ジャンプ）]] (sukemaru) 2019/05/15&lt;br /&gt;
*【実験】 [[位置情報を保存してから「次の文字列を検索」]]＋&#039;&#039;&#039;復帰&#039;&#039;&#039; (sukemaru) 2019/05/28&lt;br /&gt;
&lt;br /&gt;
== その他 ==&lt;br /&gt;
&lt;br /&gt;
*[[最新版を確認]] (diaphragm)&lt;br /&gt;
*[[SAPI 使って単語読み上げ]] (miso)&lt;br /&gt;
*[[フォルダ選択ダイアログ]] (手石)&lt;br /&gt;
*[[HTA(HTML)の自作ダイアログを表示]] (noonworks)&lt;br /&gt;
*[[JavaScript を実行]] (n)&lt;br /&gt;
*[[ポップアップメニューを手軽に扱う]] (komorebikoboshi)&lt;br /&gt;
*[[マクロ・関数をメニューで呼び出す]] (aliquis) 2013/08/19&lt;br /&gt;
*[[階層化マクロメニュー]] (ks)&lt;br /&gt;
*[[シェルコマンドを実行]] (sasaki)&lt;br /&gt;
*[[ポップアップメニューでチェックボックス]] (手石)&lt;br /&gt;
*[[ポップアップメニューでラジオボタン]] (手石)&lt;br /&gt;
*[[Editor.OpenFile()のポリフィル]](kazy)&lt;br /&gt;
*[[折り返しトグル切り替え]] (Bleat, sukemaru) update 2019/02/19&lt;br /&gt;
*[[ファイルロック (排他制御) 的なもの]] (PebblePot)&lt;br /&gt;
*[[Mery.iniのオプション値を取得]] ※組み込み用関数 (sukemaru) update &amp;amp; fix 2019/06/02&lt;br /&gt;
*[[Mery本体のバージョンチェック]] ※組み込み用関数 (sukemaru) 2019/04/17 &amp;lt;br&amp;gt;サンプルコード: 「Begin/EndUndoGroup() メソッドを使えるのは ver 2.7.0 以降」&lt;br /&gt;
*[[IO.Serialize() の JSON を参照する]] ※組み込み用関数 (sukemaru) 2019/04/17&lt;br /&gt;
*[[ポップアップメニューを「n*十件ずつ」のサブメニューに自動分割する]] ※組み込み用関数 (sukemaru) 2019/04/20 &amp;lt;br&amp;gt;サンプルコード: 「すべての論理行をポップアップメニューに表示する」&lt;br /&gt;
*[[タブが「縦書き」モードかチェックする]] ※組み込み用関数 (sukemaru) 2019/04/29 &amp;lt;br&amp;gt;サンプルコード: 「特定の条件で縦書きモードに切りかえる」&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
*[[キーアサイン集]] (ks, masme, sukemaru, 有志) last update 2019/06/16&lt;br /&gt;
*[[マテリアルデザインっぽいアイコンと『小マクロ集』]] ※アイコン収録数&#039;&#039;&#039;300&#039;&#039;&#039;コ (sukemaru) last update 2019/05/01&lt;br /&gt;
*[[includeライブラリ]] (ks)&lt;br /&gt;
*[[GetKeyState.exe(キー状態取得実行ファイル)]] (pizz) 2019/03/23&lt;br /&gt;
*[[マクロ覚え書き（開発者向け）]](ks, 有志)Last Update 2019/06/11&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- (sukemaru, 2019/04/12 コメントアウト)&lt;br /&gt;
*[[ブックマークを復元（Mery_2.7用）]] (sukemaru) 2019/04/07&lt;br /&gt;
 --&amp;gt;&lt;/div&gt;</summary>
		<author><name>Masme</name></author>
	</entry>
	<entry>
		<id>https://www.haijin-boys.com/wiki/index.php?title=%E3%83%86%E3%82%AD%E3%82%B9%E3%83%88%E6%95%B4%E5%BD%A2&amp;diff=4402</id>
		<title>テキスト整形</title>
		<link rel="alternate" type="text/html" href="https://www.haijin-boys.com/wiki/index.php?title=%E3%83%86%E3%82%AD%E3%82%B9%E3%83%88%E6%95%B4%E5%BD%A2&amp;diff=4402"/>
		<updated>2019-06-16T08:02:45Z</updated>

		<summary type="html">&lt;p&gt;Masme: &amp;lt;pre&amp;gt;のword-wrapを除去&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;float:right&amp;quot;&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ks 氏作のマクロ「&amp;lt;b&amp;gt;[[テキスト変換]]&amp;lt;/b&amp;gt;」の改造版です。&lt;br /&gt;
&lt;br /&gt;
;主な改造点&lt;br /&gt;
* &amp;lt;b&amp;gt;[[#拡張コード：書式|拡張コードの書式]]&amp;lt;/b&amp;gt;を変更。&lt;br /&gt;
** 簡易書式をベースに単純化。view フラグは削除。&lt;br /&gt;
** 「関数タイプ」は「オプション」に変更。&lt;br /&gt;
* 処理の戻り値により選択範囲を置換するか、再選択するかを制御できるようにした。&lt;br /&gt;
* 行選択してから処理する際、範囲終端の改行は範囲に含めないようにした（正規表現 &amp;lt;code&amp;gt;^ $&amp;lt;/code&amp;gt; の使い勝手を考え）。&lt;br /&gt;
* メソッド &amp;lt;code&amp;gt;&amp;lt;i&amp;gt;String&amp;lt;/i&amp;gt;.replaceBatch&amp;lt;/code&amp;gt; を追加。&lt;br /&gt;
* 範囲選択時に対象範囲を選ぶメニューを廃止（毎回選ぶのが面倒なため）。&lt;br /&gt;
;注意点&lt;br /&gt;
* &amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;表示行での処理には対応していません。&amp;lt;/b&amp;gt;&lt;br /&gt;
* マクロの仕様上、&amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;矩形選択での処理には原則対応していません。&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=お知らせ (2019/06/01)=&lt;br /&gt;
&amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;仕様変更によりモードは廃止されました。&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
詳しくは [[#更新履歴]] または [[利用者:Masme]] のページをご覧ください。&amp;lt;br&amp;gt;&lt;br /&gt;
旧仕様の利用者はお手数ですが基本コードおよび拡張コードの更新をお願いいたします。&lt;br /&gt;
&lt;br /&gt;
=スターターパック=&lt;br /&gt;
ダウンロード→ &amp;lt;b&amp;gt;[[メディア:テキスト整形.zip|テキスト整形.zip]]&amp;lt;/b&amp;gt; (2019/06/01)&lt;br /&gt;
&lt;br /&gt;
* 基本コードと拡張コード(★印の項目)をまとめて、すぐ使えるようにした入門用セットです。→ &amp;lt;b&amp;gt;[[:ファイル:テキスト整形.zip|収録コマンド一覧]]&amp;lt;/b&amp;gt;&lt;br /&gt;
* 拙作ですがアイコンファイル (テキスト整形.ico) を同梱してあります。&amp;lt;br&amp;gt;Mery 2.4.7 以降の場合、マクロ (テキスト整形.js) と同じフォルダに、&amp;lt;br&amp;gt;Mery 2.4.6 以前の場合、Mery.exe と同じフォルダに、&amp;lt;br&amp;gt;アイコンファイルを配置しておくとツールバーにアイコンが読み込まれます。&lt;br /&gt;
&lt;br /&gt;
=更新履歴=&lt;br /&gt;
&amp;lt;code style=&amp;quot;background:#fe0;&amp;quot;&amp;gt;//2019/06/01&amp;lt;/code&amp;gt; でページ内検索すると、その日付で更新されたコマンドを検索できます。&lt;br /&gt;
&amp;lt;div style=&amp;quot;height:40em; overflow:auto; border:1px dashed #999;&amp;quot;&amp;gt;&lt;br /&gt;
* 2019/06/01&lt;br /&gt;
** &amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;仕様変更 - 戻り値により選択範囲の置換・再選択を制御するようにした。&amp;lt;/b&amp;gt;&lt;br /&gt;
** &amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;仕様変更 - [[#コマンド|コマンドの書式]]を変更。&amp;lt;/b&amp;gt;&lt;br /&gt;
*** マクロ「[[テキスト変換]]」の第2引数を復活。モード F は第2引数利用に変更。&lt;br /&gt;
*** モードを廃止し、オプションに変更。モード RS はオプション L に変更。&lt;br /&gt;
*** 実行に範囲選択/クリップボードを要求するコマンドにオプション s/c を設定。&lt;br /&gt;
** &amp;lt;b&amp;gt;仕様変更 - メニュー作成処理を変更。&amp;lt;/b&amp;gt;falsy な要素があるとループ終了。&lt;br /&gt;
** &amp;lt;b&amp;gt;コード整理 - 第2引数追加に伴い、引数名を a → _ と $ に変更。&amp;lt;/b&amp;gt;&lt;br /&gt;
** &amp;lt;b&amp;gt;コード整理 - 不使用の引数は極力省略するようにした。&amp;lt;/b&amp;gt;&lt;br /&gt;
** 改名 - ★行頭／行末に貼り付け ¦ 行頭／行末から数文字削除&lt;br /&gt;
**: 「各行～」を除去。&lt;br /&gt;
** 改名 - ★行頭／行末に挿入&lt;br /&gt;
**: 「各行～」を除去。「文字列付加」→「挿入」に変更。&lt;br /&gt;
** 改名 - 各行先頭／末尾に挿入 ¦ 行頭に連番挿入 ¦ 行末に&amp;amp;lt;br&amp;amp;gt;を挿入 ¦ ★行頭 // を挿入/削除&lt;br /&gt;
**: 「（文字列）付加」→「挿入」に変更。&lt;br /&gt;
** 変更 - 複製貼り付け ¦ ★行頭／行末に挿入 ¦ 各行先頭／末尾に挿入 ¦ ★入力文字列を含む／含まない行を削除 ¦ 正規表現に一致する／しない行を削除 ¦ 行頭／行末から数文字削除&lt;br /&gt;
**: 入力判定を中止条件 → 実行条件に変更。&lt;br /&gt;
**: 戻り値の仕様を利用し、中止時は Quit() → 戻り値なし (undefined) に変更。&lt;br /&gt;
** 修正 - 複製貼り付け ¦ 行頭／行末から数文字削除&lt;br /&gt;
**: キャンセルまたは数字以外を入力した場合、正常に中止できていないのを修正（NaN&amp;lt;1 は false）。&lt;br /&gt;
** 変更 - ★数値参照を文字に変換&lt;br /&gt;
**: 正規表現を &amp;lt;code&amp;gt;/&amp;amp;#([0-9]{1,7});|&amp;amp;#[Xx]([0-9A-Fa-f]{1,6});/g&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;/&amp;amp;#(?:([0-9]{1,7})|x([0-9a-f]{1,6}));/gi&amp;lt;/code&amp;gt; に短縮。&lt;br /&gt;
** 変更 - 挿入 Confirm(|)&lt;br /&gt;
**: 戻り値の仕様を利用したものに変更。&lt;br /&gt;
** 変更 - Base64エンコード／デコード&lt;br /&gt;
**: 引数名を txt → _ に統一。変数名を変更。&lt;br /&gt;
** 追加 - ★このマクロを編集 ¦ 連番を出力 ¦ 文字数カウント(空白は除く) ¦ ステータスバーの表示をコピー ¦ 行を文字数順並べ ¦ 数行毎に／数行一組で逆順並べ ¦ 空行毎に／空行一組で逆順並べ ¦ 指定見出しで逆順並べ&lt;br /&gt;
** 変更 - 総字行数カウント&lt;br /&gt;
**: GetLines() → GetLines(meGetLineView) に変更（引数を明示）。&lt;br /&gt;
**: 符号点数＆論理行数版を削除。&lt;br /&gt;
** 変更 - 選択範囲を eval で評価 ¦ 選択文字列を検索 ¦ 選択文字列をすべて削除&lt;br /&gt;
**: オプション s の設定に伴い、選択判定を削除。&lt;br /&gt;
** 変更 - 拡張コード テンプレート&lt;br /&gt;
**: 仕様変更に伴う改訂。&lt;br /&gt;
**: サブメニューは、挿入後にメニュー名を選択するようにした。&lt;br /&gt;
* 2019/05/01&lt;br /&gt;
** 削除 - 大文字／小文字に変換 ¦ 半角／全角に変換&lt;br /&gt;
**: Mery 側のメソッドを使う一例として掲載していたが、結構かと判断。&lt;br /&gt;
** 削除 - 行を昇順／降順並べ(UTF-16)&lt;br /&gt;
** 改名 - \x{hex} エンコード／デコード&lt;br /&gt;
**: コマンド名のエスケープミスを修正。&lt;br /&gt;
** 改名 - 拡張コード テンプレート&lt;br /&gt;
**: 「コマンド～」→「拡張コード～」に変更。&lt;br /&gt;
* 2018/01/15&lt;br /&gt;
** 削除 - ☆インデント(半角空白2個)&lt;br /&gt;
** スターター追加 - ★行を昇順／降順並べ(Unicode) ¦ ★行を逆順並べ&lt;br /&gt;
** 追加 - CJK互換漢字を検索&lt;br /&gt;
** 修正 - Base64デコード&lt;br /&gt;
**: 最大50字ずつ処理する箇所で、異常なデータ 0xF8～FF をスルーしていたのを改修。&lt;br /&gt;
** 修正 - 挿入 Confirm(|)&lt;br /&gt;
**: 折り返しが発生した場合、カーソル位置がズレる不具合を修正（カーソル移動を CharLeft(false,移動量) → SetActivePos(GetActivePos()-移動量) に変更）。&lt;br /&gt;
** 変更 - ★重複行を単一化 ¦ 重複する／しない行を抽出&lt;br /&gt;
**: &amp;lt;code&amp;gt;for(var i=0,n=a.length;i&amp;lt;n;i++)&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;for(var i=0;i&amp;lt;a.length;i++)&amp;lt;/code&amp;gt; に単純化。&lt;br /&gt;
* 2017/06/25&lt;br /&gt;
** &amp;lt;b&amp;gt;仕様変更 - アイコンファイルに24x24・32x32・48x48の画像を追加。&amp;lt;/b&amp;gt;&lt;br /&gt;
** &amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;仕様変更 - &amp;lt;samp&amp;gt;replaceBatch&amp;lt;/samp&amp;gt; メソッドで配列先頭/末尾のコンマを許容するようにした。&amp;lt;/b&amp;gt;&lt;br /&gt;
**: 例＞ &amp;lt;code&amp;gt;&amp;lt;i&amp;gt;String&amp;lt;/i&amp;gt;.replaceBatch([ &amp;lt;b style=&amp;quot;background:#fcc;&amp;quot;&amp;gt;,&amp;lt;/b&amp;gt;[省略],[省略],[省略]&amp;lt;b style=&amp;quot;background:#fcc;&amp;quot;&amp;gt;,&amp;lt;/b&amp;gt; ])&amp;lt;/code&amp;gt;&lt;br /&gt;
** コード整理 - 基本コードを改訂。&lt;br /&gt;
** 追加 - 行を昇順／降順並べ(Unicode) ¦ ★！？を半角/全角に整形 ¦ 空白行の空白を除去 ¦ 行頭／行末から数文字削除 ¦ 重複する／しない行を抽出 ¦ 表外漢字→代替&lt;br /&gt;
** 改名 - 行を昇順／降順並べ(UTF-16) ¦ 行を逆順並べ ¦ 文字を逆順並べ&lt;br /&gt;
**: 「～の並べ替え(○順)」→「～を○順並べ」に変更。&lt;br /&gt;
**: 従来の「行を昇順／降順並べ(Unicode)」は (UTF-16) に訂正。&lt;br /&gt;
** 改名 - ★重複行を単一化 ¦ ★連続する重複行を単一化&lt;br /&gt;
**: 「～を削除」→「～を単一化」に変更。&lt;br /&gt;
** 修正 - ★重複行を単一化&lt;br /&gt;
**: 下記の7行を削除してしまう不具合を修正（重複の判定は Object.prototype.hasOwnProperty.call() で行うようにした）。&lt;br /&gt;
**: 「constructor」「hasOwnProperty」「isPrototypeOf」「propertyIsEnumerable」「toLocaleString」「toString」「valueOf」&lt;br /&gt;
** 変更 - ★全角ダッシュ(――)に整形&lt;br /&gt;
**: 罫線(横) ── を変換対象から除外。&lt;br /&gt;
** 変更 - ★数値参照を文字に変換 ¦ ★16→10進数 ¦ &amp;amp;#xHEX; デコード&lt;br /&gt;
**: 0Xff, &amp;amp;amp;#Xff; など X が大文字の場合に対応。&lt;br /&gt;
** 変更 - 文字を逆順並べ ¦ 文字をシャッフル ¦ \uHHHH, \u4H \U8H, \x{hex}, &amp;amp;#dec;, &amp;amp;#xHEX; エンコード&lt;br /&gt;
**: 正規表現を . → [^\n] に統一。&lt;br /&gt;
** 変更 - 文字を逆順並べ ¦ 文字をシャッフル&lt;br /&gt;
**: UAX #29 に一部対応し、\p{Zl}, {Zp}, {Cc}, U+00AD, FEFF は結合不可にした。&lt;br /&gt;
** 変更 - 選択文字列を検索&lt;br /&gt;
**: カーソル位置・スクロール位置を移動しないようにした。&lt;br /&gt;
** 変更 - 選択文字列を検索 ¦ 選択文字列をすべて削除 ¦ &amp;lt;samp&amp;gt;replaceBatch&amp;lt;/samp&amp;gt; メソッド&lt;br /&gt;
**: 特殊文字のエスケープ処理を &amp;lt;code&amp;gt;/([$()*+.?[\\\]^{|}])/g,&amp;quot;\\$1&amp;quot;&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;/[$()*+.?\[\\\]^{|}]/g,&amp;quot;\\$&amp;amp;&amp;quot;&amp;lt;/code&amp;gt; に統一。&lt;br /&gt;
** 変更 - 拡張コード テンプレート（分割）&lt;br /&gt;
**: 配列先頭のコンマの仕様に対応（末尾は実質対応済）。&lt;br /&gt;
* 2017/05/28&lt;br /&gt;
** 追加 - 結合文字列を検索&lt;br /&gt;
** 修正 - CP932依存文字を検索&lt;br /&gt;
**: Wiki が &amp;amp;#xFA19; → 神 などの正規化(NFC)を行う影響で、漢字22字が意図どおりに検索されないミスを修正。&lt;br /&gt;
** 変更 - ASCII文字, 半角カナ, 全角英数, CJK漢字, ひらがな, カタカナを単語検索&lt;br /&gt;
**: 変数を使用せず、正規表現 \g&amp;lt;名前&amp;gt; を使用する形式に統一。&lt;br /&gt;
* 2015/12/26&lt;br /&gt;
** &amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;仕様変更 - アイコンの指定先を &amp;quot;My Macros\テキスト整形.ico&amp;quot; → &amp;quot;テキスト整形.ico&amp;quot; に変更。&amp;lt;/b&amp;gt;&lt;br /&gt;
** 変更 - マクロフォルダを開く&lt;br /&gt;
**: 「My Macros フォルダを開く」→「マクロフォルダを開く」に変更。&lt;br /&gt;
**: 「テキスト整形」マクロがあるフォルダを開くようにした（Mery 2.4.7 での Macros フォルダ改名に対処）。&lt;br /&gt;
* 2015/09/30&lt;br /&gt;
** 追加 - CP932依存文字を検索 ¦ サロゲートペアを検索 ¦ 行頭に連番挿入 (#) ¦ 行頭に連番挿入 (#/Σ) ¦ 行頭に連番挿入 (0#) ¦ \u4H \U8H エンコード／デコード&lt;br /&gt;
** 修正 - ひらがなを単語検索 ¦ カタカナを単語検索&lt;br /&gt;
**: 選択範囲が記号の前後で途切れる問題に対処（記号2連続まで対応）。&lt;br /&gt;
** 変更 - 青空文庫 ルビを除去&lt;br /&gt;
**: 正規表現を [^《]+ → [^《\n]+ に変更し、改行を跨がないようにした。&lt;br /&gt;
** 変更 - ★HTMLタグを除去&lt;br /&gt;
**: 正規表現を .*? → [^&amp;lt;i&amp;gt;文字&amp;lt;/i&amp;gt;]* に変更し、改行を跨ぐようにした。&lt;br /&gt;
** 変更 - 文字を逆順並べ ¦ 文字をシャッフル&lt;br /&gt;
**: 処理方法を split() → match() に変更。対応文字に結合文字 (U+1AB0～FF, 1DC0～FF, 20D0～FF, FE20～F)、制御文字 (U+200C～D)、絵文字の国旗 (U+1F1E6～FF)、肌色指定 (U+1F3FB～F) を追加。&lt;br /&gt;
** 改名 - \uHHHH, \x{hex}, &amp;amp;#dec;, &amp;amp;#xHEX; エンコード／デコード&lt;br /&gt;
**: 「Unicode 文字 → ○○」→「○○ エンコード」に変更。&lt;br /&gt;
**: 「Unicode ○○ → 文字」→「○○ デコード」に変更。&lt;br /&gt;
* 2015/03/26&lt;br /&gt;
** 変更 - CJK漢字を単語検索&lt;br /&gt;
**: 異体字セレクタを考慮するようにした（ただし組合せが適正かは考慮しえない）。&lt;br /&gt;
** 変更 - 複製貼り付け&lt;br /&gt;
**: 処理中止の条件を 非数字(NaN) or 1 未満 → クリップボードがカラ or 1 未満 に変更。&lt;br /&gt;
* 2015/03/14&lt;br /&gt;
** &amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;仕様変更 - モード R/RS 実行後、処理した範囲を選択し直すようにした。&amp;lt;/b&amp;gt;&lt;br /&gt;
** &amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;仕様変更 - モード RM を廃止。&amp;lt;/b&amp;gt;既存コマンドはモード RS に移行。&lt;br /&gt;
**: ★行頭 // を挿入/削除 ¦ ★インデント(半角空白2個) ¦ ★空白行を削除 ¦ ★行頭／行末に貼り付け ¦ ★行頭／行末に挿入 ¦ ★入力文字列を含む／含まない行を削除 ¦ 正規表現に一致する／しない行を削除&lt;br /&gt;
** &amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;仕様変更 - モード CR を廃止し、&amp;lt;code&amp;gt;&amp;lt;i&amp;gt;String&amp;lt;/i&amp;gt;.replaceBatch&amp;lt;/code&amp;gt; メソッドを追加。&amp;lt;/b&amp;gt;既存コマンドは &amp;lt;samp&amp;gt;replaceBatch&amp;lt;/samp&amp;gt; メソッド利用に移行。&lt;br /&gt;
**: ★連続する！？を整形 ¦ ★実体参照 &amp;amp;&amp;quot;&amp;lt;&amp;gt; → &amp;amp;xxx; ¦ ★実体参照 &amp;amp;xxx; → ␣&amp;gt;&amp;lt;&amp;quot;&amp;amp; ¦ ★半角カナ→全角 ¦ ★全角カナ→半角 ¦ 標準変換&lt;br /&gt;
** &amp;lt;b&amp;gt;コード整理 - コマンド各々に更新年月日を付けるようにした。&amp;lt;/b&amp;gt;&lt;br /&gt;
** スターター除外 - ☆検索強調をすべて解除&lt;br /&gt;
** 削除 - ☆全角英数を検索 ¦ ☆半角カナを検索 ¦ ☆CJK漢字を検索&lt;br /&gt;
** 追加 - ASCII文字を単語検索 ¦ 半角カナを単語検索 ¦ 全角英数を単語検索 ¦ CJK漢字を単語検索 ¦ ひらがなを単語検索 ¦ カタカナを単語検索 ¦ 検索結果カウント ¦ 総字行数カウント&lt;br /&gt;
** 変更 - 編集中のファイルのパスをコピー ¦ 編集中の全ファイルのパスをコピー&lt;br /&gt;
**: パスが存在しない場合の名前を、無題 → &amp;lt;無題&amp;gt; に変更。&lt;br /&gt;
** 変更 - ★数値参照を文字に変換 ¦ \x{hex}, &amp;amp;#dec;, &amp;amp;#xHEX; デコード&lt;br /&gt;
**: サロゲートペアの計算を + → | に変更し、不要な括弧を除去（演算子の優先順が + - → &amp;gt;&amp;gt; → &amp;amp; → | である事による）。&lt;br /&gt;
** 変更 - Base64エンコード／デコード&lt;br /&gt;
**: 不要な括弧を除去（同上、演算子の優先順による）。&lt;br /&gt;
** 変更 - 拡張コード テンプレート&lt;br /&gt;
**: 仕様変更に伴う改訂。&lt;br /&gt;
**: コマンドおよびセパレーターは、表示行頭に挿入するようにした。&lt;br /&gt;
* 2015/02/14&lt;br /&gt;
** &amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;仕様修正 - モード RS/RM で、矩形選択（始点or終点が左下かつ論理行頭）時、下端の行が範囲から漏れる不具合を修正。&amp;lt;/b&amp;gt;&lt;br /&gt;
** &amp;lt;b&amp;gt;コード整理 - 文字入力など追加操作を求めるコマンドは、名称末尾に目印 ... を付けた。&amp;lt;/b&amp;gt;&lt;br /&gt;
**: 複製貼り付け ¦ ★行頭／行末に挿入 ¦ 各行先頭／末尾に挿入 ¦ ★入力文字列を含む／含まない行を削除 ¦ 正規表現に一致する／しない行を削除&lt;br /&gt;
** 削除 - 丸数字 ⑳ → (20) ¦ 丸数字 (20) → ⑳&lt;br /&gt;
** 追加 - 行末に&amp;amp;lt;br&amp;amp;gt;を挿入 ¦ &amp;amp;lt;br&amp;amp;gt;を改行に変換 ¦ ★行頭／行末の空白を除去 ¦ 空白行を減量 ¦ 重複行を単一化(空白行は除く) ¦ ★連続する重複行を単一化 ¦ 文字のシャッフル&lt;br /&gt;
** 修正 - 各行先頭／末尾に挿入&lt;br /&gt;
**: 正規表現が意味的に不適切だったのを修正。&lt;br /&gt;
** 変更 - 空白行を圧縮&lt;br /&gt;
**: モード R → RS に。空白行内の空白を除去してから改行を処理するように変更。&lt;br /&gt;
** 変更 - 文字を逆順並べ&lt;br /&gt;
**: サロゲートペアの対処方法を変更。結合文字の一部 (U+0300～6F, 3099～A) および異体字セレクタに対応した。&lt;br /&gt;
** 変更 - 2進接頭辞換算&lt;br /&gt;
**: 正規表現を &amp;lt;code&amp;gt;[0-9]+(,?[0-9]{3})+(\.[0-9]+)?&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;[0-9]+(,?[0-9]{3})+&amp;lt;/code&amp;gt; に変更（小数は非対応とした）。&lt;br /&gt;
** 変更 - Base64デコード&lt;br /&gt;
**: JScript 5.x の decodeURIComponent() は字数が多すぎると能率が悪くなるようなので、最大50字ずつ処理するようにした（高速化）。&lt;br /&gt;
* 2014/10/12&lt;br /&gt;
** スターター除外 - ☆正規表現に一致する／しない行を削除&lt;br /&gt;
**: Mery (鬼車) と JScript (ECMAScript) では正規表現の仕様が異なり、意図しない結果を招く怖れがあるため。&lt;br /&gt;
** スターター追加 - ★数値参照 &amp;amp;#dec; に変換 ¦ ★数値参照 &amp;amp;#xHEX; に変換&lt;br /&gt;
** 追加 - ★数値参照を文字に変換 ¦ 行を逆順並べ ¦ 行をシャッフル ¦ &amp;amp;#xHEX; エンコード／デコード&lt;br /&gt;
** 修正 - 選択文字列を検索&lt;br /&gt;
**: 引数不一致により動作しないミスを修正。&lt;br /&gt;
** 修正 - 編集中の全ファイルのパスをコピー ¦ ★検索強調をすべて解除&lt;br /&gt;
**: 対象範囲を 同ウィンドウ内の全文書 → 全ウィンドウの全文書 に改修。&lt;br /&gt;
** 変更 - 複製貼り付け&lt;br /&gt;
**: 処理方法を for → while に変更。処理中止の条件を 未入力 → 非数字(NaN) or 1 未満に変更。&lt;br /&gt;
** 変更 - \x{hex}, &amp;amp;#dec; エンコード&lt;br /&gt;
**: 処理方法を 配列連結 join(&amp;quot;&amp;quot;) → 文字列連結 += に変更。&lt;br /&gt;
** 変更 - \x{hex}, &amp;amp;#dec; デコード&lt;br /&gt;
**: 下位サロゲートの計算を (n-0x10000&amp;amp;0x3FF) → (n&amp;amp;0x3FF) に短縮。&lt;br /&gt;
* 2014/07/27&lt;br /&gt;
** 修正 - Base64デコード&lt;br /&gt;
**: 終端の余分な [NUL] を除去する処理が手抜きだったのを修正。&lt;br /&gt;
* 2014/05/31&lt;br /&gt;
** 削除 - Base64エンコード(Unicode)&lt;br /&gt;
**: Mery の「Base64デコード」機能と同じ方式の Base64エンコード(UTF-8) に差し替え。&lt;br /&gt;
** 追加 - Base64エンコード／デコード(UTF-8)&lt;br /&gt;
** 変更 - ★数値を3桁,区切りに&lt;br /&gt;
**: 数字列を抽出して処理するように変更（高速化）。&lt;br /&gt;
** 変更 - ★数値を3桁,区切りに ¦ 丸数字 (20) → ⑳ ¦ ★10→16進数 ¦ 2進接頭辞換算&lt;br /&gt;
**: 正規表現を \d → [0-9] に統一。&lt;br /&gt;
** 修正 - 拡張コード テンプレート（モード CR 交換/分割）&lt;br /&gt;
**: エスケープ文字 \ をより正確に判定できる正規表現に改修。&lt;br /&gt;
* 2014/05/24&lt;br /&gt;
** 修正 - 各行末尾に挿入&lt;br /&gt;
**: 選択範囲の次行先頭にも挿入してしまう問題に対処。&lt;br /&gt;
** 変更 - 複製貼り付け&lt;br /&gt;
**: クリップボードの内容を変数に格納しておくように変更（高速化）。&lt;br /&gt;
** 変更 - 複製貼り付け ¦ 各行先頭／末尾に挿入&lt;br /&gt;
**: Prompt() 関連の処理を単純化（モード RM 以外では冗長だった）。&lt;br /&gt;
* 2014/05/22&lt;br /&gt;
** 追加 - 2進接頭辞換算&lt;br /&gt;
** 変更 - \x{hex}, &amp;amp;#dec; デコード&lt;br /&gt;
**: サロゲートペアの String.fromCharCode() の引数を複数指定に改修、ビット演算に一部変更。&lt;br /&gt;
* 2014/05/16&lt;br /&gt;
** 変更 - \x{hex}, &amp;amp;#dec; エンコード&lt;br /&gt;
**: 処理方法を replace(for ループ) に統一。&lt;br /&gt;
* 2014/04/27&lt;br /&gt;
** 追加 - &amp;amp;#dec; エンコード／デコード&lt;br /&gt;
* 2014/03/14&lt;br /&gt;
** 追加 - 青空文庫 ルビを除去 ¦ 青空文庫 注記を除去&lt;br /&gt;
* 2014/03/08&lt;br /&gt;
** 追加 - 選択文字列を検索 ¦ 選択文字列をすべて削除&lt;br /&gt;
** 変更 - ★全角英数を検索 ¦ ★半角カナを検索 ¦ ★CJK漢字を検索&lt;br /&gt;
**: 検索方向を 前 → 次 に変更。念の為「大文字と小文字を区別」フラグを追加。&lt;br /&gt;
* 2014/03/01&lt;br /&gt;
** 追加 - ★連続する！？を整形 ¦ ★全角ダッシュ(――)に整形&lt;br /&gt;
** 変更 - ★括弧前の句読点を除去&lt;br /&gt;
**: 全角コンマ ， /全角ピリオド ． を除去対象に追加。&lt;br /&gt;
** 変更 - ★三点リーダー(……)に整形&lt;br /&gt;
**: 全角コンマ ， /全角ピリオド ． /半角中黒 ･ /三点リーダー … /二点リーダー ‥ を変換対象に追加。&lt;br /&gt;
** 変更 - マクロフォルダを開く&lt;br /&gt;
**: 処理方法を WScript.Shell.Run(&amp;quot;explorer&amp;quot;) → Shell.Application.Explore() に変更。&lt;br /&gt;
* 2014/02/22&lt;br /&gt;
** 追加 - 丸数字 ⑳ → (20) ¦ 丸数字 (20) → ⑳&lt;br /&gt;
** 変更 - 文字を逆順並べ ¦ \uHHHH, \x{hex} エンコード&lt;br /&gt;
**: 処理方法を for ループ → replace() に変更（字数削減）。&lt;br /&gt;
** 変更 - 拡張コード テンプレート&lt;br /&gt;
**: モード CR 作成補助コマンドを追加。モード CR テンプレートを変更。&lt;br /&gt;
* 2014/02/17&lt;br /&gt;
** 修正 - ★行頭／行末に貼り付け&lt;br /&gt;
**: クリップボード終端の改行文字を除去する正規表現を修正。\r\n|\r|\n$ → (\r\n|\r|\n)$&lt;br /&gt;
* 2014/02/16&lt;br /&gt;
** &amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;仕様修正 - モード CR で、正規表現の特殊文字があると誤動作する不具合を修正。&amp;lt;/b&amp;gt;&lt;br /&gt;
** &amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;仕様変更 - モード CR で、正規表現 (JScript) による検索置換に対応。&amp;lt;/b&amp;gt;&lt;br /&gt;
** コード整理 - コメントアウトしていた基本コードを削除。&lt;br /&gt;
** コード整理 - 下記の6カテゴリを3カテゴリに統合。コマンドの名称や配置を見直した。&lt;br /&gt;
**: (空白の追加 + 各行に追加) (空白の削除 + 行の削除) (数値の変換 + 文字種変換)&lt;br /&gt;
** スターター除外 - ☆標準変換&lt;br /&gt;
** 追加 - 複製貼り付け ¦ 文字を逆順並べ ¦ ★半角カナ→全角 ¦ ★全角カナ→半角&lt;br /&gt;
** 変更 - ★行頭／行末に貼り付け&lt;br /&gt;
**: クリップボード終端の改行文字は除去するようにした（行切り取り・行コピーとの相性を考え）。&lt;br /&gt;
** 変更 - 拡張コード テンプレート&lt;br /&gt;
**: モード CR テンプレートを刷新。&lt;br /&gt;
* 2014/02/10&lt;br /&gt;
** スターター除外 - ☆空白行を圧縮&lt;br /&gt;
** 追加 - ★空白行を削除 ¦ \uHHHH デコード ¦ \x{hex} エンコード／デコード&lt;br /&gt;
** 変更 - 挿入 Confirm(|)&lt;br /&gt;
**: 接尾辞の長さ(s.length)でカーソル移動量を決めるようにした。&lt;br /&gt;
* 2014/02/01&lt;br /&gt;
** 追加 - \uHHHH エンコード&lt;br /&gt;
** 変更 - ★全角かな→カナ ¦ ★全角カナ→かな&lt;br /&gt;
**: 踊り字（繰り返し記号） ゝゞヽヾ を変換対象に追加。&lt;br /&gt;
* 2014/01/24&lt;br /&gt;
** 追加 - ★半角/全角の間を空ける ¦ ★半角英数/全角の間を空ける&lt;br /&gt;
** 変更 - ★全角カナ→かな&lt;br /&gt;
**: ヴヵヶ は対象外とした（Shift_JIS では保存できない文字のため）。&lt;br /&gt;
* 2014/01/12&lt;br /&gt;
** &amp;lt;b&amp;gt;仕様変更 - スターターパックにアイコンファイルを同梱。&amp;lt;/b&amp;gt;&lt;br /&gt;
** 修正 - 編集中のファイルのパスをコピー ¦ 編集中の全ファイルのパスをコピー&lt;br /&gt;
**: 改行を LF → CR+LF に変更し、メモ帳でも正しく改行されるようにした。&lt;br /&gt;
** 修正 - ★数値を3桁,区切りに&lt;br /&gt;
**: 小数点以下（ピリオド以降）は桁区切りしないようにした。&lt;br /&gt;
* 2014/01/08&lt;br /&gt;
** &amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;仕様変更 - コマンド実行時、スクロール位置を記憶・復元しないように（コメントアウト）した。&amp;lt;/b&amp;gt;&lt;br /&gt;
**: 検索系コマンドと相性が悪く、Mery の検索機能と挙動が合っていないため。&lt;br /&gt;
** スターター追加 - ★CJK漢字を検索 ¦ ★検索強調をすべて解除&lt;br /&gt;
** 追加 - ★全角英数を検索 ¦ ★半角カナを検索&lt;br /&gt;
** 修正 - ★16→10進数&lt;br /&gt;
**: 16進数に使用しない英字 G～Z を変換対象に含めていたミスを修正。&lt;br /&gt;
* 2013/12/30&lt;br /&gt;
** 追加 - 挿入 Confirm(|) ¦ ★数値を3桁,区切りに ¦ ★10→16進数 ¦ ★16→10進数&lt;br /&gt;
** 修正 - My Macros フォルダを開く (現「マクロフォルダを開く」)&lt;br /&gt;
**: 「テキスト整形」マクロのあるフォルダではなく Mery.exe 直下の My Macros フォルダを開くようにした。&lt;br /&gt;
* 2013/09/15&lt;br /&gt;
** 初版公開。&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=基本コード=&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot; style=&amp;quot;height:35em; overflow:auto;&amp;quot;&amp;gt;&lt;br /&gt;
//■テキスト整形&lt;br /&gt;
//　2013/09/15-2019/06/01&lt;br /&gt;
&lt;br /&gt;
//■拡張コード：リスト&lt;br /&gt;
var f = [];&lt;br /&gt;
// ----------------- ↓ここより下に拡張コードを追加&lt;br /&gt;
&lt;br /&gt;
// ----------------- ↑ここより上に拡張コードを追加&lt;br /&gt;
/*■拡張コード：書式&lt;br /&gt;
//▼コマンド&lt;br /&gt;
f.push([&amp;quot;コマンド名&amp;quot;,&amp;quot;オプション&amp;quot;,function(引数){ 処理 }]);&lt;br /&gt;
//▽オプション&lt;br /&gt;
  s : 実行に範囲選択を要求 (require selection)&lt;br /&gt;
  c : 実行にクリップボードを要求 (require clipboard)&lt;br /&gt;
  L : 行選択してから処理 (select Line)&lt;br /&gt;
  O : 非選択時はすべて選択してから処理 (select OR all) ※実験的&lt;br /&gt;
//▽引数(arguments)&lt;br /&gt;
  第1引数 = Document.Selection.Text&lt;br /&gt;
  第2引数 = Document.Selection&lt;br /&gt;
//▽処理の戻り値(return value)&lt;br /&gt;
  String/Array以外 : 選択範囲に対し何もしない&lt;br /&gt;
  &amp;quot;abcd&amp;quot;           : abcd に置換後、abcd を選択&lt;br /&gt;
  [&amp;quot;ab&amp;quot;,&amp;quot;cd&amp;quot;]      : abcd に置換後、ab と cd の間に移動&lt;br /&gt;
  [&amp;quot;ab&amp;quot;,&amp;quot;cd&amp;quot;,&amp;quot;&amp;quot;]   : abcd に置換後、cd を選択&lt;br /&gt;
//▼サブメニュー&lt;br /&gt;
f.push([&amp;quot;メニュー名&amp;quot;,function(f){ コマンドなど }]);&lt;br /&gt;
//▼セパレーター&lt;br /&gt;
f.push([&amp;quot;--------&amp;quot;]);&lt;br /&gt;
// ----------------- */&lt;br /&gt;
&lt;br /&gt;
//■メソッド：連続置換&lt;br /&gt;
//&amp;quot;string&amp;quot;.replaceBatch([ [検索1,置換1],[検索2,置換2],… ]);&lt;br /&gt;
String.prototype.replaceBatch = function(a){ //▲引数の型はチェックしてない&lt;br /&gt;
  var _this=this, i=0, n=a.length;&lt;br /&gt;
  if (!a[0]) i++;&lt;br /&gt;
  if (!a[n-1]) n--;&lt;br /&gt;
  for (; i&amp;lt;n; i++) {&lt;br /&gt;
    if (typeof a[i][0]===&amp;quot;string&amp;quot;) //◆特殊文字をエスケープし、&amp;quot;g&amp;quot;フラグを付加&lt;br /&gt;
      a[i][0] = new RegExp(a[i][0].replace(/[$()*+.?\[\\\]^{|}]/g,&amp;quot;\\$&amp;amp;&amp;quot;),&amp;quot;g&amp;quot;);&lt;br /&gt;
    _this = _this.replace(a[i][0],a[i][1]);&lt;br /&gt;
  }&lt;br /&gt;
  return _this;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
(function(){&lt;br /&gt;
//■実行コード&lt;br /&gt;
var Sel = Document.Selection;&lt;br /&gt;
var isSelEmpty = Sel.IsEmpty;&lt;br /&gt;
var isClipEmpty = !ClipboardData.GetData();&lt;br /&gt;
var cmd = [], cid = 0; //コマンド, ID&lt;br /&gt;
//リストからメニュー作成&lt;br /&gt;
var Menu = CreatePopupMenu();&lt;br /&gt;
(function ListToMenu(List, Menu) {&lt;br /&gt;
  for (var i=0,_L; _L=List[i]; i++) {&lt;br /&gt;
    if (typeOf(_L[0]) !== &amp;quot;String&amp;quot;) continue;&lt;br /&gt;
    switch (_L.length) {&lt;br /&gt;
    case 3: //◆コマンド      _L = [&amp;quot;コマンド名&amp;quot;,&amp;quot;オプション&amp;quot;,function]&lt;br /&gt;
      if (typeOf(_L[1]) !== &amp;quot;String&amp;quot;) break;&lt;br /&gt;
      if (typeOf(_L[2]) !== &amp;quot;Function&amp;quot;) break;&lt;br /&gt;
      ++cid;&lt;br /&gt;
      var isGray = (/\bs\b/.test(_L[1]) &amp;amp;&amp;amp; isSelEmpty)&lt;br /&gt;
                || (/\bc\b/.test(_L[1]) &amp;amp;&amp;amp; isClipEmpty) ;&lt;br /&gt;
      Menu.Add(_L[0]+&amp;quot;\t&amp;quot;+_L[1], cid, isGray? meMenuGrayed: 0);&lt;br /&gt;
      if (isGray) break;&lt;br /&gt;
      cmd[cid] = { func: _L[2]&lt;br /&gt;
      , selLine:  /\bL\b/.test(_L[1])&lt;br /&gt;
      , selOrAll: /\bO\b/.test(_L[1])&lt;br /&gt;
      };&lt;br /&gt;
    break;&lt;br /&gt;
    case 2: //◆サブメニュー  _L = [&amp;quot;メニュー名&amp;quot;,function]&lt;br /&gt;
      if (typeOf(_L[1]) !== &amp;quot;Function&amp;quot;) break;&lt;br /&gt;
      var sub_f = [], sub_Menu = CreatePopupMenu();&lt;br /&gt;
      _L[1](sub_f);&lt;br /&gt;
      Menu.AddPopup(_L[0], sub_Menu);&lt;br /&gt;
      ListToMenu(sub_f, sub_Menu); //再帰：サブメニュー作成&lt;br /&gt;
    break;&lt;br /&gt;
    case 1: //◆セパレーター  _L = [&amp;quot;--------&amp;quot;]&lt;br /&gt;
      if (!/^-+$/.test(_L[0])) break;&lt;br /&gt;
      Menu.Add(&amp;quot;&amp;quot;, 0, meMenuSeparator);&lt;br /&gt;
    break;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}(f, Menu));&lt;br /&gt;
//ポップアップメニューを表示して処理&lt;br /&gt;
main: if (cid = Menu.Track(mePosMouse)) { //※キャンセル(Esc)時は 0 で終了&lt;br /&gt;
  var invertPos = Sel.GetActivePos() &amp;lt; Sel.GetAnchorPos();&lt;br /&gt;
  if (cmd[cid].selLine) selectLine(Sel);&lt;br /&gt;
  if (cmd[cid].selOrAll &amp;amp;&amp;amp; isSelEmpty) Sel.SelectAll();&lt;br /&gt;
  var res = cmd[cid].func(Sel.Text, Sel);&lt;br /&gt;
  if (typeOf(res) === &amp;quot;String&amp;quot;) res = [&amp;quot;&amp;quot;,res,&amp;quot;&amp;quot;];&lt;br /&gt;
  if (typeOf(res) !== &amp;quot;Array&amp;quot;) break main;&lt;br /&gt;
  &lt;br /&gt;
  var head = res.shift(), tail = res.pop() || &amp;quot;&amp;quot;, body = res.join(&amp;quot;&amp;quot;);&lt;br /&gt;
  Sel.Text = head + body + tail;&lt;br /&gt;
  var acp = Sel.GetActivePos() - tail.replace(/\r\n/g,&amp;quot;\n&amp;quot;).length;&lt;br /&gt;
  var anp = acp                - body.replace(/\r\n/g,&amp;quot;\n&amp;quot;).length;&lt;br /&gt;
    //※クリップボードなどCR+LFが含まれる場合、1字と数えなければズレる&lt;br /&gt;
  Sel.SetActivePos(invertPos? anp: acp);&lt;br /&gt;
  Sel.SetAnchorPos(invertPos? acp: anp);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
//■型判別&lt;br /&gt;
function typeOf(obj) {&lt;br /&gt;
  return (obj===null)? &amp;quot;Null&amp;quot;: (obj==null)? &amp;quot;Undefined&amp;quot;:&lt;br /&gt;
    Object.prototype.toString.call(obj).slice(8,-1); //&amp;quot;[object Type]&amp;quot;.slice&lt;br /&gt;
};&lt;br /&gt;
//■論理行選択&lt;br /&gt;
function selectLine(Sel) {&lt;br /&gt;
  var ty = Sel.GetTopPointY(mePosLogical);&lt;br /&gt;
  var by = Sel.GetBottomPointY(mePosLogical);&lt;br /&gt;
  var bx = Sel.GetBottomPointX(mePosLogical);&lt;br /&gt;
  var nn =(Sel.Text.match(/\n/g)||[]).length;&lt;br /&gt;
  if (bx===1 &amp;amp;&amp;amp; nn&amp;lt;=by-ty &amp;amp;&amp;amp; nn) by--; //末尾改行対策&lt;br /&gt;
    //下端が論理行頭 &amp;amp;&amp;amp; 矩形選択でない &amp;amp;&amp;amp; 複数行&lt;br /&gt;
  Sel.SetActivePoint(mePosLogical, 1, by);&lt;br /&gt;
  Sel.EndOfLine(false, mePosLogical);&lt;br /&gt;
  Sel.SetAnchorPoint(mePosLogical, 1, ty);&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
}());&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=拡張コード=&lt;br /&gt;
★印の項目は、スターターパックに収録されているコマンドです。&lt;br /&gt;
&lt;br /&gt;
==小説/作文==&lt;br /&gt;
&lt;br /&gt;
;★地の文の行頭を字下げ&lt;br /&gt;
:開き括弧類 &amp;lt;code&amp;gt;‘ “ （ 〔 ［ ｛ 〈 《 「 『 【&amp;lt;/code&amp;gt; または 半角空白/全角空白/水平タブ/改行 &amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;以外&amp;lt;/b&amp;gt;の文字で始まる行を「地の文」とみなし、行頭に全角空白を挿入します。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;地の文の行頭を字下げ&amp;quot;,&amp;quot;L&amp;quot;,function(_){ //2015/02/14&lt;br /&gt;
  return _.replace(/^([^‘“（〔［｛〈《「『【 　\t\n])/gm,&amp;quot;　$1&amp;quot;) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;★括弧前の句読点を除去&lt;br /&gt;
:閉じ括弧類 &amp;lt;code&amp;gt;’ ” ） 〕 ］ ｝ 〉 》 」 』 】&amp;lt;/code&amp;gt; の直前に句読点 &amp;lt;code&amp;gt;、 。 ， ．&amp;lt;/code&amp;gt; がある場合、除去します。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;括弧前の句読点を除去&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2014/03/01&lt;br /&gt;
  return _.replace(/[、。，．](?=[’”）〕］｝〉》」』】])/g,&amp;quot;&amp;quot;) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;★！？を半角/全角に整形&lt;br /&gt;
:感嘆符・疑問符を、直前の文字が半角なら半角に、全角なら全角に整形します。&lt;br /&gt;
:直前の文字がない場合（範囲先頭か行頭）は何もしません。&lt;br /&gt;
:※&amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;半角文字&amp;lt;/b&amp;gt;＝ASCII文字＋半角カナ、&amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;全角文字&amp;lt;/b&amp;gt;＝それ以外の文字、を意味しています。&lt;br /&gt;
:例＞ &amp;lt;span style=&amp;quot;background:#bfdfff;&amp;quot;&amp;gt;Wha&amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;t&amp;lt;/b&amp;gt;！？／あ&amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;れ&amp;lt;/b&amp;gt;!?&amp;lt;/span&amp;gt; → What!?／あれ！？（※&amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;赤字&amp;lt;/b&amp;gt;が直前の文字）&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;！？を半角/全角に整形&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2017/06/25&lt;br /&gt;
  return _.replace(/[!?！？]+/g,function(s,i,c){c=c.charAt(i-1); return (!c||c===&amp;quot;\n&amp;quot;)? s: /[ -~｡-ﾟ]/.test(c)? s.replace(/！/g,&amp;quot;!&amp;quot;).replace(/？/g,&amp;quot;?&amp;quot;): s.replace(/\!/g,&amp;quot;！&amp;quot;).replace(/\?/g,&amp;quot;？&amp;quot;)}) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;★連続する！？を整形&lt;br /&gt;
:2文字以上連続する感嘆符・疑問符を半角2文字に整形します。&lt;br /&gt;
:例＞ &amp;lt;span style=&amp;quot;background:#bfdfff;&amp;quot;&amp;gt;！！／！！？／?!!!／?!!!?&amp;lt;/span&amp;gt; → !!／!?／?!／??&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;連続する！？を整形&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2015/03/14&lt;br /&gt;
  return _.replaceBatch([ [/[!！][!?！？]*[!！]/g,&amp;quot;!!&amp;quot;],[/[!！][!?！？]*[?？]/g,&amp;quot;!?&amp;quot;],[/[?？][!?！？]*[!！]/g,&amp;quot;?!&amp;quot;],[/[?？][!?！？]*[?？]/g,&amp;quot;??&amp;quot;] ]) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;★三点リーダー(……)に整形&lt;br /&gt;
:1～3文字以上連続する中黒・句点・読点などを、三点リーダー2文字 …… に整形します。&lt;br /&gt;
:例＞ &amp;lt;span style=&amp;quot;background:#bfdfff;&amp;quot;&amp;gt;そんな・・・・。&amp;lt;/span&amp;gt; → そんな……。&lt;br /&gt;
:※変換対象となるのは以下の8パターンです。&lt;br /&gt;
:{|class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
! 名称 !! 連続字数 !! 例 !! Shift_JIS !! Unicode&lt;br /&gt;
|-&lt;br /&gt;
| 全角読点 ||rowspan=&amp;quot;6&amp;quot;| 3字以上 || 、、、 || 0x8141 || U+3001&lt;br /&gt;
|-&lt;br /&gt;
| 全角句点 || 。。。 || 0x8142 || U+3002&lt;br /&gt;
|-&lt;br /&gt;
| 全角コンマ || ，，， || 0x8143 || U+FF0C&lt;br /&gt;
|-&lt;br /&gt;
| 全角ピリオド || ．．． || 0x8144 || U+FF0E&lt;br /&gt;
|-&lt;br /&gt;
| 全角中黒 || ・・・ || 0x8145 || U+30FB&lt;br /&gt;
|-&lt;br /&gt;
| 半角中黒 || ･･･ || 0xA5 || U+FF65&lt;br /&gt;
|-&lt;br /&gt;
| 三点リーダー ||rowspan=&amp;quot;2&amp;quot;| 1字以上 || … || 0x8163 || U+2026&lt;br /&gt;
|-&lt;br /&gt;
| 二点リーダー || ‥ || 0x8164 || U+2025&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;三点リーダー(……)に整形&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2014/03/01&lt;br /&gt;
  return _.replace(/、{3,}|。{3,}|，{3,}|．{3,}|・{3,}|･{3,}|…{1,}|‥{1,}/g,&amp;quot;……&amp;quot;) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;★全角ダッシュ(――)に整形&lt;br /&gt;
:2文字以上連続する長音などを、全角ダッシュ2文字 ―― に整形します。&lt;br /&gt;
:例＞ &amp;lt;span style=&amp;quot;background:#bfdfff;&amp;quot;&amp;gt;そんなーーー。&amp;lt;/span&amp;gt; → そんな――。&lt;br /&gt;
:※変換対象となるのは以下の4パターンです。&lt;br /&gt;
:{|class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
! 名称 !! 連続字数 !! 例 !! Shift_JIS !! Unicode&lt;br /&gt;
|-&lt;br /&gt;
| 全角長音符 ||rowspan=&amp;quot;5&amp;quot;| 2字以上 || ーー || 0x815B || U+30FC&lt;br /&gt;
|-&lt;br /&gt;
| em ダッシュ&amp;lt;br&amp;gt;(全角ダッシュ) || —— || - || U+2014&lt;br /&gt;
|-&lt;br /&gt;
| 全角ダッシュ&amp;lt;br&amp;gt;(水平線) || ―― || 0x815C || U+2015&lt;br /&gt;
|-&lt;br /&gt;
| 全角マイナス || －－ || 0x817C || U+FF0D&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;全角ダッシュ(――)に整形&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2017/06/25&lt;br /&gt;
  return _.replace(/ー{2,}|\u2014{2,}|―{2,}|－{2,}/g,&amp;quot;――&amp;quot;) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;青空文庫 ルビを除去&lt;br /&gt;
:&amp;lt;code&amp;gt;《&amp;lt;/code&amp;gt; で始まり &amp;lt;code&amp;gt;》&amp;lt;/code&amp;gt; で終わる箇所を除去します。ルビ開始位置を表す &amp;lt;code&amp;gt;｜&amp;lt;/code&amp;gt; がある場合、&amp;lt;code&amp;gt;｜&amp;lt;/code&amp;gt; も除去します。&lt;br /&gt;
:例＞ &amp;lt;span style=&amp;quot;background:#bfdfff;&amp;quot;&amp;gt;一応《いちおう》何時《いつ》もの／霧の｜ロンドン警視庁《スコットランドヤード》&amp;lt;/span&amp;gt; → 一応何時もの／霧のロンドン警視庁&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;青空文庫 ルビを除去&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2015/09/30&lt;br /&gt;
  return _.replace(/(?:｜([^《\n]+))?《.*?》/g,&amp;quot;$1&amp;quot;) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;青空文庫 注記を除去&lt;br /&gt;
:&amp;lt;code&amp;gt;［＃&amp;lt;/code&amp;gt; で始まり &amp;lt;code&amp;gt;］&amp;lt;/code&amp;gt; で終わる箇所を除去します。&lt;br /&gt;
:例＞ &amp;lt;span style=&amp;quot;background:#bfdfff;&amp;quot;&amp;gt;［＃注記付き］名※［＃二の字点、1-2-22］［＃「（銘々）」の注記付き終わり］&amp;lt;/span&amp;gt; → 名※&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;青空文庫 注記を除去&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2014/03/14&lt;br /&gt;
  return _.replace(/［＃.*?］/g,&amp;quot;&amp;quot;) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
;青空文庫 注記(外字以外)を除去&lt;br /&gt;
:外字を表す注記 &amp;lt;code&amp;gt;※［＃ ～ ］&amp;lt;/code&amp;gt; は例外とし、除去しません。&lt;br /&gt;
:例＞ &amp;lt;span style=&amp;quot;background:#bfdfff;&amp;quot;&amp;gt;［＃注記付き］名※［＃二の字点、1-2-22］［＃「（銘々）」の注記付き終わり］&amp;lt;/span&amp;gt; → 名※［＃二の字点、1-2-22］&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;青空文庫 注記(外字以外)を除去&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2014/03/14&lt;br /&gt;
  return _.replace(/(※［＃.*?］)|［＃.*?］/g,&amp;quot;$1&amp;quot;) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Web/HTML==&lt;br /&gt;
&lt;br /&gt;
;★HTMLタグを除去&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;HTMLタグを除去&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2015/09/30&lt;br /&gt;
  return _.replace(/&amp;lt;(&amp;quot;[^&amp;quot;]*&amp;quot;|&#039;[^&#039;]*&#039;|[^&amp;quot;&#039;&amp;gt;])*&amp;gt;/g,&amp;quot;&amp;quot;) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;行末に&amp;amp;lt;br&amp;amp;gt;を挿入&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;行末に&amp;lt;br&amp;gt;を挿入&amp;quot;,&amp;quot;L&amp;quot;,function(_){ //2015/02/14&lt;br /&gt;
  return _.replace(/$/gm,&amp;quot;&amp;lt;br&amp;gt;&amp;quot;) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
;&amp;amp;lt;br&amp;amp;gt;を改行に変換&lt;br /&gt;
:改行タグを改行に変換します。ただし、改行タグ直後に改行が含まれている場合は、二重改行にならないようタグのみ削除します。&lt;br /&gt;
:※対応タグは &amp;lt;code&amp;gt;&amp;amp;lt;br&amp;amp;gt; &amp;amp;lt;br/&amp;amp;gt; &amp;amp;lt;br /&amp;amp;gt;&amp;lt;/code&amp;gt; の3種類です。英字の大小は問いません。&lt;br /&gt;
:&amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;※属性付きには対応していません。&amp;lt;/b&amp;gt;例＞ &amp;lt;code&amp;gt;&amp;amp;lt;br clear=&amp;quot;all&amp;quot;&amp;amp;gt;&amp;lt;/code&amp;gt; など&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;&amp;lt;br&amp;gt;を改行に変換&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2015/02/14&lt;br /&gt;
  return _.replace(/&amp;lt;br( ?\/)?&amp;gt;\n?/gi,&amp;quot;\n&amp;quot;) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;★実体参照 &amp;amp;&amp;quot;&amp;lt;&amp;gt; → &amp;amp;xxx;&lt;br /&gt;
;★実体参照 &amp;amp;xxx; → ␣&amp;gt;&amp;lt;&amp;quot;&amp;amp;&lt;br /&gt;
:HTML で使用される文字実体参照の変換を行います。&lt;br /&gt;
:{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 文字 !! 実体参照 !! 備考&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| &amp;amp;lt; || &amp;amp;amp;lt; || 小なり不等号 (less-than sign)&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| &amp;amp;gt; || &amp;amp;amp;gt; || 大なり不等号 (greater-than sign)&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| &amp;amp;quot; || &amp;amp;amp;quot; || 引用符 (quotation mark)&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| &amp;amp;amp; || &amp;amp;amp;amp; || アンド (ampersand)&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| &amp;amp;nbsp; || &amp;amp;amp;nbsp; || 折り返し禁止空白 (no-break space)&lt;br /&gt;
|}&lt;br /&gt;
:&amp;amp;amp;nbsp; は U+00A0 (No-Break Space) ではなく、U+0020 (半角空白) に変換します。&lt;br /&gt;
:空白文字 → &amp;amp;amp;nbsp; の変換は、実用上不都合が多いため行いません。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&#039;実体参照 &amp;amp;&amp;amp;&amp;quot;&amp;lt;&amp;gt; → &amp;amp;&amp;amp;xxx;&#039;,&amp;quot;s&amp;quot;,function(_){ //2015/03/14&lt;br /&gt;
  return _.replaceBatch([ [&amp;quot;&amp;amp;&amp;quot;,&amp;quot;&amp;amp;amp;&amp;quot;],[&#039;&amp;quot;&#039;,&amp;quot;&amp;amp;quot;&amp;quot;],[&amp;quot;&amp;lt;&amp;quot;,&amp;quot;&amp;amp;lt;&amp;quot;],[&amp;quot;&amp;gt;&amp;quot;,&amp;quot;&amp;amp;gt;&amp;quot;] ]) }]);&lt;br /&gt;
f.push([&#039;実体参照 &amp;amp;&amp;amp;xxx; → \u2423&amp;gt;&amp;lt;&amp;quot;&amp;amp;&amp;amp;&#039;,&amp;quot;s&amp;quot;,function(_){ //2015/03/14&lt;br /&gt;
  return _.replaceBatch([ [&amp;quot;&amp;amp;nbsp;&amp;quot;,&amp;quot; &amp;quot;],[&amp;quot;&amp;amp;gt;&amp;quot;,&amp;quot;&amp;gt;&amp;quot;],[&amp;quot;&amp;amp;lt;&amp;quot;,&amp;quot;&amp;lt;&amp;quot;],[&amp;quot;&amp;amp;quot;&amp;quot;,&#039;&amp;quot;&#039;],[&amp;quot;&amp;amp;amp;&amp;quot;,&amp;quot;&amp;amp;&amp;quot;] ]) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
:半角空白 → &amp;amp;amp;nbsp; の変換も行う場合は、下記の内容に差し替えてください。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&#039;実体参照 &amp;amp;&amp;amp;&amp;quot;&amp;lt;&amp;gt;\u2423 → &amp;amp;&amp;amp;xxx;&#039;,&amp;quot;s&amp;quot;,function(_){ //2015/03/14&lt;br /&gt;
  return _.replaceBatch([ [&amp;quot;&amp;amp;&amp;quot;,&amp;quot;&amp;amp;amp;&amp;quot;],[&#039;&amp;quot;&#039;,&amp;quot;&amp;amp;quot;&amp;quot;],[&amp;quot;&amp;lt;&amp;quot;,&amp;quot;&amp;amp;lt;&amp;quot;],[&amp;quot;&amp;gt;&amp;quot;,&amp;quot;&amp;amp;gt;&amp;quot;],[&amp;quot; &amp;quot;,&amp;quot;&amp;amp;nbsp;&amp;quot;] ]) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;★数値参照 &amp;amp;#dec; に変換&lt;br /&gt;
:文字列を数値文字参照(10進)形式に変換します。(dec＝decimal／十進法)&lt;br /&gt;
:例＞ &amp;lt;span style=&amp;quot;background:#bfdfff;&amp;quot;&amp;gt;Aわ𩸽&amp;lt;/span&amp;gt; → &amp;amp;amp;#65;&amp;amp;amp;#12431;&amp;amp;amp;#171581;&lt;br /&gt;
:→ &amp;lt;b&amp;gt;[[#符号化/復号化]]&amp;lt;/b&amp;gt; の節の &amp;lt;b&amp;gt;&amp;amp;#dec; エンコード&amp;lt;/b&amp;gt; を参照&lt;br /&gt;
&lt;br /&gt;
;★数値参照 &amp;amp;#xHEX; に変換&lt;br /&gt;
:文字列を数値文字参照(16進)形式に変換します。(HEX＝hexadecimal／十六進法)&lt;br /&gt;
:例＞ &amp;lt;span style=&amp;quot;background:#bfdfff;&amp;quot;&amp;gt;Aわ𩸽&amp;lt;/span&amp;gt; → &amp;amp;amp;#x41;&amp;amp;amp;#x308F;&amp;amp;amp;#x29E3D;&lt;br /&gt;
:→ &amp;lt;b&amp;gt;[[#符号化/復号化]]&amp;lt;/b&amp;gt; の節の &amp;lt;b&amp;gt;&amp;amp;#xHEX; エンコード&amp;lt;/b&amp;gt; を参照&lt;br /&gt;
&lt;br /&gt;
;★数値参照を文字に変換&lt;br /&gt;
:数値文字参照(10進/16進)を文字列に変換します。&lt;br /&gt;
:例＞ &amp;lt;span style=&amp;quot;background:#bfdfff;&amp;quot;&amp;gt;&amp;amp;amp;#65;&amp;amp;amp;#x308F;&amp;amp;amp;#x29e3d;&amp;lt;/span&amp;gt; → Aわ𩸽&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;数値参照を文字に変換&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2019/06/01&lt;br /&gt;
  return _.replace(/&amp;amp;#(?:([0-9]{1,7})|x([0-9a-f]{1,6}));/gi,function(s,d,x){var n=Number(d||&amp;quot;0x&amp;quot;+x); return (n&amp;lt;=0xFFFF)?String.fromCharCode(n): (n&amp;lt;=0x10FFFF)?String.fromCharCode(n-0x10000&amp;gt;&amp;gt;10|0xD800,n&amp;amp;0x3FF|0xDC00): s}) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==マクロ/コード==&lt;br /&gt;
&lt;br /&gt;
;★行頭 // を挿入/削除&lt;br /&gt;
:行頭に // が無い行なら // を挿入し、有る行なら // を削除します。&lt;br /&gt;
:※このコマンドをよく利用される場合は「&amp;lt;b&amp;gt;[[コメントマーク付け外し]]&amp;lt;/b&amp;gt;」マクロの導入をオススメします。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;行頭 \/\/ を挿入/削除&amp;quot;,&amp;quot;L&amp;quot;,function(_){ //2015/03/14&lt;br /&gt;
  return _.replace(/^(\/\/)?/gm,function(s){return s? &amp;quot;&amp;quot;: &amp;quot;\/\/&amp;quot;}) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;★このマクロを編集&lt;br /&gt;
:実行中のマクロ（テキスト整形）を Mery で開きます。&lt;br /&gt;
:※マクロを実行後、[マクロ]→[編集] でファイルを開くのと同様です。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;このマクロを編集&amp;quot;,&amp;quot;&amp;quot;,function(){ //2019/06/01&lt;br /&gt;
  Editor.OpenFile(ScriptFullName, meEncodingNone, meOpenAllowNewWindow) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;マクロフォルダを開く&lt;br /&gt;
:エクスプローラを起動し、実行中のマクロ（テキスト整形）があるフォルダを開きます。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;マクロフォルダを開く&amp;quot;,&amp;quot;&amp;quot;,function(){ //2015/12/26&lt;br /&gt;
  new ActiveXObject(&amp;quot;Shell.Application&amp;quot;).Explore(new ActiveXObject(&amp;quot;Scripting.FileSystemObject&amp;quot;).GetParentFolderName(ScriptFullName)) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;挿入 Confirm(|)&lt;br /&gt;
:文字列 &amp;lt;code&amp;gt;if(!Confirm(&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;))Quit();&amp;lt;/code&amp;gt; を挿入します。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;挿入 Confirm(|)&amp;quot;,&amp;quot;&amp;quot;,function(_){ //2019/06/01&lt;br /&gt;
  return [&amp;quot;if(!Confirm(&amp;quot; , _ , &amp;quot;))Quit();&amp;quot;] }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;選択範囲を eval で評価&lt;br /&gt;
:ステータスバーに eval(&amp;lt;i&amp;gt;選択範囲&amp;lt;/i&amp;gt;) の結果を表示します。&lt;br /&gt;
:たとえば、選択範囲が &amp;lt;code style=&amp;quot;background:#bfdfff;&amp;quot;&amp;gt;10*(5+20)&amp;lt;/code&amp;gt; なら、250 と表示されます。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;選択範囲を eval で評価&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2019/06/01&lt;br /&gt;
  Status=eval(_) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==挿入/貼付==&lt;br /&gt;
&lt;br /&gt;
;★半角/全角の間を空ける&lt;br /&gt;
;★半角英数/全角の間を空ける&lt;br /&gt;
:半角文字/半角英数と全角文字の間に半角空白を挿入します。&lt;br /&gt;
:※&amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;半角文字&amp;lt;/b&amp;gt;＝ASCII文字＋半角カナ、&amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;全角文字&amp;lt;/b&amp;gt;＝それ以外の文字、を意味しています。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;半角/全角の間を空ける&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2014/02/16&lt;br /&gt;
  return _.replace(/([!-~｡-ﾟ](?=[^!-~｡-ﾟ 　\t\n])|[^!-~｡-ﾟ 　\t\n](?=[!-~｡-ﾟ]))/g,&amp;quot;$1 &amp;quot;) }]);&lt;br /&gt;
f.push([&amp;quot;半角英数/全角の間を空ける&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2014/02/16&lt;br /&gt;
  return _.replace(/([0-9A-Za-z](?=[^!-~｡-ﾟ 　\t\n])|[^!-~｡-ﾟ 　\t\n](?=[0-9A-Za-z]))/g,&amp;quot;$1 &amp;quot;) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;★数値を3桁,区切りに&lt;br /&gt;
:半角数字列を3桁毎にコンマで区切ります。小数点以下（ピリオド以降）は区切りません。&lt;br /&gt;
:例＞ &amp;lt;span style=&amp;quot;background:#bfdfff;&amp;quot;&amp;gt;87654321／0.12345／54321.12345&amp;lt;/span&amp;gt; → 87,654,321／0.12345／54,321.12345&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;数値を3桁,区切りに&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2014/10/12&lt;br /&gt;
  return _.replace(/([^.0-9]|^)([0-9]+)/g,function(_,p,n){return p+n.replace(/([0-9])(?=(?:[0-9]{3})+$)/g,&amp;quot;$1,&amp;quot;)}) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;複製貼り付け...&lt;br /&gt;
:クリップボードの文字列を、入力した回数分複製してから貼り付けます。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;複製貼り付け...&amp;quot;,&amp;quot;c&amp;quot;,function(){ //2019/06/01&lt;br /&gt;
  var r=[],c=ClipboardData.GetData(),n=parseInt(Prompt(&amp;quot;複製回数: ※半角数字&amp;quot;,&amp;quot;&amp;quot;)); if(n&amp;gt;0){ while(n--){r.push(c)} return r.join(&amp;quot;&amp;quot;) } }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;★行頭／行末に貼り付け&lt;br /&gt;
:クリップボードの文字列を、各行の行頭/行末に貼り付けます。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;行頭に貼り付け&amp;quot;,&amp;quot;L c&amp;quot;,function(_){ //2015/09/30&lt;br /&gt;
  var c=ClipboardData.GetData().replace(/(\r\n|[\r\n])$/,&amp;quot;&amp;quot;); return _.replace(/^/gm,c) }]);&lt;br /&gt;
f.push([&amp;quot;行末に貼り付け&amp;quot;,&amp;quot;L c&amp;quot;,function(_){ //2015/09/30&lt;br /&gt;
  var c=ClipboardData.GetData().replace(/(\r\n|[\r\n])$/,&amp;quot;&amp;quot;); return _.replace(/$/gm,c) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;★行頭／行末に挿入...&lt;br /&gt;
:入力した文字列を、各行の行頭/行末に挿入します。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;行頭に挿入...&amp;quot;,&amp;quot;L&amp;quot;,function(_){ //2019/06/01&lt;br /&gt;
  var p=Prompt(&amp;quot;行頭に挿入する文字列:&amp;quot;,&amp;quot;&amp;quot;); if(p)return _.replace(/^/gm,p) }]);&lt;br /&gt;
f.push([&amp;quot;行末に挿入...&amp;quot;,&amp;quot;L&amp;quot;,function(_){ //2019/06/01&lt;br /&gt;
  var p=Prompt(&amp;quot;行末に挿入する文字列:&amp;quot;,&amp;quot;&amp;quot;); if(p)return _.replace(/$/gm,p) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;各行先頭／末尾に挿入...&lt;br /&gt;
:下記の条件で置換を行い、入力した文字列を各行の先頭/末尾に挿入します。&lt;br /&gt;
:&amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;※矩形対応には Mery 2.1.0 以降が必要です。&amp;lt;/b&amp;gt;&lt;br /&gt;
:&amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;※Mery の仕様上、ゼロ幅には対応していません。&amp;lt;/b&amp;gt;ゼロ幅で実行すると、&amp;lt;b&amp;gt;表示行頭&amp;lt;/b&amp;gt;に文字列が挿入されます。&lt;br /&gt;
:{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 検索文字列 (先頭)&lt;br /&gt;
| &amp;lt;code&amp;gt;^(?=.&amp;amp;#x7C;\n)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! 検索文字列 (末尾)&lt;br /&gt;
| &amp;lt;code&amp;gt;(?&amp;lt;=.)$&amp;amp;#x7C;^(?=\n)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! 置換文字列&lt;br /&gt;
| ※入力した文字列&lt;br /&gt;
|-&lt;br /&gt;
! フラグ&lt;br /&gt;
| 正規表現を使用する (meFindReplaceRegExp)&amp;lt;br&amp;gt;選択した範囲のみ (meReplaceSelOnly)&amp;lt;br&amp;gt;すべて置換 (meReplaceAll)&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;各行先頭に挿入...&amp;quot;,&amp;quot;&amp;quot;,function(_,$){ //2019/06/01&lt;br /&gt;
  var p=Prompt(&amp;quot;各行先頭に挿入する文字列:&amp;quot;,&amp;quot;&amp;quot;); if(p)$.Replace(&amp;quot;^(?=.|\\n)&amp;quot;, p, meFindReplaceRegExp+meReplaceSelOnly+meReplaceAll) }]);&lt;br /&gt;
f.push([&amp;quot;各行末尾に挿入...&amp;quot;,&amp;quot;&amp;quot;,function(_,$){ //2019/06/01&lt;br /&gt;
  var p=Prompt(&amp;quot;各行末尾に挿入する文字列:&amp;quot;,&amp;quot;&amp;quot;); if(p)$.Replace(&amp;quot;(?&amp;lt;=.)$|^(?=\\n)&amp;quot;, p, meFindReplaceRegExp+meReplaceSelOnly+meReplaceAll) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;行頭に連番挿入 (#)&lt;br /&gt;
:行頭に連番 (1), (2), (3) … を挿入します。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;行頭に連番挿入 (#)&amp;quot;,&amp;quot;L&amp;quot;,function(_){ //2015/09/30&lt;br /&gt;
  var re=/^/gm, n=1, pf=&amp;quot;(&amp;quot;, sf=&amp;quot;)&amp;quot;; return _.replace(re,function(){return pf+(n++)+sf}) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
;行頭に連番挿入 (#/Σ)&lt;br /&gt;
:選択行数を Σ として、連番 (1/Σ), (2/Σ), (3/Σ) … を挿入します。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;行頭に連番挿入 (#/Σ)&amp;quot;,&amp;quot;L&amp;quot;,function(_){ //2015/09/30&lt;br /&gt;
  var re=/^/gm, n=1, m=(_.match(re)||[]).length, pf=&amp;quot;(&amp;quot;, sf=&amp;quot;/&amp;quot;+m+&amp;quot;)&amp;quot;; return _.replace(re,function(){return pf+(n++)+sf}) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
;行頭に連番挿入 (0#)&lt;br /&gt;
:連番が2桁以上になる場合、桁揃えした連番 (01), (02), (03) … を挿入します。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;行頭に連番挿入 (0#)&amp;quot;,&amp;quot;L&amp;quot;,function(_){ //2015/09/30&lt;br /&gt;
  var re=/^/gm, n=1, m=(_.match(re)||[]).length, pf=&amp;quot;(&amp;quot;, sf=&amp;quot;)&amp;quot;, sp=&amp;quot;0&amp;quot;, k=String(m).length, sp=new Array(k).join(sp); return _.replace(re,function(){return pf+(sp+(n++)).slice(-k)+sf}) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;※行頭に連番挿入系コマンドの比較&lt;br /&gt;
:{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 例文 !! (#) !! (#/Σ) !! (0#)&lt;br /&gt;
|-&lt;br /&gt;
| 1行目&amp;lt;br&amp;gt;2行目&amp;lt;br&amp;gt;…&amp;lt;br&amp;gt;9行目&amp;lt;br&amp;gt;10行目&amp;lt;br&amp;gt;11行目&amp;lt;br&amp;gt;…&amp;lt;br&amp;gt;99行目&amp;lt;br&amp;gt;100行目&lt;br /&gt;
| (1)1行目&amp;lt;br&amp;gt;(2)2行目&amp;lt;br&amp;gt;…&amp;lt;br&amp;gt;(9)9行目&amp;lt;br&amp;gt;(10)10行目&amp;lt;br&amp;gt;(11)11行目&amp;lt;br&amp;gt;…&amp;lt;br&amp;gt;(99)99行目&amp;lt;br&amp;gt;(100)100行目&lt;br /&gt;
| (1/100)1行目&amp;lt;br&amp;gt;(2/100)2行目&amp;lt;br&amp;gt;…&amp;lt;br&amp;gt;(9/100)9行目&amp;lt;br&amp;gt;(10/100)10行目&amp;lt;br&amp;gt;(11/100)11行目&amp;lt;br&amp;gt;…&amp;lt;br&amp;gt;(99/100)99行目&amp;lt;br&amp;gt;(100/100)100行目&lt;br /&gt;
| (001)1行目&amp;lt;br&amp;gt;(002)2行目&amp;lt;br&amp;gt;…&amp;lt;br&amp;gt;(009)9行目&amp;lt;br&amp;gt;(010)10行目&amp;lt;br&amp;gt;(011)11行目&amp;lt;br&amp;gt;…&amp;lt;br&amp;gt;(099)99行目&amp;lt;br&amp;gt;(100)100行目&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
;連番を出力...&lt;br /&gt;
:&amp;lt;code&amp;gt;&amp;lt;i&amp;gt;数値&amp;lt;/i&amp;gt;..&amp;lt;i&amp;gt;数値&amp;lt;/i&amp;gt;&amp;lt;/code&amp;gt;を含む文字列（数値は 0 以上の整数）を入力すると、連番に展開して書き出します。&lt;br /&gt;
:{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!例&lt;br /&gt;
| &amp;lt;code&amp;gt;8..10&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;10..8&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;第01..3章&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;第1..003章&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;1..3..9&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!結果&lt;br /&gt;
| 8&amp;lt;br&amp;gt;9&amp;lt;br&amp;gt;10&lt;br /&gt;
| 10&amp;lt;br&amp;gt;9&amp;lt;br&amp;gt;8&lt;br /&gt;
| 第01章&amp;lt;br&amp;gt;第02章&amp;lt;br&amp;gt;第03章&lt;br /&gt;
| 第001章&amp;lt;br&amp;gt;第002章&amp;lt;br&amp;gt;第003章&lt;br /&gt;
| 1..9&amp;lt;br&amp;gt;2..9&amp;lt;br&amp;gt;3..9&lt;br /&gt;
|-&lt;br /&gt;
!補足&lt;br /&gt;
|&lt;br /&gt;
| 降順可&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;| ゼロ始まりならゼロ埋め&lt;br /&gt;
| 最初のみ展開&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;連番を出力...&amp;quot;,&amp;quot;&amp;quot;,function(_){ //2019/06/01&lt;br /&gt;
  var p=Prompt(&amp;quot;連番を出力: ※例＞ 第1..10章&amp;quot;,_.match(/^.*/)[0]), q=p.replace(/^([\s\S]*?)((0*)[0-9]+)\.\.((0*)[0-9]+)([\s\S]*)$/,function(_,p,n,nz,m,mz,q){var r=[],d=Math.max(n.length,m.length),z=(nz||mz)?new Array(d+1).join(&amp;quot;0&amp;quot;):&amp;quot;&amp;quot;,n=Number(n),m=Number(m); if(n&amp;lt;=m){for(;n&amp;lt;=m;n++)r.push(p+(z+n).slice(-d)+q);}else{for(;n&amp;gt;=m;n--)r.push(p+(z+n).slice(-d)+q);} return r.join(&amp;quot;\n&amp;quot;)}); if(q!==p)return q }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==除去/削除==&lt;br /&gt;
&lt;br /&gt;
;★空白文字を除去&lt;br /&gt;
:空白文字（半角空白/全角空白/水平タブ）を除去します。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;空白文字を除去&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2013/09/15&lt;br /&gt;
  return _.replace(/[ 　\t]+/g,&amp;quot;&amp;quot;) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
;★行頭行末／行頭／行末の空白を除去&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;行頭行末の空白を除去&amp;quot;,&amp;quot;L&amp;quot;,function(_){ //2013/09/15&lt;br /&gt;
  return _.replace(/^[ 　\t]+|[ 　\t]+$/gm,&amp;quot;&amp;quot;) }]);&lt;br /&gt;
f.push([&amp;quot;行頭の空白を除去&amp;quot;,&amp;quot;L&amp;quot;,function(_){ //2015/02/14&lt;br /&gt;
  return _.replace(/^[ 　\t]+/gm,&amp;quot;&amp;quot;) }]);&lt;br /&gt;
f.push([&amp;quot;行末の空白を除去&amp;quot;,&amp;quot;L&amp;quot;,function(_){ //2015/02/14&lt;br /&gt;
  return _.replace(/[ 　\t]+$/gm,&amp;quot;&amp;quot;) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;空白行の空白を除去&lt;br /&gt;
:空白行を、改行のみの空行にします。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;空白行の空白を除去&amp;quot;,&amp;quot;L&amp;quot;,function(_){ //2017/06/25&lt;br /&gt;
  return _.replace(/^[ 　\t]+$/gm,&amp;quot;&amp;quot;) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;★空白行を削除&lt;br /&gt;
:空白行（半角空白/全角空白/水平タブ/改行のみの行）を削除します。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;空白行を削除&amp;quot;,&amp;quot;L&amp;quot;,function(_){ //2015/03/14&lt;br /&gt;
  return _.replace(/^[ 　\t]*$\n?/gm,&amp;quot;&amp;quot;) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
;空白行を圧縮&lt;br /&gt;
:連続する空白行を1行の空行に変換します。連続しない（＝1行の）空白行は削除します。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;空白行を圧縮&amp;quot;,&amp;quot;L&amp;quot;,function(_){ //2015/02/14&lt;br /&gt;
  return _.replace(/^[ 　\t]+$/gm,&amp;quot;&amp;quot;).replace(/^(\n)\n+|^\n/gm,&amp;quot;$1&amp;quot;) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
;空白行を減量&lt;br /&gt;
:連続する空白行を1行分削減します。&lt;br /&gt;
:空白行の連続が3行なら2行に、2行なら1行に、1行なら0行（＝削除）になります。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;空白行を減量&amp;quot;,&amp;quot;L&amp;quot;,function(_){ //2015/02/14&lt;br /&gt;
  return _.replace(/((?:^[ 　\t]*$\n?)*)(?:^[ 　\t]*$\n?)/gm,&amp;quot;$1&amp;quot;) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;★重複行を単一化&lt;br /&gt;
:同じ内容の行が2個以上ある場合、2個目以降を削除します。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;重複行を単一化&amp;quot;,&amp;quot;L&amp;quot;,function(_){ //2018/01/15&lt;br /&gt;
  var a=_.split(&amp;quot;\n&amp;quot;),b=[],map={}; for(var i=0;i&amp;lt;a.length;i++){ if(!Object.prototype.hasOwnProperty.call(map,a[i])){map[a[i]]=true;b.push(a[i])} } return b.join(&amp;quot;\n&amp;quot;) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
;重複行を単一化(空白行は除く)&lt;br /&gt;
:空白行（半角空白/全角空白/水平タブ/改行のみの行）は例外とし、削除しません。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;重複行を単一化(空白行は除く)&amp;quot;,&amp;quot;L&amp;quot;,function(_){ //2018/01/15&lt;br /&gt;
  var a=_.split(&amp;quot;\n&amp;quot;),b=[],map={}; for(var i=0;i&amp;lt;a.length;i++){ if(/^[ 　\t]*$/.test(a[i])||!Object.prototype.hasOwnProperty.call(map,a[i])){map[a[i]]=true;b.push(a[i])} } return b.join(&amp;quot;\n&amp;quot;) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
;★連続する重複行を単一化&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;連続する重複行を単一化&amp;quot;,&amp;quot;L&amp;quot;,function(_){ //2015/02/14&lt;br /&gt;
  return _.replace(/(^.*$)\n(^\1$\n?)+/gm,&amp;quot;$2&amp;quot;) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;重複する／しない行を抽出&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;重複する行を抽出&amp;quot;,&amp;quot;L&amp;quot;,function(_){ //2018/01/15&lt;br /&gt;
  var a=_.split(&amp;quot;\n&amp;quot;),b=[],k=0,map={}; for(var i=0;i&amp;lt;a.length;i++){ if(!Object.prototype.hasOwnProperty.call(map,a[i])){b[k]={dup:false,txt:a[i]};map[a[i]]=k++;}else{b[map[a[i]]].dup=true} } i=b.length;while(--i&amp;gt;=0){ if(b[i].dup){b[i]=b[i].txt}else{b.splice(i,1)} } return b.join(&amp;quot;\n&amp;quot;) }]);&lt;br /&gt;
f.push([&amp;quot;重複しない行を抽出&amp;quot;,&amp;quot;L&amp;quot;,function(_){ //2018/01/15&lt;br /&gt;
  var a=_.split(&amp;quot;\n&amp;quot;),b=[],k=0,map={}; for(var i=0;i&amp;lt;a.length;i++){ if(!Object.prototype.hasOwnProperty.call(map,a[i])){b[k]={dup:false,txt:a[i]};map[a[i]]=k++;}else{b[map[a[i]]].dup=true} } i=b.length;while(--i&amp;gt;=0){ if(!b[i].dup){b[i]=b[i].txt}else{b.splice(i,1)} } return b.join(&amp;quot;\n&amp;quot;) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;※空白行系／重複行系コマンドの比較 （☐ は空白／↵ は改行）&lt;br /&gt;
:{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 例文 !! 空白行&amp;lt;br&amp;gt;を削除 !! 空白行&amp;lt;br&amp;gt;を圧縮 !! 空白行&amp;lt;br&amp;gt;を減量&lt;br /&gt;
!rowspan=&amp;quot;2&amp;quot; width=&amp;quot;6px&amp;quot;|&lt;br /&gt;
! 例文 !! 重複行を&amp;lt;br&amp;gt;単一化 !! 空白行は&amp;lt;br&amp;gt;除く !! 連続する&amp;lt;br&amp;gt;重複行 !! 重複する&amp;lt;br&amp;gt;行を抽出 !! しない&amp;lt;br&amp;gt;行を抽出&lt;br /&gt;
|-style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| 1行目↵&amp;lt;br&amp;gt;☐↵&amp;lt;br&amp;gt;2行目↵&amp;lt;br&amp;gt;☐↵&amp;lt;br&amp;gt;☐☐↵&amp;lt;br&amp;gt;3行目↵&amp;lt;br&amp;gt;☐↵&amp;lt;br&amp;gt;☐☐↵&amp;lt;br&amp;gt;☐☐☐↵&amp;lt;br&amp;gt;4行目&lt;br /&gt;
| 1行目↵&amp;lt;br&amp;gt;2行目↵&amp;lt;br&amp;gt;3行目↵&amp;lt;br&amp;gt;4行目&lt;br /&gt;
| 1行目↵&amp;lt;br&amp;gt;2行目↵&amp;lt;br&amp;gt;↵&amp;lt;br&amp;gt;3行目↵&amp;lt;br&amp;gt;↵&amp;lt;br&amp;gt;4行目&lt;br /&gt;
| 1行目↵&amp;lt;br&amp;gt;2行目↵&amp;lt;br&amp;gt;☐↵&amp;lt;br&amp;gt;3行目↵&amp;lt;br&amp;gt;☐↵&amp;lt;br&amp;gt;☐☐↵&amp;lt;br&amp;gt;4行目&lt;br /&gt;
| あいう↵&amp;lt;br&amp;gt;あいう↵&amp;lt;br&amp;gt;☐↵&amp;lt;br&amp;gt;☐↵&amp;lt;br&amp;gt;☐☐↵&amp;lt;br&amp;gt;あいう↵&amp;lt;br&amp;gt;あいう↵&amp;lt;br&amp;gt;カキク↵&amp;lt;br&amp;gt;さしす↵&amp;lt;br&amp;gt;カキク&amp;lt;br&amp;gt;&lt;br /&gt;
| あいう↵&amp;lt;br&amp;gt;☐↵&amp;lt;br&amp;gt;☐☐↵&amp;lt;br&amp;gt;カキク↵&amp;lt;br&amp;gt;さしす&lt;br /&gt;
| あいう↵&amp;lt;br&amp;gt;☐↵&amp;lt;br&amp;gt;☐↵&amp;lt;br&amp;gt;☐☐↵&amp;lt;br&amp;gt;カキク↵&amp;lt;br&amp;gt;さしす&lt;br /&gt;
| あいう↵&amp;lt;br&amp;gt;☐↵&amp;lt;br&amp;gt;☐☐↵&amp;lt;br&amp;gt;あいう↵&amp;lt;br&amp;gt;カキク↵&amp;lt;br&amp;gt;さしす↵&amp;lt;br&amp;gt;カキク&lt;br /&gt;
| あいう↵&amp;lt;br&amp;gt;☐↵&amp;lt;br&amp;gt;カキク&lt;br /&gt;
| ☐☐↵&amp;lt;br&amp;gt;さしす&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
;★入力文字列を含む／含まない行を削除...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;入力文字列を含む行を削除...&amp;quot;,&amp;quot;L&amp;quot;,function(_){ //2019/06/01&lt;br /&gt;
  var p=Prompt(&amp;quot;以下の文字列を含む行を削除:&amp;quot;,&amp;quot;&amp;quot;); if(p)return _.replace(/^(.*)$\n?/gm,function(s,t){return (t.indexOf(p)&amp;gt;=0)? &amp;quot;&amp;quot;:s}) }]);&lt;br /&gt;
f.push([&amp;quot;入力文字列を含まない行を削除...&amp;quot;,&amp;quot;L&amp;quot;,function(_){ //2019/06/01&lt;br /&gt;
  var p=Prompt(&amp;quot;以下の文字列を含まない行を削除:&amp;quot;,&amp;quot;&amp;quot;); if(p)return _.replace(/^(.*)$\n?/gm,function(s,t){return (t.indexOf(p)&amp;gt;=0)? s:&amp;quot;&amp;quot;}) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;正規表現に一致する／しない行を削除...&lt;br /&gt;
:&amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;※正規表現は JavaScript (JScript) の仕様で記述します。&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;正規表現に一致する行を削除...&amp;quot;,&amp;quot;L&amp;quot;,function(_){ //2019/06/01&lt;br /&gt;
  var p=Prompt(&amp;quot;以下の正規表現に一致する行を削除:&amp;quot;,&amp;quot;&amp;quot;); if(p){ p=new RegExp(p); return _.replace(/^(.*)$\n?/gm,function(s,t){return p.test(t)? &amp;quot;&amp;quot;:s}) } }]);&lt;br /&gt;
f.push([&amp;quot;正規表現に一致しない行を削除...&amp;quot;,&amp;quot;L&amp;quot;,function(_){ //2019/06/01&lt;br /&gt;
  var p=Prompt(&amp;quot;以下の正規表現に一致しない行を削除:&amp;quot;,&amp;quot;&amp;quot;); if(p){ p=new RegExp(p); return _.replace(/^(.*)$\n?/gm,function(s,t){return p.test(t)? s:&amp;quot;&amp;quot;}) } }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;行頭／行末から数文字削除...&lt;br /&gt;
:各行の行頭/行末から指定した文字数分を削除します。&lt;br /&gt;
:※結合文字列には対応していません。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;行頭から数文字削除...&amp;quot;,&amp;quot;L&amp;quot;,function(_){ //2019/06/01&lt;br /&gt;
  var n=parseInt(Prompt(&amp;quot;行頭から削除する字数: ※半角数字&amp;quot;,&amp;quot;&amp;quot;)); if(n&amp;gt;0)return _.replace(new RegExp(&amp;quot;^(?:[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[^\\n]){0,&amp;quot;+n+&amp;quot;}&amp;quot;,&amp;quot;gm&amp;quot;),&amp;quot;&amp;quot;) }]);&lt;br /&gt;
f.push([&amp;quot;行末から数文字削除...&amp;quot;,&amp;quot;L&amp;quot;,function(_){ //2019/06/01&lt;br /&gt;
  var n=parseInt(Prompt(&amp;quot;行末から削除する字数: ※半角数字&amp;quot;,&amp;quot;&amp;quot;)); if(n&amp;gt;0)return _.replace(new RegExp(&amp;quot;(?:[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[^\\n]){0,&amp;quot;+n+&amp;quot;}$&amp;quot;,&amp;quot;gm&amp;quot;),&amp;quot;&amp;quot;) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==検索/置換==&lt;br /&gt;
&lt;br /&gt;
;ASCII文字を単語検索&lt;br /&gt;
:空白文字などを除く ASCII 印字可能文字 (U+0021～007E) が1文字以上連続する箇所を検索します。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;ASCII文字を単語検索&amp;quot;,&amp;quot;&amp;quot;,function(_,$){ //2017/05/28&lt;br /&gt;
  $.Find(&amp;quot;(?&amp;lt;!\\g&amp;lt;Graph&amp;gt;)(?&amp;lt;Graph&amp;gt;[!-~])+&amp;quot;, meFindReplaceCase+meFindReplaceRegExp+meFindAround+meFindNext) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
;半角カナを単語検索&lt;br /&gt;
:半角カナ類 (ｦ～ｯ ｱ～ﾝ ｡ ｢ ｣ ､ ･ ｰ ﾞ ﾟ) が1文字以上連続する箇所を検索します。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;半角カナを単語検索&amp;quot;,&amp;quot;&amp;quot;,function(_,$){ //2017/05/28&lt;br /&gt;
  $.Find(&amp;quot;(?&amp;lt;!\\g&amp;lt;HKana&amp;gt;)(?&amp;lt;HKana&amp;gt;[｡-ﾟ])+&amp;quot;, meFindReplaceCase+meFindReplaceRegExp+meFindAround+meFindNext) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
;全角英数を単語検索&lt;br /&gt;
:全角英数字 (０～９ Ａ～Ｚ ａ～ｚ) が1文字以上連続する箇所を検索します。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;全角英数を単語検索&amp;quot;,&amp;quot;&amp;quot;,function(_,$){ //2017/05/28&lt;br /&gt;
  $.Find(&amp;quot;(?&amp;lt;!\\g&amp;lt;FAlnm&amp;gt;)(?&amp;lt;FAlnm&amp;gt;[０-９Ａ-Ｚａ-ｚ])+&amp;quot;, meFindReplaceCase+meFindReplaceRegExp+meFindAround+meFindNext) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
;CJK漢字を単語検索&lt;br /&gt;
:CJK (China/Japan/Korea) の漢字が1文字以上連続する箇所を検索します。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;CJK漢字を単語検索&amp;quot;,&amp;quot;&amp;quot;,function(_,$){ //2017/05/28&lt;br /&gt;
  $.Find(&amp;quot;(?&amp;lt;!\\g&amp;lt;Han&amp;gt;\\g&amp;lt;VS&amp;gt;|\\g&amp;lt;Han&amp;gt;)(?:(?&amp;lt;Han&amp;gt;[\\p{Han}])(?&amp;lt;VS&amp;gt;[\\x{FE00}-\\x{FE02}\\x{E0100}-\\x{E01EF}])?)+&amp;quot;, meFindReplaceCase+meFindReplaceRegExp+meFindAround+meFindNext) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;ひらがなを単語検索&lt;br /&gt;
;カタカナを単語検索&lt;br /&gt;
:平仮名/片仮名が1文字以上連続する箇所を検索します。&lt;br /&gt;
:※検索対象となる文字は、下表のとおりです。囲み文字 ㋐ や組み文字 ㍍ は含まれません。&lt;br /&gt;
:{|class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
! !! 種別 !! 文字 !! Shift_JIS !! Unicode !! 備考&lt;br /&gt;
|-&lt;br /&gt;
!rowspan=&amp;quot;3&amp;quot;| 平仮名&amp;lt;br&amp;gt;(かな)&amp;lt;br&amp;gt;89字&lt;br /&gt;
|rowspan=&amp;quot;3&amp;quot;| 全角ひらがな (89字)&lt;br /&gt;
| ぁ ～ ん&amp;lt;br&amp;gt;ゔゕゖ || 0x829F～82F1&amp;lt;br&amp;gt;- || U+3041～3093&amp;lt;br&amp;gt;U+3094～3096 || ※SJIS では ゔゕゖ の3字は保存不可&lt;br /&gt;
|-&lt;br /&gt;
| ゝゞ || 0x8154, 8155 || U+309D, 309E || 踊り字（繰り返し）&lt;br /&gt;
|-&lt;br /&gt;
| ゟ || - || U+309F || 「より」の合字&lt;br /&gt;
|-&lt;br /&gt;
!rowspan=&amp;quot;5&amp;quot;| 片仮名&amp;lt;br&amp;gt;(カナ)&amp;lt;br&amp;gt;164字&lt;br /&gt;
|rowspan=&amp;quot;3&amp;quot;| 全角カタカナ (93字)&lt;br /&gt;
| ァ ～ ヶ&amp;lt;br&amp;gt;ヷヸヹヺ || 0x8340～8396&amp;lt;br&amp;gt;- || U+30A1～30F6&amp;lt;br&amp;gt;U+30F7～30FA || ※SJIS では ヷヸヹヺ の4字は保存不可&lt;br /&gt;
|-&lt;br /&gt;
| ヽヾ || 0x8152, 8153 || U+30FD, 30FE || 踊り字（繰り返し）&lt;br /&gt;
|-&lt;br /&gt;
| ヿ || - || U+30FF || 「コト」の合字&lt;br /&gt;
|-&lt;br /&gt;
| 半角カタカナ (55字) || ｦ ～ ｯ&amp;lt;br&amp;gt;ｱ ～ ﾝ || 0xA6～AF&amp;lt;br&amp;gt;0xB1～DD || U+FF66～FF6F&amp;lt;br&amp;gt;U+FF71～FF9D ||&lt;br /&gt;
|-&lt;br /&gt;
| カタカナ拡張 (16字) || ㇰ ～ ㇿ || - || U+31F0～31FF || アイヌ語表記などに用いる&lt;br /&gt;
|-&lt;br /&gt;
!rowspan=&amp;quot;5&amp;quot;| 記号&amp;lt;br&amp;gt;8字&lt;br /&gt;
|colspan=&amp;quot;5&amp;quot;| &amp;lt;span style=&amp;quot;color:#c00;&amp;quot;&amp;gt;※以下は、&amp;lt;b&amp;gt;仮名の後&amp;lt;/b&amp;gt;に続いて出現する場合のみ検索される。&amp;lt;/span&amp;gt;例＞ 複製゜ー&amp;lt;span style=&amp;quot;background:#b4e4b4;&amp;quot;&amp;gt;コヒ゜ー&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 半角/全角濁点 (2字) || ﾞ ゛ || 0xDE, 814A || U+FF9E, 309B ||&lt;br /&gt;
|-&lt;br /&gt;
| 半角/全角半濁点 (2字) || ﾟ ゜ || 0xDF, 814B || U+FF9F, 309C ||&lt;br /&gt;
|-&lt;br /&gt;
| 結合用濁点/半濁点 (2字) || &amp;amp;#x3099; &amp;amp;#x309A; || - || U+3099, 309A || 結合文字&lt;br /&gt;
|-&lt;br /&gt;
| 半角/全角長音符 (2字) || ｰ ー || 0xB0, 815B || U+FF70, 30FC ||&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;ひらがなを単語検索&amp;quot;,&amp;quot;&amp;quot;,function(_,$){ //2017/05/28&lt;br /&gt;
  $.Find(&amp;quot;(?&amp;lt;!\\g&amp;lt;Kana&amp;gt;\\g&amp;lt;Mark&amp;gt;\\g&amp;lt;Mark&amp;gt;|\\g&amp;lt;Kana&amp;gt;\\g&amp;lt;Mark&amp;gt;|\\g&amp;lt;Kana&amp;gt;)(?:(?&amp;lt;Kana&amp;gt;[ぁ-\\x{3096}ゝゞ\\x{309F}])(?&amp;lt;Mark&amp;gt;[\\x{3099}\\x{309A}゛ﾞ゜ﾟーｰ])*)+&amp;quot;, meFindReplaceCase+meFindReplaceRegExp+meFindAround+meFindNext) }]);&lt;br /&gt;
f.push([&amp;quot;カタカナを単語検索&amp;quot;,&amp;quot;&amp;quot;,function(_,$){ //2017/05/28&lt;br /&gt;
  $.Find(&amp;quot;(?&amp;lt;!\\g&amp;lt;Kana&amp;gt;\\g&amp;lt;Mark&amp;gt;\\g&amp;lt;Mark&amp;gt;|\\g&amp;lt;Kana&amp;gt;\\g&amp;lt;Mark&amp;gt;|\\g&amp;lt;Kana&amp;gt;)(?:(?&amp;lt;Kana&amp;gt;[ァ-\\x{30FA}ヽヾ\\x{30FF}ｦ-ｯｱ-ﾝ\\x{31F0}-\\x{31FF}])(?&amp;lt;Mark&amp;gt;[\\x{3099}\\x{309A}゛ﾞ゜ﾟーｰ])*)+&amp;quot;, meFindReplaceCase+meFindReplaceRegExp+meFindAround+meFindNext) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;CP932依存文字を検索&lt;br /&gt;
:Shift_JIS (CP932) の環境依存文字 (NEC特殊文字・IBM拡張文字・ユーザー定義外字・未定義文字) を検索します。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;CP932依存文字を検索&amp;quot;,&amp;quot;&amp;quot;,function(_,$){ //2017/05/28&lt;br /&gt;
  $.Find(&amp;quot;[纊褜鍈銈蓜俉炻昱棈鋹曻彅丨仡仼伀伃伹佖侒侊侚侔俍偀倢俿倞偆偰偂傔僴僘兊兤冝冾凬刕劜劦勀勛匀匇匤卲厓厲叝﨎咜咊咩哿喆坙坥垬埈埇﨏\\x{FA10}增墲夋奓奛奝奣妤妺孖寀甯寘寬尞岦岺峵崧嵓﨑嵂嵭嶸嶹巐弡弴彧德忞恝悅悊惞惕愠惲愑愷愰憘戓抦揵摠撝擎敎昀昕昻昉昮昞昤晥晗晙\\x{FA12}晳暙暠暲暿曺朎\\x{F929}杦枻桒柀栁桄棏﨓楨﨔榘槢樰橫橆橳橾櫢櫤毖氿汜沆汯泚洄涇浯涖涬淏淸淲淼渹湜渧渼溿澈澵濵瀅瀇瀨炅炫焏焄煜煆煇\\x{FA15}燁燾犱犾猤\\x{FA16}獷玽珉珖珣珒琇珵琦琪琩琮瑢璉璟甁畯皂皜皞皛皦\\x{FA17}睆劯砡硎硤硺礰\\x{FA18}\\x{FA19}\\x{FA1A}禔\\x{FA1B}禛竑竧\\x{FA1C}竫箞\\x{FA1D}絈絜綷綠緖繒罇羡\\x{FA1E}茁荢荿菇菶葈蒴蕓蕙蕫﨟薰\\x{FA20}﨡蠇裵訒訷詹誧誾諟\\x{FA22}諶譓譿賰賴贒赶﨣軏﨤\\x{FA25}遧郞\\x{FA26}鄕鄧釚釗釞釭釮釤釥鈆鈐鈊鈺鉀鈼鉎鉙鉑鈹鉧銧鉷鉸鋧鋗鋙鋐﨧鋕鋠鋓錥錡鋻﨨錞鋿錝錂鍰鍗鎤鏆鏞鏸鐱鑅鑈閒\\x{F9DC}﨩隝隯霳霻靃靍靏靑靕顗顥\\x{FA2A}\\x{FA2B}餧\\x{FA2C}馞驎髙髜魵魲鮏鮱鮻鰀鵰鵫\\x{FA2D}鸙黑①-⑳Ⅰ-Ⅹⅰ-ⅹ㍉㌔㌢㍍㌘㌧㌃㌶㍑㍗㌍㌦㌣㌫㍊㌻㎜㎝㎞㎎㎏㏄㎡〝〟№㏍℡㊤㊥㊦㊧㊨㈱㈲㈹㍾㍽㍼㍻∮∑∟⊿￤＇＂\\x{E000}-\\x{E757}\\x{80}\\x{F8F0}-\\x{F8F3}]&amp;quot;, meFindReplaceCase+meFindReplaceRegExp+meFindAround+meFindNext) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;CJK互換漢字を検索&lt;br /&gt;
:CJK互換漢字 (U+F900～FAD9, 2F800～2FA1D) を検索します（CJK統合漢字扱いの12字 および 未定義の2字は除く）。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;CJK互換漢字を検索&amp;quot;,&amp;quot;&amp;quot;,function(_,$){ //2018/01/15&lt;br /&gt;
  $.Find(&amp;quot;[[^﨎﨏﨑﨓﨔﨟﨡﨣﨤﨧﨨﨩\\x{FA6E}\\x{FA6F}]&amp;amp;&amp;amp;[\\x{F900}-\\x{FAD9}\\x{2F800}-\\x{2FA1D}]]&amp;quot;, meFindReplaceCase+meFindReplaceRegExp+meFindAround+meFindNext) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;サロゲートペアを検索&lt;br /&gt;
:UTF-16において2バイト2個組で1文字を形成する文字 (U+10000～10FFFF) を検索します。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;サロゲートペアを検索&amp;quot;,&amp;quot;&amp;quot;,function(_,$){ //2015/09/30&lt;br /&gt;
  $.Find(&amp;quot;[\\x{10000}-\\x{10FFFF}]&amp;quot;, meFindReplaceCase+meFindReplaceRegExp+meFindAround+meFindNext) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;結合文字列を検索&lt;br /&gt;
:他の文字と組み合わせて1文字を形成する文字列を検索します。&lt;br /&gt;
:※結合文字列や異体字を表示するには、アプリやフォントの対応が必要です。&lt;br /&gt;
:{|class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
!&lt;br /&gt;
!colspan=&amp;quot;4&amp;quot;| ラテン文字&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot;| ひらがな&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot;| 漢字(異体字)&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot;| 囲み文字&lt;br /&gt;
|-&lt;br /&gt;
! 実際の表示&lt;br /&gt;
| ǖ ||colspan=&amp;quot;3&amp;quot;| u&amp;amp;#x308;&amp;amp;#x304;&lt;br /&gt;
| じ ||colspan=&amp;quot;2&amp;quot;| し&amp;amp;#x3099;&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;| 辻&amp;amp;#xE0100;&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;| あ&amp;amp;#x20DE;&lt;br /&gt;
|-&lt;br /&gt;
! 文字の構成&lt;br /&gt;
| ǖ || u||&amp;amp;#x308;||&amp;amp;#x304;&lt;br /&gt;
| じ || し||&amp;amp;#x3099;&lt;br /&gt;
| 辻||&amp;amp;#xE0100;&lt;br /&gt;
| あ||&amp;amp;#x20DE;&lt;br /&gt;
|-&lt;br /&gt;
! Unicode&lt;br /&gt;
| 01D6 || 0075||0308||0304&lt;br /&gt;
| 3058 || 3057||3099&lt;br /&gt;
| 8FBB||E0100&lt;br /&gt;
| 3042||20DE&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;結合文字列を検索&amp;quot;,&amp;quot;&amp;quot;,function(_,$){ //2017/05/28&lt;br /&gt;
  $.Find(&amp;quot;(?:[^\\p{M}\\n]|^)[\\p{M}]+&amp;quot;, meFindReplaceCase+meFindReplaceRegExp+meFindAround+meFindNext) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;選択文字列を検索&lt;br /&gt;
:下記の条件で検索を行います。&lt;br /&gt;
:&amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;※Mery の仕様上、改行や折り返しを含むと検索強調が不完全になります。&amp;lt;/b&amp;gt;&lt;br /&gt;
:{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 検索文字列&lt;br /&gt;
| ※選択文字列&lt;br /&gt;
|-&lt;br /&gt;
! フラグ&lt;br /&gt;
| 大文字と小文字を区別する (meFindReplaceCase)&amp;lt;br&amp;gt;正規表現を使用する (meFindReplaceRegExp)&amp;lt;br&amp;gt;文末まで検索したら文頭に移動する (meFindAround)&amp;lt;br&amp;gt;下/次を検索 (meFindNext)&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;選択文字列を検索&amp;quot;,&amp;quot;s&amp;quot;,function(_,$){ //2019/06/01&lt;br /&gt;
  var acp=$.GetActivePos(),anp=$.GetAnchorPos(),sx=ScrollX,sy=ScrollY; Redraw=false; $.Find(_.replace(/[$()*+.?\[\\\]^{|}]/g,&amp;quot;\\$&amp;amp;&amp;quot;), meFindReplaceCase+meFindReplaceRegExp+meFindAround+meFindNext); $.SetActivePos(acp);$.SetAnchorPos(anp);ScrollX=sx;ScrollY=sy; Redraw=true; }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;選択文字列をすべて削除&lt;br /&gt;
:下記の条件で置換を行い、選択文字列を削除します。&lt;br /&gt;
:{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 検索文字列&lt;br /&gt;
| ※選択文字列&lt;br /&gt;
|-&lt;br /&gt;
! 置換文字列&lt;br /&gt;
| ※空欄&lt;br /&gt;
|-&lt;br /&gt;
! フラグ&lt;br /&gt;
| 大文字と小文字を区別する (meFindReplaceCase)&amp;lt;br&amp;gt;正規表現を使用する (meFindReplaceRegExp)&amp;lt;br&amp;gt;すべて置換 (meReplaceAll)&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;選択文字列をすべて削除&amp;quot;,&amp;quot;s&amp;quot;,function(_,$){ //2019/06/01&lt;br /&gt;
  $.Replace(_.replace(/[$()*+.?\[\\\]^{|}]/g,&amp;quot;\\$&amp;amp;&amp;quot;), &amp;quot;&amp;quot;, meFindReplaceCase+meFindReplaceRegExp+meReplaceAll) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;検索強調をすべて解除&lt;br /&gt;
:[検索]→[検索文字列の強調を解除] をすべての文書で実行します。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;検索強調をすべて解除&amp;quot;,&amp;quot;&amp;quot;,function(){ //2015/03/14&lt;br /&gt;
  for(var ei=0;ei&amp;lt;Editors.Count;ei++){var d=Editors.Item(ei).Documents; for(var i=0;i&amp;lt;d.Count;i++){d.Item(i).HighlightFind=false}} }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;検索結果カウント&lt;br /&gt;
:前回（直前）の検索条件で文書全体を検索し直し、一致した件数をステータスバーに表示します。&lt;br /&gt;
:&amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;※検索条件が複雑なほど、件数が多いほど処理に時間がかかります&amp;lt;/b&amp;gt;（作者の環境では、1000件で約2秒かかりました）。&lt;br /&gt;
:※処理に時間をかけたくない場合は「&amp;lt;b&amp;gt;[[検索ヒット数表示]]&amp;lt;/b&amp;gt;」プラグインの導入をオススメします。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;検索結果カウント&amp;quot;,&amp;quot;&amp;quot;,function(_,$){ //2015/09/30&lt;br /&gt;
  var t=new Date(),n=-1,acp=$.GetActivePos(),anp=$.GetAnchorPos(),sx=ScrollX,sy=ScrollY; Redraw=false; Status=&amp;quot;&amp;quot;; $.StartOfDocument(); do{$.FindRepeat(meFindNext);n++}while(!Status); $.SetActivePos(acp);$.SetAnchorPos(anp);ScrollX=sx;ScrollY=sy; Redraw=true; Status=n+&amp;quot;件の検索結果 (処理時間: &amp;quot;+(new Date()-t)/1000+&amp;quot;秒)&amp;quot; }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==文書情報==&lt;br /&gt;
&lt;br /&gt;
;総字行数カウント&lt;br /&gt;
:総文字数と総表示行数をステータスバーに表示します。&lt;br /&gt;
:表示される数値は「すべて選択」時に表示される字数・行数と同値になります。&lt;br /&gt;
:※サロゲートペアは2文字と数えます。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;総字行数カウント&amp;quot;,&amp;quot;&amp;quot;,function(){ //2019/06/01&lt;br /&gt;
  Status=Document.Text.length+&amp;quot;文字 (&amp;quot;+Document.GetLines(meGetLineView)+&amp;quot;表示行)&amp;quot; }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;文字数カウント(空白は除く)&lt;br /&gt;
:選択範囲または文書全体の文字数（改行/半角空白/全角空白/水平タブは除く）をステータスバーに表示します。&lt;br /&gt;
:※サロゲートペアは1文字と数えます。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;文字数カウント(空白は除く)&amp;quot;,&amp;quot;&amp;quot;,function(_){ //2019/06/01&lt;br /&gt;
  Status=(_||Document.Text).replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,&amp;quot;_&amp;quot;).replace(/[\t\n\r 　]/g,&amp;quot;&amp;quot;).length+&amp;quot;文字 (改行･空白抜き)&amp;quot; }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;ステータスバーの表示をコピー&lt;br /&gt;
:ステータスバーの左端の欄に表示されている文字列をコピーします。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;ステータスバーの表示をコピー&amp;quot;,&amp;quot;&amp;quot;,function(){ //2019/06/01&lt;br /&gt;
  ClipboardData.SetData(Status) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;編集中のファイルのパスをコピー&lt;br /&gt;
;編集中の全ファイルのパスをコピー&lt;br /&gt;
:現在編集中のファイルのパスをクリップボードにコピーします。&lt;br /&gt;
:新規作成ファイルなどパスが存在しない場合は、&amp;lt;無題&amp;gt; の文字がコピーされます。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;編集中のファイルのパスをコピー&amp;quot;,&amp;quot;&amp;quot;,function(){ //2015/03/14&lt;br /&gt;
  ClipboardData.SetData(Document.FullName||&amp;quot;&amp;lt;無題&amp;gt;&amp;quot;) }]);&lt;br /&gt;
f.push([&amp;quot;編集中の全ファイルのパスをコピー&amp;quot;,&amp;quot;&amp;quot;,function(){ //2015/03/14&lt;br /&gt;
  var list=[]; for(var ei=0;ei&amp;lt;Editors.Count;ei++){var d=Editors.Item(ei).Documents; for(var i=0;i&amp;lt;d.Count;i++){list.push(d.Item(i).FullName||&amp;quot;&amp;lt;無題&amp;gt;&amp;quot;)}} ClipboardData.SetData(list.join(&amp;quot;\r\n&amp;quot;)) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==並べ替え==&lt;br /&gt;
&lt;br /&gt;
;★行を昇順／降順並べ(Unicode)&lt;br /&gt;
:Unicode 順に並べ替えます。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;行を昇順並べ(Unicode)&amp;quot;,&amp;quot;L&amp;quot;,function(_){ //2017/06/25&lt;br /&gt;
  return _.replace(/\uFFFF/g,&amp;quot;\uFFFF_&amp;quot;).replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,&amp;quot;\uFFFF$&amp;amp;&amp;quot;).split(&amp;quot;\n&amp;quot;).sort().join(&amp;quot;\n&amp;quot;).replace(/\uFFFF([\uD800-\uDBFF][\uDC00-\uDFFF])/g,&amp;quot;$1&amp;quot;).replace(/\uFFFF_/g,&amp;quot;\uFFFF&amp;quot;) }]);&lt;br /&gt;
f.push([&amp;quot;行を降順並べ(Unicode)&amp;quot;,&amp;quot;L&amp;quot;,function(_){ //2017/06/25&lt;br /&gt;
  return _.replace(/\uFFFF/g,&amp;quot;\uFFFF_&amp;quot;).replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,&amp;quot;\uFFFF$&amp;amp;&amp;quot;).split(&amp;quot;\n&amp;quot;).sort().reverse().join(&amp;quot;\n&amp;quot;).replace(/\uFFFF([\uD800-\uDBFF][\uDC00-\uDFFF])/g,&amp;quot;$1&amp;quot;).replace(/\uFFFF_/g,&amp;quot;\uFFFF&amp;quot;) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;★行を逆順並べ&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;行を逆順並べ&amp;quot;,&amp;quot;L&amp;quot;,function(_){ //2014/10/12&lt;br /&gt;
  return _.split(&amp;quot;\n&amp;quot;).reverse().join(&amp;quot;\n&amp;quot;) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;行をシャッフル&lt;br /&gt;
:ランダムに並べ替えます。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;行をシャッフル&amp;quot;,&amp;quot;L&amp;quot;,function(_){ //2014/10/12&lt;br /&gt;
  var a=_.split(&amp;quot;\n&amp;quot;),i=a.length,j,t; while(i){j=Math.floor(Math.random()*i--); t=a[i];a[i]=a[j];a[j]=t;} return a.join(&amp;quot;\n&amp;quot;) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;行を文字数順並べ&lt;br /&gt;
:文字数の少ない順に並べ替えます。&lt;br /&gt;
:※符号点（コードポイント）の少ない順。結合文字列には対応していません。&lt;br /&gt;
:文字数の多い順に並べ替えたい場合は、&amp;lt;code&amp;gt;a.len-b.len&amp;lt;/code&amp;gt; を &amp;lt;code&amp;gt;b.len-a.len&amp;lt;/code&amp;gt; に書き換えてください。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;行を文字数順並べ&amp;quot;,&amp;quot;L&amp;quot;,function(_){ //2019/06/01&lt;br /&gt;
  var b=_.replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,&amp;quot;_&amp;quot;).split(&amp;quot;\n&amp;quot;),a=_.split(&amp;quot;\n&amp;quot;); for(var i=0;i&amp;lt;a.length;i++){a[i]={len:b[i].length,txt:a[i]}} a.sort(function(a,b){return a.len-b.len}); for(var i=0;i&amp;lt;a.length;i++){a[i]=a[i].txt} return a.join(&amp;quot;\n&amp;quot;) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;数行毎に逆順並べ...&lt;br /&gt;
:選択範囲を指定した行数で区切り、区間ごとに逆順に並べ替えます。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;数行毎に逆順並べ...&amp;quot;,&amp;quot;L&amp;quot;,function(_){ //2019/06/01&lt;br /&gt;
  var n=parseInt(Prompt(&amp;quot;以下の行数毎に逆順並べ: ※半角数字&amp;quot;,&amp;quot;&amp;quot;)); if(n&amp;gt;0)return (_+&amp;quot;\n&amp;quot;).replace(new RegExp(&amp;quot;(?:^.*$\\n){1,&amp;quot;+n+&amp;quot;}&amp;quot;,&amp;quot;gm&amp;quot;),function(s){return s.split(&amp;quot;\n&amp;quot;).reverse().join(&amp;quot;\n&amp;quot;)}).slice(1) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
;数行一組で逆順並べ...&lt;br /&gt;
:選択範囲を指定した行数で一組とし、組単位で逆順に並べ替えます。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;数行一組で逆順並べ...&amp;quot;,&amp;quot;L&amp;quot;,function(_){ //2019/06/01&lt;br /&gt;
  var n=parseInt(Prompt(&amp;quot;以下の行数を一組として逆順並べ: ※半角数字&amp;quot;,&amp;quot;&amp;quot;)); if(n&amp;gt;0)return (_+&amp;quot;\n&amp;quot;).match(new RegExp(&amp;quot;(?:^.*$\\n){1,&amp;quot;+n+&amp;quot;}&amp;quot;,&amp;quot;gm&amp;quot;)).reverse().join(&amp;quot;&amp;quot;).slice(0,-1) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;空行毎に逆順並べ&lt;br /&gt;
:選択範囲を空行（改行のみの行）で区切り、区間ごとに逆順に並べ替えます。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;空行毎に逆順並べ&amp;quot;,&amp;quot;L&amp;quot;,function(_){ //2019/06/01&lt;br /&gt;
  return (_+&amp;quot;\n&amp;quot;).replace(/\n+|[\s\S]*?\n(?=\n|$)/g,function(s){return s.split(&amp;quot;\n&amp;quot;).reverse().join(&amp;quot;\n&amp;quot;)}).slice(1) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
;空行一組で逆順並べ&lt;br /&gt;
:選択範囲を空行区切りで一組とし、組単位で逆順に並べ替えます。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;空行一組で逆順並べ&amp;quot;,&amp;quot;L&amp;quot;,function(_){ //2019/06/01&lt;br /&gt;
  return (_+&amp;quot;\n&amp;quot;).match(/\n+|[\s\S]*?\n(?=\n|$)/g).reverse().join(&amp;quot;&amp;quot;).slice(0,-1) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;指定見出しで逆順並べ...&lt;br /&gt;
:入力した文字列から始まる行を「見出し」とし、見出し単位で逆順に並べ替えます。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;指定見出しで逆順並べ...&amp;quot;,&amp;quot;L&amp;quot;,function(_){ //2019/06/01&lt;br /&gt;
  var p=Prompt(&amp;quot;以下の文字から始まる行を一組として逆順並べ:&amp;quot;,&amp;quot;■&amp;quot;).replace(/[$()*+.?\[\\\]^{|}]/g,&amp;quot;\\$&amp;amp;&amp;quot;); if(p){ var r=(_+&amp;quot;\n&amp;quot;).match(new RegExp(&amp;quot;[\\s\\S]*?\\n(?=&amp;quot;+p+&amp;quot;|$)&amp;quot;,&amp;quot;g&amp;quot;)); if(r[0].indexOf(p)!==0)r.push(r.shift()); return r.reverse().join(&amp;quot;&amp;quot;).slice(0,-1) } }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;※行を逆順並べ系コマンドの比較 （☐ は空白／↵ は改行）&lt;br /&gt;
:{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 例文 !! 数行毎&amp;lt;br&amp;gt;(3行) !! 数行一組&amp;lt;br&amp;gt;(3行)&lt;br /&gt;
!rowspan=&amp;quot;2&amp;quot; width=&amp;quot;6px&amp;quot;|&lt;br /&gt;
! 例文 !! 空行毎 !! 空行一組&lt;br /&gt;
|-&lt;br /&gt;
| 1行目1組&amp;lt;br&amp;gt;2行目&amp;lt;br&amp;gt;3行目&amp;lt;br&amp;gt;4行目2組&amp;lt;br&amp;gt;5行目&amp;lt;br&amp;gt;6行目&amp;lt;br&amp;gt;7行目3組&amp;lt;br&amp;gt;8行目&amp;lt;br&amp;gt;9行目&amp;lt;br&amp;gt;10行目4組&amp;lt;br&amp;gt;11行目&lt;br /&gt;
| 3行目&amp;lt;br&amp;gt;2行目&amp;lt;br&amp;gt;1行目1組&amp;lt;br&amp;gt;6行目&amp;lt;br&amp;gt;5行目&amp;lt;br&amp;gt;4行目2組&amp;lt;br&amp;gt;9行目&amp;lt;br&amp;gt;8行目&amp;lt;br&amp;gt;7行目3組&amp;lt;br&amp;gt;11行目&amp;lt;br&amp;gt;10行目4組&lt;br /&gt;
| 10行目4組&amp;lt;br&amp;gt;11行目&amp;lt;br&amp;gt;7行目3組&amp;lt;br&amp;gt;8行目&amp;lt;br&amp;gt;9行目&amp;lt;br&amp;gt;4行目2組&amp;lt;br&amp;gt;5行目&amp;lt;br&amp;gt;6行目&amp;lt;br&amp;gt;1行目1組&amp;lt;br&amp;gt;2行目&amp;lt;br&amp;gt;3行目&lt;br /&gt;
| 1行目1組↵&amp;lt;br&amp;gt;2行目↵&amp;lt;br&amp;gt;3行目↵&amp;lt;br&amp;gt;↵&amp;lt;br&amp;gt;5行目2組↵&amp;lt;br&amp;gt;6行目↵&amp;lt;br&amp;gt;☐☐↵&amp;lt;br&amp;gt;8行目↵&amp;lt;br&amp;gt;↵&amp;lt;br&amp;gt;10行目3組↵&amp;lt;br&amp;gt;11行目&lt;br /&gt;
| 3行目↵&amp;lt;br&amp;gt;2行目↵&amp;lt;br&amp;gt;1行目1組↵&amp;lt;br&amp;gt;↵&amp;lt;br&amp;gt;8行目↵&amp;lt;br&amp;gt;☐☐↵&amp;lt;br&amp;gt;6行目↵&amp;lt;br&amp;gt;5行目2組↵&amp;lt;br&amp;gt;↵&amp;lt;br&amp;gt;11行目↵&amp;lt;br&amp;gt;10行目3組&lt;br /&gt;
| 10行目3組↵&amp;lt;br&amp;gt;11行目↵&amp;lt;br&amp;gt;↵&amp;lt;br&amp;gt;5行目2組↵&amp;lt;br&amp;gt;6行目↵&amp;lt;br&amp;gt;☐☐↵&amp;lt;br&amp;gt;8行目↵&amp;lt;br&amp;gt;↵&amp;lt;br&amp;gt;1行目1組↵&amp;lt;br&amp;gt;2行目↵&amp;lt;br&amp;gt;3行目&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
;文字を逆順並べ&lt;br /&gt;
:各行の文字を逆順に並べ替えます。&lt;br /&gt;
:例＞ &amp;lt;span style=&amp;quot;background:#bfdfff;&amp;quot;&amp;gt;文字を逆順並べ&amp;lt;/span&amp;gt; → べ並順逆を字文&lt;br /&gt;
:※[http://unicode.org/reports/tr29/ UAX #29] で規定される「拡張書記素クラスタ」に部分的に対応しています。対応していない文字は位置がズレます。&lt;br /&gt;
:* サロゲートペア (U+10000～10FFFF)&lt;br /&gt;
:* 結合文字の一部 (U+0300～6F, 1AB0～FF, 1DC0～FF, 20D0～FF, 3099～A, FE20～F)&lt;br /&gt;
:* 異体字セレクタ (U+180B～D, FE00～F, E0100～EF)&lt;br /&gt;
:* ゼロ幅非接合子/接合子 (U+200C～D)&lt;br /&gt;
:* 絵文字の国旗 (U+1F1E6～FF)&lt;br /&gt;
:* 絵文字の肌色指定 (U+1F3FB～F)&lt;br /&gt;
:* 結合不可の制御文字 (U+0000～1F, 007F～9F, 00AD, 2028～9, FEFF)&lt;br /&gt;
:例＞ &amp;lt;span style=&amp;quot;background:#bfdfff;&amp;quot;&amp;gt;𠮟る／りんこ&amp;amp;#x3099;／tre&amp;amp;#x301;ma&amp;lt;/span&amp;gt; → ame&amp;amp;#x301;rt／こ&amp;amp;#x3099;んり／る𠮟&lt;br /&gt;
:{|class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
! 例文&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|𠮟||る&lt;br /&gt;
!rowspan=&amp;quot;6&amp;quot; width=&amp;quot;6px&amp;quot;|&lt;br /&gt;
|り||ん||colspan=&amp;quot;2&amp;quot;|こ&amp;amp;#x3099;&lt;br /&gt;
!rowspan=&amp;quot;6&amp;quot; width=&amp;quot;6px&amp;quot;|&lt;br /&gt;
|t||r||colspan=&amp;quot;2&amp;quot;|e&amp;amp;#x301;||m||a&lt;br /&gt;
|-&lt;br /&gt;
! Unicode&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|20B9F||308B&lt;br /&gt;
|308A||3093||style=&amp;quot;background:#fe6;&amp;quot;|3053||style=&amp;quot;background:#fcc;&amp;quot;|3099&lt;br /&gt;
|0074||0072||style=&amp;quot;background:#fe6;&amp;quot;|0065||style=&amp;quot;background:#fcc;&amp;quot;|0301||006D||0061&lt;br /&gt;
|-&lt;br /&gt;
! UTF-16&lt;br /&gt;
|style=&amp;quot;background:#fe6;&amp;quot;|D842||style=&amp;quot;background:#fcc;&amp;quot;|DF9F||308B&lt;br /&gt;
|colspan=&amp;quot;4&amp;quot;|※同上&lt;br /&gt;
|colspan=&amp;quot;6&amp;quot;|※同上&lt;br /&gt;
|-&lt;br /&gt;
!rowspan=&amp;quot;3&amp;quot;|実行後&lt;br /&gt;
|る||colspan=&amp;quot;2&amp;quot;|𠮟&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|こ&amp;amp;#x3099;||ん||り&lt;br /&gt;
|a||m||colspan=&amp;quot;2&amp;quot;|e&amp;amp;#x301;||r||t&lt;br /&gt;
|-&lt;br /&gt;
|308B||colspan=&amp;quot;2&amp;quot;|20B9F&lt;br /&gt;
|style=&amp;quot;background:#fe6;&amp;quot;|3053||style=&amp;quot;background:#fcc;&amp;quot;|3099||3093||308A&lt;br /&gt;
|0061||006D||style=&amp;quot;background:#fe6;&amp;quot;|0065||style=&amp;quot;background:#fcc;&amp;quot;|0301||0072||0074&lt;br /&gt;
|-&lt;br /&gt;
|308B||style=&amp;quot;background:#fe6;&amp;quot;|D842||style=&amp;quot;background:#fcc;&amp;quot;|DF9F&lt;br /&gt;
|colspan=&amp;quot;4&amp;quot;|※同上&lt;br /&gt;
|colspan=&amp;quot;6&amp;quot;|※同上&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;文字を逆順並べ&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2017/06/25&lt;br /&gt;
  var X=new RegExp(/[\x00-\x1F\x7F-\x9F\xAD\u2028\u2029\uFEFF]|(?:(?:\uD83C[\uDDE6-\uDDFF]){2}|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\s\S])(?:[\u0300-\u036F\u1AB0-\u1AFF\u1DC0-\u1DFF\u20D0-\u20FF\u3099\u309A\uFE20-\uFE2F\u200C\u200D\u180B-\u180D\uFE00-\uFE0F]|\uDB40[\uDD00-\uDDEF]|\uD83C[\uDFFB-\uDFFF])*/g); return _.replace(/[^\n]+/g,function(s){return s.match(X).reverse().join(&amp;quot;&amp;quot;)}) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;文字をシャッフル&lt;br /&gt;
:各行の文字をランダムに並べ替えます。&lt;br /&gt;
:例＞ &amp;lt;span style=&amp;quot;background:#bfdfff;&amp;quot;&amp;gt;文字をシャッフル&amp;lt;/span&amp;gt; → フ字をャシッル文&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;文字をシャッフル&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2017/06/25&lt;br /&gt;
  var X=new RegExp(/[\x00-\x1F\x7F-\x9F\xAD\u2028\u2029\uFEFF]|(?:(?:\uD83C[\uDDE6-\uDDFF]){2}|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\s\S])(?:[\u0300-\u036F\u1AB0-\u1AFF\u1DC0-\u1DFF\u20D0-\u20FF\u3099\u309A\uFE20-\uFE2F\u200C\u200D\u180B-\u180D\uFE00-\uFE0F]|\uDB40[\uDD00-\uDDEF]|\uD83C[\uDFFB-\uDFFF])*/g); return _.replace(/[^\n]+/g,function(s){var a=s.match(X),i=a.length,j,t; while(i){j=Math.floor(Math.random()*i--); t=a[i];a[i]=a[j];a[j]=t;} return a.join(&amp;quot;&amp;quot;)}) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==字種/数値変換==&lt;br /&gt;
;★半角英数→全角&lt;br /&gt;
;★全角英数→半角&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;半角英数→全角&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2014/02/10&lt;br /&gt;
  return _.replace(/[0-9A-Za-z]/g,function(s){return String.fromCharCode(s.charCodeAt(0)+0xFEE0)}) }]);&lt;br /&gt;
f.push([&amp;quot;全角英数→半角&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2014/02/10&lt;br /&gt;
  return _.replace(/[０-９Ａ-Ｚａ-ｚ]/g,function(s){return String.fromCharCode(s.charCodeAt(0)-0xFEE0)}) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;★半角カナ→全角&lt;br /&gt;
;★全角カナ→半角&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;半角カナ→全角&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2015/03/14&lt;br /&gt;
  return _.replaceBatch([ [&amp;quot;ｳﾞ&amp;quot;,&amp;quot;ヴ&amp;quot;],[&amp;quot;ｶﾞ&amp;quot;,&amp;quot;ガ&amp;quot;],[&amp;quot;ｷﾞ&amp;quot;,&amp;quot;ギ&amp;quot;],[&amp;quot;ｸﾞ&amp;quot;,&amp;quot;グ&amp;quot;],[&amp;quot;ｹﾞ&amp;quot;,&amp;quot;ゲ&amp;quot;],[&amp;quot;ｺﾞ&amp;quot;,&amp;quot;ゴ&amp;quot;],[&amp;quot;ｻﾞ&amp;quot;,&amp;quot;ザ&amp;quot;],[&amp;quot;ｼﾞ&amp;quot;,&amp;quot;ジ&amp;quot;],[&amp;quot;ｽﾞ&amp;quot;,&amp;quot;ズ&amp;quot;],[&amp;quot;ｾﾞ&amp;quot;,&amp;quot;ゼ&amp;quot;],[&amp;quot;ｿﾞ&amp;quot;,&amp;quot;ゾ&amp;quot;],[&amp;quot;ﾀﾞ&amp;quot;,&amp;quot;ダ&amp;quot;],[&amp;quot;ﾁﾞ&amp;quot;,&amp;quot;ヂ&amp;quot;],[&amp;quot;ﾂﾞ&amp;quot;,&amp;quot;ヅ&amp;quot;],[&amp;quot;ﾃﾞ&amp;quot;,&amp;quot;デ&amp;quot;],[&amp;quot;ﾄﾞ&amp;quot;,&amp;quot;ド&amp;quot;],[&amp;quot;ﾊﾞ&amp;quot;,&amp;quot;バ&amp;quot;],[&amp;quot;ﾋﾞ&amp;quot;,&amp;quot;ビ&amp;quot;],[&amp;quot;ﾌﾞ&amp;quot;,&amp;quot;ブ&amp;quot;],[&amp;quot;ﾍﾞ&amp;quot;,&amp;quot;ベ&amp;quot;],[&amp;quot;ﾎﾞ&amp;quot;,&amp;quot;ボ&amp;quot;],[&amp;quot;ﾊﾟ&amp;quot;,&amp;quot;パ&amp;quot;],[&amp;quot;ﾋﾟ&amp;quot;,&amp;quot;ピ&amp;quot;],[&amp;quot;ﾌﾟ&amp;quot;,&amp;quot;プ&amp;quot;],[&amp;quot;ﾍﾟ&amp;quot;,&amp;quot;ペ&amp;quot;],[&amp;quot;ﾎﾟ&amp;quot;,&amp;quot;ポ&amp;quot;],[&amp;quot;｡&amp;quot;,&amp;quot;。&amp;quot;],[&amp;quot;｢&amp;quot;,&amp;quot;「&amp;quot;],[&amp;quot;｣&amp;quot;,&amp;quot;」&amp;quot;],[&amp;quot;､&amp;quot;,&amp;quot;、&amp;quot;],[&amp;quot;･&amp;quot;,&amp;quot;・&amp;quot;],[&amp;quot;ｦ&amp;quot;,&amp;quot;ヲ&amp;quot;],[&amp;quot;ｧ&amp;quot;,&amp;quot;ァ&amp;quot;],[&amp;quot;ｨ&amp;quot;,&amp;quot;ィ&amp;quot;],[&amp;quot;ｩ&amp;quot;,&amp;quot;ゥ&amp;quot;],[&amp;quot;ｪ&amp;quot;,&amp;quot;ェ&amp;quot;],[&amp;quot;ｫ&amp;quot;,&amp;quot;ォ&amp;quot;],[&amp;quot;ｬ&amp;quot;,&amp;quot;ャ&amp;quot;],[&amp;quot;ｭ&amp;quot;,&amp;quot;ュ&amp;quot;],[&amp;quot;ｮ&amp;quot;,&amp;quot;ョ&amp;quot;],[&amp;quot;ｯ&amp;quot;,&amp;quot;ッ&amp;quot;],[&amp;quot;ｰ&amp;quot;,&amp;quot;ー&amp;quot;],[&amp;quot;ｱ&amp;quot;,&amp;quot;ア&amp;quot;],[&amp;quot;ｲ&amp;quot;,&amp;quot;イ&amp;quot;],[&amp;quot;ｳ&amp;quot;,&amp;quot;ウ&amp;quot;],[&amp;quot;ｴ&amp;quot;,&amp;quot;エ&amp;quot;],[&amp;quot;ｵ&amp;quot;,&amp;quot;オ&amp;quot;],[&amp;quot;ｶ&amp;quot;,&amp;quot;カ&amp;quot;],[&amp;quot;ｷ&amp;quot;,&amp;quot;キ&amp;quot;],[&amp;quot;ｸ&amp;quot;,&amp;quot;ク&amp;quot;],[&amp;quot;ｹ&amp;quot;,&amp;quot;ケ&amp;quot;],[&amp;quot;ｺ&amp;quot;,&amp;quot;コ&amp;quot;],[&amp;quot;ｻ&amp;quot;,&amp;quot;サ&amp;quot;],[&amp;quot;ｼ&amp;quot;,&amp;quot;シ&amp;quot;],[&amp;quot;ｽ&amp;quot;,&amp;quot;ス&amp;quot;],[&amp;quot;ｾ&amp;quot;,&amp;quot;セ&amp;quot;],[&amp;quot;ｿ&amp;quot;,&amp;quot;ソ&amp;quot;],[&amp;quot;ﾀ&amp;quot;,&amp;quot;タ&amp;quot;],[&amp;quot;ﾁ&amp;quot;,&amp;quot;チ&amp;quot;],[&amp;quot;ﾂ&amp;quot;,&amp;quot;ツ&amp;quot;],[&amp;quot;ﾃ&amp;quot;,&amp;quot;テ&amp;quot;],[&amp;quot;ﾄ&amp;quot;,&amp;quot;ト&amp;quot;],[&amp;quot;ﾅ&amp;quot;,&amp;quot;ナ&amp;quot;],[&amp;quot;ﾆ&amp;quot;,&amp;quot;ニ&amp;quot;],[&amp;quot;ﾇ&amp;quot;,&amp;quot;ヌ&amp;quot;],[&amp;quot;ﾈ&amp;quot;,&amp;quot;ネ&amp;quot;],[&amp;quot;ﾉ&amp;quot;,&amp;quot;ノ&amp;quot;],[&amp;quot;ﾊ&amp;quot;,&amp;quot;ハ&amp;quot;],[&amp;quot;ﾋ&amp;quot;,&amp;quot;ヒ&amp;quot;],[&amp;quot;ﾌ&amp;quot;,&amp;quot;フ&amp;quot;],[&amp;quot;ﾍ&amp;quot;,&amp;quot;ヘ&amp;quot;],[&amp;quot;ﾎ&amp;quot;,&amp;quot;ホ&amp;quot;],[&amp;quot;ﾏ&amp;quot;,&amp;quot;マ&amp;quot;],[&amp;quot;ﾐ&amp;quot;,&amp;quot;ミ&amp;quot;],[&amp;quot;ﾑ&amp;quot;,&amp;quot;ム&amp;quot;],[&amp;quot;ﾒ&amp;quot;,&amp;quot;メ&amp;quot;],[&amp;quot;ﾓ&amp;quot;,&amp;quot;モ&amp;quot;],[&amp;quot;ﾔ&amp;quot;,&amp;quot;ヤ&amp;quot;],[&amp;quot;ﾕ&amp;quot;,&amp;quot;ユ&amp;quot;],[&amp;quot;ﾖ&amp;quot;,&amp;quot;ヨ&amp;quot;],[&amp;quot;ﾗ&amp;quot;,&amp;quot;ラ&amp;quot;],[&amp;quot;ﾘ&amp;quot;,&amp;quot;リ&amp;quot;],[&amp;quot;ﾙ&amp;quot;,&amp;quot;ル&amp;quot;],[&amp;quot;ﾚ&amp;quot;,&amp;quot;レ&amp;quot;],[&amp;quot;ﾛ&amp;quot;,&amp;quot;ロ&amp;quot;],[&amp;quot;ﾜ&amp;quot;,&amp;quot;ワ&amp;quot;],[&amp;quot;ﾝ&amp;quot;,&amp;quot;ン&amp;quot;],[&amp;quot;ﾞ&amp;quot;,&amp;quot;゛&amp;quot;],[&amp;quot;ﾟ&amp;quot;,&amp;quot;゜&amp;quot;] ]) }]);&lt;br /&gt;
f.push([&amp;quot;全角カナ→半角&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2015/03/14&lt;br /&gt;
  return _.replaceBatch([ [&amp;quot;ヴ&amp;quot;,&amp;quot;ｳﾞ&amp;quot;],[&amp;quot;ガ&amp;quot;,&amp;quot;ｶﾞ&amp;quot;],[&amp;quot;ギ&amp;quot;,&amp;quot;ｷﾞ&amp;quot;],[&amp;quot;グ&amp;quot;,&amp;quot;ｸﾞ&amp;quot;],[&amp;quot;ゲ&amp;quot;,&amp;quot;ｹﾞ&amp;quot;],[&amp;quot;ゴ&amp;quot;,&amp;quot;ｺﾞ&amp;quot;],[&amp;quot;ザ&amp;quot;,&amp;quot;ｻﾞ&amp;quot;],[&amp;quot;ジ&amp;quot;,&amp;quot;ｼﾞ&amp;quot;],[&amp;quot;ズ&amp;quot;,&amp;quot;ｽﾞ&amp;quot;],[&amp;quot;ゼ&amp;quot;,&amp;quot;ｾﾞ&amp;quot;],[&amp;quot;ゾ&amp;quot;,&amp;quot;ｿﾞ&amp;quot;],[&amp;quot;ダ&amp;quot;,&amp;quot;ﾀﾞ&amp;quot;],[&amp;quot;ヂ&amp;quot;,&amp;quot;ﾁﾞ&amp;quot;],[&amp;quot;ヅ&amp;quot;,&amp;quot;ﾂﾞ&amp;quot;],[&amp;quot;デ&amp;quot;,&amp;quot;ﾃﾞ&amp;quot;],[&amp;quot;ド&amp;quot;,&amp;quot;ﾄﾞ&amp;quot;],[&amp;quot;バ&amp;quot;,&amp;quot;ﾊﾞ&amp;quot;],[&amp;quot;ビ&amp;quot;,&amp;quot;ﾋﾞ&amp;quot;],[&amp;quot;ブ&amp;quot;,&amp;quot;ﾌﾞ&amp;quot;],[&amp;quot;ベ&amp;quot;,&amp;quot;ﾍﾞ&amp;quot;],[&amp;quot;ボ&amp;quot;,&amp;quot;ﾎﾞ&amp;quot;],[&amp;quot;パ&amp;quot;,&amp;quot;ﾊﾟ&amp;quot;],[&amp;quot;ピ&amp;quot;,&amp;quot;ﾋﾟ&amp;quot;],[&amp;quot;プ&amp;quot;,&amp;quot;ﾌﾟ&amp;quot;],[&amp;quot;ペ&amp;quot;,&amp;quot;ﾍﾟ&amp;quot;],[&amp;quot;ポ&amp;quot;,&amp;quot;ﾎﾟ&amp;quot;],[&amp;quot;。&amp;quot;,&amp;quot;｡&amp;quot;],[&amp;quot;「&amp;quot;,&amp;quot;｢&amp;quot;],[&amp;quot;」&amp;quot;,&amp;quot;｣&amp;quot;],[&amp;quot;、&amp;quot;,&amp;quot;､&amp;quot;],[&amp;quot;・&amp;quot;,&amp;quot;･&amp;quot;],[&amp;quot;ヲ&amp;quot;,&amp;quot;ｦ&amp;quot;],[&amp;quot;ァ&amp;quot;,&amp;quot;ｧ&amp;quot;],[&amp;quot;ィ&amp;quot;,&amp;quot;ｨ&amp;quot;],[&amp;quot;ゥ&amp;quot;,&amp;quot;ｩ&amp;quot;],[&amp;quot;ェ&amp;quot;,&amp;quot;ｪ&amp;quot;],[&amp;quot;ォ&amp;quot;,&amp;quot;ｫ&amp;quot;],[&amp;quot;ャ&amp;quot;,&amp;quot;ｬ&amp;quot;],[&amp;quot;ュ&amp;quot;,&amp;quot;ｭ&amp;quot;],[&amp;quot;ョ&amp;quot;,&amp;quot;ｮ&amp;quot;],[&amp;quot;ッ&amp;quot;,&amp;quot;ｯ&amp;quot;],[&amp;quot;ー&amp;quot;,&amp;quot;ｰ&amp;quot;],[&amp;quot;ア&amp;quot;,&amp;quot;ｱ&amp;quot;],[&amp;quot;イ&amp;quot;,&amp;quot;ｲ&amp;quot;],[&amp;quot;ウ&amp;quot;,&amp;quot;ｳ&amp;quot;],[&amp;quot;エ&amp;quot;,&amp;quot;ｴ&amp;quot;],[&amp;quot;オ&amp;quot;,&amp;quot;ｵ&amp;quot;],[&amp;quot;カ&amp;quot;,&amp;quot;ｶ&amp;quot;],[&amp;quot;キ&amp;quot;,&amp;quot;ｷ&amp;quot;],[&amp;quot;ク&amp;quot;,&amp;quot;ｸ&amp;quot;],[&amp;quot;ケ&amp;quot;,&amp;quot;ｹ&amp;quot;],[&amp;quot;コ&amp;quot;,&amp;quot;ｺ&amp;quot;],[&amp;quot;サ&amp;quot;,&amp;quot;ｻ&amp;quot;],[&amp;quot;シ&amp;quot;,&amp;quot;ｼ&amp;quot;],[&amp;quot;ス&amp;quot;,&amp;quot;ｽ&amp;quot;],[&amp;quot;セ&amp;quot;,&amp;quot;ｾ&amp;quot;],[&amp;quot;ソ&amp;quot;,&amp;quot;ｿ&amp;quot;],[&amp;quot;タ&amp;quot;,&amp;quot;ﾀ&amp;quot;],[&amp;quot;チ&amp;quot;,&amp;quot;ﾁ&amp;quot;],[&amp;quot;ツ&amp;quot;,&amp;quot;ﾂ&amp;quot;],[&amp;quot;テ&amp;quot;,&amp;quot;ﾃ&amp;quot;],[&amp;quot;ト&amp;quot;,&amp;quot;ﾄ&amp;quot;],[&amp;quot;ナ&amp;quot;,&amp;quot;ﾅ&amp;quot;],[&amp;quot;ニ&amp;quot;,&amp;quot;ﾆ&amp;quot;],[&amp;quot;ヌ&amp;quot;,&amp;quot;ﾇ&amp;quot;],[&amp;quot;ネ&amp;quot;,&amp;quot;ﾈ&amp;quot;],[&amp;quot;ノ&amp;quot;,&amp;quot;ﾉ&amp;quot;],[&amp;quot;ハ&amp;quot;,&amp;quot;ﾊ&amp;quot;],[&amp;quot;ヒ&amp;quot;,&amp;quot;ﾋ&amp;quot;],[&amp;quot;フ&amp;quot;,&amp;quot;ﾌ&amp;quot;],[&amp;quot;ヘ&amp;quot;,&amp;quot;ﾍ&amp;quot;],[&amp;quot;ホ&amp;quot;,&amp;quot;ﾎ&amp;quot;],[&amp;quot;マ&amp;quot;,&amp;quot;ﾏ&amp;quot;],[&amp;quot;ミ&amp;quot;,&amp;quot;ﾐ&amp;quot;],[&amp;quot;ム&amp;quot;,&amp;quot;ﾑ&amp;quot;],[&amp;quot;メ&amp;quot;,&amp;quot;ﾒ&amp;quot;],[&amp;quot;モ&amp;quot;,&amp;quot;ﾓ&amp;quot;],[&amp;quot;ヤ&amp;quot;,&amp;quot;ﾔ&amp;quot;],[&amp;quot;ユ&amp;quot;,&amp;quot;ﾕ&amp;quot;],[&amp;quot;ヨ&amp;quot;,&amp;quot;ﾖ&amp;quot;],[&amp;quot;ラ&amp;quot;,&amp;quot;ﾗ&amp;quot;],[&amp;quot;リ&amp;quot;,&amp;quot;ﾘ&amp;quot;],[&amp;quot;ル&amp;quot;,&amp;quot;ﾙ&amp;quot;],[&amp;quot;レ&amp;quot;,&amp;quot;ﾚ&amp;quot;],[&amp;quot;ロ&amp;quot;,&amp;quot;ﾛ&amp;quot;],[&amp;quot;ワ&amp;quot;,&amp;quot;ﾜ&amp;quot;],[&amp;quot;ン&amp;quot;,&amp;quot;ﾝ&amp;quot;],[&amp;quot;゛&amp;quot;,&amp;quot;ﾞ&amp;quot;],[&amp;quot;゜&amp;quot;,&amp;quot;ﾟ&amp;quot;] ]) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;★全角かな→カナ&lt;br /&gt;
;★全角カナ→かな&lt;br /&gt;
:全角ひらがなと全角カタカナを変換します。&lt;br /&gt;
:ただし、ヴヵヶ → ゔゕゖ の変換は行いません（Shift_JIS では保存できない文字のため）。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;全角かな→カナ&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2014/02/10&lt;br /&gt;
  return _.replace(/[\u3041-\u3096ゝゞ]/g,function(s){return String.fromCharCode(s.charCodeAt(0)+0x60)}) }]);&lt;br /&gt;
f.push([&amp;quot;全角カナ→かな(ヴヵヶ除く)&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2015/02/14&lt;br /&gt;
  return _.replace(/[\u30A1-\u30F3ヽヾ]/g,function(s){return String.fromCharCode(s.charCodeAt(0)-0x60)}) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
:ヴヵヶ → ゔゕゖ の変換も行う場合は、下記の内容に差し替えてください。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;全角カナ→かな&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2014/02/10&lt;br /&gt;
  return _.replace(/[\u30A1-\u30F6ヽヾ]/g,function(s){return String.fromCharCode(s.charCodeAt(0)-0x60)}) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;標準変換&lt;br /&gt;
:マクロ「&amp;lt;b&amp;gt;[[標準変換]]&amp;lt;/b&amp;gt;」を移植（一部改変）したものです。&lt;br /&gt;
:全角英数・全角記号は半角に、半角カナは全角に変換します。&lt;br /&gt;
:{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 文字 !! 変換前&lt;br /&gt;
! 文字 !! 標準変換版&lt;br /&gt;
! 文字 !! テキスト整形版&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| ‘ || 全角左シングルクォート&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| ` || 半角グレーブアクセント&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| &#039; || 半角アポストロフィー/シングルクォート&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| ｀ || 全角グレーブアクセント&lt;br /&gt;
| || ※変換しない&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| ` || 半角グレーブアクセント/バッククォート&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;標準変換&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2015/03/14&lt;br /&gt;
  return _.replaceBatch([ [&amp;quot;　&amp;quot;,&amp;quot; &amp;quot;],[&amp;quot;！&amp;quot;,&amp;quot;!&amp;quot;],[&amp;quot;“&amp;quot;,&#039;&amp;quot;&#039;],[&amp;quot;”&amp;quot;,&#039;&amp;quot;&#039;],[&amp;quot;＃&amp;quot;,&amp;quot;#&amp;quot;],[&amp;quot;＄&amp;quot;,&amp;quot;$&amp;quot;],[&amp;quot;％&amp;quot;,&amp;quot;%&amp;quot;],[&amp;quot;＆&amp;quot;,&amp;quot;&amp;amp;&amp;quot;],[&amp;quot;‘&amp;quot;,&amp;quot;&#039;&amp;quot;],[&amp;quot;’&amp;quot;,&amp;quot;&#039;&amp;quot;],[&amp;quot;（&amp;quot;,&amp;quot;(&amp;quot;],[&amp;quot;）&amp;quot;,&amp;quot;)&amp;quot;],[&amp;quot;＊&amp;quot;,&amp;quot;*&amp;quot;],[&amp;quot;＋&amp;quot;,&amp;quot;+&amp;quot;],[&amp;quot;，&amp;quot;,&amp;quot;,&amp;quot;],[&amp;quot;－&amp;quot;,&amp;quot;-&amp;quot;],[&amp;quot;．&amp;quot;,&amp;quot;.&amp;quot;],[&amp;quot;／&amp;quot;,&amp;quot;/&amp;quot;],[&amp;quot;０&amp;quot;,&amp;quot;0&amp;quot;],[&amp;quot;１&amp;quot;,&amp;quot;1&amp;quot;],[&amp;quot;２&amp;quot;,&amp;quot;2&amp;quot;],[&amp;quot;３&amp;quot;,&amp;quot;3&amp;quot;],[&amp;quot;４&amp;quot;,&amp;quot;4&amp;quot;],[&amp;quot;５&amp;quot;,&amp;quot;5&amp;quot;],[&amp;quot;６&amp;quot;,&amp;quot;6&amp;quot;],[&amp;quot;７&amp;quot;,&amp;quot;7&amp;quot;],[&amp;quot;８&amp;quot;,&amp;quot;8&amp;quot;],[&amp;quot;９&amp;quot;,&amp;quot;9&amp;quot;],[&amp;quot;：&amp;quot;,&amp;quot;:&amp;quot;],[&amp;quot;；&amp;quot;,&amp;quot;;&amp;quot;],[&amp;quot;＜&amp;quot;,&amp;quot;&amp;lt;&amp;quot;],[&amp;quot;＝&amp;quot;,&amp;quot;=&amp;quot;],[&amp;quot;＞&amp;quot;,&amp;quot;&amp;gt;&amp;quot;],[&amp;quot;？&amp;quot;,&amp;quot;?&amp;quot;],[&amp;quot;＠&amp;quot;,&amp;quot;@&amp;quot;],[&amp;quot;Ａ&amp;quot;,&amp;quot;A&amp;quot;],[&amp;quot;Ｂ&amp;quot;,&amp;quot;B&amp;quot;],[&amp;quot;Ｃ&amp;quot;,&amp;quot;C&amp;quot;],[&amp;quot;Ｄ&amp;quot;,&amp;quot;D&amp;quot;],[&amp;quot;Ｅ&amp;quot;,&amp;quot;E&amp;quot;],[&amp;quot;Ｆ&amp;quot;,&amp;quot;F&amp;quot;],[&amp;quot;Ｇ&amp;quot;,&amp;quot;G&amp;quot;],[&amp;quot;Ｈ&amp;quot;,&amp;quot;H&amp;quot;],[&amp;quot;Ｉ&amp;quot;,&amp;quot;I&amp;quot;],[&amp;quot;Ｊ&amp;quot;,&amp;quot;J&amp;quot;],[&amp;quot;Ｋ&amp;quot;,&amp;quot;K&amp;quot;],[&amp;quot;Ｌ&amp;quot;,&amp;quot;L&amp;quot;],[&amp;quot;Ｍ&amp;quot;,&amp;quot;M&amp;quot;],[&amp;quot;Ｎ&amp;quot;,&amp;quot;N&amp;quot;],[&amp;quot;Ｏ&amp;quot;,&amp;quot;O&amp;quot;],[&amp;quot;Ｐ&amp;quot;,&amp;quot;P&amp;quot;],[&amp;quot;Ｑ&amp;quot;,&amp;quot;Q&amp;quot;],[&amp;quot;Ｒ&amp;quot;,&amp;quot;R&amp;quot;],[&amp;quot;Ｓ&amp;quot;,&amp;quot;S&amp;quot;],[&amp;quot;Ｔ&amp;quot;,&amp;quot;T&amp;quot;],[&amp;quot;Ｕ&amp;quot;,&amp;quot;U&amp;quot;],[&amp;quot;Ｖ&amp;quot;,&amp;quot;V&amp;quot;],[&amp;quot;Ｗ&amp;quot;,&amp;quot;W&amp;quot;],[&amp;quot;Ｘ&amp;quot;,&amp;quot;X&amp;quot;],[&amp;quot;Ｙ&amp;quot;,&amp;quot;Y&amp;quot;],[&amp;quot;Ｚ&amp;quot;,&amp;quot;Z&amp;quot;],[&amp;quot;［&amp;quot;,&amp;quot;[&amp;quot;],[&amp;quot;￥&amp;quot;,&amp;quot;\\&amp;quot;],[&amp;quot;］&amp;quot;,&amp;quot;]&amp;quot;],[&amp;quot;＾&amp;quot;,&amp;quot;^&amp;quot;],[&amp;quot;＿&amp;quot;,&amp;quot;_&amp;quot;],[&amp;quot;｀&amp;quot;,&amp;quot;`&amp;quot;],[&amp;quot;ａ&amp;quot;,&amp;quot;a&amp;quot;],[&amp;quot;ｂ&amp;quot;,&amp;quot;b&amp;quot;],[&amp;quot;ｃ&amp;quot;,&amp;quot;c&amp;quot;],[&amp;quot;ｄ&amp;quot;,&amp;quot;d&amp;quot;],[&amp;quot;ｅ&amp;quot;,&amp;quot;e&amp;quot;],[&amp;quot;ｆ&amp;quot;,&amp;quot;f&amp;quot;],[&amp;quot;ｇ&amp;quot;,&amp;quot;g&amp;quot;],[&amp;quot;ｈ&amp;quot;,&amp;quot;h&amp;quot;],[&amp;quot;ｉ&amp;quot;,&amp;quot;i&amp;quot;],[&amp;quot;ｊ&amp;quot;,&amp;quot;j&amp;quot;],[&amp;quot;ｋ&amp;quot;,&amp;quot;k&amp;quot;],[&amp;quot;ｌ&amp;quot;,&amp;quot;l&amp;quot;],[&amp;quot;ｍ&amp;quot;,&amp;quot;m&amp;quot;],[&amp;quot;ｎ&amp;quot;,&amp;quot;n&amp;quot;],[&amp;quot;ｏ&amp;quot;,&amp;quot;o&amp;quot;],[&amp;quot;ｐ&amp;quot;,&amp;quot;p&amp;quot;],[&amp;quot;ｑ&amp;quot;,&amp;quot;q&amp;quot;],[&amp;quot;ｒ&amp;quot;,&amp;quot;r&amp;quot;],[&amp;quot;ｓ&amp;quot;,&amp;quot;s&amp;quot;],[&amp;quot;ｔ&amp;quot;,&amp;quot;t&amp;quot;],[&amp;quot;ｕ&amp;quot;,&amp;quot;u&amp;quot;],[&amp;quot;ｖ&amp;quot;,&amp;quot;v&amp;quot;],[&amp;quot;ｗ&amp;quot;,&amp;quot;w&amp;quot;],[&amp;quot;ｘ&amp;quot;,&amp;quot;x&amp;quot;],[&amp;quot;ｙ&amp;quot;,&amp;quot;y&amp;quot;],[&amp;quot;ｚ&amp;quot;,&amp;quot;z&amp;quot;],[&amp;quot;｛&amp;quot;,&amp;quot;{&amp;quot;],[&amp;quot;｜&amp;quot;,&amp;quot;|&amp;quot;],[&amp;quot;｝&amp;quot;,&amp;quot;}&amp;quot;],[&amp;quot;～&amp;quot;,&amp;quot;~&amp;quot;],[&amp;quot;ｳﾞ&amp;quot;,&amp;quot;ヴ&amp;quot;],[&amp;quot;ｶﾞ&amp;quot;,&amp;quot;ガ&amp;quot;],[&amp;quot;ｷﾞ&amp;quot;,&amp;quot;ギ&amp;quot;],[&amp;quot;ｸﾞ&amp;quot;,&amp;quot;グ&amp;quot;],[&amp;quot;ｹﾞ&amp;quot;,&amp;quot;ゲ&amp;quot;],[&amp;quot;ｺﾞ&amp;quot;,&amp;quot;ゴ&amp;quot;],[&amp;quot;ｻﾞ&amp;quot;,&amp;quot;ザ&amp;quot;],[&amp;quot;ｼﾞ&amp;quot;,&amp;quot;ジ&amp;quot;],[&amp;quot;ｽﾞ&amp;quot;,&amp;quot;ズ&amp;quot;],[&amp;quot;ｾﾞ&amp;quot;,&amp;quot;ゼ&amp;quot;],[&amp;quot;ｿﾞ&amp;quot;,&amp;quot;ゾ&amp;quot;],[&amp;quot;ﾀﾞ&amp;quot;,&amp;quot;ダ&amp;quot;],[&amp;quot;ﾁﾞ&amp;quot;,&amp;quot;ヂ&amp;quot;],[&amp;quot;ﾂﾞ&amp;quot;,&amp;quot;ヅ&amp;quot;],[&amp;quot;ﾃﾞ&amp;quot;,&amp;quot;デ&amp;quot;],[&amp;quot;ﾄﾞ&amp;quot;,&amp;quot;ド&amp;quot;],[&amp;quot;ﾊﾞ&amp;quot;,&amp;quot;バ&amp;quot;],[&amp;quot;ﾋﾞ&amp;quot;,&amp;quot;ビ&amp;quot;],[&amp;quot;ﾌﾞ&amp;quot;,&amp;quot;ブ&amp;quot;],[&amp;quot;ﾍﾞ&amp;quot;,&amp;quot;ベ&amp;quot;],[&amp;quot;ﾎﾞ&amp;quot;,&amp;quot;ボ&amp;quot;],[&amp;quot;ﾊﾟ&amp;quot;,&amp;quot;パ&amp;quot;],[&amp;quot;ﾋﾟ&amp;quot;,&amp;quot;ピ&amp;quot;],[&amp;quot;ﾌﾟ&amp;quot;,&amp;quot;プ&amp;quot;],[&amp;quot;ﾍﾟ&amp;quot;,&amp;quot;ペ&amp;quot;],[&amp;quot;ﾎﾟ&amp;quot;,&amp;quot;ポ&amp;quot;],[&amp;quot;｡&amp;quot;,&amp;quot;。&amp;quot;],[&amp;quot;｢&amp;quot;,&amp;quot;「&amp;quot;],[&amp;quot;｣&amp;quot;,&amp;quot;」&amp;quot;],[&amp;quot;､&amp;quot;,&amp;quot;、&amp;quot;],[&amp;quot;･&amp;quot;,&amp;quot;・&amp;quot;],[&amp;quot;ｦ&amp;quot;,&amp;quot;ヲ&amp;quot;],[&amp;quot;ｧ&amp;quot;,&amp;quot;ァ&amp;quot;],[&amp;quot;ｨ&amp;quot;,&amp;quot;ィ&amp;quot;],[&amp;quot;ｩ&amp;quot;,&amp;quot;ゥ&amp;quot;],[&amp;quot;ｪ&amp;quot;,&amp;quot;ェ&amp;quot;],[&amp;quot;ｫ&amp;quot;,&amp;quot;ォ&amp;quot;],[&amp;quot;ｬ&amp;quot;,&amp;quot;ャ&amp;quot;],[&amp;quot;ｭ&amp;quot;,&amp;quot;ュ&amp;quot;],[&amp;quot;ｮ&amp;quot;,&amp;quot;ョ&amp;quot;],[&amp;quot;ｯ&amp;quot;,&amp;quot;ッ&amp;quot;],[&amp;quot;ｰ&amp;quot;,&amp;quot;ー&amp;quot;],[&amp;quot;ｱ&amp;quot;,&amp;quot;ア&amp;quot;],[&amp;quot;ｲ&amp;quot;,&amp;quot;イ&amp;quot;],[&amp;quot;ｳ&amp;quot;,&amp;quot;ウ&amp;quot;],[&amp;quot;ｴ&amp;quot;,&amp;quot;エ&amp;quot;],[&amp;quot;ｵ&amp;quot;,&amp;quot;オ&amp;quot;],[&amp;quot;ｶ&amp;quot;,&amp;quot;カ&amp;quot;],[&amp;quot;ｷ&amp;quot;,&amp;quot;キ&amp;quot;],[&amp;quot;ｸ&amp;quot;,&amp;quot;ク&amp;quot;],[&amp;quot;ｹ&amp;quot;,&amp;quot;ケ&amp;quot;],[&amp;quot;ｺ&amp;quot;,&amp;quot;コ&amp;quot;],[&amp;quot;ｻ&amp;quot;,&amp;quot;サ&amp;quot;],[&amp;quot;ｼ&amp;quot;,&amp;quot;シ&amp;quot;],[&amp;quot;ｽ&amp;quot;,&amp;quot;ス&amp;quot;],[&amp;quot;ｾ&amp;quot;,&amp;quot;セ&amp;quot;],[&amp;quot;ｿ&amp;quot;,&amp;quot;ソ&amp;quot;],[&amp;quot;ﾀ&amp;quot;,&amp;quot;タ&amp;quot;],[&amp;quot;ﾁ&amp;quot;,&amp;quot;チ&amp;quot;],[&amp;quot;ﾂ&amp;quot;,&amp;quot;ツ&amp;quot;],[&amp;quot;ﾃ&amp;quot;,&amp;quot;テ&amp;quot;],[&amp;quot;ﾄ&amp;quot;,&amp;quot;ト&amp;quot;],[&amp;quot;ﾅ&amp;quot;,&amp;quot;ナ&amp;quot;],[&amp;quot;ﾆ&amp;quot;,&amp;quot;ニ&amp;quot;],[&amp;quot;ﾇ&amp;quot;,&amp;quot;ヌ&amp;quot;],[&amp;quot;ﾈ&amp;quot;,&amp;quot;ネ&amp;quot;],[&amp;quot;ﾉ&amp;quot;,&amp;quot;ノ&amp;quot;],[&amp;quot;ﾊ&amp;quot;,&amp;quot;ハ&amp;quot;],[&amp;quot;ﾋ&amp;quot;,&amp;quot;ヒ&amp;quot;],[&amp;quot;ﾌ&amp;quot;,&amp;quot;フ&amp;quot;],[&amp;quot;ﾍ&amp;quot;,&amp;quot;ヘ&amp;quot;],[&amp;quot;ﾎ&amp;quot;,&amp;quot;ホ&amp;quot;],[&amp;quot;ﾏ&amp;quot;,&amp;quot;マ&amp;quot;],[&amp;quot;ﾐ&amp;quot;,&amp;quot;ミ&amp;quot;],[&amp;quot;ﾑ&amp;quot;,&amp;quot;ム&amp;quot;],[&amp;quot;ﾒ&amp;quot;,&amp;quot;メ&amp;quot;],[&amp;quot;ﾓ&amp;quot;,&amp;quot;モ&amp;quot;],[&amp;quot;ﾔ&amp;quot;,&amp;quot;ヤ&amp;quot;],[&amp;quot;ﾕ&amp;quot;,&amp;quot;ユ&amp;quot;],[&amp;quot;ﾖ&amp;quot;,&amp;quot;ヨ&amp;quot;],[&amp;quot;ﾗ&amp;quot;,&amp;quot;ラ&amp;quot;],[&amp;quot;ﾘ&amp;quot;,&amp;quot;リ&amp;quot;],[&amp;quot;ﾙ&amp;quot;,&amp;quot;ル&amp;quot;],[&amp;quot;ﾚ&amp;quot;,&amp;quot;レ&amp;quot;],[&amp;quot;ﾛ&amp;quot;,&amp;quot;ロ&amp;quot;],[&amp;quot;ﾜ&amp;quot;,&amp;quot;ワ&amp;quot;],[&amp;quot;ﾝ&amp;quot;,&amp;quot;ン&amp;quot;],[&amp;quot;ﾞ&amp;quot;,&amp;quot;゛&amp;quot;],[&amp;quot;ﾟ&amp;quot;,&amp;quot;゜&amp;quot;] ]) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;表外漢字→代替&lt;br /&gt;
:[https://ja.wiktionary.org/wiki/%E8%A1%A8%E5%A4%96%E6%BC%A2%E5%AD%97%E5%AD%97%E4%BD%93%E8%A1%A8%E3%81%AE%E6%BC%A2%E5%AD%97%E4%B8%80%E8%A6%A7 表外漢字字体表] 1022字のうち &amp;lt;span style=&amp;quot;background:#ffee62;&amp;quot;&amp;gt;Shift_JIS (CP932) では保存できない文字40字&amp;lt;/span&amp;gt;を、保存できる文字に置換します。&lt;br /&gt;
:{|class=&amp;quot;wikitable&amp;quot; style=&amp;quot;font:120% &#039;ヒラギノ角ゴ ProN W3&#039;,&#039;ヒラギノ角ゴ ProN&#039;,&#039;メイリオ&#039;,Meiryo,sans-serif;&amp;quot;&lt;br /&gt;
|-style=&amp;quot;background:#ffee62;&amp;quot;&lt;br /&gt;
|啞||焰||鷗||摑||麴||噓||俠||頰||軀||俱||繫||姸||鹼||嚙||攢||𠮟||繡||蔣||醬||蟬||搔||瘦||驒||簞||塡||顚||禱||瀆||吞||囊||剝||潑||醱||屛||幷||麵||萊||屢||沪||蠟&lt;br /&gt;
|-&lt;br /&gt;
|唖||焔||鴎||掴||麹||嘘||侠||頬||躯||倶||繋||妍||鹸||噛||攅||叱||繍||蒋||醤||蝉||掻||痩||騨||箪||填||顛||祷||涜||呑||嚢||剥||溌||醗||屏||并||麺||莱||屡||濾||蝋&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;表外漢字→代替&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2017/06/25&lt;br /&gt;
  return _.replaceBatch([ [&amp;quot;\u555E&amp;quot;,&amp;quot;唖&amp;quot;],[&amp;quot;\u7130&amp;quot;,&amp;quot;焔&amp;quot;],[&amp;quot;\u9DD7&amp;quot;,&amp;quot;鴎&amp;quot;],[&amp;quot;\u6451&amp;quot;,&amp;quot;掴&amp;quot;],[&amp;quot;\u9EB4&amp;quot;,&amp;quot;麹&amp;quot;],[&amp;quot;\u5653&amp;quot;,&amp;quot;嘘&amp;quot;],[&amp;quot;\u4FE0&amp;quot;,&amp;quot;侠&amp;quot;],[&amp;quot;\u9830&amp;quot;,&amp;quot;頬&amp;quot;],[&amp;quot;\u8EC0&amp;quot;,&amp;quot;躯&amp;quot;],[&amp;quot;\u4FF1&amp;quot;,&amp;quot;倶&amp;quot;],[&amp;quot;\u7E6B&amp;quot;,&amp;quot;繋&amp;quot;],[&amp;quot;\u59F8&amp;quot;,&amp;quot;妍&amp;quot;],[&amp;quot;\u9E7C&amp;quot;,&amp;quot;鹸&amp;quot;],[&amp;quot;\u5699&amp;quot;,&amp;quot;噛&amp;quot;],[&amp;quot;\u6522&amp;quot;,&amp;quot;攅&amp;quot;],[&amp;quot;\uD842\uDF9F&amp;quot;,&amp;quot;叱&amp;quot;],[&amp;quot;\u7E61&amp;quot;,&amp;quot;繍&amp;quot;],[&amp;quot;\u8523&amp;quot;,&amp;quot;蒋&amp;quot;],[&amp;quot;\u91AC&amp;quot;,&amp;quot;醤&amp;quot;],[&amp;quot;\u87EC&amp;quot;,&amp;quot;蝉&amp;quot;],[&amp;quot;\u6414&amp;quot;,&amp;quot;掻&amp;quot;],[&amp;quot;\u7626&amp;quot;,&amp;quot;痩&amp;quot;],[&amp;quot;\u9A52&amp;quot;,&amp;quot;騨&amp;quot;],[&amp;quot;\u7C1E&amp;quot;,&amp;quot;箪&amp;quot;],[&amp;quot;\u5861&amp;quot;,&amp;quot;填&amp;quot;],[&amp;quot;\u985A&amp;quot;,&amp;quot;顛&amp;quot;],[&amp;quot;\u79B1&amp;quot;,&amp;quot;祷&amp;quot;],[&amp;quot;\u7006&amp;quot;,&amp;quot;涜&amp;quot;],[&amp;quot;\u541E&amp;quot;,&amp;quot;呑&amp;quot;],[&amp;quot;\u56CA&amp;quot;,&amp;quot;嚢&amp;quot;],[&amp;quot;\u525D&amp;quot;,&amp;quot;剥&amp;quot;],[&amp;quot;\u6F51&amp;quot;,&amp;quot;溌&amp;quot;],[&amp;quot;\u91B1&amp;quot;,&amp;quot;醗&amp;quot;],[&amp;quot;\u5C5B&amp;quot;,&amp;quot;屏&amp;quot;],[&amp;quot;\u5E77&amp;quot;,&amp;quot;并&amp;quot;],[&amp;quot;\u9EB5&amp;quot;,&amp;quot;麺&amp;quot;],[&amp;quot;\u840A&amp;quot;,&amp;quot;莱&amp;quot;],[&amp;quot;\u5C62&amp;quot;,&amp;quot;屡&amp;quot;],[&amp;quot;\u6CAA&amp;quot;,&amp;quot;濾&amp;quot;],[&amp;quot;\u881F&amp;quot;,&amp;quot;蝋&amp;quot;] ]) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;★10→16進数&lt;br /&gt;
:半角数字列を10進数値とみなし、16進数値に変換します。&lt;br /&gt;
:例＞ &amp;lt;span style=&amp;quot;background:#bfdfff;&amp;quot;&amp;gt;291／15／44015&amp;lt;/span&amp;gt; → 123／F／ABEF&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;10→16進数&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2014/05/31&lt;br /&gt;
  return _.replace(/[0-9]+/g,function(s){return Number(s).toString(16).toUpperCase()}) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
;★16→10進数&lt;br /&gt;
:半角英数字列を16進数値とみなし、10進数値に変換します。英字の大小、0x の有無は問いません。&lt;br /&gt;
:例＞ &amp;lt;span style=&amp;quot;background:#bfdfff;&amp;quot;&amp;gt;123／0x0F／abef&amp;lt;/span&amp;gt; → 291／15／44015&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;16→10進数&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2017/06/25&lt;br /&gt;
  return _.replace(/(?:0x)?([0-9a-f]+)/gi,function(_,x){return Number(&amp;quot;0x&amp;quot;+x)}) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;2進接頭辞換算&lt;br /&gt;
:半角数字列を 2&amp;lt;sup&amp;gt;10&amp;lt;/sup&amp;gt; = 1024 の倍量単位 (Ki,Mi,Gi...Yi) に変換します（小数点第3位を四捨五入）。&lt;br /&gt;
:例＞ &amp;lt;span style=&amp;quot;background:#bfdfff;&amp;quot;&amp;gt;1023／1024／54321／1,048,576／1,073,741,824&amp;lt;/span&amp;gt; → 1023／1.00Ki／53.05Ki／1.00Mi／1.00Gi&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;2進接頭辞換算&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2015/03/14&lt;br /&gt;
  var k=1024,p=&amp;quot;?KMGTPEZY&amp;quot;; return _.replace(/[0-9]+(,?[0-9]{3})+/g,function(s){var x=0,n=s.replace(/,/g,&amp;quot;&amp;quot;); if(n&amp;lt;k)return s; while(n&amp;gt;=k&amp;amp;&amp;amp;x&amp;lt;8){n/=k;x++} return n.toFixed(2)+p.charAt(x)+&amp;quot;i&amp;quot;}) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==符号化/復号化==&lt;br /&gt;
&lt;br /&gt;
;URL %エンコード／デコード(UTF-8)&lt;br /&gt;
:URL アドレスに使用されるパーセントエンコーディングの符号化/復号化を行います。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;URL %エンコード(UTF-8)&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2014/02/01&lt;br /&gt;
  return encodeURI(_).replace(/%0D%0A|%0D|%0A/g,&amp;quot;\n&amp;quot;) }]);&lt;br /&gt;
f.push([&amp;quot;URL %デコード(UTF-8)&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2014/02/01&lt;br /&gt;
  return decodeURIComponent(_) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Base64エンコード／デコード(UTF-8)&lt;br /&gt;
:[https://ja.wikipedia.org/wiki/Base64 Base64] 形式の符号化/復号化を行います。&lt;br /&gt;
:※バイナリデータ（画像や音声など）の復号化は、[編集]→[選択範囲の変換]→[Base64デコード] をご利用ください。&lt;br /&gt;
:&amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;注意点&amp;lt;/b&amp;gt;&lt;br /&gt;
:* 改行は LF (0x0A) としてエンコードされます。&lt;br /&gt;
:* A～Z a～z 0～9 + / 以外の文字（改行含む）は除去してからデコードされます。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;Base64エンコード(UTF-8)&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2019/06/01&lt;br /&gt;
  var B=&amp;quot;ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/&amp;quot;.split(&amp;quot;&amp;quot;), asc=unescape(encodeURIComponent(_)), n=asc.length, b64=&amp;quot;&amp;quot;, x; for(var i=0;i&amp;lt;n;){x=(asc.charCodeAt(i++)&amp;lt;&amp;lt;16)|(asc.charCodeAt(i++)&amp;lt;&amp;lt;8)|(asc.charCodeAt(i++)); b64+=B[x&amp;gt;&amp;gt;&amp;gt;18&amp;amp;0x3F]+B[x&amp;gt;&amp;gt;&amp;gt;12&amp;amp;0x3F]+B[x&amp;gt;&amp;gt;&amp;gt;6&amp;amp;0x3F]+B[x&amp;amp;0x3F]} if(n%3)b64=b64.slice(0,n%3-3)+&amp;quot;===&amp;quot;.slice(n%3); return b64 }]);&lt;br /&gt;
f.push([&amp;quot;Base64デコード(UTF-8)&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2019/06/01&lt;br /&gt;
  var B=&amp;quot;ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/&amp;quot;, A={}; for(var i=0;i&amp;lt;B.length;i++){A[B.charAt(i)]=i} var b64=_.replace(/[^A-Za-z0-9+/]/g,&amp;quot;&amp;quot;).split(&amp;quot;&amp;quot;), n=b64.length, asc=&amp;quot;&amp;quot;, x; for(var i=0;i&amp;lt;n;){x=(A[b64[i++]]&amp;lt;&amp;lt;18)|(A[b64[i++]]&amp;lt;&amp;lt;12)|(A[b64[i++]]&amp;lt;&amp;lt;6)|(A[b64[i++]]); asc+=String.fromCharCode(x&amp;gt;&amp;gt;&amp;gt;16&amp;amp;0xFF,x&amp;gt;&amp;gt;&amp;gt;8&amp;amp;0xFF,x&amp;amp;0xFF)} asc=asc.replace(/(?:[\x00-\x7F]|[\xC2-\xDF][\x80-\xBF]|[\xE0-\xEF][\x80-\xBF]{2}|[\xF0-\xF7][\x80-\xBF]{3}|.){1,50}/g,function(asc){return decodeURIComponent(escape(asc))}); if(n%4)asc=asc.slice(0,n%4-4); return asc }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;\uHHHH エンコード／デコード&lt;br /&gt;
:JavaScript などで使用される \uHHHH 形式の変換を行います。※HHHH＝4桁の16進数&lt;br /&gt;
:例＞ &amp;lt;span style=&amp;quot;background:#bfdfff;&amp;quot;&amp;gt;Aわ𩸽&amp;lt;/span&amp;gt; ←→ &amp;lt;span style=&amp;quot;background:#bfdfff;&amp;quot;&amp;gt;\u0041\u308F\uD867\uDE3D&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;\\uHHHH エンコード&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2017/06/25&lt;br /&gt;
  return _.replace(/[^\n]/g,function(s){return &amp;quot;\\u&amp;quot;+(&amp;quot;000&amp;quot;+s.charCodeAt(0).toString(16).toUpperCase()).slice(-4)}) }]);&lt;br /&gt;
f.push([&amp;quot;\\uHHHH デコード&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2014/10/12&lt;br /&gt;
  return _.replace(/\\u([0-9A-Fa-f]{4})/g,function(_,n){return String.fromCharCode(Number(&amp;quot;0x&amp;quot;+n))}) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;\u4H \U8H エンコード／デコード&lt;br /&gt;
:Unicode で使用される \u4H および \U8H 形式の変換を行います。※4H, 8H＝4桁, 8桁の16進数&lt;br /&gt;
:例＞ &amp;lt;span style=&amp;quot;background:#bfdfff;&amp;quot;&amp;gt;Aわ𩸽&amp;lt;/span&amp;gt; ←→ &amp;lt;span style=&amp;quot;background:#bfdfff;&amp;quot;&amp;gt;\u0041\u308F\U00029E3D&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;\\u4H \\U8H エンコード&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2017/06/25&lt;br /&gt;
  return _.replace(/[^\n]+/g,function(s){var r=&amp;quot;&amp;quot;,u,v; for(var i=0;i&amp;lt;s.length;i++){u=s.charCodeAt(i); if(0xD800&amp;lt;=u&amp;amp;&amp;amp;u&amp;lt;=0xDBFF){v=s.charCodeAt(i+1); if(0xDC00&amp;lt;=v&amp;amp;&amp;amp;v&amp;lt;=0xDFFF){i++;u=0x10000+(u-0xD800&amp;lt;&amp;lt;10)+(v-0xDC00);r+=&amp;quot;\\U&amp;quot;+toHex(u,8);continue}} r+=&amp;quot;\\u&amp;quot;+toHex(u,4)} return r}); function toHex(n,d){return (&amp;quot;000&amp;quot;+n.toString(16).toUpperCase()).slice(-d)} }]);&lt;br /&gt;
f.push([&amp;quot;\\u4H \\U8H デコード&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2015/09/30&lt;br /&gt;
  return _.replace(/\\u([0-9A-Fa-f]{4})|\\U([0-9A-Fa-f]{8})/g,function(s,u4,U8){var n=Number(&amp;quot;0x&amp;quot;+(u4||U8)); return (n&amp;lt;=0xFFFF)?String.fromCharCode(n): (n&amp;lt;=0x10FFFF)?String.fromCharCode(n-0x10000&amp;gt;&amp;gt;10|0xD800,n&amp;amp;0x3FF|0xDC00): s}) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;\x{hex} エンコード／デコード&lt;br /&gt;
:Mery の正規表現 (鬼車/鬼雲) などで使用される \x{hex} 形式の変換を行います。※hex＝1～6桁の16進数&lt;br /&gt;
:例＞ &amp;lt;span style=&amp;quot;background:#bfdfff;&amp;quot;&amp;gt;Aわ𩸽&amp;lt;/span&amp;gt; ←→ &amp;lt;span style=&amp;quot;background:#bfdfff;&amp;quot;&amp;gt;\x{41}\x{308f}\x{29e3d}&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;\\x{hex} エンコード&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2017/06/25&lt;br /&gt;
  return _.replace(/[^\n]+/g,function(s){var r=&amp;quot;&amp;quot;,u,v; for(var i=0;i&amp;lt;s.length;i++){u=s.charCodeAt(i); if(0xD800&amp;lt;=u&amp;amp;&amp;amp;u&amp;lt;=0xDBFF){v=s.charCodeAt(i+1); if(0xDC00&amp;lt;=v&amp;amp;&amp;amp;v&amp;lt;=0xDFFF){i++;u=0x10000+(u-0xD800&amp;lt;&amp;lt;10)+(v-0xDC00)}} r+=(&amp;quot;\\x{&amp;quot;+u.toString(16)+&amp;quot;}&amp;quot;)} return r}) }]);&lt;br /&gt;
f.push([&amp;quot;\\x{hex} デコード&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2015/03/14&lt;br /&gt;
  return _.replace(/\\x\{([0-9A-Fa-f]{1,6})\}/g,function(s,n){n=Number(&amp;quot;0x&amp;quot;+n); return (n&amp;lt;=0xFFFF)?String.fromCharCode(n): (n&amp;lt;=0x10FFFF)?String.fromCharCode(n-0x10000&amp;gt;&amp;gt;10|0xD800,n&amp;amp;0x3FF|0xDC00): s}) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;&amp;amp;#dec; エンコード／デコード&lt;br /&gt;
:HTML などで使用される &amp;amp;#dec; 形式の変換を行います。※dec＝1～7桁の10進数&lt;br /&gt;
:例＞ &amp;lt;span style=&amp;quot;background:#bfdfff;&amp;quot;&amp;gt;Aわ𩸽&amp;lt;/span&amp;gt; ←→ &amp;lt;span style=&amp;quot;background:#bfdfff;&amp;quot;&amp;gt;&amp;amp;amp;#65;&amp;amp;amp;#12431;&amp;amp;amp;#171581;&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;&amp;amp;&amp;amp;#dec; エンコード&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2017/06/25&lt;br /&gt;
  return _.replace(/[^\n]+/g,function(s){var r=&amp;quot;&amp;quot;,u,v; for(var i=0;i&amp;lt;s.length;i++){u=s.charCodeAt(i); if(0xD800&amp;lt;=u&amp;amp;&amp;amp;u&amp;lt;=0xDBFF){v=s.charCodeAt(i+1); if(0xDC00&amp;lt;=v&amp;amp;&amp;amp;v&amp;lt;=0xDFFF){i++;u=0x10000+(u-0xD800&amp;lt;&amp;lt;10)+(v-0xDC00)}} r+=(&amp;quot;&amp;amp;#&amp;quot;+u+&amp;quot;;&amp;quot;)} return r}) }]);&lt;br /&gt;
f.push([&amp;quot;&amp;amp;&amp;amp;#dec; デコード&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2015/03/14&lt;br /&gt;
  return _.replace(/&amp;amp;#([0-9]{1,7});/g,function(s,n){n=Number(n); return (n&amp;lt;=0xFFFF)?String.fromCharCode(n): (n&amp;lt;=0x10FFFF)?String.fromCharCode(n-0x10000&amp;gt;&amp;gt;10|0xD800,n&amp;amp;0x3FF|0xDC00): s}) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;&amp;amp;#xHEX; エンコード／デコード&lt;br /&gt;
:HTML などで使用される &amp;amp;#xHEX; 形式の変換を行います。※HEX＝1～6桁の16進数&lt;br /&gt;
:例＞ &amp;lt;span style=&amp;quot;background:#bfdfff;&amp;quot;&amp;gt;Aわ𩸽&amp;lt;/span&amp;gt; ←→ &amp;lt;span style=&amp;quot;background:#bfdfff;&amp;quot;&amp;gt;&amp;amp;amp;#x41;&amp;amp;amp;#x308F;&amp;amp;amp;#x29E3D;&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;&amp;amp;&amp;amp;#xHEX; エンコード&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2017/06/25&lt;br /&gt;
  return _.replace(/[^\n]+/g,function(s){var r=&amp;quot;&amp;quot;,u,v; for(var i=0;i&amp;lt;s.length;i++){u=s.charCodeAt(i); if(0xD800&amp;lt;=u&amp;amp;&amp;amp;u&amp;lt;=0xDBFF){v=s.charCodeAt(i+1); if(0xDC00&amp;lt;=v&amp;amp;&amp;amp;v&amp;lt;=0xDFFF){i++;u=0x10000+(u-0xD800&amp;lt;&amp;lt;10)+(v-0xDC00)}} r+=(&amp;quot;&amp;amp;#x&amp;quot;+u.toString(16).toUpperCase()+&amp;quot;;&amp;quot;)} return r}) }]);&lt;br /&gt;
f.push([&amp;quot;&amp;amp;&amp;amp;#xHEX; デコード&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2017/06/25&lt;br /&gt;
  return _.replace(/&amp;amp;#[Xx]([0-9A-Fa-f]{1,6});/g,function(s,n){n=Number(&amp;quot;0x&amp;quot;+n); return (n&amp;lt;=0xFFFF)?String.fromCharCode(n): (n&amp;lt;=0x10FFFF)?String.fromCharCode(n-0x10000&amp;gt;&amp;gt;10|0xD800,n&amp;amp;0x3FF|0xDC00): s}) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==拡張コード用==&lt;br /&gt;
&lt;br /&gt;
;拡張コード テンプレート&lt;br /&gt;
:拡張コードの雛形を挿入します。コマンドを自作したい場合にご利用ください。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;拡張コード テンプレート&amp;quot;,function(f){ //2019/06/01&lt;br /&gt;
f.push([&amp;quot;コマンド&amp;quot;,&amp;quot;&amp;quot;,function(_,$){&lt;br /&gt;
  $.StartOfLine(); return [&#039;f.push([&amp;quot;コマンド&amp;quot;,&amp;quot;&amp;quot;,function(_,$){\n  &#039; , &#039; }]);\n&#039;] }]);&lt;br /&gt;
f.push([&amp;quot;コマンド s (選択必須)&amp;quot;,&amp;quot;&amp;quot;,function(_,$){&lt;br /&gt;
  $.StartOfLine(); return [&#039;f.push([&amp;quot;コマンド&amp;quot;,&amp;quot;s&amp;quot;,function(_,$){\n  return _.replace(&#039; , &#039;) }]);\n&#039;] }]);&lt;br /&gt;
f.push([&amp;quot;コマンド L (行選択)&amp;quot;,&amp;quot;&amp;quot;,function(_,$){&lt;br /&gt;
  $.StartOfLine(); return [&#039;f.push([&amp;quot;コマンド&amp;quot;,&amp;quot;L&amp;quot;,function(_,$){\n  return _.replace(&#039; , &#039;) }]);\n&#039;] }]);&lt;br /&gt;
f.push([&amp;quot;サブメニュー&amp;quot;,&amp;quot;L&amp;quot;,function(_){&lt;br /&gt;
  return [&#039;f.push([&amp;quot;&#039; , &#039;メニュー&#039; , &#039;&amp;quot;,function(f){\n&#039;+ _ +&#039;\n}]);&#039;] }]);&lt;br /&gt;
f.push([&amp;quot;セパレーター&amp;quot;,&amp;quot;&amp;quot;,function(_,$){&lt;br /&gt;
  $.StartOfLine(); return [&#039;f.push([&amp;quot;--------&amp;quot;]);\n&#039; , &#039;&#039;] }]);&lt;br /&gt;
}]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;replaceBatch 補助&lt;br /&gt;
:[[#replaceBatch メソッド|replaceBatch メソッド]]用の配列作成を補助するコマンド群です。&lt;br /&gt;
:※書式の解析精度は不完全です。検索/置換文字に &amp;lt;code&amp;gt;&amp;quot; &#039; , / \ ]&amp;lt;/code&amp;gt; を含む配列は誤変換する恐れがあります。&lt;br /&gt;
:※書式ミスは考慮していません。誤変換した場合は書式ミスの可能性も疑ってみてください。&lt;br /&gt;
&lt;br /&gt;
;交換 [&amp;quot;a&amp;quot;,&amp;quot;b&amp;quot;] → [&amp;quot;b&amp;quot;,&amp;quot;a&amp;quot;]&lt;br /&gt;
:配列の検索文字列と置換文字列を入れ替えます。正規表現は検索側のみ使用可なので交換しません（例では &amp;lt;code&amp;gt;■,□&amp;lt;/code&amp;gt; のペアが該当）。&lt;br /&gt;
:例＞ &amp;lt;code style=&amp;quot;background:#bfdfff;&amp;quot;&amp;gt;[&amp;quot;●&amp;quot;,&amp;quot;○&amp;quot;],[&#039;▲&#039;,&#039;△&#039;],[/■/g,&amp;quot;□&amp;quot;],[&amp;quot;◆&amp;quot;,&#039;◇&#039;]&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;[&amp;quot;○&amp;quot;,&amp;quot;●&amp;quot;],[&#039;△&#039;,&#039;▲&#039;],[/■/g,&amp;quot;□&amp;quot;],[&#039;◇&#039;,&amp;quot;◆&amp;quot;]&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&#039;交換 [&amp;quot;a&amp;quot;,&amp;quot;b&amp;quot;] → [&amp;quot;b&amp;quot;,&amp;quot;a&amp;quot;]&#039;,&amp;quot;s&amp;quot;,function(_){ //2014/05/31&lt;br /&gt;
  return _.replace(/\[(&amp;quot;[^\\&amp;quot;]*(?:\\.[^\\&amp;quot;]*)*&amp;quot;|&#039;[^\\&#039;]*(?:\\.[^\\&#039;]*)*&#039;),(&amp;quot;[^\\&amp;quot;]*(?:\\.[^\\&amp;quot;]*)*&amp;quot;|&#039;[^\\&#039;]*(?:\\.[^\\&#039;]*)*&#039;)\]/g,&amp;quot;[$2,$1]&amp;quot;) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;分割 [&amp;quot;a&amp;quot;,&amp;quot;b&amp;quot;] → &amp;quot;a&amp;quot; › &amp;quot;b&amp;quot;↵&lt;br /&gt;
;結合 &amp;quot;a&amp;quot; › &amp;quot;b&amp;quot;↵ → [&amp;quot;a&amp;quot;,&amp;quot;b&amp;quot;]&lt;br /&gt;
:配列と TSV 形式を変換します。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&#039;分割 [&amp;quot;a&amp;quot;,&amp;quot;b&amp;quot;] → &amp;quot;a&amp;quot; \u203A &amp;quot;b&amp;quot;\u21B5&#039;,&amp;quot;L&amp;quot;,function(_){ //2017/06/25&lt;br /&gt;
  return _.replace(/,?\[(&amp;quot;[^\\&amp;quot;]*(?:\\.[^\\&amp;quot;]*)*&amp;quot;|&#039;[^\\&#039;]*(?:\\.[^\\&#039;]*)*&#039;|\/.*?\/[gim]*),(&amp;quot;[^\\&amp;quot;]*(?:\\.[^\\&amp;quot;]*)*&amp;quot;|&#039;[^\\&#039;]*(?:\\.[^\\&#039;]*)*&#039;)\],?/g,&amp;quot;\n$1\t$2\n&amp;quot;).replace(/\n\n/g,&amp;quot;\n&amp;quot;) }]);&lt;br /&gt;
f.push([&#039;結合 &amp;quot;a&amp;quot; \u203A &amp;quot;b&amp;quot;\u21B5 → [&amp;quot;a&amp;quot;,&amp;quot;b&amp;quot;]&#039;,&amp;quot;L&amp;quot;,function(_){ //2015/03/14&lt;br /&gt;
  return _.replace(/\n?(((&amp;quot;.*&amp;quot;|&#039;.*&#039;|\/.*\/[gim]*)\t(&amp;quot;.*&amp;quot;|&#039;.*&#039;)\n*)+)/g,function(s,r){return r.replace(/(&amp;quot;.*&amp;quot;|&#039;.*&#039;|\/.*\/[gim]*)\t(&amp;quot;.*&amp;quot;|&#039;.*&#039;)\n*/g,&amp;quot;[$1,$2],&amp;quot;).replace(/,$/,&amp;quot;&amp;quot;)}) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=拡張コード：書式=&lt;br /&gt;
&lt;br /&gt;
==コマンド==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
f.push([&amp;quot;コマンド名&amp;quot;,&amp;quot;オプション&amp;quot;,function(引数){ 処理 }]);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
;オプション&lt;br /&gt;
:{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
| &amp;lt;code&amp;gt;s&amp;lt;/code&amp;gt; || 実行に範囲選択を要求 (require selection)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;c&amp;lt;/code&amp;gt; || 実行にクリップボードを要求 (require clipboard)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;L&amp;lt;/code&amp;gt; || 行選択してから処理 (select Line)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;O&amp;lt;/code&amp;gt; || 非選択時はすべて選択してから処理 (select OR all)&amp;lt;br&amp;gt;※実験的機能（変更・廃止の可能性あり）&lt;br /&gt;
|}&lt;br /&gt;
:複数指定する場合、空白で区切ります。順序は問いません。&amp;lt;br&amp;gt;※仕様上、&amp;lt;code&amp;gt;0-9 A-Z a-z _&amp;lt;/code&amp;gt; 以外の文字ならば区切りと判定されますが、空白を推奨します。&lt;br /&gt;
;引数&lt;br /&gt;
:第1引数に [[マクロリファレンス:Selection_インターフェイス#Text_プロパティ|Document.Selection.Text]] が、&amp;lt;br&amp;gt;第2引数に [[マクロリファレンス:Selection_インターフェイス|Document.Selection]] が渡されます。&lt;br /&gt;
;処理&lt;br /&gt;
:String (文字列) か Array (配列) を return すると、選択範囲を置換してカーソルを移動します。それ以外 (undefined など) の場合は、選択範囲に対し何もしません。&lt;br /&gt;
:なお、処理の途中で選択範囲が変化した場合、変化先で置換が行われます。&lt;br /&gt;
:{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 例 !! 動作&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;quot;abcd&amp;quot;&amp;lt;/code&amp;gt; || abcd に置換後、abcd を選択 = &amp;lt;code&amp;gt;[&amp;quot;&amp;quot;,&amp;quot;abcd&amp;quot;,&amp;quot;&amp;quot;]&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;[&amp;quot;ab&amp;quot;,&amp;quot;cd&amp;quot;]&amp;lt;/code&amp;gt; || abcd に置換後、ab と cd の間に移動&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;[&amp;quot;ab&amp;quot;,&amp;quot;cd&amp;quot;,&amp;quot;&amp;quot;]&amp;lt;/code&amp;gt; || abcd に置換後、cd を選択&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==サブメニュー==&lt;br /&gt;
サブメニューを設けます。サブメニュー内サブメニュー（階層化）も可能です。&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
f.push([&amp;quot;メニュー名&amp;quot;,function(f){&lt;br /&gt;
/* コマンド or サブメニュー or セパレーター */&lt;br /&gt;
}]);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==セパレーター==&lt;br /&gt;
セパレーター（区切り）を設けます。&amp;lt;br&amp;gt;※半角ハイフン &amp;lt;code&amp;gt;-&amp;lt;/code&amp;gt; は何個でも含められますが、他の文字は含められません。&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
f.push([&amp;quot;--------&amp;quot;]);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==replaceBatch メソッド==&lt;br /&gt;
&amp;lt;code&amp;gt;replace&amp;lt;/code&amp;gt; を連鎖させる記法（メソッドチェーン）の省略記法です。&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
f.push([&amp;quot;例 replaceBatch&amp;quot;,&amp;quot;s&amp;quot;,function(_){&lt;br /&gt;
  return _.replaceBatch([ [&amp;quot;ABC&amp;quot;,&amp;quot;DEF&amp;quot;],[&amp;quot;(1)&amp;quot;,&amp;quot;①&amp;quot;],[/GHI/gi,&amp;quot;JKL&amp;quot;] ]) }]);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
上記の処理は、下記と同じ処理になります。&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
f.push([&amp;quot;例 replace&amp;quot;,&amp;quot;s&amp;quot;,function(_){&lt;br /&gt;
  return _.replace(/ABC/g,&amp;quot;DEF&amp;quot;).replace(/\(1\)/g,&amp;quot;①&amp;quot;).replace(/GHI/gi,&amp;quot;JKL&amp;quot;) }]);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Masme</name></author>
	</entry>
	<entry>
		<id>https://www.haijin-boys.com/wiki/index.php?title=%E3%82%AD%E3%83%BC%E3%82%A2%E3%82%B5%E3%82%A4%E3%83%B3%E9%9B%86&amp;diff=4401</id>
		<title>キーアサイン集</title>
		<link rel="alternate" type="text/html" href="https://www.haijin-boys.com/wiki/index.php?title=%E3%82%AD%E3%83%BC%E3%82%A2%E3%82%B5%E3%82%A4%E3%83%B3%E9%9B%86&amp;diff=4401"/>
		<updated>2019-06-16T07:56:21Z</updated>

		<summary type="html">&lt;p&gt;Masme: ( ) / を全角化。「括弧で挟む」「始点終点を交替」「1/4上下移動」「表示行選択」を更新。&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;キーアサイン(キーボードの割り当て)集です．&amp;lt;br&amp;gt;&lt;br /&gt;
「従来動作＋α」または「別エディタの動作を模倣」を基本とします．&amp;lt;br&amp;gt;&lt;br /&gt;
他に良いと思われるキーアサインがあれば是非ご投稿ください．&lt;br /&gt;
* デフォルトのメニュー内コマンドのキーアサインは、[[ヘルプ:目次|ヘルプ]]の 「[[ヘルプ:目次#キーボードマップ|キーボードマップ]]」 を参照&lt;br /&gt;
* マクロをアイコン化してツールバーに配置するばあいは、「[[マテリアルデザインっぽいアイコンと『小マクロ集』]]」 を参照 &amp;lt;!-- ２行追加 (sukemaru) 2018/10/08 --&amp;gt;&lt;br /&gt;
&amp;lt;div&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= 注意点 =&lt;br /&gt;
* 「Alt + 矢印キー」は、開発環境の仕様制限により、キーを割り当てても動作しません（参考フォーラム→ [http://www.haijin-boys.com/index.php?fuseaction=discussions.replies&amp;amp;discussion_id=2399 2013/12/23] [http://www.haijin-boys.com/index.php?fuseaction=discussions.replies&amp;amp;discussion_id=1078 2010/01/20]）。&lt;br /&gt;
&lt;br /&gt;
= キーアサイン =&lt;br /&gt;
== バックスペース ==&lt;br /&gt;
* 推奨割当「Ctrl + BackSpace」&lt;br /&gt;
* バックスペース処理をする（※通常は制御文字 DEL (0x007F) が挿入される）&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
var sel = Editor.ActiveDocument.Selection;&lt;br /&gt;
if (sel.IsEmpty) {&lt;br /&gt;
  sel.DeleteLeft(1);&lt;br /&gt;
} else {&lt;br /&gt;
  sel.Delete();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 強制改行 (インデント無効) ==&lt;br /&gt;
* 推奨割当「Shift + Enter」「Ctrl + Enter」&lt;br /&gt;
* 自動インデントを無視して改行する&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
Document.Write(&amp;quot;\n&amp;quot;);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 切り取り (行切り取り無効) ==&lt;br /&gt;
* 推奨割当「Ctrl + X」「Shift + Delete」&lt;br /&gt;
* 非選択時にカーソル行（論理行）を切り取りしない（※通常は行切り取りする）&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
if (Document.Selection.Text) Document.Selection.Cut();&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== コピー (行コピー無効) ==&lt;br /&gt;
* 推奨割当「Ctrl + C」「Ctrl + Insert」&lt;br /&gt;
* 非選択時にカーソル行（論理行）をコピーしない（※通常は行コピーする）&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
if (Document.Selection.Text) Document.Selection.Copy();&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== コピー (行コピー時選択) ==&lt;br /&gt;
* 推奨割当「Ctrl + C」「Ctrl + Insert」&lt;br /&gt;
* 非選択時コピー（行コピー）時にコピーした範囲を選択する（※通常は範囲選択しない）&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
Document.Selection.Copy();&lt;br /&gt;
if (Document.Selection.IsEmpty) Document.Selection.SelectLine();&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== コピーして選択範囲を解除 ==&lt;br /&gt;
* 推奨割当「Ctrl + C」「Ctrl + Insert」&lt;br /&gt;
* 選択範囲ありでコピーしたときは選択範囲を解除する（※通常は選択解除しない）&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
document.selection.Copy();&lt;br /&gt;
document.selection.Collapse( meCollapseStart );	// 選択範囲の開始位置にカーソルを移動&lt;br /&gt;
// 選択範囲の始点にカーソルを移動させて解除するなら ( meCollapseStart )&lt;br /&gt;
// 選択範囲の終点にカーソルを移動させて解除するなら ( meCollapseEnd )&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;!-- 2018/10/08追加 (sukemaru) --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== すべて選択 (非スクロール) ==&lt;br /&gt;
* 推奨割当「Ctrl + A」&lt;br /&gt;
* すべて選択時にスクロールしない（※通常は文書の末尾までスクロールする）&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
var sx = ScrollX, sy = ScrollY;	//スクロール位置を記憶&lt;br /&gt;
Document.Selection.SelectAll();&lt;br /&gt;
ScrollX = sx; ScrollY = sy;	//スクロール位置を復元&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 選択範囲を解除 (非スクロール) ==&lt;br /&gt;
* 推奨割り当て「Shift + Esc」または「Esc」 &amp;lt;br&amp;gt; ※「Ctrl + Esc」/「Ctrl + Shift + Esc」は Windows の予約済みショートカットキー（スタートメニュー / タスクマネージャ） &amp;lt;br&amp;gt; ※ 通常、選択範囲の解除は「矢印キー」でもできるが、その場合カーソル位置まで画面がスクロールする&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
var sx = ScrollX, sy = ScrollY;&lt;br /&gt;
document.selection.Collapse( meCollapseEnd );	// 選択範囲の先頭にカーソルを残して解除するなら ( meCollapseStart )&lt;br /&gt;
ScrollX = sx; ScrollY = sy;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
選択範囲の先頭/末尾によらず、アクティブなキャレット位置のまま解除するなら…&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
var sx = ScrollX, sy = ScrollY;&lt;br /&gt;
document.selection.SetActivePos( document.selection.GetActivePos() );&lt;br /&gt;
ScrollX = sx; ScrollY = sy;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;!-- &lt;br /&gt;
・2018/10/08追加 (sukemaru)&lt;br /&gt;
・2018/10/16加筆 (sukemaru)&lt;br /&gt;
 --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 追加切り取り ==&lt;br /&gt;
* 割当例「Shift + Ctrl + X」など&lt;br /&gt;
* クリップボードに追加する切り取り&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
var cb = ClipboardData.GetData();&lt;br /&gt;
Document.Selection.Cut();&lt;br /&gt;
ClipboardData.SetData(cb + ClipboardData.GetData());&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 追加コピー ==&lt;br /&gt;
* 割当例「Shift + Ctrl + C」など&lt;br /&gt;
* クリップボードに追加するコピー&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
var cb = ClipboardData.GetData();&lt;br /&gt;
Document.Selection.Copy();&lt;br /&gt;
ClipboardData.SetData(cb + ClipboardData.GetData());&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 行を複製 ==&lt;br /&gt;
* 割当例「Ctrl + D」「Ctrl + Insert」など&lt;br /&gt;
* カーソル行（論理行）を複製する&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
Document.Selection.DuplicateLine();&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
→ 複数行を複製するばあいは、マクロ「[[行を複製 (複数行可)]]」&amp;lt;!-- 一文追加 (sukemaru) 2018/10/08 --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 行を削除 ==&lt;br /&gt;
* 割当例「Ctrl + E」「Ctrl + Delete」など&lt;br /&gt;
* カーソル行（論理行）を削除する&lt;br /&gt;
* &amp;lt;b&amp;gt;Mery 2.5.0 から同様の機能を持つ「行削除」が追加されました&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
Document.Selection.SelectLine();&lt;br /&gt;
Document.Selection.Delete();&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 行頭／行末まで削除 ==&lt;br /&gt;
* 論理行の行頭／行末まで削除したい場合は &amp;lt;code&amp;gt;mePosView&amp;lt;/code&amp;gt; を &amp;lt;code&amp;gt;mePosLogical&amp;lt;/code&amp;gt; に書き換えてください&lt;br /&gt;
* &amp;lt;b&amp;gt;Mery 2.5.0 から追加された「行左削除」「行右削除」で、論理行の行頭／行末までの削除ができます&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* 割当例「Shift + BackSpace」など&lt;br /&gt;
* カーソル位置から行頭（表示行）まで削除する&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
with (Document.Selection) {&lt;br /&gt;
  SetAnchorPos(GetActivePos());&lt;br /&gt;
  StartOfLine(true, mePosView);&lt;br /&gt;
  Delete();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
* 割当例「Shift + Delete」など&lt;br /&gt;
* カーソル位置から行末（表示行）まで削除する&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
with (Document.Selection) {&lt;br /&gt;
  SetAnchorPos(GetActivePos());&lt;br /&gt;
  EndOfLine(true, mePosView);&lt;br /&gt;
  Delete();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 定型文をファイルから挿入 ==&lt;br /&gt;
* 割り当て例「Ctrl + I」「Ctrl + @」など&lt;br /&gt;
* 文書の雛形用の定型文や署名（連絡先、コピーライト）などのテンプレートを、別途用意したテキストファイルから取り込む&lt;br /&gt;
* あらかじめ定型文用のテキストファイルを用意しておくこと&lt;br /&gt;
→ ref. [[マテリアルデザインっぽいアイコンと『小マクロ集』|『小マクロ集』]] の「[[マテリアルデザインっぽいアイコンと『小マクロ集』#定型文（署名）を追加|定型文（署名）を追加]]」 （※「[[マテリアルデザインっぽいアイコンと『小マクロ集』#定型文つき新規ドキュメント|定型文つき新規ドキュメント]]」を新規タブで開くソースコードもあります）&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
#title = &amp;quot;定型文を追加&amp;quot;&lt;br /&gt;
#tooltip = &amp;quot;定型文をファイルから挿入&amp;quot;&lt;br /&gt;
var file = &amp;quot;C:\\hoge\\Template.txt&amp;quot;;		// 挿入するテキストファイルを &amp;quot;フルパス&amp;quot; で指定（ \ は２つ重ね \\ にすること）&lt;br /&gt;
document.selection.InsertFromFile( file, 0 );	// 0 は文字エンコードの「自動選択」&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
挿入したテンプレート部分の先頭にカーソルを移動させるなら以下のコード&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
var file = &amp;quot;C:\\hoge\\Template.txt&amp;quot;;		// 挿入するテキストファイルを &amp;quot;フルパス&amp;quot; で指定（ \ は２つ重ね \\ にすること）&lt;br /&gt;
var pos = document.selection.GetActivePos();&lt;br /&gt;
document.selection.InsertFromFile( file, 0 );	// 0 は文字エンコードの「自動選択」&lt;br /&gt;
document.selection.SetActivePos( pos );		// キャレットをマクロ開始前の座標に戻す&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;!-- 2018/10/08追加 (sukemaru) --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 括弧で挟む ==&lt;br /&gt;
* 割当例「Ctrl + 8」「Ctrl + [ 」など&lt;br /&gt;
* カーソル位置or選択範囲を指定の文字列で挟む&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
var prefix = &amp;quot;(&amp;quot;;	//前に付ける文字列&lt;br /&gt;
var suffix = &amp;quot;)&amp;quot;;	//後に付ける文字列&lt;br /&gt;
with (Document.Selection) {&lt;br /&gt;
  Text = prefix + Text + suffix;&lt;br /&gt;
  SetActivePos(GetActivePos() - suffix.length);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
→ マクロ実行後のカーソル位置を&#039;&#039;&#039;選択範囲 なし&#039;&#039;&#039; のときと &#039;&#039;&#039;あり&#039;&#039;&#039; のときとで変えたいばあいは、マクロ「[[カッコで囲う#カッコで囲う (ポップアップメニューなし)|カッコで囲う (ポップアップメニューなし)]]」&amp;lt;!-- 一文追加 (sukemaru) 2018/10/08 --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 逆インデント (単一行対応) ==&lt;br /&gt;
* 推奨割当「Shift + Tab」&lt;br /&gt;
* 複数行選択でない場合でも逆インデントする（※通常はタブ挿入）&lt;br /&gt;
* 複数行選択でない場合は、カーソルの位置関係を維持します&lt;br /&gt;
→ マクロ「[[非選択状態でも逆インデント]]」&lt;br /&gt;
または下記のコード&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
var sel = Document.Selection;&lt;br /&gt;
if (sel.Text.indexOf(&amp;quot;\n&amp;quot;) &amp;lt; 0) {&lt;br /&gt;
  var x = sel.GetActivePointX(mePosLogical);&lt;br /&gt;
  var y = sel.GetActivePointY(mePosLogical);&lt;br /&gt;
  sel.SelectLine();&lt;br /&gt;
  var n = sel.Text.length;&lt;br /&gt;
  sel.UnIndent();&lt;br /&gt;
  sel.SetActivePoint(mePosLogical, x - (n - sel.Text.length), y);&lt;br /&gt;
} else {&lt;br /&gt;
  sel.UnIndent();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
* 位置関係を維持しない（行選択する）場合は下記のコード&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
if (!/\n/.test(Document.Selection.Text)) Document.Selection.SelectLine();&lt;br /&gt;
Document.Selection.UnIndent();&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 日付と時刻 (メモ帳仕様) ==&lt;br /&gt;
* 推奨割当「F5」&lt;br /&gt;
* メモ帳のように「時刻 日付」の順で現在日時を挿入（※通常は「日付 時刻」の順）&lt;br /&gt;
→ マクロ「[[日付と時刻を挿入]]」&lt;br /&gt;
または下記のコード&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
Document.Selection.InsertDate(meDateTimeDate);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 上書き保存 (UAC対応) ==&lt;br /&gt;
* 推奨割当「Ctrl + S」&lt;br /&gt;
* UAC が必要な場合は権限昇格して保存&lt;br /&gt;
→ マクロ「[[上書き保存(UAC対応)]]」&lt;br /&gt;
&lt;br /&gt;
== 元に戻す ==&lt;br /&gt;
* 推奨割当「Ctrl + Z」&lt;br /&gt;
* 「元に戻す」実行時に，保存済みファイルと同じ内容のとき「変更マーク」を消す&lt;br /&gt;
* 速度が気になる場合はサイズ制限の値を変更してください&lt;br /&gt;
→ マクロ「[[少し便利な_Undo/Redo]]」&lt;br /&gt;
&lt;br /&gt;
== やり直し ==&lt;br /&gt;
* 推奨割当「Ctrl + Y」&lt;br /&gt;
* 「やり直し」実行時に，保存済みファイルと同じ内容のとき「変更マーク」を消す&lt;br /&gt;
* 速度が気になる場合はサイズ制限の値を変更してください&lt;br /&gt;
→ マクロ「[[少し便利な_Undo/Redo]]」&lt;br /&gt;
&lt;br /&gt;
== 上移動 (先頭行では行頭へ) ==&lt;br /&gt;
* 推奨割当「Up (↑)」&lt;br /&gt;
* 上の行がそれ以上存在しない場合は、行頭（文書の先頭）に移動する（※通常は移動しない）&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
var sel = Document.Selection;&lt;br /&gt;
if (sel.GetActivePointY(mePosView) &amp;gt; 1) {&lt;br /&gt;
  sel.LineUp();&lt;br /&gt;
} else {&lt;br /&gt;
  sel.StartOfDocument();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 下移動 (最終行では行末へ) ==&lt;br /&gt;
* 推奨割当「Down (↓)」&lt;br /&gt;
* 下の行がそれ以上存在しない場合は、行末（文書の末尾）に移動する（※通常は移動しない）&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
var sel = Document.Selection;&lt;br /&gt;
if (sel.GetActivePointY(mePosView) &amp;lt; Document.GetLines(meGetLineView)) {&lt;br /&gt;
  sel.LineDown();&lt;br /&gt;
} else {&lt;br /&gt;
  sel.EndOfDocument();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 対応する括弧に移動 ==&lt;br /&gt;
* 割当例「Ctrl + [ 」「Ctrl + ] 」など&lt;br /&gt;
* カーソル右側に括弧がある場合、対応する括弧に移動する&lt;br /&gt;
→ マクロ「[[対応する括弧に移動]]」&lt;br /&gt;
&lt;br /&gt;
== 行頭に移動 (インデント対応) ==&lt;br /&gt;
* 推奨割当「Home」「Shift + Home」&lt;br /&gt;
* インデント位置＜カーソル位置の場合は、インデント位置に移動する&lt;br /&gt;
* カーソル位置≦インデント位置の場合は、行頭に移動する&lt;br /&gt;
→ マクロ「[[行頭に移動]]」&lt;br /&gt;
&lt;br /&gt;
== 文書の1/4上に／下に移動 ==&lt;br /&gt;
* 割当例「Ctrl + PageUp」など&lt;br /&gt;
* 総表示行数の1/4分、上に移動する（4回の移動で文書頭の行に到達）&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
Redraw = false;&lt;br /&gt;
Document.Selection.LineUp(false, Math.ceil(Document.GetLines(meGetLineView)/4));&lt;br /&gt;
Redraw = true;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
* 割当例「Ctrl + PageDown」など&lt;br /&gt;
* 総表示行数の1/4分、下に移動する（4回の移動で文書末の行に到達）&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
Redraw = false;&lt;br /&gt;
Document.Selection.LineDown(false, Math.ceil(Document.GetLines(meGetLineView)/4));&lt;br /&gt;
Redraw = true;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 選択範囲の始点終点を交替 ==&lt;br /&gt;
* 選択範囲の始点と終点（カーソル位置）を入れ替える&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
with (Document.Selection) {&lt;br /&gt;
  var acp = GetActivePos();&lt;br /&gt;
  SetActivePos(GetAnchorPos());&lt;br /&gt;
  SetAnchorPos(acp);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== この文字列を検索 ==&lt;br /&gt;
* 「次／前の文字列を検索」時に移動しない（※通常は次／前に移動する）&lt;br /&gt;
* 範囲選択時は選択文字列で、非選択時は単語選択してから検索を実行します&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
Redraw = false;&lt;br /&gt;
with (Document.Selection) {&lt;br /&gt;
  if (IsEmpty) SelectWord();&lt;br /&gt;
  var sx = ScrollX, sy = ScrollY, acp = GetActivePos(), anp = GetAnchorPos();&lt;br /&gt;
  Find(Text, meFindReplaceCase + meFindNext + meFindAround);&lt;br /&gt;
  SetActivePos(acp); SetAnchorPos(anp); ScrollX = sx; ScrollY = sy;&lt;br /&gt;
}&lt;br /&gt;
Redraw = true;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= 標準の移動／選択操作 =&lt;br /&gt;
カーソル移動などは通常、キー割り当てを変更することはできませんが、機能を再現したマクロにキー割り当てすることで実現できます。&lt;br /&gt;
* 範囲選択版は &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt; を &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; に書き換えてください&lt;br /&gt;
&lt;br /&gt;
== 移動 - 上／下／左／右 ==&lt;br /&gt;
;上移動 / 下移動&lt;br /&gt;
* 標準の割当「Up (↑)」／選択版の割当「Shift + Up (↑)」&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
Document.Selection.LineUp(false, 1);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
* 標準の割当「Down (↓)」／選択版の割当「Shift + Down (↓)」&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
Document.Selection.LineDown(false, 1);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;左移動 / 右移動&lt;br /&gt;
* 標準の割当「Left (←)」／選択版の割当「Shift + Left (←)」&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
Document.Selection.CharLeft(false, 1);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
* 標準の割当「Right (→)」／選択版の割当「Shift + Right (→)」&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
Document.Selection.CharRight(false, 1);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 移動 - 上頁／下頁／左単語／右単語 ==&lt;br /&gt;
;1ページ上に移動 / 1ページ下に移動&lt;br /&gt;
* 標準の割当「PageUp」／選択版の割当「Shift + PageUp」&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
Document.Selection.PageUp(false, 1);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
* 標準の割当「PageDown」／選択版の割当「Shift + PageDown」&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
Document.Selection.PageDown(false, 1);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;左の単語に移動 / 右の単語に移動&lt;br /&gt;
* 標準の割当「Ctrl + Left (←)」／選択版の割当「Shift + Ctrl + Left (←)」&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
Document.Selection.WordLeft(false, 1);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
* 標準の割当「Ctrl + Right (→)」／選択版の割当「Shift + Ctrl + Right (→)」&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
Document.Selection.WordRight(false, 1);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 移動 - 行頭／行末／文書頭／文書末 ==&lt;br /&gt;
;行頭に移動 / 行末に移動 (表示行)&lt;br /&gt;
* 論理行の行頭／行末に移動したい場合は &amp;lt;code&amp;gt;mePosView&amp;lt;/code&amp;gt; を &amp;lt;code&amp;gt;mePosLogical&amp;lt;/code&amp;gt; に書き換えてください&lt;br /&gt;
* 標準の割当「Home」／選択版の割当「Shift + Home」&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
Document.Selection.StartOfLine(false, mePosView);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
* 標準の割当「End」／選択版の割当「Shift + End」&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
Document.Selection.EndOfLine(false, mePosView);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;文書の先頭に移動 / 文書の末尾に移動&lt;br /&gt;
* 標準の割当「Ctrl + Home」／選択版の割当「Shift + Ctrl + Home」&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
Document.Selection.StartOfDocument(false);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
* 標準の割当「Ctrl + End」／選択版の割当「Shift + Ctrl + End」&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
Document.Selection.EndOfDocument(false);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 単語を選択 ==&lt;br /&gt;
* マウス操作「文字をダブルクリック」&lt;br /&gt;
* カーソル位置にある単語（連続する英数字・かな・カナ・漢字）を選択する&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
Document.Selection.SelectWord();&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 行を選択 (論理行／表示行) ==&lt;br /&gt;
* マウス操作「文字をトリプルクリック」&lt;br /&gt;
* カーソル行（論理行）を選択する（カーソルは次行行頭に移動）&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
Document.Selection.SelectLine();&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
* マウス操作「行番号をクリック」&lt;br /&gt;
* カーソル行（表示行）を選択する（カーソルは行頭に移動）&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
with (Document.Selection) {&lt;br /&gt;
  EndOfLine(false, mePosView);&lt;br /&gt;
  if (Document.Text.charAt(GetActivePos())===&amp;quot;\n&amp;quot;)&lt;br /&gt;
    SetAnchorPos(GetActivePos()+1); //行末が改行の場合、改行も含める&lt;br /&gt;
  StartOfLine(true, mePosView);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
→ 行末の改行を含めないなら、マクロ「[[マテリアルデザインっぽいアイコンと『小マクロ集』#論理行を選択する (改行を含まない) ※複数行可|論理行を選択する (改行を含まない)]]」／「[[マテリアルデザインっぽいアイコンと『小マクロ集』#表示行を選択する (改行を含まない)|表示行を選択する (改行を含まない)]]」&amp;lt;!-- 一文追加 (sukemaru) 2018/10/08 --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= ご意見・ご要望 =&lt;br /&gt;
何かありましたら，右の [編集] から追記してください．対応するかもしれません．&lt;br /&gt;
&lt;br /&gt;
* 行を上下に移動・複製&lt;br /&gt;
&lt;br /&gt;
AtomやVisual Studio Codeにある、「Alt＋↑／↓」で行を上下に移動、また「Alt＋Shift＋↑／↓」で上下に複製というのはできるでしょうか？自分で書いてみたところ論理行ではなく表示行のみが移動してしまいうまくいきませんでした。&lt;br /&gt;
&lt;br /&gt;
なおAlt＋矢印キーがMeryでは効かないことは存じておりますので、キーバインドは何か別のもの（Alt+U、Dとか）にする必要があると思います。&lt;br /&gt;
----&lt;br /&gt;
* [[マテリアルデザインっぽいアイコンと『小マクロ集』|『小マクロ集』]]へのリンクと、マクロ「[[#定型文をファイルから挿入]]」「[[#コピーして選択範囲を解除]]」「[[#選択範囲を解除 (非スクロール)]]」を追加しました。&amp;lt;br&amp;gt;このページに不適切でしたら削除します。(2018/10/08 sukemaru)&lt;/div&gt;</summary>
		<author><name>Masme</name></author>
	</entry>
	<entry>
		<id>https://www.haijin-boys.com/wiki/index.php?title=%E6%96%87%E5%AD%97%E3%82%AB%E3%82%A6%E3%83%B3%E3%83%88&amp;diff=4400</id>
		<title>文字カウント</title>
		<link rel="alternate" type="text/html" href="https://www.haijin-boys.com/wiki/index.php?title=%E6%96%87%E5%AD%97%E3%82%AB%E3%82%A6%E3%83%B3%E3%83%88&amp;diff=4400"/>
		<updated>2019-06-16T07:51:06Z</updated>

		<summary type="html">&lt;p&gt;Masme: 「結果表示」を拡充。(差分表示の見栄えのため分割編集)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;float:right&amp;quot;&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
選択範囲or文書全体の字数を算出するマクロです。&lt;br /&gt;
&lt;br /&gt;
[[ファイル:CharacterCounter.png|border]]&lt;br /&gt;
&lt;br /&gt;
==注意点==&lt;br /&gt;
* 改行・半角文字・全角文字、すべて1文字とカウントします。&lt;br /&gt;
* 文字の分類は Shift_JIS (CP932) を基準にしています。&lt;br /&gt;
* Unicode 対応は一部に留まります。&lt;br /&gt;
** サロゲートペアは、Mery では仕様上2文字とカウントされますが、このマクロでは1文字とカウントします。&lt;br /&gt;
** 結合文字列や異体字セレクタなどには対応していません。他の文字と同じようにカウントされます。&lt;br /&gt;
* 文字数や文字種が増えるほど処理に時間がかかります（作者の環境では100万字の処理に約1.5秒かかりました）。&amp;lt;br&amp;gt;マクロ実行後、ステータスバーに処理に要した時間が表示されるので参考にしてください。&lt;br /&gt;
&lt;br /&gt;
==ソースコード==&lt;br /&gt;
ダウンロード→ &amp;lt;b&amp;gt;[[メディア:文字カウント.zip|文字カウント.zip]]&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* 拙作ですがアイコンファイル (文字カウント.ico) を同梱してあります。&amp;lt;br&amp;gt;Mery 2.4.7 以降の場合、マクロ (文字カウント.js) と同じフォルダに、&amp;lt;br&amp;gt;Mery 2.4.6 以前の場合、Mery.exe と同じフォルダに、&amp;lt;br&amp;gt;アイコンファイルを配置しておくとツールバーにアイコンが読み込まれます。&lt;br /&gt;
&lt;br /&gt;
==更新履歴==&lt;br /&gt;
[[ファイル:文字カウント.zip]]&lt;br /&gt;
&lt;br /&gt;
* 2019/06/16&lt;br /&gt;
** 容量は ADODB.Stream を利用して算出するようにした（マクロ「[[バイト数]]」の ks 氏版を参考）。&lt;br /&gt;
** 文字分類を改訂。&lt;br /&gt;
*** 容量の定義を撤廃し、統合できる項目を統合。&lt;br /&gt;
*** 分類「階層」を削除。&lt;br /&gt;
*** 分類「空白」に「改行」を含めるようにした。&lt;br /&gt;
*** 分類「半カナ」を「半ｶﾅ」に改称。&lt;br /&gt;
*** 分類「MS依存」を追加。&lt;br /&gt;
*** CP932 未定義文字の分類を &amp;quot;総数,MS外字&amp;quot; → &amp;quot;総数,MS依存&amp;quot; に変更。&lt;br /&gt;
** 結果表示を改訂。&lt;br /&gt;
*** 「段落」を復活。&lt;br /&gt;
*** 「仮名」を追加（仮名文字の数と、「字数」に占める割合を表示）。&lt;br /&gt;
*** 「サイズ」を追加（現在のエンコードでの容量を表示）。&lt;br /&gt;
*** 「UTF-16」「UTF-8」「SJIS」は非表示に変更。&lt;br /&gt;
*** 「原稿」「漢字」「UTF-7」「EUC」「JIS」を追加（非表示）。&lt;br /&gt;
** アイコンのカラーパレットを調整。48x48の画像を一部変更（1と3）。&lt;br /&gt;
* 2018/08/04&lt;br /&gt;
** Document.LineEnding が使える場合は使うようにした（Mery 2.6.10 以降）。&lt;br /&gt;
**: 改行コードの判別にクリップボードを使わずに済むため、難点が解消されます。&lt;br /&gt;
* 2017/06/25&lt;br /&gt;
** アイコンファイルに24x24・32x32・48x48の画像を追加。&lt;br /&gt;
* 2015/12/26&lt;br /&gt;
** アイコンの指定先を &amp;quot;My Macros\文字カウント.ico&amp;quot; → &amp;quot;文字カウント.ico&amp;quot; に変更。&lt;br /&gt;
* 2015/09/30&lt;br /&gt;
** 改行コードを判別し、容量に反映するようにした。ただし、判別にクリップボードを使うため、難点があります。&lt;br /&gt;
*** 計測範囲に改行が存在しない場合は判別できない。&lt;br /&gt;
*** クリップボード履歴が重複してしまう。&lt;br /&gt;
** 結果表示を改訂。&lt;br /&gt;
*** 「段落」は非表示に変更（後述の定義変更による）。&lt;br /&gt;
*** 「拡張」を「依存」に改称し、MS拡張 → MS拡張+MS外字 の数に変更。&lt;br /&gt;
*** 「ｻﾛｹﾞｰﾄ」を「ペア」に改称。&lt;br /&gt;
*** 「SJIS」の内容を「数値 bytes」→「数値 バイト」に変更。&lt;br /&gt;
*** 「UTF-16」の内容を「数値 bytes (BOM無)」→「数値+2(BOM) バイト」に変更。&lt;br /&gt;
*** 「UTF-8」の内容を「数値 bytes (BOM無)」→「数値+3(BOM) バイト」に変更。&lt;br /&gt;
** 文字分類を改訂。&lt;br /&gt;
*** 分類「段落」の定義を変更。 /^(?=　[^　\s])/gm → /^(?![ 　\t]*$)/gm&lt;br /&gt;
*** 分類「英単」を「半英単」に改称し、定義を変更。 /\b(?=\w)/g → /(?=[!-~](?![!-~]))/g&lt;br /&gt;
***: Microsoft Word の文字カウント仕様（段落数、半角英数の単語数）に近づけた。&amp;lt;br&amp;gt;※仕様が不明なため、完全再現は目指していません。&lt;br /&gt;
*** 分類「会話」を削除。&lt;br /&gt;
*** ユーザー定義外字の分類を &amp;quot;総数,MS外字&amp;quot; → &amp;quot;総数,MS外字,全角&amp;quot; に変更。&lt;br /&gt;
*** 文字 U+0080 の分類を &amp;quot;総数,Uni&amp;quot; → &amp;quot;総数,MS外字&amp;quot; に変更。&lt;br /&gt;
*** Shift_JIS で保存すると似た字に化ける文字群を追加。&lt;br /&gt;
* 2014/02/17&lt;br /&gt;
** アウトラインやアウトプットにフォーカスがある場合、カウントできないのを修正。&lt;br /&gt;
**: 文書の取得を Document → Editor.ActiveDocument に変更。&lt;br /&gt;
** 分類「段落」の正規表現を短縮。 /^(?=　[^　\s]+)/gm → /^(?=　[^　\s])/gm&lt;br /&gt;
** 分類「会話」の定義を変更。 /^(?=「.+」$)/gm → /^(?=「.*」$)/gm&lt;br /&gt;
* 2014/02/01&lt;br /&gt;
** 初版公開。&lt;br /&gt;
&lt;br /&gt;
==文字分類==&lt;br /&gt;
現在の定義は下表のとおりです。分類は Shift_JIS (CP932) を基準にしています。&lt;br /&gt;
* &amp;lt;b style=&amp;quot;background:#fcc;&amp;quot;&amp;gt;赤地&amp;lt;/b&amp;gt; の項目は、初期状態で結果表示される項目です。&lt;br /&gt;
* 「字数」は &amp;lt;b style=&amp;quot;background:#fcc;&amp;quot;&amp;gt;総数&amp;lt;/b&amp;gt; − &amp;lt;b style=&amp;quot;background:#ccf;&amp;quot;&amp;gt;空白&amp;lt;/b&amp;gt; で算出されます。&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;4&amp;quot;| 分類 (type) !! 正規表現 (re) !! 備考&lt;br /&gt;
|-&lt;br /&gt;
!rowspan=&amp;quot;2&amp;quot; style=&amp;quot;background:#ccc;&amp;quot;|&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot;| 半英単&lt;br /&gt;
| /(?=[!-~](?![!-~]))/g || ASCII文字の単語（半角英数の単語）&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot; style=&amp;quot;background:#fcc;&amp;quot;| 段落&lt;br /&gt;
| /^(?![ 　\t]*$)/gm || 空白行でない論理行&lt;br /&gt;
|-&lt;br /&gt;
!rowspan=&amp;quot;28&amp;quot; style=&amp;quot;background:#fcc;&amp;quot;| 総数&lt;br /&gt;
|-&lt;br /&gt;
!rowspan=&amp;quot;3&amp;quot;| 制御&lt;br /&gt;
!rowspan=&amp;quot;2&amp;quot; style=&amp;quot;background:#ccf;&amp;quot;| 空白&lt;br /&gt;
!style=&amp;quot;background:#fcc;&amp;quot;| 改行&lt;br /&gt;
| /\n/g || ASCII制御文字（改行）&lt;br /&gt;
|-&lt;br /&gt;
! タブ&lt;br /&gt;
| /\t/g || ASCII制御文字（水平タブ）&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot; style=&amp;quot;background:#ccc;&amp;quot;|&lt;br /&gt;
| /[\u0000-\u001F\u007F]/g || 上記以外のASCII制御文字&lt;br /&gt;
|-&lt;br /&gt;
!rowspan=&amp;quot;6&amp;quot; style=&amp;quot;background:#fcc;&amp;quot;| 半角&lt;br /&gt;
!style=&amp;quot;background:#ccf;&amp;quot;| 空白 !! 半空&lt;br /&gt;
| / /g || ASCII文字（半角空白）&lt;br /&gt;
|-&lt;br /&gt;
! 数字 !! 半数&lt;br /&gt;
| /[0-9]/g || ASCII文字（半角数字）&lt;br /&gt;
|-&lt;br /&gt;
! 英字 !! 半英&lt;br /&gt;
| /[A-Za-z]/g || ASCII文字（半角英字）&lt;br /&gt;
|-&lt;br /&gt;
!rowspan=&amp;quot;2&amp;quot;| 記号&lt;br /&gt;
!style=&amp;quot;background:#ccc;&amp;quot;|&lt;br /&gt;
| /[\u0020-\u007E]/g || 上記以外のASCII文字&lt;br /&gt;
|-&lt;br /&gt;
!rowspan=&amp;quot;2&amp;quot; style=&amp;quot;background:#fcc;&amp;quot;| 半ｶﾅ&lt;br /&gt;
| /[｡｢｣､･ｰﾞﾟ]/g ||&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;background:#fcc;&amp;quot;| 仮名&lt;br /&gt;
| /[ｦ-ｯｱ-ﾝ]/g ||&lt;br /&gt;
|-&lt;br /&gt;
!rowspan=&amp;quot;15&amp;quot; style=&amp;quot;background:#fcc;&amp;quot;| 全角&lt;br /&gt;
!style=&amp;quot;background:#ccf;&amp;quot;| 空白 !! 全空&lt;br /&gt;
| /　/g ||&lt;br /&gt;
|-&lt;br /&gt;
! 数字 !! 全数&lt;br /&gt;
| /[０-９]/g ||&lt;br /&gt;
|-&lt;br /&gt;
! 英字 !! 全英&lt;br /&gt;
| /[Ａ-Ｚａ-ｚ]/g ||&lt;br /&gt;
|-&lt;br /&gt;
!rowspan=&amp;quot;2&amp;quot; style=&amp;quot;background:#fcc;&amp;quot;| 仮名&lt;br /&gt;
! かな&lt;br /&gt;
| /[ぁ-ん]/g || ※SJISでは ゔ ゕ ゖ などは扱えない&lt;br /&gt;
|-&lt;br /&gt;
! カナ&lt;br /&gt;
| /[ァ-ヶ]/g || ※長音符や踊り字は記号扱い&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot;| ギリシャ&lt;br /&gt;
| /[Α-ΡΣ-Ωα-ρσ-ω]/g || ※SJISではシグマの語末形 ς は扱えない&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot;| キリル&lt;br /&gt;
| /[ЁА-Яа-яё]/g || ※Unicodeでは Ё ё の配置がJISと異なる&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot;| 記号&lt;br /&gt;
| /[、。， (中略) ‡¶◯]/g || 記号 (146字)&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot;| 罫線&lt;br /&gt;
| /[─│┌ (中略) ┥┸╂]/g || 罫線素片 (32字)&lt;br /&gt;
|-&lt;br /&gt;
!rowspan=&amp;quot;3&amp;quot;| 漢字&lt;br /&gt;
! 第一&lt;br /&gt;
| /[亜唖娃 (中略) 湾碗腕]/g || JIS第一水準漢字 (2965字)&lt;br /&gt;
|-&lt;br /&gt;
! 第二&lt;br /&gt;
| /[弌丐丕 (中略) 瑤凜熙]/g || JIS第二水準漢字 (3390字)&lt;br /&gt;
|-&lt;br /&gt;
!rowspan=&amp;quot;2&amp;quot;| MS拡張&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot;| /[纊褜鍈 (中略) 鶴鸙黑]/g ||rowspan=&amp;quot;2&amp;quot;| IBM拡張文字 (漢字360字)&lt;br /&gt;
|-&lt;br /&gt;
!rowspan=&amp;quot;4&amp;quot; style=&amp;quot;background:#fcc;&amp;quot;| MS依存&lt;br /&gt;
|-&lt;br /&gt;
! MS拡張&lt;br /&gt;
| /[①-⑳ (中略) ￤＇＂]/g || NEC特殊文字/IBM拡張文字 (記号等87字)&lt;br /&gt;
|-&lt;br /&gt;
! MS外字&lt;br /&gt;
| /[\uE000-\uE757]/g || Microsoft ユーザー定義外字 (1880字)&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;background:#ccc;&amp;quot;|&lt;br /&gt;
!style=&amp;quot;background:#ccc;&amp;quot;|&lt;br /&gt;
| /[\u0080\uF8F0-\uF8F3]/g || CP932 未定義文字 (5字)&lt;br /&gt;
|-&lt;br /&gt;
!rowspan=&amp;quot;2&amp;quot; style=&amp;quot;background:#fcc;&amp;quot;| Uni&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot; style=&amp;quot;background:#fcc;&amp;quot;| SP&lt;br /&gt;
| /[\uD800-\uDBFF][\uDC00-\uDFFF]/g || サロゲートペア (U+10000～10FFFF)&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot; style=&amp;quot;background:#ccc;&amp;quot;|&lt;br /&gt;
| /[\u0000-\uFFFF]/g || 上記以外の全文字&lt;br /&gt;
|}&lt;br /&gt;
* &amp;lt;b style=&amp;quot;background:#fcc;&amp;quot;&amp;gt;Uni&amp;lt;/b&amp;gt; に分類される文字は、Shift_JIS では正常に保存できません。保存を強行した場合、似た文字や &amp;lt;code&amp;gt;?&amp;lt;/code&amp;gt; に化けます。&lt;br /&gt;
* &amp;lt;b style=&amp;quot;background:#fcc;&amp;quot;&amp;gt;MS依存&amp;lt;/b&amp;gt; に分類される文字は、Shift_JIS では「環境依存文字」に該当します。&lt;br /&gt;
* 改行の定義が &amp;lt;code&amp;gt;/\n/g&amp;lt;/code&amp;gt; なのは Mery の内部改行コードが [LF] で統一されているためです。&lt;br /&gt;
&lt;br /&gt;
===文字分類の仕様===&lt;br /&gt;
文字分類は、ソースコードの最初あたりにある「■文字分類」以下で定義されています。&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
//■文字分類&lt;br /&gt;
{type:&amp;quot;総数,全角,カナ&amp;quot;, re:/[ァ-ヶ]/g},  //一例&lt;br /&gt;
/* 以下略 */&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! re&lt;br /&gt;
| カウントする対象を正規表現で記述します。&amp;lt;br&amp;gt;たとえば全角カタカナなら、&amp;lt;code style=&amp;quot;color:#c00;&amp;quot;&amp;gt;re:/[ァ-ヶ]/g&amp;lt;/code&amp;gt; という具合です。&amp;lt;br&amp;gt;利用できる正規表現は、実行環境 JScript (JavaScript) の仕様に依存します。&lt;br /&gt;
|-&lt;br /&gt;
! type&lt;br /&gt;
| 分類名です。複数設定する場合はコンマで区切ります。&amp;lt;br&amp;gt;たとえば、&amp;lt;code style=&amp;quot;color:#c00;&amp;quot;&amp;gt;type:&amp;quot;総数,全角,カナ&amp;quot;&amp;lt;/code&amp;gt; という具合です。&amp;lt;br&amp;gt;この場合、type[&amp;quot;総数&amp;quot;], type[&amp;quot;全角&amp;quot;], type[&amp;quot;カナ&amp;quot;] の各変数にカウントが加算されます。&lt;br /&gt;
|}&lt;br /&gt;
「文字カウント」マクロは、この定義を上から順に見て、該当する箇所を数えます。&lt;br /&gt;
&lt;br /&gt;
==結果表示==&lt;br /&gt;
現在の定義は下表のとおりです。&lt;br /&gt;
* &amp;lt;b style=&amp;quot;background:#fcc;&amp;quot;&amp;gt;赤地&amp;lt;/b&amp;gt; の項目は、初期状態で表示される項目です。&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 項目名 !! 表示例 !! 関係する分類 !! 説明&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;background:#fcc;&amp;quot;| 総字数&lt;br /&gt;
| 12345 (文書全体)&amp;lt;br&amp;gt;12345 (選択範囲)&lt;br /&gt;
| 総数 || スペースを含む文字数と、計測範囲&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;background:#fcc;&amp;quot;| 字数&lt;br /&gt;
| 12345 (改行･空白抜き)&lt;br /&gt;
| 総数−空白 || スペースを含まない文字数&lt;br /&gt;
|-&lt;br /&gt;
! 原稿&lt;br /&gt;
| 12～16枚 (12分)&amp;lt;br&amp;gt;123～164枚 (1.2時間)&lt;br /&gt;
| 総数、字数 || 原稿用紙枚数（400～300字/枚）と、読了時間（400字/分）&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;background:#fcc;&amp;quot;| 改行&lt;br /&gt;
| 12345 (CR+LF)&lt;br /&gt;
| 改行 || 改行の数と、改行コード&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;background:#fcc;&amp;quot;| 段落&lt;br /&gt;
| 12345&lt;br /&gt;
| 段落 || 空白行でない論理行数&lt;br /&gt;
|-&lt;br /&gt;
! 半英単&lt;br /&gt;
| 12345&lt;br /&gt;
| 半英単 || ASCII文字（半角英数）の単語数&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;background:#fcc;&amp;quot;| 半角&lt;br /&gt;
| 12345 (半ｶﾅ 12345)&lt;br /&gt;
| 半角、半ｶﾅ || 半角文字の数と、半角カナの数&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;background:#fcc;&amp;quot;| 全角&lt;br /&gt;
| 12345 (依存 12345)&lt;br /&gt;
| 全角、MS依存 || 全角文字の数と、Shift_JIS での環境依存文字の数&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;background:#fcc;&amp;quot;| 仮名&lt;br /&gt;
| 12345 (12.3%/字数)&lt;br /&gt;
| 仮名 || 仮名文字の数と、「字数」に占める割合&lt;br /&gt;
|-&lt;br /&gt;
! 漢字&lt;br /&gt;
| 12345 (12.3%/字数)&lt;br /&gt;
| 漢字 || 漢字の数と、「字数」に占める割合&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;background:#fcc;&amp;quot;| Unicode&lt;br /&gt;
| 12345 (ペア 12345)&lt;br /&gt;
| Uni、SP || Shift_JIS では保存できない文字の数と、サロゲートペアの数&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;background:#fcc;&amp;quot;| サイズ&lt;br /&gt;
| 12,345 バイト&lt;br /&gt;
| || 現在のエンコードでの容量&lt;br /&gt;
|-&lt;br /&gt;
! UTF-16&lt;br /&gt;
| 12,345+2(BOM) バイト&lt;br /&gt;
| || UTF-16 での容量&lt;br /&gt;
|-&lt;br /&gt;
! UTF-8&lt;br /&gt;
| 12,345+3(BOM) バイト&lt;br /&gt;
| || UTF-8 での容量&lt;br /&gt;
|-&lt;br /&gt;
! UTF-7&lt;br /&gt;
| 12,345 バイト&lt;br /&gt;
| || UTF-7 での容量&lt;br /&gt;
|-&lt;br /&gt;
! EUC&lt;br /&gt;
| 12,345 バイト&lt;br /&gt;
| || 日本語 (EUC) / EUC-JP (CP51932) での容量&lt;br /&gt;
|-&lt;br /&gt;
! JIS&lt;br /&gt;
| 12,345 バイト&lt;br /&gt;
| || 日本語 (JIS) / ISO-2022-JP (CP50222) での容量&lt;br /&gt;
|-&lt;br /&gt;
! SJIS&lt;br /&gt;
| 12,345 バイト&lt;br /&gt;
| || 日本語 (シフトJIS) / Shift_JIS (CP932) での容量&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===結果表示の仕様===&lt;br /&gt;
結果表示は、ソースコードの最後あたりにある「▼結果表示」以下で定義されています。&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
//▼結果表示&lt;br /&gt;
/* 中略 */&lt;br /&gt;
Alert( [&amp;quot;&amp;quot;&lt;br /&gt;
// ----------------- ↓ここから表示&lt;br /&gt;
,&amp;quot;総字数\t: &amp;quot;+(type[&amp;quot;総数&amp;quot;])+&amp;quot; (&amp;quot;+ RANGE +&amp;quot;)&amp;quot;&lt;br /&gt;
,&amp;quot;　字数\t: &amp;quot;+(type[&amp;quot;字数&amp;quot;])+&amp;quot; (改行･空白抜き)&amp;quot;&lt;br /&gt;
//,&amp;quot;　原稿\t: &amp;quot;+paper(type[&amp;quot;総数&amp;quot;])+&amp;quot; (&amp;quot;+time(type[&amp;quot;字数&amp;quot;])+&amp;quot;)&amp;quot;&lt;br /&gt;
,&amp;quot;　改行\t: &amp;quot;+(type[&amp;quot;改行&amp;quot;])+&amp;quot; (&amp;quot;+ BREAK +&amp;quot;)&amp;quot;&lt;br /&gt;
,&amp;quot;　段落\t: &amp;quot;+(type[&amp;quot;段落&amp;quot;])&lt;br /&gt;
//,&amp;quot;半英単\t: &amp;quot;+(type[&amp;quot;半英単&amp;quot;])&lt;br /&gt;
,&amp;quot;　半角\t: &amp;quot;+(type[&amp;quot;半角&amp;quot;])+&amp;quot; (半ｶﾅ &amp;quot;+(type[&amp;quot;半ｶﾅ&amp;quot;])+&amp;quot;)&amp;quot;&lt;br /&gt;
,&amp;quot;　全角\t: &amp;quot;+(type[&amp;quot;全角&amp;quot;])+&amp;quot; (依存 &amp;quot;+(type[&amp;quot;MS依存&amp;quot;])+&amp;quot;)&amp;quot;&lt;br /&gt;
,&amp;quot;　仮名\t: &amp;quot;+(type[&amp;quot;仮名&amp;quot;])+&amp;quot; (&amp;quot;+per(type[&amp;quot;仮名&amp;quot;],type[&amp;quot;字数&amp;quot;])+&amp;quot;/字数)&amp;quot;&lt;br /&gt;
//,&amp;quot;　漢字\t: &amp;quot;+(type[&amp;quot;漢字&amp;quot;])+&amp;quot; (&amp;quot;+per(type[&amp;quot;漢字&amp;quot;],type[&amp;quot;字数&amp;quot;])+&amp;quot;/字数)&amp;quot;&lt;br /&gt;
,&amp;quot;Unicode\t: &amp;quot;+(type[&amp;quot;Uni&amp;quot;])+&amp;quot; (ペア &amp;quot;+(type[&amp;quot;SP&amp;quot;])+&amp;quot;)&amp;quot;&lt;br /&gt;
,&amp;quot;&amp;quot;&lt;br /&gt;
,&amp;quot;サイズ\t: &amp;quot;+(bytes())+&amp;quot; バイト&amp;quot;&lt;br /&gt;
//,&amp;quot;UTF-16\t: &amp;quot;+(bytes(&amp;quot;utf-16&amp;quot;))+&amp;quot;+2(BOM) バイト&amp;quot;&lt;br /&gt;
//,&amp;quot;UTF-8 \t: &amp;quot;+(bytes(&amp;quot;utf-8&amp;quot;,-3))+&amp;quot;+3(BOM) バイト&amp;quot;&lt;br /&gt;
//,&amp;quot;UTF-7 \t: &amp;quot;+(bytes(&amp;quot;utf-7&amp;quot;))+&amp;quot; バイト&amp;quot;&lt;br /&gt;
//,&amp;quot;EUC   \t: &amp;quot;+(bytes(&amp;quot;euc-jp&amp;quot;))+&amp;quot; バイト&amp;quot;&lt;br /&gt;
//,&amp;quot;JIS   \t: &amp;quot;+(bytes(&amp;quot;iso-2022-jp&amp;quot;))+&amp;quot; バイト&amp;quot;&lt;br /&gt;
//,&amp;quot;SJIS  \t: &amp;quot;+(bytes(&amp;quot;shift_jis&amp;quot;))+&amp;quot; バイト&amp;quot;&lt;br /&gt;
// ----------------- ↑ここまで表示&lt;br /&gt;
].join(&amp;quot;\n&amp;quot;).replace(/^\n+|\n+$/g,&amp;quot;&amp;quot;) );&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! type[分類名]&lt;br /&gt;
| カウント結果。たとえば「総数」に該当した数は type[&amp;quot;総数&amp;quot;] で得られます。&lt;br /&gt;
|-&lt;br /&gt;
! paper(n)&lt;br /&gt;
| 原稿用紙枚数を求める関数（1枚400～300字で概算）。&amp;lt;br&amp;gt;単純に n÷400 と n÷300（切り上げ）で算出します。&lt;br /&gt;
|-&lt;br /&gt;
! time(n)&lt;br /&gt;
| 読了時間を求める関数（1分400字で概算）。&amp;lt;br&amp;gt;60分未満は「分」表示（切り上げ）、60分以上は「時間」表示（小数第1位まで四捨五入）です。&lt;br /&gt;
|-&lt;br /&gt;
! per(n,m)&lt;br /&gt;
| m に占める n の割合（百分率）を求める関数。&amp;lt;br&amp;gt;10%未満は小数第2位まで切り捨て、100%未満は第1位まで切り捨て、100%以上は切り上げです。&lt;br /&gt;
|-&lt;br /&gt;
! bytes(enc)&lt;br /&gt;
| 容量（バイト数）を求める関数。&amp;lt;br&amp;gt;enc には[[マクロリファレンス:エンコード定数|エンコード定数]] または ADODB.Stream の Charset プロパティに渡す文字列を指定します。&amp;lt;br&amp;gt;指定しない場合、現在のエンコードになります。&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===表示項目を増やす===&lt;br /&gt;
初期状態で表示されない項目を表示するには、ソースコードの行頭の &amp;lt;code&amp;gt;//&amp;lt;/code&amp;gt; を削除してください。&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
,&amp;quot;サイズ\t: &amp;quot;+(bytes())+&amp;quot; バイト&amp;quot;&lt;br /&gt;
//,&amp;quot;UTF-16\t: &amp;quot;+(bytes(&amp;quot;utf-16&amp;quot;))+&amp;quot;+2(BOM) バイト&amp;quot;&lt;br /&gt;
//,&amp;quot;UTF-8 \t: &amp;quot;+(bytes(&amp;quot;utf-8&amp;quot;,-3))+&amp;quot;+3(BOM) バイト&amp;quot;&lt;br /&gt;
//,&amp;quot;UTF-7 \t: &amp;quot;+(bytes(&amp;quot;utf-7&amp;quot;))+&amp;quot; バイト&amp;quot;&lt;br /&gt;
//,&amp;quot;EUC   \t: &amp;quot;+(bytes(&amp;quot;euc-jp&amp;quot;))+&amp;quot; バイト&amp;quot;&lt;br /&gt;
//,&amp;quot;JIS   \t: &amp;quot;+(bytes(&amp;quot;iso-2022-jp&amp;quot;))+&amp;quot; バイト&amp;quot;&lt;br /&gt;
//,&amp;quot;SJIS  \t: &amp;quot;+(bytes(&amp;quot;shift_jis&amp;quot;))+&amp;quot; バイト&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
:↓「サイズ」を非表示、「UTF-16」「UTF-8」「SJIS」を表示する場合&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
//,&amp;quot;サイズ\t: &amp;quot;+(bytes())+&amp;quot; バイト&amp;quot;&lt;br /&gt;
,&amp;quot;UTF-16\t: &amp;quot;+(bytes(&amp;quot;utf-16&amp;quot;))+&amp;quot;+2(BOM) バイト&amp;quot;&lt;br /&gt;
,&amp;quot;UTF-8 \t: &amp;quot;+(bytes(&amp;quot;utf-8&amp;quot;,-3))+&amp;quot;+3(BOM) バイト&amp;quot;&lt;br /&gt;
//,&amp;quot;UTF-7 \t: &amp;quot;+(bytes(&amp;quot;utf-7&amp;quot;))+&amp;quot; バイト&amp;quot;&lt;br /&gt;
//,&amp;quot;EUC   \t: &amp;quot;+(bytes(&amp;quot;euc-jp&amp;quot;))+&amp;quot; バイト&amp;quot;&lt;br /&gt;
//,&amp;quot;JIS   \t: &amp;quot;+(bytes(&amp;quot;iso-2022-jp&amp;quot;))+&amp;quot; バイト&amp;quot;&lt;br /&gt;
,&amp;quot;SJIS  \t: &amp;quot;+(bytes(&amp;quot;shift_jis&amp;quot;))+&amp;quot; バイト&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Masme</name></author>
	</entry>
	<entry>
		<id>https://www.haijin-boys.com/wiki/index.php?title=%E6%96%87%E5%AD%97%E3%82%AB%E3%82%A6%E3%83%B3%E3%83%88&amp;diff=4399</id>
		<title>文字カウント</title>
		<link rel="alternate" type="text/html" href="https://www.haijin-boys.com/wiki/index.php?title=%E6%96%87%E5%AD%97%E3%82%AB%E3%82%A6%E3%83%B3%E3%83%88&amp;diff=4399"/>
		<updated>2019-06-16T07:50:02Z</updated>

		<summary type="html">&lt;p&gt;Masme: マクロ更新。「文字種一覧」を「文字分類」に改称。&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;float:right&amp;quot;&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
選択範囲or文書全体の字数を算出するマクロです。&lt;br /&gt;
&lt;br /&gt;
[[ファイル:CharacterCounter.png|border]]&lt;br /&gt;
&lt;br /&gt;
==注意点==&lt;br /&gt;
* 改行・半角文字・全角文字、すべて1文字とカウントします。&lt;br /&gt;
* 文字の分類は Shift_JIS (CP932) を基準にしています。&lt;br /&gt;
* Unicode 対応は一部に留まります。&lt;br /&gt;
** サロゲートペアは、Mery では仕様上2文字とカウントされますが、このマクロでは1文字とカウントします。&lt;br /&gt;
** 結合文字列や異体字セレクタなどには対応していません。他の文字と同じようにカウントされます。&lt;br /&gt;
* 文字数や文字種が増えるほど処理に時間がかかります（作者の環境では100万字の処理に約1.5秒かかりました）。&amp;lt;br&amp;gt;マクロ実行後、ステータスバーに処理に要した時間が表示されるので参考にしてください。&lt;br /&gt;
&lt;br /&gt;
==ソースコード==&lt;br /&gt;
ダウンロード→ &amp;lt;b&amp;gt;[[メディア:文字カウント.zip|文字カウント.zip]]&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* 拙作ですがアイコンファイル (文字カウント.ico) を同梱してあります。&amp;lt;br&amp;gt;Mery 2.4.7 以降の場合、マクロ (文字カウント.js) と同じフォルダに、&amp;lt;br&amp;gt;Mery 2.4.6 以前の場合、Mery.exe と同じフォルダに、&amp;lt;br&amp;gt;アイコンファイルを配置しておくとツールバーにアイコンが読み込まれます。&lt;br /&gt;
&lt;br /&gt;
==更新履歴==&lt;br /&gt;
[[ファイル:文字カウント.zip]]&lt;br /&gt;
&lt;br /&gt;
* 2019/06/16&lt;br /&gt;
** 容量は ADODB.Stream を利用して算出するようにした（マクロ「[[バイト数]]」の ks 氏版を参考）。&lt;br /&gt;
** 文字分類を改訂。&lt;br /&gt;
*** 容量の定義を撤廃し、統合できる項目を統合。&lt;br /&gt;
*** 分類「階層」を削除。&lt;br /&gt;
*** 分類「空白」に「改行」を含めるようにした。&lt;br /&gt;
*** 分類「半カナ」を「半ｶﾅ」に改称。&lt;br /&gt;
*** 分類「MS依存」を追加。&lt;br /&gt;
*** CP932 未定義文字の分類を &amp;quot;総数,MS外字&amp;quot; → &amp;quot;総数,MS依存&amp;quot; に変更。&lt;br /&gt;
** 結果表示を改訂。&lt;br /&gt;
*** 「段落」を復活。&lt;br /&gt;
*** 「仮名」を追加（仮名文字の数と、「字数」に占める割合を表示）。&lt;br /&gt;
*** 「サイズ」を追加（現在のエンコードでの容量を表示）。&lt;br /&gt;
*** 「UTF-16」「UTF-8」「SJIS」は非表示に変更。&lt;br /&gt;
*** 「原稿」「漢字」「UTF-7」「EUC」「JIS」を追加（非表示）。&lt;br /&gt;
** アイコンのカラーパレットを調整。48x48の画像を一部変更（1と3）。&lt;br /&gt;
* 2018/08/04&lt;br /&gt;
** Document.LineEnding が使える場合は使うようにした（Mery 2.6.10 以降）。&lt;br /&gt;
**: 改行コードの判別にクリップボードを使わずに済むため、難点が解消されます。&lt;br /&gt;
* 2017/06/25&lt;br /&gt;
** アイコンファイルに24x24・32x32・48x48の画像を追加。&lt;br /&gt;
* 2015/12/26&lt;br /&gt;
** アイコンの指定先を &amp;quot;My Macros\文字カウント.ico&amp;quot; → &amp;quot;文字カウント.ico&amp;quot; に変更。&lt;br /&gt;
* 2015/09/30&lt;br /&gt;
** 改行コードを判別し、容量に反映するようにした。ただし、判別にクリップボードを使うため、難点があります。&lt;br /&gt;
*** 計測範囲に改行が存在しない場合は判別できない。&lt;br /&gt;
*** クリップボード履歴が重複してしまう。&lt;br /&gt;
** 結果表示を改訂。&lt;br /&gt;
*** 「段落」は非表示に変更（後述の定義変更による）。&lt;br /&gt;
*** 「拡張」を「依存」に改称し、MS拡張 → MS拡張+MS外字 の数に変更。&lt;br /&gt;
*** 「ｻﾛｹﾞｰﾄ」を「ペア」に改称。&lt;br /&gt;
*** 「SJIS」の内容を「数値 bytes」→「数値 バイト」に変更。&lt;br /&gt;
*** 「UTF-16」の内容を「数値 bytes (BOM無)」→「数値+2(BOM) バイト」に変更。&lt;br /&gt;
*** 「UTF-8」の内容を「数値 bytes (BOM無)」→「数値+3(BOM) バイト」に変更。&lt;br /&gt;
** 文字分類を改訂。&lt;br /&gt;
*** 分類「段落」の定義を変更。 /^(?=　[^　\s])/gm → /^(?![ 　\t]*$)/gm&lt;br /&gt;
*** 分類「英単」を「半英単」に改称し、定義を変更。 /\b(?=\w)/g → /(?=[!-~](?![!-~]))/g&lt;br /&gt;
***: Microsoft Word の文字カウント仕様（段落数、半角英数の単語数）に近づけた。&amp;lt;br&amp;gt;※仕様が不明なため、完全再現は目指していません。&lt;br /&gt;
*** 分類「会話」を削除。&lt;br /&gt;
*** ユーザー定義外字の分類を &amp;quot;総数,MS外字&amp;quot; → &amp;quot;総数,MS外字,全角&amp;quot; に変更。&lt;br /&gt;
*** 文字 U+0080 の分類を &amp;quot;総数,Uni&amp;quot; → &amp;quot;総数,MS外字&amp;quot; に変更。&lt;br /&gt;
*** Shift_JIS で保存すると似た字に化ける文字群を追加。&lt;br /&gt;
* 2014/02/17&lt;br /&gt;
** アウトラインやアウトプットにフォーカスがある場合、カウントできないのを修正。&lt;br /&gt;
**: 文書の取得を Document → Editor.ActiveDocument に変更。&lt;br /&gt;
** 分類「段落」の正規表現を短縮。 /^(?=　[^　\s]+)/gm → /^(?=　[^　\s])/gm&lt;br /&gt;
** 分類「会話」の定義を変更。 /^(?=「.+」$)/gm → /^(?=「.*」$)/gm&lt;br /&gt;
* 2014/02/01&lt;br /&gt;
** 初版公開。&lt;br /&gt;
&lt;br /&gt;
==文字分類==&lt;br /&gt;
現在の定義は下表のとおりです。分類は Shift_JIS (CP932) を基準にしています。&lt;br /&gt;
* &amp;lt;b style=&amp;quot;background:#fcc;&amp;quot;&amp;gt;赤地&amp;lt;/b&amp;gt; の項目は、初期状態で結果表示される項目です。&lt;br /&gt;
* 「字数」は &amp;lt;b style=&amp;quot;background:#fcc;&amp;quot;&amp;gt;総数&amp;lt;/b&amp;gt; − &amp;lt;b style=&amp;quot;background:#ccf;&amp;quot;&amp;gt;空白&amp;lt;/b&amp;gt; で算出されます。&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;4&amp;quot;| 分類 (type) !! 正規表現 (re) !! 備考&lt;br /&gt;
|-&lt;br /&gt;
!rowspan=&amp;quot;2&amp;quot; style=&amp;quot;background:#ccc;&amp;quot;|&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot;| 半英単&lt;br /&gt;
| /(?=[!-~](?![!-~]))/g || ASCII文字の単語（半角英数の単語）&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot; style=&amp;quot;background:#fcc;&amp;quot;| 段落&lt;br /&gt;
| /^(?![ 　\t]*$)/gm || 空白行でない論理行&lt;br /&gt;
|-&lt;br /&gt;
!rowspan=&amp;quot;28&amp;quot; style=&amp;quot;background:#fcc;&amp;quot;| 総数&lt;br /&gt;
|-&lt;br /&gt;
!rowspan=&amp;quot;3&amp;quot;| 制御&lt;br /&gt;
!rowspan=&amp;quot;2&amp;quot; style=&amp;quot;background:#ccf;&amp;quot;| 空白&lt;br /&gt;
!style=&amp;quot;background:#fcc;&amp;quot;| 改行&lt;br /&gt;
| /\n/g || ASCII制御文字（改行）&lt;br /&gt;
|-&lt;br /&gt;
! タブ&lt;br /&gt;
| /\t/g || ASCII制御文字（水平タブ）&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot; style=&amp;quot;background:#ccc;&amp;quot;|&lt;br /&gt;
| /[\u0000-\u001F\u007F]/g || 上記以外のASCII制御文字&lt;br /&gt;
|-&lt;br /&gt;
!rowspan=&amp;quot;6&amp;quot; style=&amp;quot;background:#fcc;&amp;quot;| 半角&lt;br /&gt;
!style=&amp;quot;background:#ccf;&amp;quot;| 空白 !! 半空&lt;br /&gt;
| / /g || ASCII文字（半角空白）&lt;br /&gt;
|-&lt;br /&gt;
! 数字 !! 半数&lt;br /&gt;
| /[0-9]/g || ASCII文字（半角数字）&lt;br /&gt;
|-&lt;br /&gt;
! 英字 !! 半英&lt;br /&gt;
| /[A-Za-z]/g || ASCII文字（半角英字）&lt;br /&gt;
|-&lt;br /&gt;
!rowspan=&amp;quot;2&amp;quot;| 記号&lt;br /&gt;
!style=&amp;quot;background:#ccc;&amp;quot;|&lt;br /&gt;
| /[\u0020-\u007E]/g || 上記以外のASCII文字&lt;br /&gt;
|-&lt;br /&gt;
!rowspan=&amp;quot;2&amp;quot; style=&amp;quot;background:#fcc;&amp;quot;| 半ｶﾅ&lt;br /&gt;
| /[｡｢｣､･ｰﾞﾟ]/g ||&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;background:#fcc;&amp;quot;| 仮名&lt;br /&gt;
| /[ｦ-ｯｱ-ﾝ]/g ||&lt;br /&gt;
|-&lt;br /&gt;
!rowspan=&amp;quot;15&amp;quot; style=&amp;quot;background:#fcc;&amp;quot;| 全角&lt;br /&gt;
!style=&amp;quot;background:#ccf;&amp;quot;| 空白 !! 全空&lt;br /&gt;
| /　/g ||&lt;br /&gt;
|-&lt;br /&gt;
! 数字 !! 全数&lt;br /&gt;
| /[０-９]/g ||&lt;br /&gt;
|-&lt;br /&gt;
! 英字 !! 全英&lt;br /&gt;
| /[Ａ-Ｚａ-ｚ]/g ||&lt;br /&gt;
|-&lt;br /&gt;
!rowspan=&amp;quot;2&amp;quot; style=&amp;quot;background:#fcc;&amp;quot;| 仮名&lt;br /&gt;
! かな&lt;br /&gt;
| /[ぁ-ん]/g || ※SJISでは ゔ ゕ ゖ などは扱えない&lt;br /&gt;
|-&lt;br /&gt;
! カナ&lt;br /&gt;
| /[ァ-ヶ]/g || ※長音符や踊り字は記号扱い&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot;| ギリシャ&lt;br /&gt;
| /[Α-ΡΣ-Ωα-ρσ-ω]/g || ※SJISではシグマの語末形 ς は扱えない&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot;| キリル&lt;br /&gt;
| /[ЁА-Яа-яё]/g || ※Unicodeでは Ё ё の配置がJISと異なる&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot;| 記号&lt;br /&gt;
| /[、。， (中略) ‡¶◯]/g || 記号 (146字)&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot;| 罫線&lt;br /&gt;
| /[─│┌ (中略) ┥┸╂]/g || 罫線素片 (32字)&lt;br /&gt;
|-&lt;br /&gt;
!rowspan=&amp;quot;3&amp;quot;| 漢字&lt;br /&gt;
! 第一&lt;br /&gt;
| /[亜唖娃 (中略) 湾碗腕]/g || JIS第一水準漢字 (2965字)&lt;br /&gt;
|-&lt;br /&gt;
! 第二&lt;br /&gt;
| /[弌丐丕 (中略) 瑤凜熙]/g || JIS第二水準漢字 (3390字)&lt;br /&gt;
|-&lt;br /&gt;
!rowspan=&amp;quot;2&amp;quot;| MS拡張&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot;| /[纊褜鍈 (中略) 鶴鸙黑]/g ||rowspan=&amp;quot;2&amp;quot;| IBM拡張文字 (漢字360字)&lt;br /&gt;
|-&lt;br /&gt;
!rowspan=&amp;quot;4&amp;quot; style=&amp;quot;background:#fcc;&amp;quot;| MS依存&lt;br /&gt;
|-&lt;br /&gt;
! MS拡張&lt;br /&gt;
| /[①-⑳ (中略) ￤＇＂]/g || NEC特殊文字/IBM拡張文字 (記号等87字)&lt;br /&gt;
|-&lt;br /&gt;
! MS外字&lt;br /&gt;
| /[\uE000-\uE757]/g || Microsoft ユーザー定義外字 (1880字)&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;background:#ccc;&amp;quot;|&lt;br /&gt;
!style=&amp;quot;background:#ccc;&amp;quot;|&lt;br /&gt;
| /[\u0080\uF8F0-\uF8F3]/g || CP932 未定義文字 (5字)&lt;br /&gt;
|-&lt;br /&gt;
!rowspan=&amp;quot;2&amp;quot; style=&amp;quot;background:#fcc;&amp;quot;| Uni&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot; style=&amp;quot;background:#fcc;&amp;quot;| SP&lt;br /&gt;
| /[\uD800-\uDBFF][\uDC00-\uDFFF]/g || サロゲートペア (U+10000～10FFFF)&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot; style=&amp;quot;background:#ccc;&amp;quot;|&lt;br /&gt;
| /[\u0000-\uFFFF]/g || 上記以外の全文字&lt;br /&gt;
|}&lt;br /&gt;
* &amp;lt;b style=&amp;quot;background:#fcc;&amp;quot;&amp;gt;Uni&amp;lt;/b&amp;gt; に分類される文字は、Shift_JIS では正常に保存できません。保存を強行した場合、似た文字や &amp;lt;code&amp;gt;?&amp;lt;/code&amp;gt; に化けます。&lt;br /&gt;
* &amp;lt;b style=&amp;quot;background:#fcc;&amp;quot;&amp;gt;MS依存&amp;lt;/b&amp;gt; に分類される文字は、Shift_JIS では「環境依存文字」に該当します。&lt;br /&gt;
* 改行の定義が &amp;lt;code&amp;gt;/\n/g&amp;lt;/code&amp;gt; なのは Mery の内部改行コードが [LF] で統一されているためです。&lt;br /&gt;
&lt;br /&gt;
===文字分類の仕様===&lt;br /&gt;
文字分類は、ソースコードの最初あたりにある「■文字分類」以下で定義されています。&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
//■文字分類&lt;br /&gt;
{type:&amp;quot;総数,全角,カナ&amp;quot;, re:/[ァ-ヶ]/g},  //一例&lt;br /&gt;
/* 以下略 */&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! re&lt;br /&gt;
| カウントする対象を正規表現で記述します。&amp;lt;br&amp;gt;たとえば全角カタカナなら、&amp;lt;code style=&amp;quot;color:#c00;&amp;quot;&amp;gt;re:/[ァ-ヶ]/g&amp;lt;/code&amp;gt; という具合です。&amp;lt;br&amp;gt;利用できる正規表現は、実行環境 JScript (JavaScript) の仕様に依存します。&lt;br /&gt;
|-&lt;br /&gt;
! type&lt;br /&gt;
| 分類名です。複数設定する場合はコンマで区切ります。&amp;lt;br&amp;gt;たとえば、&amp;lt;code style=&amp;quot;color:#c00;&amp;quot;&amp;gt;type:&amp;quot;総数,全角,カナ&amp;quot;&amp;lt;/code&amp;gt; という具合です。&amp;lt;br&amp;gt;この場合、type[&amp;quot;総数&amp;quot;], type[&amp;quot;全角&amp;quot;], type[&amp;quot;カナ&amp;quot;] の各変数にカウントが加算されます。&lt;br /&gt;
|}&lt;br /&gt;
「文字カウント」マクロは、この定義を上から順に見て、該当する箇所を数えます。&lt;br /&gt;
&lt;br /&gt;
==結果表示について==&lt;br /&gt;
表示される結果は、ソースコードの最後のほうにある「ここから～ここまで結果表示の定義」の部分で定義されています。&amp;lt;br&amp;gt;&lt;br /&gt;
ソースコードを単純化すると、以下のような処理になっています。&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
var result = (※出力用のテキストを生成);&lt;br /&gt;
Alert(result);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Masme</name></author>
	</entry>
	<entry>
		<id>https://www.haijin-boys.com/wiki/index.php?title=%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:%E6%96%87%E5%AD%97%E3%82%AB%E3%82%A6%E3%83%B3%E3%83%88.zip&amp;diff=4398</id>
		<title>ファイル:文字カウント.zip</title>
		<link rel="alternate" type="text/html" href="https://www.haijin-boys.com/wiki/index.php?title=%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:%E6%96%87%E5%AD%97%E3%82%AB%E3%82%A6%E3%83%B3%E3%83%88.zip&amp;diff=4398"/>
		<updated>2019-06-16T07:46:11Z</updated>

		<summary type="html">&lt;p&gt;Masme: Masme が ファイル:文字カウント.zip の新しいバージョンを アップロードしました&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;文字カウント.js&lt;/div&gt;</summary>
		<author><name>Masme</name></author>
	</entry>
	<entry>
		<id>https://www.haijin-boys.com/wiki/index.php?title=%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:CharacterCounter.png&amp;diff=4397</id>
		<title>ファイル:CharacterCounter.png</title>
		<link rel="alternate" type="text/html" href="https://www.haijin-boys.com/wiki/index.php?title=%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:CharacterCounter.png&amp;diff=4397"/>
		<updated>2019-06-16T07:45:38Z</updated>

		<summary type="html">&lt;p&gt;Masme: Masme が ファイル:CharacterCounter.png の新しいバージョンを アップロードしました&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;マクロ「文字カウント」の説明用画像&lt;/div&gt;</summary>
		<author><name>Masme</name></author>
	</entry>
	<entry>
		<id>https://www.haijin-boys.com/wiki/index.php?title=%E5%88%A9%E7%94%A8%E8%80%85:Masme&amp;diff=4377</id>
		<title>利用者:Masme</title>
		<link rel="alternate" type="text/html" href="https://www.haijin-boys.com/wiki/index.php?title=%E5%88%A9%E7%94%A8%E8%80%85:Masme&amp;diff=4377"/>
		<updated>2019-06-01T14:42:13Z</updated>

		<summary type="html">&lt;p&gt;Masme: 「テキスト整形」正式版公開に伴い先行版削除&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=マクロ「テキスト整形」の仕様変更について (2019/05/01)=&lt;br /&gt;
マクロ「テキスト整形」の処理の流れを「前処理」「本処理」「後処理」の3段階に分けて考えたとき、モード (F/R/RS) 別に異なっていた流れを統合し、モードを廃止しようと考えています。&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!colspan=&amp;quot;4&amp;quot;| 旧仕様&lt;br /&gt;
|-&lt;br /&gt;
! モード !! 前処理 !! 本処理 !! 後処理&lt;br /&gt;
|-&lt;br /&gt;
! F&lt;br /&gt;
| なし&lt;br /&gt;
| 引数に Selection を渡して処理&lt;br /&gt;
| なし&lt;br /&gt;
|-&lt;br /&gt;
! R&lt;br /&gt;
| なし&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot;| 引数に Selection.Text を渡して処理&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot;| 戻り値で選択範囲を置換、再選択&lt;br /&gt;
|-&lt;br /&gt;
! RS&lt;br /&gt;
| 選択範囲を行全体に拡張&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;4&amp;quot;| 新仕様&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
| オプションで指定&lt;br /&gt;
| 第1引数に Selection.Text を、&amp;lt;br&amp;gt;第2引数に Selection を渡して処理&lt;br /&gt;
| 戻り値で置換・再選択を制御&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==後処理：戻り値による選択範囲の置換・再選択の制御==&lt;br /&gt;
Mery 2.7.0 にて「マクロで Chakra (jscript9.dll) における [[マクロリファレンス:Window_インターフェイス#Quit_メソッド|Quit メソッド]]をサポート外にした」（[https://www.haijin-boys.com/software/mery/mery-2-7-0 公式記事]）ことを受け、戻り値により後処理（選択範囲の置換・再選択）を制御できる仕組みを導入します。&lt;br /&gt;
&lt;br /&gt;
String (文字列) か Array (配列) を return すると、選択範囲を置換してカーソルを移動します。それ以外 (undefined など) の場合は、選択範囲に対し何もしません。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;Quit();&amp;lt;/code&amp;gt; (処理を中断) の代替策として &amp;lt;code&amp;gt;return;&amp;lt;/code&amp;gt; (undefined を返す) などとすることで処理を終了させることができます。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
f.push([&amp;quot;例1&amp;quot;,&amp;quot;&amp;quot;,function(){&lt;br /&gt;
  return &amp;quot;abcd&amp;quot; }]);&lt;br /&gt;
f.push([&amp;quot;例2&amp;quot;,&amp;quot;&amp;quot;,function(){&lt;br /&gt;
  return [&amp;quot;ab&amp;quot;,&amp;quot;cd&amp;quot;] }]);&lt;br /&gt;
f.push([&amp;quot;例3&amp;quot;,&amp;quot;&amp;quot;,function(){&lt;br /&gt;
  return [&amp;quot;ab&amp;quot;,&amp;quot;cd&amp;quot;,&amp;quot;&amp;quot;] }]);&lt;br /&gt;
f.push([&amp;quot;例4&amp;quot;,&amp;quot;&amp;quot;,function(){&lt;br /&gt;
  return; }]);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 例 !! 動作&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;quot;abcd&amp;quot;&amp;lt;/code&amp;gt; || abcd に置換後、abcd を選択 = &amp;lt;code&amp;gt;[&amp;quot;&amp;quot;,&amp;quot;abcd&amp;quot;,&amp;quot;&amp;quot;]&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;[&amp;quot;ab&amp;quot;,&amp;quot;cd&amp;quot;]&amp;lt;/code&amp;gt; || abcd に置換後、ab と cd の間に移動&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;[&amp;quot;ab&amp;quot;,&amp;quot;cd&amp;quot;,&amp;quot;&amp;quot;]&amp;lt;/code&amp;gt; || abcd に置換後、cd を選択&lt;br /&gt;
|-&lt;br /&gt;
| String / Array 以外 || 選択範囲に対し何もしない&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==本処理：第2引数を復活==&lt;br /&gt;
マクロ「[[テキスト変換]]」の第2引数を復活し、第1引数に Document.Selection.Text を、第2引数に Document.Selection を渡すようにします。&lt;br /&gt;
&lt;br /&gt;
「テキスト整形」で第2引数を削除したのは、「テキスト変換」で Selection を利用したコマンドが無かったこと、戻り値で選択範囲が置換されるため Selection を利用しづらいと感じたことが理由でした。&lt;br /&gt;
&lt;br /&gt;
「テキスト整形」でモード F を設け分離したのも、そうした理由によりますが、戻り値で選択範囲を置換するかしないか制御できるようになったため状況が変わりました。&lt;br /&gt;
&lt;br /&gt;
==前処理：モードを廃止、オプションに変更==&lt;br /&gt;
「モード」を「オプション」に変更し、機能を追加します。&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
| &amp;lt;code&amp;gt;s&amp;lt;/code&amp;gt; || 実行に範囲選択を要求 (require selection)&amp;lt;br&amp;gt;非選択時はメニュー項目がグレーになり実行不可&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;c&amp;lt;/code&amp;gt; || 実行にクリップボードを要求 (require clipboard)&amp;lt;br&amp;gt;貼り付けが行えない状況では同上&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;L&amp;lt;/code&amp;gt; || 行選択してから処理 (select Line)&amp;lt;br&amp;gt;モード RS はオプション L に変更&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;O&amp;lt;/code&amp;gt; || 非選択時はすべて選択してから処理 (select OR all)&amp;lt;br&amp;gt;※実験的機能（変更・廃止の可能性あり）&lt;br /&gt;
|}&lt;br /&gt;
* 複数指定する場合、空白で区切ります。順序は問いません。&lt;br /&gt;
* モードは必須でしたが、オプションは任意です。&lt;br /&gt;
* 上記以外の文字（オプション）を指定してもエラーにはなりません。&amp;lt;br&amp;gt;モード F/R/RS はオプション F/R/RS と認識されるが効果は無い、ということになります。&lt;br /&gt;
&lt;br /&gt;
==旧仕様から新仕様への移行方法==&lt;br /&gt;
移行を補助するコマンドを用意しました。&lt;br /&gt;
&lt;br /&gt;
※新仕様の基本コード用。旧仕様で使用する場合は、オプション &amp;quot;L&amp;quot; をモード &amp;quot;RS&amp;quot; に書き換えてください。&lt;br /&gt;
&amp;lt;pre style=&amp;quot;word-wrap:break-word;&amp;quot;&amp;gt;&lt;br /&gt;
f.push([&amp;quot;拡張コードを旧→新仕様に変換&amp;quot;,&amp;quot;L&amp;quot;,function(_){ //2019/06/01&lt;br /&gt;
  return _.replace(/^(\s*(?:\/\/[\/\s]*)?)f\.push\(\[(&amp;quot;[^\\&amp;quot;]*(?:\\.[^\\&amp;quot;]*)*&amp;quot;|&#039;[^\\&#039;]*(?:\\.[^\\&#039;]*)*&#039;),&amp;quot;(RS?|F)&amp;quot;,function\(([$0-9A-Za-z_]*)\)/gm,function(_,cmnt,name,mode,arg){return cmnt+&#039;f.push([&#039;+name+&#039;,&amp;quot;&#039;+(mode===&amp;quot;RS&amp;quot;?&amp;quot;L&amp;quot;:&amp;quot;&amp;quot;)+&#039;&amp;quot;,function(&#039;+(mode===&amp;quot;F&amp;quot;&amp;amp;&amp;amp;arg?&amp;quot;_,&amp;quot;:&amp;quot;&amp;quot;)+arg+&#039;)&#039;}) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
旧仕様のコマンドに対し、上記のコマンドを実行すると、以下のように置換され、新仕様の基本コードで問題なく動作するようになります。&lt;br /&gt;
;モード F&lt;br /&gt;
&amp;lt;p style=&amp;quot;background:#f9f9f9; border:1px dashed #999; padding:6px;&amp;quot;&amp;gt;&amp;lt;samp&amp;gt;f.push([&amp;quot;コマンド名&amp;quot;,&amp;quot;&amp;lt;span style=&amp;quot;background:#fcc;&amp;quot;&amp;gt;F&amp;lt;/span&amp;gt;&amp;quot;,function(a) 以下略&amp;lt;/samp&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
:↓&lt;br /&gt;
&amp;lt;p style=&amp;quot;background:#f9f9f9; border:1px dashed #999; padding:6px;&amp;quot;&amp;gt;&amp;lt;samp&amp;gt;f.push([&amp;quot;コマンド名&amp;quot;,&amp;quot;&amp;quot;,function(&amp;lt;span style=&amp;quot;background:#fcc;&amp;quot;&amp;gt;_,&amp;lt;/span&amp;gt;a) 以下略&amp;lt;/samp&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
;モード R&lt;br /&gt;
&amp;lt;p style=&amp;quot;background:#f9f9f9; border:1px dashed #999; padding:6px;&amp;quot;&amp;gt;&amp;lt;samp&amp;gt;f.push([&amp;quot;コマンド名&amp;quot;,&amp;quot;&amp;lt;span style=&amp;quot;background:#fcc;&amp;quot;&amp;gt;R&amp;lt;/span&amp;gt;&amp;quot;,function(a) 以下略&amp;lt;/samp&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
:↓&lt;br /&gt;
&amp;lt;p style=&amp;quot;background:#f9f9f9; border:1px dashed #999; padding:6px;&amp;quot;&amp;gt;&amp;lt;samp&amp;gt;f.push([&amp;quot;コマンド名&amp;quot;,&amp;quot;&amp;quot;,function(a) 以下略&amp;lt;/samp&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
;モード RS&lt;br /&gt;
&amp;lt;p style=&amp;quot;background:#f9f9f9; border:1px dashed #999; padding:6px;&amp;quot;&amp;gt;&amp;lt;samp&amp;gt;f.push([&amp;quot;コマンド名&amp;quot;,&amp;quot;&amp;lt;span style=&amp;quot;background:#fcc;&amp;quot;&amp;gt;RS&amp;lt;/span&amp;gt;&amp;quot;,function(a) 以下略&amp;lt;/samp&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
:↓&lt;br /&gt;
&amp;lt;p style=&amp;quot;background:#f9f9f9; border:1px dashed #999; padding:6px;&amp;quot;&amp;gt;&amp;lt;samp&amp;gt;f.push([&amp;quot;コマンド名&amp;quot;,&amp;quot;&amp;lt;span style=&amp;quot;background:#fcc;&amp;quot;&amp;gt;L&amp;lt;/span&amp;gt;&amp;quot;,function(a) 以下略&amp;lt;/samp&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==変更点まとめ==&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 機能 !! 旧仕様 !! 新仕様 !! 備考&lt;br /&gt;
|-&lt;br /&gt;
! モード F&lt;br /&gt;
|style=&amp;quot;background:#cfc;&amp;quot;| 利用可 ||style=&amp;quot;background:#fc6;&amp;quot;| 動作不良&lt;br /&gt;
| 引数を利用しているものは動作しなくなります&lt;br /&gt;
|-&lt;br /&gt;
! モード R&lt;br /&gt;
|style=&amp;quot;background:#cfc;&amp;quot;| 利用可 ||style=&amp;quot;background:#fc6;&amp;quot;| 動作可&lt;br /&gt;
| 動作しますが、モード名の R は不要です（削除推奨）&lt;br /&gt;
|-&lt;br /&gt;
! モード RS&lt;br /&gt;
|style=&amp;quot;background:#cfc;&amp;quot;| 利用可 ||style=&amp;quot;background:#fc6;&amp;quot;| 動作不良&lt;br /&gt;
| 動作しますが、行選択はされなくなります&lt;br /&gt;
|-&lt;br /&gt;
! 戻り値制御&lt;br /&gt;
|style=&amp;quot;background:#fc6;&amp;quot;| 動作不良 ||style=&amp;quot;background:#cfc;&amp;quot;| 利用可&lt;br /&gt;
| 旧仕様では文字列以外に非対応、モード F では利用不可&lt;br /&gt;
|-&lt;br /&gt;
! 第2引数&lt;br /&gt;
|style=&amp;quot;background:#fcc;&amp;quot;| 利用不可 ||style=&amp;quot;background:#cfc;&amp;quot;| 利用可&lt;br /&gt;
| モード F は第2引数利用に移行&lt;br /&gt;
|-&lt;br /&gt;
! オプション&lt;br /&gt;
|style=&amp;quot;background:#fcc;&amp;quot;| 利用不可 ||style=&amp;quot;background:#cfc;&amp;quot;| 利用可&lt;br /&gt;
| モード RS はオプション L に移行&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==記事ソースから拡張コードを抽出==&lt;br /&gt;
「テキスト整形」の記事ソースから拡張コードを抽出するコマンドを用意しました。&lt;br /&gt;
&lt;br /&gt;
※新仕様の基本コード用。文書全体を対象に置換が行われます。&lt;br /&gt;
&amp;lt;pre style=&amp;quot;word-wrap:break-word;&amp;quot;&amp;gt;&lt;br /&gt;
f.push([&amp;quot;記事ソースから拡張コードを抽出&amp;quot;,&amp;quot;&amp;quot;,function(_,$){ //2019/06/01&lt;br /&gt;
  $.SelectAll(); var src=$.Text.match(/(?:^|\n)=拡張コード=\n[\s\S]*?(\n==[\s\S]*?)(?:\n=拡張コード：書式=\n|$)/); if(src)$.Text=src[1].replace(/\n==([^=]+)==\n([\s\S]*?)(?=\n==[^=]|$)/g,function(_,ctg,src){var cmd=[], res, re=new RegExp(/^&amp;lt;pre(?: [^&amp;gt;]*)?&amp;gt;\s*(f\.push\(\[[\s\S]*?\]\);)\s*&amp;lt;\/pre&amp;gt;/gm); while(res=re.exec(src)){cmd.push(res[1])} return &#039;f.push([&amp;quot;&#039;+ctg+&#039;&amp;quot;,function(f){\n\n&#039;+ cmd.join(&amp;quot;\n\n&amp;quot;) +&#039;\n\n}]);\n\n&#039;}).slice(0,-1) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;使用手順&amp;lt;/b&amp;gt;&lt;br /&gt;
# 「[[テキスト整形]]」の記事上部にある [編集] タブをクリックする。&amp;lt;br&amp;gt;または、記事の「[[テキスト整形#拡張コード|拡張コード]]」見出しの [編集] リンクをクリックする。&lt;br /&gt;
# 記事編集ページに移動するので、テキストボックス内の文章をすべて選択し、コピーする。&amp;lt;br&amp;gt;※テキストボックス内を右クリックしてメニューから実行するのが一番わかりやすいと思われます。&lt;br /&gt;
#* コピーした後は戻る（ブラウザバック）か閉じるかして記事編集ページから離れてください。&lt;br /&gt;
# Mery で文書を新規作成し、コピーした文章を貼り付ける。&lt;br /&gt;
# 「テキスト整形」マクロを起動し、「記事ソースから拡張コードを抽出」コマンドを実行する。&lt;br /&gt;
&lt;br /&gt;
=マクロ「テキスト整形」の仕様変更について (2015/02/14)=&lt;br /&gt;
&lt;br /&gt;
==モード R/RS 実行後、処理した範囲を選択し直すように==&lt;br /&gt;
&amp;lt;p style=&amp;quot;background:#f9f9f9; border:1px dashed #999; padding:6px;&amp;quot;&amp;gt;旧仕様では、コマンド実行後は&amp;lt;span style=&amp;quot;background:#bfdfff; border-right:2px solid;&amp;quot;&amp;gt;範囲選択が　解　除　されました。↵&amp;lt;br&amp;gt;新仕様では、コマンド実行前に選択範囲を　記　憶　し、実行後に　復　元　します。↵&amp;lt;br&amp;gt;処理の結果、字数が　増　減　した場合は、選択範囲が　調　整　&amp;lt;/span&amp;gt;されます。↵&amp;lt;/p&amp;gt;&lt;br /&gt;
:↓　コマンド「空白文字を除去」実行&lt;br /&gt;
&amp;lt;p style=&amp;quot;background:#f9f9f9; border:1px dashed #999; padding:6px;&amp;quot;&amp;gt;旧仕様では、コマンド実行後は&amp;lt;span style=&amp;quot;background:#bfdfff; border-right:2px solid;&amp;quot;&amp;gt;範囲選択が解除されました。↵&amp;lt;br&amp;gt;新仕様では、コマンド実行前に選択範囲を記憶し、実行後に復元します。↵&amp;lt;br&amp;gt;処理の結果、字数が増減した場合は、選択範囲が調整&amp;lt;/span&amp;gt;されます。↵&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
この変更により、コマンドの効果範囲が目視できるようになり、また、選択し直す手間なく別の処理に移ることができるようになります。&lt;br /&gt;
* モード R では、選択範囲の始点終点の位置関係が維持されます。&lt;br /&gt;
* モード RS では、選択範囲を行頭行末まで拡張した状態が記憶されます。始点は上端行頭、終点は下端行末となります。&lt;br /&gt;
* コマンド実行中にカーソル位置を移動させる処理がある場合には対応できません。&lt;br /&gt;
&lt;br /&gt;
==モード RM を廃止==&lt;br /&gt;
モード RM (一行ごとに処理) は、マクロ「[[テキスト変換]]」の関数タイプ replaceL に相当し、モード RS で実現可能な処理をより簡素に記述するために設けられた機能です。&amp;lt;br&amp;gt;&lt;br /&gt;
しかし、以下のような難点が見受けられることから、廃止を考えるに至りました。&lt;br /&gt;
* モード RS より簡素に記述できるとは必ずしも限らない。&lt;br /&gt;
* モード RS で実現可能＝代替可能であり、RM ならではの利点が無い。&lt;br /&gt;
* モード R/RS に比べ処理が異質で、コマンドを作る際はそれを考慮しなければならない。&amp;lt;br&amp;gt;※異質＝R/RS が「選択範囲の文字列」を対象に処理を行うのに対し、RM は「選択範囲の各行の文字列」を対象に処理を行う。&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot; style=&amp;quot;word-wrap:break-word;&amp;quot;&amp;gt;&lt;br /&gt;
//※モード RM では「クロージャ」という仕組みを使用する必要があり難解&lt;br /&gt;
f.push([&amp;quot;各行行頭に文字列付加...&amp;quot;,&amp;quot;RM&amp;quot;,(function(a){&lt;br /&gt;
  var p=null; return function(a){ if(!p){ if(!(p=Prompt(&amp;quot;各行行頭に付加する文字列:&amp;quot;,&amp;quot;&amp;quot;))){Quit()} } return p+a } })()]);&lt;br /&gt;
//※モード RS で replace(正規表現) を使用するほうが簡素に記述できる&lt;br /&gt;
f.push([&amp;quot;各行行頭に文字列付加...&amp;quot;,&amp;quot;RS&amp;quot;,function(a){&lt;br /&gt;
  var p=Prompt(&amp;quot;各行行頭に付加する文字列:&amp;quot;,&amp;quot;&amp;quot;); if(!p)Quit(); return a.replace(/^/gm,p) }]);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot; style=&amp;quot;word-wrap:break-word;&amp;quot;&amp;gt;&lt;br /&gt;
//※モード RM でも、&lt;br /&gt;
f.push([&amp;quot;空白行を削除&amp;quot;,&amp;quot;RM&amp;quot;,function(a){&lt;br /&gt;
  return a.match(/^[ 　\t]*$/)? null:a }]);&lt;br /&gt;
//※モード RS でも、必要な知識や字数がほぼ変わらない時がある&lt;br /&gt;
f.push([&amp;quot;空白行を削除&amp;quot;,&amp;quot;RS&amp;quot;,function(a){&lt;br /&gt;
  return a.replace(/^[ 　\t]*$\n?/gm,&amp;quot;&amp;quot;) }]);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot; style=&amp;quot;word-wrap:break-word;&amp;quot;&amp;gt;&lt;br /&gt;
//※モード RM なら正規表現に頼らず簡素に記述できるコマンドもあるが、&lt;br /&gt;
f.push([&amp;quot;インデント(半角空白2個)&amp;quot;,&amp;quot;RM&amp;quot;,function(a){&lt;br /&gt;
  return &amp;quot;  &amp;quot;+a }]);&lt;br /&gt;
f.push([&amp;quot;インデント(半角空白2個)&amp;quot;,&amp;quot;RS&amp;quot;,function(a){&lt;br /&gt;
  return a.replace(/^/gm,&amp;quot;  &amp;quot;) }]);&lt;br /&gt;
//※正規表現を利用したコマンドも数多くあり、利点になりづらい&lt;br /&gt;
f.push([&amp;quot;行頭 \/\/ を付加/削除&amp;quot;,&amp;quot;RM&amp;quot;,function(a){&lt;br /&gt;
  return a.match(/^\/\/.*$/)? a.slice(2): &amp;quot;\/\/&amp;quot;+a }]);&lt;br /&gt;
f.push([&amp;quot;行頭 \/\/ を付加/削除&amp;quot;,&amp;quot;RS&amp;quot;,function(a){&lt;br /&gt;
  return a.replace(/^(\/\/)?/gm,function(s){return s? &amp;quot;&amp;quot;: &amp;quot;\/\/&amp;quot;}) }]);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==モード CR を廃止、replaceBatch メソッドを追加==&lt;br /&gt;
モード CR (連続置換) は、&amp;lt;code&amp;gt;replace&amp;lt;/code&amp;gt; を連鎖させる記法（メソッドチェーン）をより簡素に記述するために設けられた機能です。&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
f.push([&amp;quot;コマンド名&amp;quot;,&amp;quot;R&amp;quot;,function(a){&lt;br /&gt;
  return a.replace(/ABC/g,&amp;quot;DEF&amp;quot;).replace(/\(1\)/g,&amp;quot;①&amp;quot;).replace(/GHI/gi,&amp;quot;JKL&amp;quot;) }]);&lt;br /&gt;
//↓簡素化&lt;br /&gt;
f.push([&amp;quot;コマンド名&amp;quot;,&amp;quot;CR&amp;quot;,function(a){&lt;br /&gt;
  return [ [&amp;quot;ABC&amp;quot;,&amp;quot;DEF&amp;quot;],[&amp;quot;(1)&amp;quot;,&amp;quot;①&amp;quot;],[/GHI/gi,&amp;quot;JKL&amp;quot;] ]}]);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
しかし、モードの一種としたがゆえに、他のモードでは利用できない事、&amp;lt;code&amp;gt;replace&amp;lt;/code&amp;gt; のような使い方ができない事が難点としてありました。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;replaceBatch&amp;lt;/code&amp;gt; メソッドは、この難点を解消するために設けられる機能です。&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
//※モード R で利用する(基本形)&lt;br /&gt;
f.push([&amp;quot;コマンド名&amp;quot;,&amp;quot;R&amp;quot;,function(a){&lt;br /&gt;
  return a.replaceBatch([ [&amp;quot;ABC&amp;quot;,&amp;quot;DEF&amp;quot;],[&amp;quot;(1)&amp;quot;,&amp;quot;①&amp;quot;],[/GHI/gi,&amp;quot;JKL&amp;quot;] ]) }]);&lt;br /&gt;
//※モード RS で利用する(選択範囲を拡張)&lt;br /&gt;
f.push([&amp;quot;コマンド名&amp;quot;,&amp;quot;RS&amp;quot;,function(a){&lt;br /&gt;
  return a.replaceBatch([ [&amp;quot;ABC&amp;quot;,&amp;quot;DEF&amp;quot;],[&amp;quot;(1)&amp;quot;,&amp;quot;①&amp;quot;],[/GHI/gi,&amp;quot;JKL&amp;quot;] ]) }]);&lt;br /&gt;
//※モード F で利用する(▲非推奨)&lt;br /&gt;
f.push([&amp;quot;コマンド名&amp;quot;,&amp;quot;F&amp;quot;,function(a){&lt;br /&gt;
  a.Text = a.Text.replaceBatch([ [&amp;quot;ABC&amp;quot;,&amp;quot;DEF&amp;quot;],[&amp;quot;(1)&amp;quot;,&amp;quot;①&amp;quot;],[/GHI/gi,&amp;quot;JKL&amp;quot;] ]) }]);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
//※replace のようにメソッドチェーンが可能&lt;br /&gt;
f.push([&amp;quot;コマンド名&amp;quot;,&amp;quot;R&amp;quot;,function(a){&lt;br /&gt;
  return a.replace(省略).replaceBatch([ 省略 ]).replace(省略) }]);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===モード CR → R (replaceBatch) への移行方法===&lt;br /&gt;
以下のように書き換えることで移行が可能です。&lt;br /&gt;
&amp;lt;p style=&amp;quot;background:#f9f9f9; border:1px dashed #999; padding:6px;&amp;quot;&amp;gt;&amp;lt;samp&amp;gt;f.push([&amp;quot;コマンド名&amp;quot;,&amp;quot;&amp;lt;span style=&amp;quot;background:#fcc;&amp;quot;&amp;gt;CR&amp;lt;/span&amp;gt;&amp;quot;,function(a){&amp;lt;br&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;return &amp;lt;span style=&amp;quot;background:#fcc;&amp;quot;&amp;gt;[&amp;lt;/span&amp;gt; [検索1,置換1],[検索2,置換2] 中略 &amp;lt;span style=&amp;quot;background:#fcc;&amp;quot;&amp;gt;]&amp;lt;/span&amp;gt;}]);&amp;lt;/samp&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
:↓&lt;br /&gt;
&amp;lt;p style=&amp;quot;background:#f9f9f9; border:1px dashed #999; padding:6px;&amp;quot;&amp;gt;&amp;lt;samp&amp;gt;f.push([&amp;quot;コマンド名&amp;quot;,&amp;quot;&amp;lt;span style=&amp;quot;background:#fcc;&amp;quot;&amp;gt;R&amp;lt;/span&amp;gt;&amp;quot;,function(a){&amp;lt;br&amp;gt;&amp;amp;nbsp;&amp;amp;nbsp;return &amp;lt;span style=&amp;quot;background:#fcc;&amp;quot;&amp;gt;a.replaceBatch([&amp;lt;/span&amp;gt; [検索1,置換1],[検索2,置換2] 中略 &amp;lt;span style=&amp;quot;background:#fcc;&amp;quot;&amp;gt;]) &amp;lt;/span&amp;gt;}]);&amp;lt;/samp&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==変更点まとめ==&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 機能 !! 旧仕様 !! 新仕様 !! 備考&lt;br /&gt;
|-&lt;br /&gt;
! モード F&lt;br /&gt;
|style=&amp;quot;background:#cfc;&amp;quot;| 利用可 ||style=&amp;quot;background:#cfc;&amp;quot;| 利用可&lt;br /&gt;
| 変更なし&lt;br /&gt;
|-&lt;br /&gt;
! モード R&lt;br /&gt;
|style=&amp;quot;background:#cfc;&amp;quot;| 利用可 ||style=&amp;quot;background:#cfc;&amp;quot;| 利用可&lt;br /&gt;
| 選択範囲を維持・調整するように&lt;br /&gt;
|-&lt;br /&gt;
! モード RS&lt;br /&gt;
|style=&amp;quot;background:#cfc;&amp;quot;| 利用可 ||style=&amp;quot;background:#cfc;&amp;quot;| 利用可&lt;br /&gt;
| 選択範囲を維持・調整するように&lt;br /&gt;
|-&lt;br /&gt;
! モード RM&lt;br /&gt;
|style=&amp;quot;background:#cfc;&amp;quot;| 利用可 ||style=&amp;quot;background:#fcc;&amp;quot;| 廃止&lt;br /&gt;
| モード RS で作り直し&lt;br /&gt;
|-&lt;br /&gt;
! モード CR&lt;br /&gt;
|style=&amp;quot;background:#cfc;&amp;quot;| 利用可 ||style=&amp;quot;background:#fcc;&amp;quot;| 廃止&lt;br /&gt;
| replaceBatch メソッドに移行&lt;br /&gt;
|-&lt;br /&gt;
! replaceBatch&lt;br /&gt;
|style=&amp;quot;background:#fcc;&amp;quot;| エラー ||style=&amp;quot;background:#cfc;&amp;quot;| 利用可&lt;br /&gt;
| 旧仕様ではコマンド実行時にエラーが発生する&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Masme</name></author>
	</entry>
	<entry>
		<id>https://www.haijin-boys.com/wiki/index.php?title=%E3%83%9E%E3%82%AF%E3%83%AD%E3%83%A9%E3%82%A4%E3%83%96%E3%83%A9%E3%83%AA&amp;diff=4376</id>
		<title>マクロライブラリ</title>
		<link rel="alternate" type="text/html" href="https://www.haijin-boys.com/wiki/index.php?title=%E3%83%9E%E3%82%AF%E3%83%AD%E3%83%A9%E3%82%A4%E3%83%96%E3%83%A9%E3%83%AA&amp;diff=4376"/>
		<updated>2019-06-01T14:33:56Z</updated>

		<summary type="html">&lt;p&gt;Masme: 「字下げ・字上げ」「テキスト整形」「検索(SJIS以外)」「コメントマーク付け外し」更新&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Mery で使用できるマクロを集めたライブラリです。&lt;br /&gt;
&lt;br /&gt;
スクリプトを拡張子「js」 (JavaScript、JScript の場合) にして「Macros」フォルダ等に保存し、マクロメニューの「選択」や「カスタマイズ」から読み込んで使用してください。&lt;br /&gt;
&lt;br /&gt;
マクロライブラリはどなたでも自由に編集できますので、みなさんが作成した便利なマクロをどんどん掲載してください。&lt;br /&gt;
&lt;br /&gt;
== テキスト操作補助 ==&lt;br /&gt;
&lt;br /&gt;
*[https://github.com/haijinboys/mery-macro-emmet Emmet] (Kuro)&lt;br /&gt;
*[[Zen Coding]] (Kuro)&lt;br /&gt;
*[[CSV のカーソル位置の列を削除]] (Kuro)&lt;br /&gt;
*[[対応する括弧に移動]] (Kuro, kurama, masme 他) update 2019/04/24&lt;br /&gt;
*[[選択文字列を強調]] (Kuro)&lt;br /&gt;
*[[行頭に移動]] (Kuro, 他) update 2014/03/15&lt;br /&gt;
:[[行頭か行末 または 選択範囲の始点か終点|行頭か行末 または 選択範囲の始点か終点 に移動]] (sukemaru) update 2019/03/29&lt;br /&gt;
*[[文書の先頭か末尾|文書の 先頭か末尾 に移動]] (sukemaru) update 2019/03/29&lt;br /&gt;
*[[バイト数]] (Kuro, ks, sukemaru) update 2018/11/18&lt;br /&gt;
*[[日付と時刻を挿入]] (n, masme, sukemaru) update 2018/12/09&lt;br /&gt;
*[[日付と時刻を挿入（カレンダー版）]] (papagoat) update 2016/05/24&lt;br /&gt;
*[[選択範囲を上下に移動]] (ks)&lt;br /&gt;
*[[行を複製 (複数行可)]] (sukemaru) update 2019/05/07&lt;br /&gt;
*[[TeraPadのCtrl↑と同じような動作をするマクロ]] (suke)&lt;br /&gt;
*[[TeraPadのCtrl↓と同じような動作をするマクロ]] (suke)&lt;br /&gt;
*[[Vz 風テキストスタック 2 ストロークキー]] (papagoat) update 2013/11/22&lt;br /&gt;
*[[非選択状態でも逆インデント]] (papagoat)&lt;br /&gt;
*[[ラクラク罫線]] (手石) Update 2012/12/22&lt;br /&gt;
*[[ファイル:XHTML.zip]] (アラフォー親父) HTMLタグを、ショートカット・キーに登録して入力するマクロ（文章挟み込み仕様）&lt;br /&gt;
*[[矩形ペースト]] (手石)&lt;br /&gt;
*[[自動箇条書き]] (手石) update 2013/03/15&lt;br /&gt;
*[[インデントを考慮した折り返し（改行挿入）]] (手石) update 2013/02/23&lt;br /&gt;
*[[青空文庫用整形補助]] (ks, 有志)&lt;br /&gt;
*[[部分編集]] (ks)&lt;br /&gt;
*[[文字カウント]] (masme) 2014/02/01, update 2018/08/04&lt;br /&gt;
*[[字下げ・字上げ]](インデント・逆インデント) (masme, sukemaru) 2014/02/09, update 2019/06/01&lt;br /&gt;
:「[[字下げ・字上げ#インデント|インデント／逆インデント]]」を追加&lt;br /&gt;
*[[数値を増減]](インクリメント・デクリメント) (masme) 2014/06/17, update 2016/02/28&lt;br /&gt;
*[[少し便利な Undo/Redo]] (ks)&lt;br /&gt;
*[[自動ルビ振り]] (急急如律令)&lt;br /&gt;
*[[貼付け実行後のカーソル位置を貼付け文字列の先頭にする]] (yuko, sukemaru) update 2018/11/14&lt;br /&gt;
*[[ドイツ語特殊文字]] (鯉)&lt;br /&gt;
*[[矩形選択範囲の各行先頭に文字挿入]] (yuko)&lt;br /&gt;
*[[行の先頭に貼り付け]] (sukemaru) 2018/08/24&lt;br /&gt;
*[[文章で使用されている文字をユニーク抽出]] (Kuro)&lt;br /&gt;
*[[アウトライン用ノード追加]] (mik) 2018/06/25&lt;br /&gt;
*[[アウトラインのノードレベルを上げる]] (mik) 2018/06/25&lt;br /&gt;
*[[アウトラインのノードレベルを下げる]] (mik) 2018/06/25&lt;br /&gt;
*[[アウトラインのノードの完了/未完了を切り替える]] (mik) 2018/10/18 update&lt;br /&gt;
*[[ハルナアウトライン用の完了/未完了フラグをノード名に反映する]] (mik) 2018/10/18 update&lt;br /&gt;
*[[Markdown文書で改行時にリスト、引用ブロック開始記号を自動入力する]] (catfist, yuko) 2018/10/15 update&lt;br /&gt;
*[[Markdown 向け、リスト記号 (*) のトグル]] (yuko) 2019/04/29&lt;br /&gt;
*[[引用符／コメント]] ※ポップアップメニュー (行頭の文字列操作. 「引用の追加」マクロの増補改訂版)　(sukemaru) last modified 2019/04/07&lt;br /&gt;
*[[カッコで囲う]] (ポップアップメニューあり)　(sukemaru) last modified 2019/04/07&lt;br /&gt;
:「[[カッコで囲う#カッコで囲う (ポップアップメニューなし)|カッコで囲う (簡易版 ポップアップメニューなし)]]」&amp;lt;br&amp;gt; 「[[カッコで囲う#引用符を追加／削除|引用符を追加／削除]]」（ &amp;quot;二重引用符&amp;quot; の追加／削除トグル）&lt;br /&gt;
*[[定型文を挿入]]マクロ集 (sukemaru) 2018/12/03&lt;br /&gt;
*[[何年生で習う漢字？]] (シリル) 2019/03/10&lt;br /&gt;
*[[上に行挿入]] (yuko) 2019/05/11&lt;br /&gt;
&lt;br /&gt;
== ファイル操作補助 ==&lt;br /&gt;
&lt;br /&gt;
*[[ファイルのプロパティ]] (sukemaru) 2018/12/18&lt;br /&gt;
*[[文字列中のパス起動]] (ks)&lt;br /&gt;
:[[選択範囲のURL・パスを開く|ひらけゴマ！]] (sukemaru) update 2019/04/07 ※「選択範囲のURL・パスを開く」&lt;br /&gt;
*[[自動バックアップ]] (ks)&lt;br /&gt;
*[[終了時状態保持・復元]] (ks)&lt;br /&gt;
*[[上書き保存(UAC対応)]] (ks)&lt;br /&gt;
*[[含んでいるフォルダを開く]] (ks)&lt;br /&gt;
*[[パスを取得]] (Kuro)&lt;br /&gt;
*[[フォルダ内のファイルをすべて開く]] (Kuro)&lt;br /&gt;
*[[ファイルを比較]] (Kuro)&lt;br /&gt;
*[[ファイル名を引数にしてアプリ起動]] (Kuro, miso)&lt;br /&gt;
*[[ブックマーク一覧ジャンプ]] (goat, sukemaru) update 2019/04/16&lt;br /&gt;
*[[拡張子の違うファイルを開く]] (n)&lt;br /&gt;
*[[フォルダを開く]] (n)&lt;br /&gt;
*[[コマンドプロンプトを開く]] (n)&lt;br /&gt;
*[[SDIウィンドウの記憶と復帰]] (papagoat) Update 2012/10/23 (説明文変更 2013/11/22)&lt;br /&gt;
*[[よく使うフォルダ]] (手石) Update 2014/02/22&lt;br /&gt;
*[[ファイル（選択範囲）の仮保存]] (手石)&lt;br /&gt;
*[[ポップアップメニューでファイル選択]] (手石)&lt;br /&gt;
*[[フォルダツリーをポップアップ表示]] (n)&lt;br /&gt;
*[[タグジャンプ]] (o)&lt;br /&gt;
*[[ウィンドウの位置とサイズを拡張子で指定]] (papagoat) Update 2014/04/17&lt;br /&gt;
*[[編集モードの自動選択]] または「書き換え禁止で開く」 ※イベントマクロ (sukemaru, Bleat) update 2019/04/24&lt;br /&gt;
*[[書き換え禁止モード色反転]] (Bleat)&lt;br /&gt;
*[[特定のフォルダで「ファイルを開く」ダイアログ]] (sukemaru) fixed 2018/12/19&lt;br /&gt;
*[[すべて閉じる]]マクロ集 (sukemaru) update 2019/05/03 &amp;lt;br&amp;gt;｢他（右側／左側）のタブを閉じる｣ などを追加&lt;br /&gt;
*[[文書が変更されていなければ変更マークを消す]] (Noah)&lt;br /&gt;
*[[変更なしのタブをすべて閉じる]] (Noah)&lt;br /&gt;
*[[ファイルを読み直す・開きなおす]] ※ポップアップメニュー (sukemaru) update &amp;amp; fix 2019/05/30 &amp;lt;br&amp;gt; エンコード指定で読み直し・読み取り専用属性の変更・編集モードの変更・プロパティを開く・さいごに閉じたファイルを開く・etc.&lt;br /&gt;
*[[さいごに閉じたファイルを開く]] ※ポップアップメニュー (sukemaru) 2019/04/30&lt;br /&gt;
&lt;br /&gt;
== 変換・ソート・整形 ==&lt;br /&gt;
&lt;br /&gt;
*[[可変長を固定長に変換]] (Kuro)&lt;br /&gt;
*[[SHA でハッシュ化]] (Kuro)&lt;br /&gt;
*[[標準変換]] (Kuro)&lt;br /&gt;
*[[昇順で並び替え]] (Kuro)&lt;br /&gt;
*[[降順で並び替え]] (Kuro)&lt;br /&gt;
*[[連続する重複行を削除]] (Kuro)&lt;br /&gt;
*[[ブックマーク系コマンド集]] (ks)&lt;br /&gt;
*[[テキスト変換]] (ks)&lt;br /&gt;
**[[テキスト整形]] (masme) 2013/09/15, update 2019/06/01&lt;br /&gt;
*[[旧漢字から新漢字に変換]] (furu)&lt;br /&gt;
*[[clustalw を用いてアライメントを実行]] (suke)&lt;br /&gt;
*[[連番の挿入]] (手石)&lt;br /&gt;
*[[TSV(CSV) ⇒ 固定長]] (手石) update 2013/04/16&lt;br /&gt;
*[[行並べ替え]] (masme) 2013/08/25, update 2019/04/12&lt;br /&gt;
*[[連番を挿入]] (masme) 2013/08/25&lt;br /&gt;
*[[GFMをHTMLに変換]] (noonworks) 2014/03/09&lt;br /&gt;
*[[TrueとFalse_を切り替える|YES／NO マクロ]] (sukemaru) update 2018/11/27 ※「&amp;lt;span style=&amp;quot;color:#0000c0;&amp;quot;&amp;gt;True&amp;lt;/span&amp;gt;と&amp;lt;span style=&amp;quot;color:#c00;&amp;quot;&amp;gt;False&amp;lt;/span&amp;gt;を切り替える」&amp;lt;br&amp;gt;＋ 改造版「ToDoリストモード」 (sukemaru) Added 2019/05/06&lt;br /&gt;
*[[基数変換10_16]] (シリル) 2019/02/10&lt;br /&gt;
*[[スネークケース ⇔ キャメルケースの変換]] (Noah)&lt;br /&gt;
*[[罫線変換]] (シリル) 2019/03/09&lt;br /&gt;
*[[大文字／小文字／頭文字 トグル変換]] (sukemaru) fixed 2019/05/20&lt;br /&gt;
&lt;br /&gt;
== 検索・置換 ==&lt;br /&gt;
&lt;br /&gt;
*[[文書から検索]] (Kuro)&lt;br /&gt;
*[[単語を抽出]] (Kuro)&lt;br /&gt;
*[[このファイルから検索(マッチしない行)]] (Kuro)&lt;br /&gt;
*[[このファイルから検索(マッチする行)]] (Kuro)&lt;br /&gt;
*[[タグの外側（内側）だけ置換]] (手石)&lt;br /&gt;
*[[ポップアップメニューで検索先にジャンプ]] (手石, sukemaru) Last Update 2019/04/16&lt;br /&gt;
*[[検索(SJIS以外)]] + 検索強調を解除 (masme) 2014/09/16, update 2019/06/01&lt;br /&gt;
*[https://github.com/TakamiChie/mery-scripts/blob/master/SearchWithMode.js 現在開いているファイルの言語名をつけてWeb検索] (高見知英)→[[https://vine.co/v/eeY59rFMail 実際の動作例]]&lt;br /&gt;
*[https://github.com/GunseiPaseri/Mery_macro 文字出現量ランキング] (群生系パセリ) 2015/12/28&lt;br /&gt;
*[[検索ヒット数表示]] (ks)&lt;br /&gt;
:[[検索ヒット数表示（選択文字列）]] (sukemaru) 2019/05/04&lt;br /&gt;
*[[任意の検索エンジンで検索]] (Noah)&lt;br /&gt;
*[[デフォルトの検索フラグを設定して検索ウィンドウ表示]] (yuko)&lt;br /&gt;
*[[簡易検索一覧]] (シリル) 2018/12/24&lt;br /&gt;
*[[簡易検索一覧などをアウトプット]] (シリル) 2018/12/31&lt;br /&gt;
*[[複数置換]] (Noah)&lt;br /&gt;
*[[類義語アウトプット【Python】]] (シリル) 2019/03/24&lt;br /&gt;
*[[校正支援アウトプット]] (シリル) 2019/05/01&lt;br /&gt;
&lt;br /&gt;
== プログラミング補助 ==&lt;br /&gt;
&lt;br /&gt;
*[[Eclipse風コメントアウト]] (ks)&lt;br /&gt;
*[[Eclipse風コメントアウト(改)]] (pizz) 2019/04/12&lt;br /&gt;
*[[コメントマーク付け外し]] (手石, masme, sukemaru) last update 2019/06/01&lt;br /&gt;
*[[スマートインデント(C 構文)]] (ks)&lt;br /&gt;
*[[ctags.exeでtagsファイルを生成、タグジャンプを行うマクロ]] (kazy)&lt;br /&gt;
*[[タグファイルから補完]] (n)&lt;br /&gt;
*[[コードスニペットもどき]] (手石) Update 2012/12/20&lt;br /&gt;
*[[TeX文書のコンパイル]] (手石)&lt;br /&gt;
*[[TeX数式のチェック]] (手石)&lt;br /&gt;
*[[簡易数式計算]] (ks)&lt;br /&gt;
*[[定義へ移動]] (ks)&lt;br /&gt;
*[[タブの桁数]] (手石)&lt;br /&gt;
*[[行末の空白を削除]] (n) 2014/12/19&lt;br /&gt;
*[https://github.com/TakamiChie/mery-scripts/tree/master/ 開いているスクリプトファイルを実行(掲載時点ではバッチファイル・Javascript・Lua・PHP・Perl・Python・Ruby・UWSCに対応。順次追加予定)] (高見知英)&lt;br /&gt;
*[https://github.com/TakamiChie/mery-scripts/tree/master/ 開いているスクリプトファイルを構文チェック(掲載時点ではPHP・Perlに対応。順次追加予定)] (高見知英)&lt;br /&gt;
*[[説明を出力]] (s) Create 2015/08/16&lt;br /&gt;
*[[拡張子からコンソール実行]] (YOS G-spec) 2016/12/11更新&lt;br /&gt;
*[[JSON整形]](Ovis) Create 2019/03/25&lt;br /&gt;
&lt;br /&gt;
== おもしろ ==&lt;br /&gt;
&lt;br /&gt;
*[[テキストブラウザ]] (Kuro)&lt;br /&gt;
*[[Yahoo!天気情報]] (Kuro)&lt;br /&gt;
*[[メール送信]] (ks)&lt;br /&gt;
*[[あつまれ☆みんなのおもしろアイコン]] (有志)&lt;br /&gt;
&lt;br /&gt;
== 実験的マクロ・練習マクロなど ==&lt;br /&gt;
&lt;br /&gt;
*【自家用】[[カッコをはずす]]＆[[カッコをはずす#カッコを削除／追加|カッコを削除／追加]]＆[[カッコをはずす#カッコを追加／削除|カッコを追加／削除]] (sukemaru)  2019/03/14 - 2019/05/03 fixed&lt;br /&gt;
*【自家用】[[ファイルのフルパスをコピーして閉じる]] ※イベントマクロ (sukemaru) update 2019/04/14&lt;br /&gt;
*【実験】 [[行を上下に移動（Mery 2.7 用）]] (sukemaru) 2019/05/07&lt;br /&gt;
*【自家用】[[全角／半角変換]] (sukemaru) fixed 2019/05/11&lt;br /&gt;
*【実験】[[全角／半角 トグル変換]] (sukemaru) fixed 2019/05/20&lt;br /&gt;
*【実験】 [[ファイルへ移動（物理座標ジャンプ）]] (sukemaru) 2019/05/15&lt;br /&gt;
*【実験】 [[位置情報を保存してから「次の文字列を検索」]]＋&#039;&#039;&#039;復帰&#039;&#039;&#039; (sukemaru) 2019/05/28&lt;br /&gt;
&lt;br /&gt;
== その他 ==&lt;br /&gt;
&lt;br /&gt;
*[[最新版を確認]] (diaphragm)&lt;br /&gt;
*[[SAPI 使って単語読み上げ]] (miso)&lt;br /&gt;
*[[フォルダ選択ダイアログ]] (手石)&lt;br /&gt;
*[[HTA(HTML)の自作ダイアログを表示]] (noonworks)&lt;br /&gt;
*[[JavaScript を実行]] (n)&lt;br /&gt;
*[[ポップアップメニューを手軽に扱う]] (komorebikoboshi)&lt;br /&gt;
*[[マクロ・関数をメニューで呼び出す]] (aliquis) 2013/08/19&lt;br /&gt;
*[[階層化マクロメニュー]] (ks)&lt;br /&gt;
*[[シェルコマンドを実行]] (sasaki)&lt;br /&gt;
*[[ポップアップメニューでチェックボックス]] (手石)&lt;br /&gt;
*[[ポップアップメニューでラジオボタン]] (手石)&lt;br /&gt;
*[[Editor.OpenFile()のポリフィル]](kazy)&lt;br /&gt;
*[[折り返しトグル切り替え]] (Bleat, sukemaru) update 2019/02/19&lt;br /&gt;
*[[ファイルロック (排他制御) 的なもの]] (PebblePot)&lt;br /&gt;
*[[Mery.iniのオプション値を取得]] ※組み込み用関数 (sukemaru) update &amp;amp; fix 2019/05/21&lt;br /&gt;
*[[Mery本体のバージョンチェック]] ※組み込み用関数 (sukemaru) 2019/04/17 &amp;lt;br&amp;gt;サンプルコード: 「Begin/EndUndoGroup() メソッドを使えるのは ver 2.7.0 以降」&lt;br /&gt;
*[[IO.Serialize() の JSON を参照する]] ※組み込み用関数 (sukemaru) 2019/04/17&lt;br /&gt;
*[[ポップアップメニューを「n*十件ずつ」のサブメニューに自動分割する]] ※組み込み用関数 (sukemaru) 2019/04/20 &amp;lt;br&amp;gt;サンプルコード: 「すべての論理行をポップアップメニューに表示する」&lt;br /&gt;
*[[タブが「縦書き」モードかチェックする]] ※組み込み用関数 (sukemaru) 2019/04/29 &amp;lt;br&amp;gt;サンプルコード: 「特定の条件で縦書きモードに切りかえる」&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
*[[キーアサイン集]] (ks, masme, 有志) last update 2018/10/08&lt;br /&gt;
*[[マテリアルデザインっぽいアイコンと『小マクロ集』]] ※アイコン収録数&#039;&#039;&#039;300&#039;&#039;&#039;コ (sukemaru) last update 2019/05/01&lt;br /&gt;
*[[includeライブラリ]] (ks)&lt;br /&gt;
*[[GetKeyState.exe(キー状態取得実行ファイル)]] (pizz) 2019/03/23&lt;br /&gt;
*[[マクロ覚え書き（開発者向け）]](ks)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- (sukemaru, 2019/04/12 コメントアウト)&lt;br /&gt;
*[[ブックマークを復元（Mery_2.7用）]] (sukemaru) 2019/04/07&lt;br /&gt;
 --&amp;gt;&lt;/div&gt;</summary>
		<author><name>Masme</name></author>
	</entry>
	<entry>
		<id>https://www.haijin-boys.com/wiki/index.php?title=%E3%83%86%E3%82%AD%E3%82%B9%E3%83%88%E6%95%B4%E5%BD%A2&amp;diff=4375</id>
		<title>テキスト整形</title>
		<link rel="alternate" type="text/html" href="https://www.haijin-boys.com/wiki/index.php?title=%E3%83%86%E3%82%AD%E3%82%B9%E3%83%88%E6%95%B4%E5%BD%A2&amp;diff=4375"/>
		<updated>2019-06-01T14:32:25Z</updated>

		<summary type="html">&lt;p&gt;Masme: 仕様変更。コマンド追加10個・削除1個・変更17(+3)個・改名11個。&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;float:right&amp;quot;&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ks 氏作のマクロ「&amp;lt;b&amp;gt;[[テキスト変換]]&amp;lt;/b&amp;gt;」の改造版です。&lt;br /&gt;
&lt;br /&gt;
;主な改造点&lt;br /&gt;
* &amp;lt;b&amp;gt;[[#拡張コード：書式|拡張コードの書式]]&amp;lt;/b&amp;gt;を変更。&lt;br /&gt;
** 簡易書式をベースに単純化。view フラグは削除。&lt;br /&gt;
** 「関数タイプ」は「オプション」に変更。&lt;br /&gt;
* 処理の戻り値により選択範囲を置換するか、再選択するかを制御できるようにした。&lt;br /&gt;
* 行選択してから処理する際、範囲終端の改行は範囲に含めないようにした（正規表現 &amp;lt;code&amp;gt;^ $&amp;lt;/code&amp;gt; の使い勝手を考え）。&lt;br /&gt;
* メソッド &amp;lt;code&amp;gt;&amp;lt;i&amp;gt;String&amp;lt;/i&amp;gt;.replaceBatch&amp;lt;/code&amp;gt; を追加。&lt;br /&gt;
* 範囲選択時に対象範囲を選ぶメニューを廃止（毎回選ぶのが面倒なため）。&lt;br /&gt;
;注意点&lt;br /&gt;
* &amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;表示行での処理には対応していません。&amp;lt;/b&amp;gt;&lt;br /&gt;
* マクロの仕様上、&amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;矩形選択での処理には原則対応していません。&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=お知らせ (2019/06/01)=&lt;br /&gt;
&amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;仕様変更によりモードは廃止されました。&amp;lt;/b&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
詳しくは [[#更新履歴]] または [[利用者:Masme]] のページをご覧ください。&amp;lt;br&amp;gt;&lt;br /&gt;
旧仕様の利用者はお手数ですが基本コードおよび拡張コードの更新をお願いいたします。&lt;br /&gt;
&lt;br /&gt;
=スターターパック=&lt;br /&gt;
ダウンロード→ &amp;lt;b&amp;gt;[[メディア:テキスト整形.zip|テキスト整形.zip]]&amp;lt;/b&amp;gt; (2019/06/01)&lt;br /&gt;
&lt;br /&gt;
* 基本コードと拡張コード(★印の項目)をまとめて、すぐ使えるようにした入門用セットです。→ &amp;lt;b&amp;gt;[[:ファイル:テキスト整形.zip|収録コマンド一覧]]&amp;lt;/b&amp;gt;&lt;br /&gt;
* 拙作ですがアイコンファイル (テキスト整形.ico) を同梱してあります。&amp;lt;br&amp;gt;Mery 2.4.7 以降の場合、マクロ (テキスト整形.js) と同じフォルダに、&amp;lt;br&amp;gt;Mery 2.4.6 以前の場合、Mery.exe と同じフォルダに、&amp;lt;br&amp;gt;アイコンファイルを配置しておくとツールバーにアイコンが読み込まれます。&lt;br /&gt;
&lt;br /&gt;
=更新履歴=&lt;br /&gt;
&amp;lt;code style=&amp;quot;background:#fe0;&amp;quot;&amp;gt;//2019/06/01&amp;lt;/code&amp;gt; でページ内検索すると、その日付で更新されたコマンドを検索できます。&lt;br /&gt;
&amp;lt;div style=&amp;quot;height:40em; overflow:auto; border:1px dashed #999;&amp;quot;&amp;gt;&lt;br /&gt;
* 2019/06/01&lt;br /&gt;
** &amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;仕様変更 - 戻り値により選択範囲の置換・再選択を制御するようにした。&amp;lt;/b&amp;gt;&lt;br /&gt;
** &amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;仕様変更 - [[#コマンド|コマンドの書式]]を変更。&amp;lt;/b&amp;gt;&lt;br /&gt;
*** マクロ「[[テキスト変換]]」の第2引数を復活。モード F は第2引数利用に変更。&lt;br /&gt;
*** モードを廃止し、オプションに変更。モード RS はオプション L に変更。&lt;br /&gt;
*** 実行に範囲選択/クリップボードを要求するコマンドにオプション s/c を設定。&lt;br /&gt;
** &amp;lt;b&amp;gt;仕様変更 - メニュー作成処理を変更。&amp;lt;/b&amp;gt;falsy な要素があるとループ終了。&lt;br /&gt;
** &amp;lt;b&amp;gt;コード整理 - 第2引数追加に伴い、引数名を a → _ と $ に変更。&amp;lt;/b&amp;gt;&lt;br /&gt;
** &amp;lt;b&amp;gt;コード整理 - 不使用の引数は極力省略するようにした。&amp;lt;/b&amp;gt;&lt;br /&gt;
** 改名 - ★行頭／行末に貼り付け ¦ 行頭／行末から数文字削除&lt;br /&gt;
**: 「各行～」を除去。&lt;br /&gt;
** 改名 - ★行頭／行末に挿入&lt;br /&gt;
**: 「各行～」を除去。「文字列付加」→「挿入」に変更。&lt;br /&gt;
** 改名 - 各行先頭／末尾に挿入 ¦ 行頭に連番挿入 ¦ 行末に&amp;amp;lt;br&amp;amp;gt;を挿入 ¦ ★行頭 // を挿入/削除&lt;br /&gt;
**: 「（文字列）付加」→「挿入」に変更。&lt;br /&gt;
** 変更 - 複製貼り付け ¦ ★行頭／行末に挿入 ¦ 各行先頭／末尾に挿入 ¦ ★入力文字列を含む／含まない行を削除 ¦ 正規表現に一致する／しない行を削除 ¦ 行頭／行末から数文字削除&lt;br /&gt;
**: 入力判定を中止条件 → 実行条件に変更。&lt;br /&gt;
**: 戻り値の仕様を利用し、中止時は Quit(); → 戻り値なし (undefined) に変更。&lt;br /&gt;
** 修正 - 複製貼り付け ¦ 行頭／行末から数文字削除&lt;br /&gt;
**: キャンセルまたは数字以外を入力した場合、正常に中止できていないのを修正（NaN&amp;lt;1 は false）。&lt;br /&gt;
** 変更 - ★数値参照を文字に変換&lt;br /&gt;
**: 正規表現を &amp;lt;code&amp;gt;/&amp;amp;#([0-9]{1,7});|&amp;amp;#[Xx]([0-9A-Fa-f]{1,6});/g&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;/&amp;amp;#(?:([0-9]{1,7})|x([0-9a-f]{1,6}));/gi&amp;lt;/code&amp;gt; に短縮。&lt;br /&gt;
** 変更 - 挿入 Confirm(|)&lt;br /&gt;
**: 戻り値の仕様を利用したものに変更。&lt;br /&gt;
** 変更 - Base64エンコード／デコード&lt;br /&gt;
**: 引数名を txt → _ に統一。変数名を変更。&lt;br /&gt;
** 追加 - ★このマクロを編集 ¦ 連番を出力 ¦ 文字数カウント(空白は除く) ¦ ステータスバーの表示をコピー ¦ 行を文字数順並べ ¦ 数行毎に／数行一組で逆順並べ ¦ 空行毎に／空行一組で逆順並べ ¦ 指定見出しで逆順並べ&lt;br /&gt;
** 変更 - 総字行数カウント&lt;br /&gt;
**: GetLines() → GetLines(meGetLineView) に変更（引数を明示）。&lt;br /&gt;
**: 符号点数＆論理行数版を削除。&lt;br /&gt;
** 変更 - 拡張コード テンプレート&lt;br /&gt;
**: 仕様変更に伴う改訂。&lt;br /&gt;
**: サブメニューは、挿入後にメニュー名を選択するようにした。&lt;br /&gt;
* 2019/05/01&lt;br /&gt;
** 削除 - 大文字／小文字に変換 ¦ 半角／全角に変換&lt;br /&gt;
**: Mery 側のメソッドを使う一例として掲載していたが、結構かと判断。&lt;br /&gt;
** 削除 - 行を昇順／降順並べ(UTF-16)&lt;br /&gt;
** 改名 - \x{hex} エンコード／デコード&lt;br /&gt;
**: コマンド名のエスケープミスを修正。&lt;br /&gt;
** 改名 - 拡張コード テンプレート&lt;br /&gt;
**: 「コマンド～」→「拡張コード～」に変更。&lt;br /&gt;
* 2018/01/15&lt;br /&gt;
** 削除 - ☆インデント(半角空白2個)&lt;br /&gt;
** スターター追加 - ★行を昇順／降順並べ(Unicode) ¦ ★行を逆順並べ&lt;br /&gt;
** 追加 - CJK互換漢字を検索&lt;br /&gt;
** 修正 - Base64デコード&lt;br /&gt;
**: 最大50字ずつ処理する箇所で、異常なデータ 0xF8～FF をスルーしていたのを改修。&lt;br /&gt;
** 修正 - 挿入 Confirm(|)&lt;br /&gt;
**: 折り返しが発生した場合、カーソル位置がズレる不具合を修正（カーソル移動を CharLeft(false,移動量) → SetActivePos(GetActivePos()-移動量) に変更）。&lt;br /&gt;
** 変更 - ★重複行を単一化 ¦ 重複する／しない行を抽出&lt;br /&gt;
**: &amp;lt;code&amp;gt;for(var i=0,n=a.length;i&amp;lt;n;i++)&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;for(var i=0;i&amp;lt;a.length;i++)&amp;lt;/code&amp;gt; に単純化。&lt;br /&gt;
* 2017/06/25&lt;br /&gt;
** &amp;lt;b&amp;gt;仕様変更 - アイコンファイルに24x24・32x32・48x48の画像を追加。&amp;lt;/b&amp;gt;&lt;br /&gt;
** &amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;仕様変更 - &amp;lt;samp&amp;gt;replaceBatch&amp;lt;/samp&amp;gt; メソッドで配列先頭/末尾のコンマを許容するようにした。&amp;lt;/b&amp;gt;&lt;br /&gt;
**: 例＞ &amp;lt;code&amp;gt;&amp;lt;i&amp;gt;String&amp;lt;/i&amp;gt;.replaceBatch([ &amp;lt;b style=&amp;quot;background:#fcc;&amp;quot;&amp;gt;,&amp;lt;/b&amp;gt;[省略],[省略],[省略]&amp;lt;b style=&amp;quot;background:#fcc;&amp;quot;&amp;gt;,&amp;lt;/b&amp;gt; ])&amp;lt;/code&amp;gt;&lt;br /&gt;
** コード整理 - 基本コードを改訂。&lt;br /&gt;
** 追加 - 行を昇順／降順並べ(Unicode) ¦ ★！？を半角/全角に整形 ¦ 空白行の空白を除去 ¦ 行頭／行末から数文字削除 ¦ 重複する／しない行を抽出 ¦ 表外漢字→代替&lt;br /&gt;
** 改名 - 行を昇順／降順並べ(UTF-16) ¦ 行を逆順並べ ¦ 文字を逆順並べ&lt;br /&gt;
**: 「～の並べ替え(○順)」→「～を○順並べ」に変更。&lt;br /&gt;
**: 従来の「行を昇順／降順並べ(Unicode)」は (UTF-16) に訂正。&lt;br /&gt;
** 改名 - ★重複行を単一化 ¦ ★連続する重複行を単一化&lt;br /&gt;
**: 「～を削除」→「～を単一化」に変更。&lt;br /&gt;
** 修正 - ★重複行を単一化&lt;br /&gt;
**: 下記の7行を削除してしまう不具合を修正（重複の判定は Object.prototype.hasOwnProperty.call() で行うようにした）。&lt;br /&gt;
**: 「constructor」「hasOwnProperty」「isPrototypeOf」「propertyIsEnumerable」「toLocaleString」「toString」「valueOf」&lt;br /&gt;
** 変更 - ★全角ダッシュ(――)に整形&lt;br /&gt;
**: 罫線(横) ── を変換対象から除外。&lt;br /&gt;
** 変更 - ★数値参照を文字に変換 ¦ ★16→10進数 ¦ &amp;amp;#xHEX; デコード&lt;br /&gt;
**: 0Xff, &amp;amp;amp;#Xff; など X が大文字の場合に対応。&lt;br /&gt;
** 変更 - 文字を逆順並べ ¦ 文字をシャッフル ¦ \uHHHH, \u4H \U8H, \x{hex}, &amp;amp;#dec;, &amp;amp;#xHEX; エンコード&lt;br /&gt;
**: 正規表現を . → [^\n] に統一。&lt;br /&gt;
** 変更 - 文字を逆順並べ ¦ 文字をシャッフル&lt;br /&gt;
**: UAX #29 に一部対応し、\p{Zl}, {Zp}, {Cc}, U+00AD, FEFF は結合不可にした。&lt;br /&gt;
** 変更 - 選択文字列を検索&lt;br /&gt;
**: カーソル位置・スクロール位置を移動しないようにした。&lt;br /&gt;
** 変更 - 選択文字列を検索 ¦ 選択文字列をすべて削除 ¦ &amp;lt;samp&amp;gt;replaceBatch&amp;lt;/samp&amp;gt; メソッド&lt;br /&gt;
**: 特殊文字のエスケープ処理を &amp;lt;code&amp;gt;/([$()*+.?[\\\]^{|}])/g,&amp;quot;\\$1&amp;quot;&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;/[$()*+.?\[\\\]^{|}]/g,&amp;quot;\\$&amp;amp;&amp;quot;&amp;lt;/code&amp;gt; に統一。&lt;br /&gt;
** 変更 - 拡張コード テンプレート（分割）&lt;br /&gt;
**: 配列先頭のコンマの仕様に対応（末尾は実質対応済）。&lt;br /&gt;
* 2017/05/28&lt;br /&gt;
** 追加 - 結合文字列を検索&lt;br /&gt;
** 修正 - CP932依存文字を検索&lt;br /&gt;
**: Wiki が &amp;amp;#xFA19; → 神 などの正規化(NFC)を行う影響で、漢字22字が意図どおりに検索されないミスを修正。&lt;br /&gt;
** 変更 - ASCII文字, 半角カナ, 全角英数, CJK漢字, ひらがな, カタカナを単語検索&lt;br /&gt;
**: 変数を使用せず、正規表現 \g&amp;lt;名前&amp;gt; を使用する形式に統一。&lt;br /&gt;
* 2015/12/26&lt;br /&gt;
** &amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;仕様変更 - アイコンの指定先を &amp;quot;My Macros\テキスト整形.ico&amp;quot; → &amp;quot;テキスト整形.ico&amp;quot; に変更。&amp;lt;/b&amp;gt;&lt;br /&gt;
** 変更 - マクロフォルダを開く&lt;br /&gt;
**: 「My Macros フォルダを開く」→「マクロフォルダを開く」に変更。&lt;br /&gt;
**: 「テキスト整形」マクロがあるフォルダを開くようにした（Mery 2.4.7 での Macros フォルダ改名に対処）。&lt;br /&gt;
* 2015/09/30&lt;br /&gt;
** 追加 - CP932依存文字を検索 ¦ サロゲートペアを検索 ¦ 行頭に連番挿入 (#) ¦ 行頭に連番挿入 (#/Σ) ¦ 行頭に連番挿入 (0#) ¦ \u4H \U8H エンコード／デコード&lt;br /&gt;
** 修正 - ひらがなを単語検索 ¦ カタカナを単語検索&lt;br /&gt;
**: 選択範囲が記号の前後で途切れる問題に対処（記号2連続まで対応）。&lt;br /&gt;
** 変更 - 青空文庫 ルビを除去&lt;br /&gt;
**: 正規表現を [^《]+ → [^《\n]+ に変更し、改行を跨がないようにした。&lt;br /&gt;
** 変更 - ★HTMLタグを除去&lt;br /&gt;
**: 正規表現を .*? → [^&amp;lt;i&amp;gt;文字&amp;lt;/i&amp;gt;]* に変更し、改行を跨ぐようにした。&lt;br /&gt;
** 変更 - 文字を逆順並べ ¦ 文字をシャッフル&lt;br /&gt;
**: 処理方法を split() → match() に変更。対応文字に結合文字 (U+1AB0～FF, 1DC0～FF, 20D0～FF, FE20～F)、制御文字 (U+200C～D)、絵文字の国旗 (U+1F1E6～FF)、肌色指定 (U+1F3FB～F) を追加。&lt;br /&gt;
** 改名 - \uHHHH, \x{hex}, &amp;amp;#dec;, &amp;amp;#xHEX; エンコード／デコード&lt;br /&gt;
**: 「Unicode 文字 → ○○」→「○○ エンコード」に変更。&lt;br /&gt;
**: 「Unicode ○○ → 文字」→「○○ デコード」に変更。&lt;br /&gt;
* 2015/03/26&lt;br /&gt;
** 変更 - CJK漢字を単語検索&lt;br /&gt;
**: 異体字セレクタを考慮するようにした（ただし組合せが適正かは考慮しえない）。&lt;br /&gt;
** 変更 - 複製貼り付け&lt;br /&gt;
**: 処理中止の条件を 非数字(NaN) or 1 未満 → クリップボードがカラ or 1 未満 に変更。&lt;br /&gt;
* 2015/03/14&lt;br /&gt;
** &amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;仕様変更 - モード R/RS 実行後、処理した範囲を選択し直すようにした。&amp;lt;/b&amp;gt;&lt;br /&gt;
** &amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;仕様変更 - モード RM を廃止。&amp;lt;/b&amp;gt;既存コマンドはモード RS に移行。&lt;br /&gt;
**: ★行頭 // を挿入/削除 ¦ ★インデント(半角空白2個) ¦ ★空白行を削除 ¦ ★行頭／行末に貼り付け ¦ ★行頭／行末に挿入 ¦ ★入力文字列を含む／含まない行を削除 ¦ 正規表現に一致する／しない行を削除&lt;br /&gt;
** &amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;仕様変更 - モード CR を廃止し、&amp;lt;code&amp;gt;&amp;lt;i&amp;gt;String&amp;lt;/i&amp;gt;.replaceBatch&amp;lt;/code&amp;gt; メソッドを追加。&amp;lt;/b&amp;gt;既存コマンドは &amp;lt;samp&amp;gt;replaceBatch&amp;lt;/samp&amp;gt; メソッド利用に移行。&lt;br /&gt;
**: ★連続する！？を整形 ¦ ★実体参照 &amp;amp;&amp;quot;&amp;lt;&amp;gt; → &amp;amp;xxx; ¦ ★実体参照 &amp;amp;xxx; → ␣&amp;gt;&amp;lt;&amp;quot;&amp;amp; ¦ ★半角カナ→全角 ¦ ★全角カナ→半角 ¦ 標準変換&lt;br /&gt;
** &amp;lt;b&amp;gt;コード整理 - コマンド各々に更新年月日を付けるようにした。&amp;lt;/b&amp;gt;&lt;br /&gt;
** スターター除外 - ☆検索強調をすべて解除&lt;br /&gt;
** 削除 - ☆全角英数を検索 ¦ ☆半角カナを検索 ¦ ☆CJK漢字を検索&lt;br /&gt;
** 追加 - ASCII文字を単語検索 ¦ 半角カナを単語検索 ¦ 全角英数を単語検索 ¦ CJK漢字を単語検索 ¦ ひらがなを単語検索 ¦ カタカナを単語検索 ¦ 検索結果カウント ¦ 総字行数カウント&lt;br /&gt;
** 変更 - 編集中のファイルのパスをコピー ¦ 編集中の全ファイルのパスをコピー&lt;br /&gt;
**: パスが存在しない場合の名前を、無題 → &amp;lt;無題&amp;gt; に変更。&lt;br /&gt;
** 変更 - ★数値参照を文字に変換 ¦ \x{hex}, &amp;amp;#dec;, &amp;amp;#xHEX; デコード&lt;br /&gt;
**: サロゲートペアの計算を + → | に変更し、不要な括弧を除去（演算子の優先順が + - → &amp;gt;&amp;gt; → &amp;amp; → | である事による）。&lt;br /&gt;
** 変更 - Base64エンコード／デコード&lt;br /&gt;
**: 不要な括弧を除去（同上、演算子の優先順による）。&lt;br /&gt;
** 変更 - 拡張コード テンプレート&lt;br /&gt;
**: 仕様変更に伴う改訂。&lt;br /&gt;
**: コマンドおよびセパレーターは、表示行頭に挿入するようにした。&lt;br /&gt;
* 2015/02/14&lt;br /&gt;
** &amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;仕様修正 - モード RS/RM で、矩形選択（始点or終点が左下かつ論理行頭）時、下端の行が範囲から漏れる不具合を修正。&amp;lt;/b&amp;gt;&lt;br /&gt;
** &amp;lt;b&amp;gt;コード整理 - 文字入力など追加操作を求めるコマンドは、名称末尾に目印 ... を付けた。&amp;lt;/b&amp;gt;&lt;br /&gt;
**: 複製貼り付け ¦ ★行頭／行末に挿入 ¦ 各行先頭／末尾に挿入 ¦ ★入力文字列を含む／含まない行を削除 ¦ 正規表現に一致する／しない行を削除&lt;br /&gt;
** 削除 - 丸数字 ⑳ → (20) ¦ 丸数字 (20) → ⑳&lt;br /&gt;
** 追加 - 行末に&amp;amp;lt;br&amp;amp;gt;を挿入 ¦ &amp;amp;lt;br&amp;amp;gt;を改行に変換 ¦ ★行頭の／行末の空白を除去 ¦ 空白行を減量 ¦ 重複行を単一化(空白行は除く) ¦ ★連続する重複行を単一化 ¦ 文字のシャッフル&lt;br /&gt;
** 修正 - 各行先頭／末尾に挿入&lt;br /&gt;
**: 正規表現が意味的に不適切だったのを修正。&lt;br /&gt;
** 変更 - 空白行を圧縮&lt;br /&gt;
**: モード R → RS に。空白行内の空白を除去してから改行を処理するように変更。&lt;br /&gt;
** 変更 - 文字を逆順並べ&lt;br /&gt;
**: サロゲートペアの対処方法を変更。結合文字の一部 (U+0300～6F, 3099～A) および異体字セレクタに対応した。&lt;br /&gt;
** 変更 - 2進接頭辞換算&lt;br /&gt;
**: 正規表現を &amp;lt;code&amp;gt;[0-9]+(,?[0-9]{3})+(\.[0-9]+)?&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;[0-9]+(,?[0-9]{3})+&amp;lt;/code&amp;gt; に変更（小数は非対応とした）。&lt;br /&gt;
** 変更 - Base64デコード&lt;br /&gt;
**: JScript 5.x の decodeURIComponent() は字数が多すぎると能率が悪くなるようなので、最大50字ずつ処理するようにした（高速化）。&lt;br /&gt;
* 2014/10/12&lt;br /&gt;
** スターター除外 - ☆正規表現に一致する／しない行を削除&lt;br /&gt;
**: Mery (鬼車) と JScript (ECMAScript) では正規表現の仕様が異なり、意図しない結果を招く怖れがあるため。&lt;br /&gt;
** スターター追加 - ★数値参照 &amp;amp;#dec; に変換 ¦ ★数値参照 &amp;amp;#xHEX; に変換&lt;br /&gt;
** 追加 - ★数値参照を文字に変換 ¦ 行を逆順並べ ¦ 行をシャッフル ¦ &amp;amp;#xHEX; エンコード／デコード&lt;br /&gt;
** 修正 - 選択文字列を検索&lt;br /&gt;
**: 引数不一致により動作しないミスを修正。&lt;br /&gt;
** 修正 - 編集中の全ファイルのパスをコピー ¦ ★検索強調をすべて解除&lt;br /&gt;
**: 対象範囲を 同ウィンドウ内の全文書 → 全ウィンドウの全文書 に改修。&lt;br /&gt;
** 変更 - 複製貼り付け&lt;br /&gt;
**: 処理方法を for → while に変更。処理中止の条件を 未入力 → 非数字(NaN) or 1 未満に変更。&lt;br /&gt;
** 変更 - \x{hex}, &amp;amp;#dec; エンコード&lt;br /&gt;
**: 処理方法を 配列連結 join(&amp;quot;&amp;quot;) → 文字列連結 += に変更。&lt;br /&gt;
** 変更 - \x{hex}, &amp;amp;#dec; デコード&lt;br /&gt;
**: 下位サロゲートの計算を (n-0x10000&amp;amp;0x3FF) → (n&amp;amp;0x3FF) に短縮。&lt;br /&gt;
* 2014/07/27&lt;br /&gt;
** 修正 - Base64デコード&lt;br /&gt;
**: 終端の余分な [NUL] を除去する処理が手抜きだったのを修正。&lt;br /&gt;
* 2014/05/31&lt;br /&gt;
** 削除 - Base64エンコード(Unicode)&lt;br /&gt;
**: Mery の「Base64デコード」機能と同じ方式の Base64エンコード(UTF-8) に差し替え。&lt;br /&gt;
** 追加 - Base64エンコード／デコード(UTF-8)&lt;br /&gt;
** 変更 - ★数値を3桁,区切りに&lt;br /&gt;
**: 数字列を抽出して処理するように変更（高速化）。&lt;br /&gt;
** 変更 - ★数値を3桁,区切りに ¦ 丸数字 (20) → ⑳ ¦ ★10→16進数 ¦ 2進接頭辞換算&lt;br /&gt;
**: 正規表現を \d → [0-9] に統一。&lt;br /&gt;
** 修正 - 拡張コード テンプレート（モード CR 交換/分割）&lt;br /&gt;
**: エスケープ文字 \ をより正確に判定できる正規表現に改修。&lt;br /&gt;
* 2014/05/24&lt;br /&gt;
** 修正 - 各行末尾に挿入&lt;br /&gt;
**: 選択範囲の次行先頭にも挿入してしまう問題に対処。&lt;br /&gt;
** 変更 - 複製貼り付け&lt;br /&gt;
**: クリップボードの内容を変数に格納しておくように変更（高速化）。&lt;br /&gt;
** 変更 - 複製貼り付け ¦ 各行先頭／末尾に挿入&lt;br /&gt;
**: Prompt() 関連の処理を単純化（モード RM 以外では冗長だった）。&lt;br /&gt;
* 2014/05/22&lt;br /&gt;
** 追加 - 2進接頭辞換算&lt;br /&gt;
** 変更 - \x{hex}, &amp;amp;#dec; デコード&lt;br /&gt;
**: サロゲートペアの String.fromCharCode() の引数を複数指定に改修、ビット演算に一部変更。&lt;br /&gt;
* 2014/05/16&lt;br /&gt;
** 変更 - \x{hex}, &amp;amp;#dec; エンコード&lt;br /&gt;
**: 処理方法を replace(for ループ) に統一。&lt;br /&gt;
* 2014/04/27&lt;br /&gt;
** 追加 - &amp;amp;#dec; エンコード／デコード&lt;br /&gt;
* 2014/03/14&lt;br /&gt;
** 追加 - 青空文庫 ルビを除去 ¦ 青空文庫 注記を除去&lt;br /&gt;
* 2014/03/08&lt;br /&gt;
** 追加 - 選択文字列を検索 ¦ 選択文字列をすべて削除&lt;br /&gt;
** 変更 - ★全角英数を検索 ¦ ★半角カナを検索 ¦ ★CJK漢字を検索&lt;br /&gt;
**: 検索方向を 前 → 次 に変更。念の為「大文字と小文字を区別」フラグを追加。&lt;br /&gt;
* 2014/03/01&lt;br /&gt;
** 追加 - ★連続する！？を整形 ¦ ★全角ダッシュ(――)に整形&lt;br /&gt;
** 変更 - ★括弧前の句読点を除去&lt;br /&gt;
**: 全角コンマ ， /全角ピリオド ． を除去対象に追加。&lt;br /&gt;
** 変更 - ★三点リーダー(……)に整形&lt;br /&gt;
**: 全角コンマ ， /全角ピリオド ． /半角中黒 ･ /三点リーダー … /二点リーダー ‥ を変換対象に追加。&lt;br /&gt;
** 変更 - マクロフォルダを開く&lt;br /&gt;
**: 処理方法を WScript.Shell.Run(&amp;quot;explorer&amp;quot;) → Shell.Application.Explore() に変更。&lt;br /&gt;
* 2014/02/22&lt;br /&gt;
** 追加 - 丸数字 ⑳ → (20) ¦ 丸数字 (20) → ⑳&lt;br /&gt;
** 変更 - 文字を逆順並べ ¦ \uHHHH, \x{hex} エンコード&lt;br /&gt;
**: 処理方法を for ループ → replace() に変更（字数削減）。&lt;br /&gt;
** 変更 - 拡張コード テンプレート&lt;br /&gt;
**: モード CR 作成補助コマンドを追加。モード CR テンプレートを変更。&lt;br /&gt;
* 2014/02/17&lt;br /&gt;
** 修正 - ★行頭／行末に貼り付け&lt;br /&gt;
**: クリップボード終端の改行文字を除去する正規表現を修正。\r\n|\r|\n$ → (\r\n|\r|\n)$&lt;br /&gt;
* 2014/02/16&lt;br /&gt;
** &amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;仕様修正 - モード CR で、正規表現の特殊文字があると誤動作する不具合を修正。&amp;lt;/b&amp;gt;&lt;br /&gt;
** &amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;仕様変更 - モード CR で、正規表現 (JScript) による検索置換に対応。&amp;lt;/b&amp;gt;&lt;br /&gt;
** コード整理 - コメントアウトしていた基本コードを削除。&lt;br /&gt;
** コード整理 - 下記の6カテゴリを3カテゴリに統合。コマンドの名称や配置を見直した。&lt;br /&gt;
**: (空白の追加 + 各行に追加) (空白の削除 + 行の削除) (数値の変換 + 文字種変換)&lt;br /&gt;
** スターター除外 - ☆標準変換&lt;br /&gt;
** 追加 - 複製貼り付け ¦ 文字を逆順並べ ¦ ★半角カナ→全角 ¦ ★全角カナ→半角&lt;br /&gt;
** 変更 - ★行頭／行末に貼り付け&lt;br /&gt;
**: クリップボード終端の改行文字は除去するようにした（行切り取り・行コピーとの相性を考え）。&lt;br /&gt;
** 変更 - 拡張コード テンプレート&lt;br /&gt;
**: モード CR テンプレートを刷新。&lt;br /&gt;
* 2014/02/10&lt;br /&gt;
** スターター除外 - ☆空白行を圧縮&lt;br /&gt;
** 追加 - ★空白行を削除 ¦ \uHHHH デコード ¦ \x{hex} エンコード／デコード&lt;br /&gt;
** 変更 - 挿入 Confirm(|)&lt;br /&gt;
**: 接尾辞の長さ(s.length)でカーソル移動量を決めるようにした。&lt;br /&gt;
* 2014/02/01&lt;br /&gt;
** 追加 - \uHHHH エンコード&lt;br /&gt;
** 変更 - ★全角かな→カナ ¦ ★全角カナ→かな&lt;br /&gt;
**: 踊り字（繰り返し記号） ゝゞヽヾ を変換対象に追加。&lt;br /&gt;
* 2014/01/24&lt;br /&gt;
** 追加 - ★半角/全角の間を空ける ¦ ★半角英数/全角の間を空ける&lt;br /&gt;
** 変更 - ★全角カナ→かな&lt;br /&gt;
**: ヴヵヶ は対象外とした（Shift_JIS では保存できない文字のため）。&lt;br /&gt;
* 2014/01/12&lt;br /&gt;
** &amp;lt;b&amp;gt;仕様変更 - スターターパックにアイコンファイルを同梱。&amp;lt;/b&amp;gt;&lt;br /&gt;
** 修正 - 編集中のファイルのパスをコピー ¦ 編集中の全ファイルのパスをコピー&lt;br /&gt;
**: 改行を LF → CR+LF に変更し、メモ帳でも正しく改行されるようにした。&lt;br /&gt;
** 修正 - ★数値を3桁,区切りに&lt;br /&gt;
**: 小数点以下（ピリオド以降）は桁区切りしないようにした。&lt;br /&gt;
* 2014/01/08&lt;br /&gt;
** &amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;仕様変更 - コマンド実行時、スクロール位置を記憶・復元しないように（コメントアウト）した。&amp;lt;/b&amp;gt;&lt;br /&gt;
**: 検索系コマンドと相性が悪く、Mery の検索機能と挙動が合っていないため。&lt;br /&gt;
** スターター追加 - ★CJK漢字を検索 ¦ ★検索強調をすべて解除&lt;br /&gt;
** 追加 - ★全角英数を検索 ¦ ★半角カナを検索&lt;br /&gt;
** 修正 - ★16→10進数&lt;br /&gt;
**: 16進数に使用しない英字 G～Z を変換対象に含めていたミスを修正。&lt;br /&gt;
* 2013/12/30&lt;br /&gt;
** 追加 - 挿入 Confirm(|) ¦ ★数値を3桁,区切りに ¦ ★10→16進数 ¦ ★16→10進数&lt;br /&gt;
** 修正 - My Macros フォルダを開く (現「マクロフォルダを開く」)&lt;br /&gt;
**: 「テキスト整形」マクロのあるフォルダではなく Mery.exe 直下の My Macros フォルダを開くようにした。&lt;br /&gt;
* 2013/09/15&lt;br /&gt;
** 初版公開。&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=基本コード=&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot; style=&amp;quot;height:35em; overflow:auto;&amp;quot;&amp;gt;&lt;br /&gt;
//■テキスト整形&lt;br /&gt;
//　2013/09/15-2019/06/01&lt;br /&gt;
&lt;br /&gt;
//■拡張コード：リスト&lt;br /&gt;
var f = [];&lt;br /&gt;
// ----------------- ↓ここより下に拡張コードを追加&lt;br /&gt;
&lt;br /&gt;
// ----------------- ↑ここより上に拡張コードを追加&lt;br /&gt;
/*■拡張コード：書式&lt;br /&gt;
//▼コマンド&lt;br /&gt;
f.push([&amp;quot;コマンド名&amp;quot;,&amp;quot;オプション&amp;quot;,function(引数){ 処理 }]);&lt;br /&gt;
//▽オプション&lt;br /&gt;
  s : 実行に範囲選択を要求 (require selection)&lt;br /&gt;
  c : 実行にクリップボードを要求 (require clipboard)&lt;br /&gt;
  L : 行選択してから処理 (select Line)&lt;br /&gt;
  O : 非選択時はすべて選択してから処理 (select OR all) ※実験的&lt;br /&gt;
//▽引数(arguments)&lt;br /&gt;
  第1引数 = Document.Selection.Text&lt;br /&gt;
  第2引数 = Document.Selection&lt;br /&gt;
//▽処理の戻り値(return value)&lt;br /&gt;
  String/Array以外 : 選択範囲に対し何もしない&lt;br /&gt;
  &amp;quot;abcd&amp;quot;           : abcd に置換後、abcd を選択&lt;br /&gt;
  [&amp;quot;ab&amp;quot;,&amp;quot;cd&amp;quot;]      : abcd に置換後、ab と cd の間に移動&lt;br /&gt;
  [&amp;quot;ab&amp;quot;,&amp;quot;cd&amp;quot;,&amp;quot;&amp;quot;]   : abcd に置換後、cd を選択&lt;br /&gt;
//▼サブメニュー&lt;br /&gt;
f.push([&amp;quot;メニュー名&amp;quot;,function(f){ コマンドなど }]);&lt;br /&gt;
//▼セパレーター&lt;br /&gt;
f.push([&amp;quot;--------&amp;quot;]);&lt;br /&gt;
// ----------------- */&lt;br /&gt;
&lt;br /&gt;
//■メソッド：連続置換&lt;br /&gt;
//&amp;quot;string&amp;quot;.replaceBatch([ [検索1,置換1],[検索2,置換2],… ]);&lt;br /&gt;
String.prototype.replaceBatch = function(a){ //▲引数の型はチェックしてない&lt;br /&gt;
  var _this=this, i=0, n=a.length;&lt;br /&gt;
  if (!a[0]) i++;&lt;br /&gt;
  if (!a[n-1]) n--;&lt;br /&gt;
  for (; i&amp;lt;n; i++) {&lt;br /&gt;
    if (typeof a[i][0]===&amp;quot;string&amp;quot;) //◆特殊文字をエスケープし、&amp;quot;g&amp;quot;フラグを付加&lt;br /&gt;
      a[i][0] = new RegExp(a[i][0].replace(/[$()*+.?\[\\\]^{|}]/g,&amp;quot;\\$&amp;amp;&amp;quot;),&amp;quot;g&amp;quot;);&lt;br /&gt;
    _this = _this.replace(a[i][0],a[i][1]);&lt;br /&gt;
  }&lt;br /&gt;
  return _this;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
(function(){&lt;br /&gt;
//■実行コード&lt;br /&gt;
var Sel = Document.Selection;&lt;br /&gt;
var isSelEmpty = Sel.IsEmpty;&lt;br /&gt;
var isClipEmpty = !ClipboardData.GetData();&lt;br /&gt;
var cmd = [], cid = 0; //コマンド, ID&lt;br /&gt;
//リストからメニュー作成&lt;br /&gt;
var Menu = CreatePopupMenu();&lt;br /&gt;
(function ListToMenu(List, Menu) {&lt;br /&gt;
  for (var i=0,_L; _L=List[i]; i++) {&lt;br /&gt;
    if (typeOf(_L[0]) !== &amp;quot;String&amp;quot;) continue;&lt;br /&gt;
    switch (_L.length) {&lt;br /&gt;
    case 3: //◆コマンド      _L = [&amp;quot;コマンド名&amp;quot;,&amp;quot;オプション&amp;quot;,function]&lt;br /&gt;
      if (typeOf(_L[1]) !== &amp;quot;String&amp;quot;) break;&lt;br /&gt;
      if (typeOf(_L[2]) !== &amp;quot;Function&amp;quot;) break;&lt;br /&gt;
      ++cid;&lt;br /&gt;
      var isGray = (/\bs\b/.test(_L[1]) &amp;amp;&amp;amp; isSelEmpty)&lt;br /&gt;
                || (/\bc\b/.test(_L[1]) &amp;amp;&amp;amp; isClipEmpty) ;&lt;br /&gt;
      Menu.Add(_L[0]+&amp;quot;\t&amp;quot;+_L[1], cid, isGray? meMenuGrayed: 0);&lt;br /&gt;
      if (isGray) break;&lt;br /&gt;
      cmd[cid] = { func: _L[2]&lt;br /&gt;
      , selLine:  /\bL\b/.test(_L[1])&lt;br /&gt;
      , selOrAll: /\bO\b/.test(_L[1])&lt;br /&gt;
      };&lt;br /&gt;
    break;&lt;br /&gt;
    case 2: //◆サブメニュー  _L = [&amp;quot;メニュー名&amp;quot;,function]&lt;br /&gt;
      if (typeOf(_L[1]) !== &amp;quot;Function&amp;quot;) break;&lt;br /&gt;
      var sub_f = [], sub_Menu = CreatePopupMenu();&lt;br /&gt;
      _L[1](sub_f);&lt;br /&gt;
      Menu.AddPopup(_L[0], sub_Menu);&lt;br /&gt;
      ListToMenu(sub_f, sub_Menu); //再帰：サブメニュー作成&lt;br /&gt;
    break;&lt;br /&gt;
    case 1: //◆セパレーター  _L = [&amp;quot;--------&amp;quot;]&lt;br /&gt;
      if (!/^-+$/.test(_L[0])) break;&lt;br /&gt;
      Menu.Add(&amp;quot;&amp;quot;, 0, meMenuSeparator);&lt;br /&gt;
    break;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}(f, Menu));&lt;br /&gt;
//ポップアップメニューを表示して処理&lt;br /&gt;
main: if (cid = Menu.Track(mePosMouse)) { //※キャンセル(Esc)時は 0 で終了&lt;br /&gt;
  var invertPos = Sel.GetActivePos() &amp;lt; Sel.GetAnchorPos();&lt;br /&gt;
  if (cmd[cid].selLine) selectLine(Sel);&lt;br /&gt;
  if (cmd[cid].selOrAll &amp;amp;&amp;amp; isSelEmpty) Sel.SelectAll();&lt;br /&gt;
  var res = cmd[cid].func(Sel.Text, Sel);&lt;br /&gt;
  if (typeOf(res) === &amp;quot;String&amp;quot;) res = [&amp;quot;&amp;quot;,res,&amp;quot;&amp;quot;];&lt;br /&gt;
  if (typeOf(res) !== &amp;quot;Array&amp;quot;) break main;&lt;br /&gt;
  &lt;br /&gt;
  var head = res.shift(), tail = res.pop() || &amp;quot;&amp;quot;, body = res.join(&amp;quot;&amp;quot;);&lt;br /&gt;
  Sel.Text = head + body + tail;&lt;br /&gt;
  var acp = Sel.GetActivePos() - tail.replace(/\r\n/g,&amp;quot;\n&amp;quot;).length;&lt;br /&gt;
  var anp = acp                - body.replace(/\r\n/g,&amp;quot;\n&amp;quot;).length;&lt;br /&gt;
    //※クリップボードなどCR+LFが含まれる場合、1字と数えなければズレる&lt;br /&gt;
  Sel.SetActivePos(invertPos? anp: acp);&lt;br /&gt;
  Sel.SetAnchorPos(invertPos? acp: anp);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
//■型判別&lt;br /&gt;
function typeOf(obj) {&lt;br /&gt;
  return (obj===null)? &amp;quot;Null&amp;quot;: (obj==null)? &amp;quot;Undefined&amp;quot;:&lt;br /&gt;
    Object.prototype.toString.call(obj).slice(8,-1); //&amp;quot;[object Type]&amp;quot;.slice&lt;br /&gt;
};&lt;br /&gt;
//■論理行選択&lt;br /&gt;
function selectLine(Sel) {&lt;br /&gt;
  var ty = Sel.GetTopPointY(mePosLogical);&lt;br /&gt;
  var by = Sel.GetBottomPointY(mePosLogical);&lt;br /&gt;
  var bx = Sel.GetBottomPointX(mePosLogical);&lt;br /&gt;
  var nn =(Sel.Text.match(/\n/g)||[]).length;&lt;br /&gt;
  if (bx===1 &amp;amp;&amp;amp; nn&amp;lt;=by-ty &amp;amp;&amp;amp; nn) by--; //末尾改行対策&lt;br /&gt;
    //下端が論理行頭 &amp;amp;&amp;amp; 矩形選択でない &amp;amp;&amp;amp; 複数行&lt;br /&gt;
  Sel.SetActivePoint(mePosLogical, 1, by);&lt;br /&gt;
  Sel.EndOfLine(false, mePosLogical);&lt;br /&gt;
  Sel.SetAnchorPoint(mePosLogical, 1, ty);&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
}());&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=拡張コード=&lt;br /&gt;
★印の項目は、スターターパックに収録されているコマンドです。&lt;br /&gt;
&lt;br /&gt;
==小説/作文==&lt;br /&gt;
&lt;br /&gt;
;★地の文の行頭を字下げ&lt;br /&gt;
:開き括弧類 &amp;lt;code&amp;gt;‘ “ （ 〔 ［ ｛ 〈 《 「 『 【&amp;lt;/code&amp;gt; または 半角空白/全角空白/水平タブ/改行 &amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;以外&amp;lt;/b&amp;gt;の文字で始まる行を「地の文」とみなし、行頭に全角空白を挿入します。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;地の文の行頭を字下げ&amp;quot;,&amp;quot;L&amp;quot;,function(_){ //2015/02/14&lt;br /&gt;
  return _.replace(/^([^‘“（〔［｛〈《「『【 　\t\n])/gm,&amp;quot;　$1&amp;quot;) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;★括弧前の句読点を除去&lt;br /&gt;
:閉じ括弧類 &amp;lt;code&amp;gt;’ ” ） 〕 ］ ｝ 〉 》 」 』 】&amp;lt;/code&amp;gt; の直前に句読点 &amp;lt;code&amp;gt;、 。 ， ．&amp;lt;/code&amp;gt; がある場合、除去します。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;括弧前の句読点を除去&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2014/03/01&lt;br /&gt;
  return _.replace(/[、。，．](?=[’”）〕］｝〉》」』】])/g,&amp;quot;&amp;quot;) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;★！？を半角/全角に整形&lt;br /&gt;
:感嘆符・疑問符を、直前の文字が半角なら半角に、全角なら全角に整形します。&lt;br /&gt;
:直前の文字がない場合（範囲先頭か行頭）は何もしません。&lt;br /&gt;
:※&amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;半角文字&amp;lt;/b&amp;gt;＝ASCII文字＋半角カナ、&amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;全角文字&amp;lt;/b&amp;gt;＝それ以外の文字、を意味しています。&lt;br /&gt;
:例＞ &amp;lt;span style=&amp;quot;background:#bfdfff;&amp;quot;&amp;gt;Wha&amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;t&amp;lt;/b&amp;gt;！？／あ&amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;れ&amp;lt;/b&amp;gt;!?&amp;lt;/span&amp;gt; → What!?／あれ！？（※&amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;赤字&amp;lt;/b&amp;gt;が直前の文字）&lt;br /&gt;
&amp;lt;pre style=&amp;quot;word-wrap:break-word;&amp;quot;&amp;gt;&lt;br /&gt;
f.push([&amp;quot;！？を半角/全角に整形&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2017/06/25&lt;br /&gt;
  return _.replace(/[!?！？]+/g,function(s,i,c){c=c.charAt(i-1); return (!c||c===&amp;quot;\n&amp;quot;)? s: /[ -~｡-ﾟ]/.test(c)? s.replace(/！/g,&amp;quot;!&amp;quot;).replace(/？/g,&amp;quot;?&amp;quot;): s.replace(/\!/g,&amp;quot;！&amp;quot;).replace(/\?/g,&amp;quot;？&amp;quot;)}) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;★連続する！？を整形&lt;br /&gt;
:2文字以上連続する感嘆符・疑問符を半角2文字に整形します。&lt;br /&gt;
:例＞ &amp;lt;span style=&amp;quot;background:#bfdfff;&amp;quot;&amp;gt;！！／！！？／?!!!／?!!!?&amp;lt;/span&amp;gt; → !!／!?／?!／??&lt;br /&gt;
&amp;lt;pre style=&amp;quot;word-wrap:break-word;&amp;quot;&amp;gt;&lt;br /&gt;
f.push([&amp;quot;連続する！？を整形&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2015/03/14&lt;br /&gt;
  return _.replaceBatch([ [/[!！][!?！？]*[!！]/g,&amp;quot;!!&amp;quot;],[/[!！][!?！？]*[?？]/g,&amp;quot;!?&amp;quot;],[/[?？][!?！？]*[!！]/g,&amp;quot;?!&amp;quot;],[/[?？][!?！？]*[?？]/g,&amp;quot;??&amp;quot;] ]) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;★三点リーダー(……)に整形&lt;br /&gt;
:1～3文字以上連続する中黒・句点・読点などを、三点リーダー2文字 …… に整形します。&lt;br /&gt;
:例＞ &amp;lt;span style=&amp;quot;background:#bfdfff;&amp;quot;&amp;gt;そんな・・・・。&amp;lt;/span&amp;gt; → そんな……。&lt;br /&gt;
:※変換対象となるのは以下の8パターンです。&lt;br /&gt;
:{|class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
! 名称 !! 連続字数 !! 例 !! Shift_JIS !! Unicode&lt;br /&gt;
|-&lt;br /&gt;
| 全角読点 ||rowspan=&amp;quot;6&amp;quot;| 3字以上 || 、、、 || 0x8141 || U+3001&lt;br /&gt;
|-&lt;br /&gt;
| 全角句点 || 。。。 || 0x8142 || U+3002&lt;br /&gt;
|-&lt;br /&gt;
| 全角コンマ || ，，， || 0x8143 || U+FF0C&lt;br /&gt;
|-&lt;br /&gt;
| 全角ピリオド || ．．． || 0x8144 || U+FF0E&lt;br /&gt;
|-&lt;br /&gt;
| 全角中黒 || ・・・ || 0x8145 || U+30FB&lt;br /&gt;
|-&lt;br /&gt;
| 半角中黒 || ･･･ || 0xA5 || U+FF65&lt;br /&gt;
|-&lt;br /&gt;
| 三点リーダー ||rowspan=&amp;quot;2&amp;quot;| 1字以上 || … || 0x8163 || U+2026&lt;br /&gt;
|-&lt;br /&gt;
| 二点リーダー || ‥ || 0x8164 || U+2025&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;三点リーダー(……)に整形&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2014/03/01&lt;br /&gt;
  return _.replace(/、{3,}|。{3,}|，{3,}|．{3,}|・{3,}|･{3,}|…{1,}|‥{1,}/g,&amp;quot;……&amp;quot;) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;★全角ダッシュ(――)に整形&lt;br /&gt;
:2文字以上連続する長音などを、全角ダッシュ2文字 ―― に整形します。&lt;br /&gt;
:例＞ &amp;lt;span style=&amp;quot;background:#bfdfff;&amp;quot;&amp;gt;そんなーーー。&amp;lt;/span&amp;gt; → そんな――。&lt;br /&gt;
:※変換対象となるのは以下の4パターンです。&lt;br /&gt;
:{|class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
! 名称 !! 連続字数 !! 例 !! Shift_JIS !! Unicode&lt;br /&gt;
|-&lt;br /&gt;
| 全角長音符 ||rowspan=&amp;quot;5&amp;quot;| 2字以上 || ーー || 0x815B || U+30FC&lt;br /&gt;
|-&lt;br /&gt;
| em ダッシュ&amp;lt;br&amp;gt;(全角ダッシュ) || —— || - || U+2014&lt;br /&gt;
|-&lt;br /&gt;
| 全角ダッシュ&amp;lt;br&amp;gt;(水平線) || ―― || 0x815C || U+2015&lt;br /&gt;
|-&lt;br /&gt;
| 全角マイナス || －－ || 0x817C || U+FF0D&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;全角ダッシュ(――)に整形&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2017/06/25&lt;br /&gt;
  return _.replace(/ー{2,}|\u2014{2,}|―{2,}|－{2,}/g,&amp;quot;――&amp;quot;) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;青空文庫 ルビを除去&lt;br /&gt;
:&amp;lt;code&amp;gt;《&amp;lt;/code&amp;gt; で始まり &amp;lt;code&amp;gt;》&amp;lt;/code&amp;gt; で終わる箇所を除去します。ルビ開始位置を表す &amp;lt;code&amp;gt;｜&amp;lt;/code&amp;gt; がある場合、&amp;lt;code&amp;gt;｜&amp;lt;/code&amp;gt; も除去します。&lt;br /&gt;
:例＞ &amp;lt;span style=&amp;quot;background:#bfdfff;&amp;quot;&amp;gt;一応《いちおう》何時《いつ》もの／霧の｜ロンドン警視庁《スコットランドヤード》&amp;lt;/span&amp;gt; → 一応何時もの／霧のロンドン警視庁&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;青空文庫 ルビを除去&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2015/09/30&lt;br /&gt;
  return _.replace(/(?:｜([^《\n]+))?《.*?》/g,&amp;quot;$1&amp;quot;) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;青空文庫 注記を除去&lt;br /&gt;
:&amp;lt;code&amp;gt;［＃&amp;lt;/code&amp;gt; で始まり &amp;lt;code&amp;gt;］&amp;lt;/code&amp;gt; で終わる箇所を除去します。&lt;br /&gt;
:例＞ &amp;lt;span style=&amp;quot;background:#bfdfff;&amp;quot;&amp;gt;［＃注記付き］名※［＃二の字点、1-2-22］［＃「（銘々）」の注記付き終わり］&amp;lt;/span&amp;gt; → 名※&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;青空文庫 注記を除去&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2014/03/14&lt;br /&gt;
  return _.replace(/［＃.*?］/g,&amp;quot;&amp;quot;) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
;青空文庫 注記(外字以外)を除去&lt;br /&gt;
:外字を表す注記 &amp;lt;code&amp;gt;※［＃ ～ ］&amp;lt;/code&amp;gt; は例外とし、除去しません。&lt;br /&gt;
:例＞ &amp;lt;span style=&amp;quot;background:#bfdfff;&amp;quot;&amp;gt;［＃注記付き］名※［＃二の字点、1-2-22］［＃「（銘々）」の注記付き終わり］&amp;lt;/span&amp;gt; → 名※［＃二の字点、1-2-22］&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;青空文庫 注記(外字以外)を除去&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2014/03/14&lt;br /&gt;
  return _.replace(/(※［＃.*?］)|［＃.*?］/g,&amp;quot;$1&amp;quot;) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Web/HTML==&lt;br /&gt;
&lt;br /&gt;
;★HTMLタグを除去&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;HTMLタグを除去&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2015/09/30&lt;br /&gt;
  return _.replace(/&amp;lt;(&amp;quot;[^&amp;quot;]*&amp;quot;|&#039;[^&#039;]*&#039;|[^&amp;quot;&#039;&amp;gt;])*&amp;gt;/g,&amp;quot;&amp;quot;) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;行末に&amp;amp;lt;br&amp;amp;gt;を挿入&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;行末に&amp;lt;br&amp;gt;を挿入&amp;quot;,&amp;quot;L&amp;quot;,function(_){ //2015/02/14&lt;br /&gt;
  return _.replace(/$/gm,&amp;quot;&amp;lt;br&amp;gt;&amp;quot;) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
;&amp;amp;lt;br&amp;amp;gt;を改行に変換&lt;br /&gt;
:改行タグを改行に変換します。ただし、改行タグ直後に改行が含まれている場合は、二重改行にならないようタグのみ削除します。&lt;br /&gt;
:※対応タグは &amp;lt;code&amp;gt;&amp;amp;lt;br&amp;amp;gt; &amp;amp;lt;br/&amp;amp;gt; &amp;amp;lt;br /&amp;amp;gt;&amp;lt;/code&amp;gt; の3種類です。英字の大小は問いません。&lt;br /&gt;
:&amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;※属性付きには対応していません。&amp;lt;/b&amp;gt;例＞ &amp;lt;code&amp;gt;&amp;amp;lt;br clear=&amp;quot;all&amp;quot;&amp;amp;gt;&amp;lt;/code&amp;gt; など&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;&amp;lt;br&amp;gt;を改行に変換&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2015/02/14&lt;br /&gt;
  return _.replace(/&amp;lt;br( ?\/)?&amp;gt;\n?/gi,&amp;quot;\n&amp;quot;) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;★実体参照 &amp;amp;&amp;quot;&amp;lt;&amp;gt; → &amp;amp;xxx;&lt;br /&gt;
;★実体参照 &amp;amp;xxx; → ␣&amp;gt;&amp;lt;&amp;quot;&amp;amp;&lt;br /&gt;
:HTML で使用される文字実体参照の変換を行います。&lt;br /&gt;
:{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 文字 !! 実体参照 !! 備考&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| &amp;amp;lt; || &amp;amp;amp;lt; || 小なり不等号 (less-than sign)&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| &amp;amp;gt; || &amp;amp;amp;gt; || 大なり不等号 (greater-than sign)&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| &amp;amp;quot; || &amp;amp;amp;quot; || 引用符 (quotation mark)&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| &amp;amp;amp; || &amp;amp;amp;amp; || アンド (ampersand)&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| &amp;amp;nbsp; || &amp;amp;amp;nbsp; || 折り返し禁止空白 (no-break space)&lt;br /&gt;
|}&lt;br /&gt;
:&amp;amp;amp;nbsp; は U+00A0 (No-Break Space) ではなく、U+0020 (半角空白) に変換します。&lt;br /&gt;
:空白文字 → &amp;amp;amp;nbsp; の変換は、実用上不都合が多いため行いません。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&#039;実体参照 &amp;amp;&amp;amp;&amp;quot;&amp;lt;&amp;gt; → &amp;amp;&amp;amp;xxx;&#039;,&amp;quot;s&amp;quot;,function(_){ //2015/03/14&lt;br /&gt;
  return _.replaceBatch([ [&amp;quot;&amp;amp;&amp;quot;,&amp;quot;&amp;amp;amp;&amp;quot;],[&#039;&amp;quot;&#039;,&amp;quot;&amp;amp;quot;&amp;quot;],[&amp;quot;&amp;lt;&amp;quot;,&amp;quot;&amp;amp;lt;&amp;quot;],[&amp;quot;&amp;gt;&amp;quot;,&amp;quot;&amp;amp;gt;&amp;quot;] ]) }]);&lt;br /&gt;
f.push([&#039;実体参照 &amp;amp;&amp;amp;xxx; → \u2423&amp;gt;&amp;lt;&amp;quot;&amp;amp;&amp;amp;&#039;,&amp;quot;s&amp;quot;,function(_){ //2015/03/14&lt;br /&gt;
  return _.replaceBatch([ [&amp;quot;&amp;amp;nbsp;&amp;quot;,&amp;quot; &amp;quot;],[&amp;quot;&amp;amp;gt;&amp;quot;,&amp;quot;&amp;gt;&amp;quot;],[&amp;quot;&amp;amp;lt;&amp;quot;,&amp;quot;&amp;lt;&amp;quot;],[&amp;quot;&amp;amp;quot;&amp;quot;,&#039;&amp;quot;&#039;],[&amp;quot;&amp;amp;amp;&amp;quot;,&amp;quot;&amp;amp;&amp;quot;] ]) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
:半角空白 → &amp;amp;amp;nbsp; の変換も行う場合は、下記の内容に差し替えてください。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&#039;実体参照 &amp;amp;&amp;amp;&amp;quot;&amp;lt;&amp;gt;\u2423 → &amp;amp;&amp;amp;xxx;&#039;,&amp;quot;s&amp;quot;,function(_){ //2015/03/14&lt;br /&gt;
  return _.replaceBatch([ [&amp;quot;&amp;amp;&amp;quot;,&amp;quot;&amp;amp;amp;&amp;quot;],[&#039;&amp;quot;&#039;,&amp;quot;&amp;amp;quot;&amp;quot;],[&amp;quot;&amp;lt;&amp;quot;,&amp;quot;&amp;amp;lt;&amp;quot;],[&amp;quot;&amp;gt;&amp;quot;,&amp;quot;&amp;amp;gt;&amp;quot;],[&amp;quot; &amp;quot;,&amp;quot;&amp;amp;nbsp;&amp;quot;] ]) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;★数値参照 &amp;amp;#dec; に変換&lt;br /&gt;
:文字列を数値文字参照(10進)形式に変換します。(dec＝decimal／十進法)&lt;br /&gt;
:例＞ &amp;lt;span style=&amp;quot;background:#bfdfff;&amp;quot;&amp;gt;Aわ𩸽&amp;lt;/span&amp;gt; → &amp;amp;amp;#65;&amp;amp;amp;#12431;&amp;amp;amp;#171581;&lt;br /&gt;
:→ &amp;lt;b&amp;gt;[[#符号化/復号化]]&amp;lt;/b&amp;gt; の節の &amp;lt;b&amp;gt;&amp;amp;#dec; エンコード&amp;lt;/b&amp;gt; を参照&lt;br /&gt;
&lt;br /&gt;
;★数値参照 &amp;amp;#xHEX; に変換&lt;br /&gt;
:文字列を数値文字参照(16進)形式に変換します。(HEX＝hexadecimal／十六進法)&lt;br /&gt;
:例＞ &amp;lt;span style=&amp;quot;background:#bfdfff;&amp;quot;&amp;gt;Aわ𩸽&amp;lt;/span&amp;gt; → &amp;amp;amp;#x41;&amp;amp;amp;#x308F;&amp;amp;amp;#x29E3D;&lt;br /&gt;
:→ &amp;lt;b&amp;gt;[[#符号化/復号化]]&amp;lt;/b&amp;gt; の節の &amp;lt;b&amp;gt;&amp;amp;#xHEX; エンコード&amp;lt;/b&amp;gt; を参照&lt;br /&gt;
&lt;br /&gt;
;★数値参照を文字に変換&lt;br /&gt;
:数値文字参照(10進/16進)を文字列に変換します。&lt;br /&gt;
:例＞ &amp;lt;span style=&amp;quot;background:#bfdfff;&amp;quot;&amp;gt;&amp;amp;amp;#65;&amp;amp;amp;#x308F;&amp;amp;amp;#x29e3d;&amp;lt;/span&amp;gt; → Aわ𩸽&lt;br /&gt;
&amp;lt;pre style=&amp;quot;word-wrap:break-word;&amp;quot;&amp;gt;&lt;br /&gt;
f.push([&amp;quot;数値参照を文字に変換&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2019/06/01&lt;br /&gt;
  return _.replace(/&amp;amp;#(?:([0-9]{1,7})|x([0-9a-f]{1,6}));/gi,function(s,d,x){var n=Number(d||&amp;quot;0x&amp;quot;+x); return (n&amp;lt;=0xFFFF)?String.fromCharCode(n): (n&amp;lt;=0x10FFFF)?String.fromCharCode(n-0x10000&amp;gt;&amp;gt;10|0xD800,n&amp;amp;0x3FF|0xDC00): s}) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==マクロ/コード==&lt;br /&gt;
&lt;br /&gt;
;★行頭 // を挿入/削除&lt;br /&gt;
:行頭に // が無い行なら // を挿入し、有る行なら // を削除します。&lt;br /&gt;
:※このコマンドをよく利用される場合は「&amp;lt;b&amp;gt;[[コメントマーク付け外し]]&amp;lt;/b&amp;gt;」マクロの導入をオススメします。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;行頭 \/\/ を挿入/削除&amp;quot;,&amp;quot;L&amp;quot;,function(_){ //2015/03/14&lt;br /&gt;
  return _.replace(/^(\/\/)?/gm,function(s){return s? &amp;quot;&amp;quot;: &amp;quot;\/\/&amp;quot;}) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;★このマクロを編集&lt;br /&gt;
:実行中のマクロ（テキスト整形）を Mery で開きます。&lt;br /&gt;
:※マクロを実行後、[マクロ]→[編集] でファイルを開くのと同様です。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;このマクロを編集&amp;quot;,&amp;quot;&amp;quot;,function(){ //2019/06/01&lt;br /&gt;
  Editor.OpenFile(ScriptFullName, meEncodingNone, meOpenAllowNewWindow) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;マクロフォルダを開く&lt;br /&gt;
:エクスプローラを起動し、実行中のマクロ（テキスト整形）があるフォルダを開きます。&lt;br /&gt;
&amp;lt;pre style=&amp;quot;word-wrap:break-word;&amp;quot;&amp;gt;&lt;br /&gt;
f.push([&amp;quot;マクロフォルダを開く&amp;quot;,&amp;quot;&amp;quot;,function(){ //2015/12/26&lt;br /&gt;
  new ActiveXObject(&amp;quot;Shell.Application&amp;quot;).Explore(new ActiveXObject(&amp;quot;Scripting.FileSystemObject&amp;quot;).GetParentFolderName(ScriptFullName)) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;挿入 Confirm(|)&lt;br /&gt;
:文字列 &amp;lt;code&amp;gt;if(!Confirm(&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;))Quit();&amp;lt;/code&amp;gt; を挿入します。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;挿入 Confirm(|)&amp;quot;,&amp;quot;&amp;quot;,function(_){ //2019/06/01&lt;br /&gt;
  return [&amp;quot;if(!Confirm(&amp;quot; , _ , &amp;quot;))Quit();&amp;quot;] }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;選択範囲を eval で評価&lt;br /&gt;
:ステータスバーに eval(&amp;lt;i&amp;gt;選択範囲&amp;lt;/i&amp;gt;) の結果を表示します。&lt;br /&gt;
:たとえば、選択範囲が &amp;lt;code style=&amp;quot;background:#bfdfff;&amp;quot;&amp;gt;10*(5+20)&amp;lt;/code&amp;gt; なら、250 と表示されます。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;選択範囲を eval で評価&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2019/06/01&lt;br /&gt;
  Status=eval(_) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==挿入/貼付==&lt;br /&gt;
&lt;br /&gt;
;★半角/全角の間を空ける&lt;br /&gt;
;★半角英数/全角の間を空ける&lt;br /&gt;
:半角文字/半角英数と全角文字の間に半角空白を挿入します。&lt;br /&gt;
:※&amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;半角文字&amp;lt;/b&amp;gt;＝ASCII文字＋半角カナ、&amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;全角文字&amp;lt;/b&amp;gt;＝それ以外の文字、を意味しています。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;半角/全角の間を空ける&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2014/02/16&lt;br /&gt;
  return _.replace(/([!-~｡-ﾟ](?=[^!-~｡-ﾟ 　\t\n])|[^!-~｡-ﾟ 　\t\n](?=[!-~｡-ﾟ]))/g,&amp;quot;$1 &amp;quot;) }]);&lt;br /&gt;
f.push([&amp;quot;半角英数/全角の間を空ける&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2014/02/16&lt;br /&gt;
  return _.replace(/([0-9A-Za-z](?=[^!-~｡-ﾟ 　\t\n])|[^!-~｡-ﾟ 　\t\n](?=[0-9A-Za-z]))/g,&amp;quot;$1 &amp;quot;) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;★数値を3桁,区切りに&lt;br /&gt;
:半角数字列を3桁毎にコンマで区切ります。小数点以下（ピリオド以降）は区切りません。&lt;br /&gt;
:例＞ &amp;lt;span style=&amp;quot;background:#bfdfff;&amp;quot;&amp;gt;87654321／0.12345／54321.12345&amp;lt;/span&amp;gt; → 87,654,321／0.12345／54,321.12345&lt;br /&gt;
&amp;lt;pre style=&amp;quot;word-wrap:break-word;&amp;quot;&amp;gt;&lt;br /&gt;
f.push([&amp;quot;数値を3桁,区切りに&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2014/10/12&lt;br /&gt;
  return _.replace(/([^.0-9]|^)([0-9]+)/g,function(_,p,n){return p+n.replace(/([0-9])(?=(?:[0-9]{3})+$)/g,&amp;quot;$1,&amp;quot;)}) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;複製貼り付け...&lt;br /&gt;
:クリップボードの文字列を、入力した回数分複製してから貼り付けます。&lt;br /&gt;
&amp;lt;pre style=&amp;quot;word-wrap:break-word;&amp;quot;&amp;gt;&lt;br /&gt;
f.push([&amp;quot;複製貼り付け...&amp;quot;,&amp;quot;c&amp;quot;,function(){ //2019/06/01&lt;br /&gt;
  var r=[],c=ClipboardData.GetData(),n=parseInt(Prompt(&amp;quot;複製回数: ※半角数字&amp;quot;,&amp;quot;&amp;quot;)); if(n&amp;gt;0){ while(n--){r.push(c)} return r.join(&amp;quot;&amp;quot;) } }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;★行頭／行末に貼り付け&lt;br /&gt;
:クリップボードの文字列を、各行の行頭/行末に貼り付けます。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;行頭に貼り付け&amp;quot;,&amp;quot;L c&amp;quot;,function(_){ //2015/09/30&lt;br /&gt;
  var c=ClipboardData.GetData().replace(/(\r\n|[\r\n])$/,&amp;quot;&amp;quot;); return _.replace(/^/gm,c) }]);&lt;br /&gt;
f.push([&amp;quot;行末に貼り付け&amp;quot;,&amp;quot;L c&amp;quot;,function(_){ //2015/09/30&lt;br /&gt;
  var c=ClipboardData.GetData().replace(/(\r\n|[\r\n])$/,&amp;quot;&amp;quot;); return _.replace(/$/gm,c) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;★行頭／行末に挿入...&lt;br /&gt;
:入力した文字列を、各行の行頭/行末に挿入します。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;行頭に挿入...&amp;quot;,&amp;quot;L&amp;quot;,function(_){ //2019/06/01&lt;br /&gt;
  var p=Prompt(&amp;quot;行頭に挿入する文字列:&amp;quot;,&amp;quot;&amp;quot;); if(p)return _.replace(/^/gm,p) }]);&lt;br /&gt;
f.push([&amp;quot;行末に挿入...&amp;quot;,&amp;quot;L&amp;quot;,function(_){ //2019/06/01&lt;br /&gt;
  var p=Prompt(&amp;quot;行末に挿入する文字列:&amp;quot;,&amp;quot;&amp;quot;); if(p)return _.replace(/$/gm,p) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;各行先頭／末尾に挿入...&lt;br /&gt;
:下記の条件で置換を行い、入力した文字列を各行の先頭/末尾に挿入します。&lt;br /&gt;
:&amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;※矩形対応には Mery 2.1.0 以降が必要です。&amp;lt;/b&amp;gt;&lt;br /&gt;
:&amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;※Mery の仕様上、ゼロ幅には対応していません。&amp;lt;/b&amp;gt;ゼロ幅で実行すると、&amp;lt;b&amp;gt;表示行頭&amp;lt;/b&amp;gt;に文字列が挿入されます。&lt;br /&gt;
:{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 検索文字列 (先頭)&lt;br /&gt;
| &amp;lt;code&amp;gt;^(?=.&amp;amp;#x7C;\n)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! 検索文字列 (末尾)&lt;br /&gt;
| &amp;lt;code&amp;gt;(?&amp;lt;=.)$&amp;amp;#x7C;^(?=\n)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! 置換文字列&lt;br /&gt;
| ※入力した文字列&lt;br /&gt;
|-&lt;br /&gt;
! フラグ&lt;br /&gt;
| 正規表現を使用する (meFindReplaceRegExp)&amp;lt;br&amp;gt;選択した範囲のみ (meReplaceSelOnly)&amp;lt;br&amp;gt;すべて置換 (meReplaceAll)&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;pre style=&amp;quot;word-wrap:break-word;&amp;quot;&amp;gt;&lt;br /&gt;
f.push([&amp;quot;各行先頭に挿入...&amp;quot;,&amp;quot;&amp;quot;,function(_,$){ //2019/06/01&lt;br /&gt;
  var p=Prompt(&amp;quot;各行先頭に挿入する文字列:&amp;quot;,&amp;quot;&amp;quot;); if(p)$.Replace(&amp;quot;^(?=.|\\n)&amp;quot;, p, meFindReplaceRegExp+meReplaceSelOnly+meReplaceAll) }]);&lt;br /&gt;
f.push([&amp;quot;各行末尾に挿入...&amp;quot;,&amp;quot;&amp;quot;,function(_,$){ //2019/06/01&lt;br /&gt;
  var p=Prompt(&amp;quot;各行末尾に挿入する文字列:&amp;quot;,&amp;quot;&amp;quot;); if(p)$.Replace(&amp;quot;(?&amp;lt;=.)$|^(?=\\n)&amp;quot;, p, meFindReplaceRegExp+meReplaceSelOnly+meReplaceAll) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;行頭に連番挿入 (#)&lt;br /&gt;
:行頭に連番 (1), (2), (3) … を挿入します。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;行頭に連番挿入 (#)&amp;quot;,&amp;quot;L&amp;quot;,function(_){ //2015/09/30&lt;br /&gt;
  var re=/^/gm, n=1, pf=&amp;quot;(&amp;quot;, sf=&amp;quot;)&amp;quot;; return _.replace(re,function(){return pf+(n++)+sf}) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
;行頭に連番挿入 (#/Σ)&lt;br /&gt;
:選択行数を Σ として、連番 (1/Σ), (2/Σ), (3/Σ) … を挿入します。&lt;br /&gt;
&amp;lt;pre style=&amp;quot;word-wrap:break-word;&amp;quot;&amp;gt;&lt;br /&gt;
f.push([&amp;quot;行頭に連番挿入 (#/Σ)&amp;quot;,&amp;quot;L&amp;quot;,function(_){ //2015/09/30&lt;br /&gt;
  var re=/^/gm, n=1, m=(_.match(re)||[]).length, pf=&amp;quot;(&amp;quot;, sf=&amp;quot;/&amp;quot;+m+&amp;quot;)&amp;quot;; return _.replace(re,function(){return pf+(n++)+sf}) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
;行頭に連番挿入 (0#)&lt;br /&gt;
:連番が2桁以上になる場合、桁揃えした連番 (01), (02), (03) … を挿入します。&lt;br /&gt;
&amp;lt;pre style=&amp;quot;word-wrap:break-word;&amp;quot;&amp;gt;&lt;br /&gt;
f.push([&amp;quot;行頭に連番挿入 (0#)&amp;quot;,&amp;quot;L&amp;quot;,function(_){ //2015/09/30&lt;br /&gt;
  var re=/^/gm, n=1, m=(_.match(re)||[]).length, pf=&amp;quot;(&amp;quot;, sf=&amp;quot;)&amp;quot;, sp=&amp;quot;0&amp;quot;, k=String(m).length, sp=new Array(k).join(sp); return _.replace(re,function(){return pf+(sp+(n++)).slice(-k)+sf}) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;※行頭に連番挿入系コマンドの比較&lt;br /&gt;
:{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 例文 !! (#) !! (#/Σ) !! (0#)&lt;br /&gt;
|-&lt;br /&gt;
| 1行目&amp;lt;br&amp;gt;2行目&amp;lt;br&amp;gt;…&amp;lt;br&amp;gt;9行目&amp;lt;br&amp;gt;10行目&amp;lt;br&amp;gt;11行目&amp;lt;br&amp;gt;…&amp;lt;br&amp;gt;99行目&amp;lt;br&amp;gt;100行目&lt;br /&gt;
| (1)1行目&amp;lt;br&amp;gt;(2)2行目&amp;lt;br&amp;gt;…&amp;lt;br&amp;gt;(9)9行目&amp;lt;br&amp;gt;(10)10行目&amp;lt;br&amp;gt;(11)11行目&amp;lt;br&amp;gt;…&amp;lt;br&amp;gt;(99)99行目&amp;lt;br&amp;gt;(100)100行目&lt;br /&gt;
| (1/100)1行目&amp;lt;br&amp;gt;(2/100)2行目&amp;lt;br&amp;gt;…&amp;lt;br&amp;gt;(9/100)9行目&amp;lt;br&amp;gt;(10/100)10行目&amp;lt;br&amp;gt;(11/100)11行目&amp;lt;br&amp;gt;…&amp;lt;br&amp;gt;(99/100)99行目&amp;lt;br&amp;gt;(100/100)100行目&lt;br /&gt;
| (001)1行目&amp;lt;br&amp;gt;(002)2行目&amp;lt;br&amp;gt;…&amp;lt;br&amp;gt;(009)9行目&amp;lt;br&amp;gt;(010)10行目&amp;lt;br&amp;gt;(011)11行目&amp;lt;br&amp;gt;…&amp;lt;br&amp;gt;(099)99行目&amp;lt;br&amp;gt;(100)100行目&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
;連番を出力...&lt;br /&gt;
:&amp;lt;code&amp;gt;&amp;lt;i&amp;gt;数値&amp;lt;/i&amp;gt;..&amp;lt;i&amp;gt;数値&amp;lt;/i&amp;gt;&amp;lt;/code&amp;gt;を含む文字列（数値は 0 以上の整数）を入力すると、連番に展開して書き出します。&lt;br /&gt;
:{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!例&lt;br /&gt;
| &amp;lt;code&amp;gt;8..10&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;10..8&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;第01..3章&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;第1..003章&amp;lt;/code&amp;gt;&lt;br /&gt;
| &amp;lt;code&amp;gt;1..3..9&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
!結果&lt;br /&gt;
| 8&amp;lt;br&amp;gt;9&amp;lt;br&amp;gt;10&lt;br /&gt;
| 10&amp;lt;br&amp;gt;9&amp;lt;br&amp;gt;8&lt;br /&gt;
| 第01章&amp;lt;br&amp;gt;第02章&amp;lt;br&amp;gt;第03章&lt;br /&gt;
| 第001章&amp;lt;br&amp;gt;第002章&amp;lt;br&amp;gt;第003章&lt;br /&gt;
| 1..9&amp;lt;br&amp;gt;2..9&amp;lt;br&amp;gt;3..9&lt;br /&gt;
|-&lt;br /&gt;
!補足&lt;br /&gt;
|&lt;br /&gt;
| 降順可&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;| ゼロ始まりならゼロ埋め&lt;br /&gt;
| 最初のみ展開&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;連番を出力...&amp;quot;,&amp;quot;&amp;quot;,function(_){ //2019/06/01&lt;br /&gt;
  var p=Prompt(&amp;quot;連番を出力: ※例＞ 第1..10章&amp;quot;,_.match(/^.*/)[0]), q=p.replace(/^([\s\S]*?)((0*)[0-9]+)\.\.((0*)[0-9]+)([\s\S]*)$/,function(_,p,n,nz,m,mz,q){var r=[],d=Math.max(n.length,m.length),z=(nz||mz)?new Array(d+1).join(&amp;quot;0&amp;quot;):&amp;quot;&amp;quot;,n=Number(n),m=Number(m); if(n&amp;lt;=m){for(;n&amp;lt;=m;n++)r.push(p+(z+n).slice(-d)+q);}else{for(;n&amp;gt;=m;n--)r.push(p+(z+n).slice(-d)+q);} return r.join(&amp;quot;\n&amp;quot;)}); if(q!==p)return q }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==除去/削除==&lt;br /&gt;
&lt;br /&gt;
;★空白文字を除去&lt;br /&gt;
:空白文字（半角空白/全角空白/水平タブ）を除去します。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;空白文字を除去&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2013/09/15&lt;br /&gt;
  return _.replace(/[ 　\t]+/g,&amp;quot;&amp;quot;) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
;★行頭行末の／行頭の／行末の空白を除去&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;行頭行末の空白を除去&amp;quot;,&amp;quot;L&amp;quot;,function(_){ //2013/09/15&lt;br /&gt;
  return _.replace(/^[ 　\t]+|[ 　\t]+$/gm,&amp;quot;&amp;quot;) }]);&lt;br /&gt;
f.push([&amp;quot;行頭の空白を除去&amp;quot;,&amp;quot;L&amp;quot;,function(_){ //2015/02/14&lt;br /&gt;
  return _.replace(/^[ 　\t]+/gm,&amp;quot;&amp;quot;) }]);&lt;br /&gt;
f.push([&amp;quot;行末の空白を除去&amp;quot;,&amp;quot;L&amp;quot;,function(_){ //2015/02/14&lt;br /&gt;
  return _.replace(/[ 　\t]+$/gm,&amp;quot;&amp;quot;) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;空白行の空白を除去&lt;br /&gt;
:空白行を、改行のみの空行にします。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;空白行の空白を除去&amp;quot;,&amp;quot;L&amp;quot;,function(_){ //2017/06/25&lt;br /&gt;
  return _.replace(/^[ 　\t]+$/gm,&amp;quot;&amp;quot;) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;★空白行を削除&lt;br /&gt;
:空白行（半角空白/全角空白/水平タブ/改行のみの行）を削除します。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;空白行を削除&amp;quot;,&amp;quot;L&amp;quot;,function(_){ //2015/03/14&lt;br /&gt;
  return _.replace(/^[ 　\t]*$\n?/gm,&amp;quot;&amp;quot;) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
;空白行を圧縮&lt;br /&gt;
:連続する空白行を1行の空行に変換します。連続しない（＝1行の）空白行は削除します。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;空白行を圧縮&amp;quot;,&amp;quot;L&amp;quot;,function(_){ //2015/02/14&lt;br /&gt;
  return _.replace(/^[ 　\t]+$/gm,&amp;quot;&amp;quot;).replace(/^(\n)\n+|^\n/gm,&amp;quot;$1&amp;quot;) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
;空白行を減量&lt;br /&gt;
:連続する空白行を1行分削減します。&lt;br /&gt;
:空白行の連続が3行なら2行に、2行なら1行に、1行なら0行（＝削除）になります。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;空白行を減量&amp;quot;,&amp;quot;L&amp;quot;,function(_){ //2015/02/14&lt;br /&gt;
  return _.replace(/((?:^[ 　\t]*$\n?)*)(?:^[ 　\t]*$\n?)/gm,&amp;quot;$1&amp;quot;) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;★重複行を単一化&lt;br /&gt;
:同じ内容の行が2個以上ある場合、2個目以降を削除します。&lt;br /&gt;
&amp;lt;pre style=&amp;quot;word-wrap:break-word;&amp;quot;&amp;gt;&lt;br /&gt;
f.push([&amp;quot;重複行を単一化&amp;quot;,&amp;quot;L&amp;quot;,function(_){ //2018/01/15&lt;br /&gt;
  var a=_.split(&amp;quot;\n&amp;quot;),b=[],map={}; for(var i=0;i&amp;lt;a.length;i++){ if(!Object.prototype.hasOwnProperty.call(map,a[i])){map[a[i]]=true;b.push(a[i])} } return b.join(&amp;quot;\n&amp;quot;) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
;重複行を単一化(空白行は除く)&lt;br /&gt;
:空白行（半角空白/全角空白/水平タブ/改行のみの行）は例外とし、削除しません。&lt;br /&gt;
&amp;lt;pre style=&amp;quot;word-wrap:break-word;&amp;quot;&amp;gt;&lt;br /&gt;
f.push([&amp;quot;重複行を単一化(空白行は除く)&amp;quot;,&amp;quot;L&amp;quot;,function(_){ //2018/01/15&lt;br /&gt;
  var a=_.split(&amp;quot;\n&amp;quot;),b=[],map={}; for(var i=0;i&amp;lt;a.length;i++){ if(/^[ 　\t]*$/.test(a[i])||!Object.prototype.hasOwnProperty.call(map,a[i])){map[a[i]]=true;b.push(a[i])} } return b.join(&amp;quot;\n&amp;quot;) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
;★連続する重複行を単一化&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;連続する重複行を単一化&amp;quot;,&amp;quot;L&amp;quot;,function(_){ //2015/02/14&lt;br /&gt;
  return _.replace(/(^.*$)\n(^\1$\n?)+/gm,&amp;quot;$2&amp;quot;) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;重複する／しない行を抽出&lt;br /&gt;
&amp;lt;pre style=&amp;quot;word-wrap:break-word;&amp;quot;&amp;gt;&lt;br /&gt;
f.push([&amp;quot;重複する行を抽出&amp;quot;,&amp;quot;L&amp;quot;,function(_){ //2018/01/15&lt;br /&gt;
  var a=_.split(&amp;quot;\n&amp;quot;),b=[],k=0,map={}; for(var i=0;i&amp;lt;a.length;i++){ if(!Object.prototype.hasOwnProperty.call(map,a[i])){b[k]={dup:false,txt:a[i]};map[a[i]]=k++;}else{b[map[a[i]]].dup=true} } i=b.length;while(--i&amp;gt;=0){ if(b[i].dup){b[i]=b[i].txt}else{b.splice(i,1)} } return b.join(&amp;quot;\n&amp;quot;) }]);&lt;br /&gt;
f.push([&amp;quot;重複しない行を抽出&amp;quot;,&amp;quot;L&amp;quot;,function(_){ //2018/01/15&lt;br /&gt;
  var a=_.split(&amp;quot;\n&amp;quot;),b=[],k=0,map={}; for(var i=0;i&amp;lt;a.length;i++){ if(!Object.prototype.hasOwnProperty.call(map,a[i])){b[k]={dup:false,txt:a[i]};map[a[i]]=k++;}else{b[map[a[i]]].dup=true} } i=b.length;while(--i&amp;gt;=0){ if(!b[i].dup){b[i]=b[i].txt}else{b.splice(i,1)} } return b.join(&amp;quot;\n&amp;quot;) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;※空白行系／重複行系コマンドの比較 （☐ は空白／↵ は改行）&lt;br /&gt;
:{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 例文 !! 空白行&amp;lt;br&amp;gt;を削除 !! 空白行&amp;lt;br&amp;gt;を圧縮 !! 空白行&amp;lt;br&amp;gt;を減量&lt;br /&gt;
!rowspan=&amp;quot;2&amp;quot; width=&amp;quot;6px&amp;quot;|&lt;br /&gt;
! 例文 !! 重複行を&amp;lt;br&amp;gt;単一化 !! 空白行は&amp;lt;br&amp;gt;除く !! 連続する&amp;lt;br&amp;gt;重複行 !! 重複する&amp;lt;br&amp;gt;行を抽出 !! しない&amp;lt;br&amp;gt;行を抽出&lt;br /&gt;
|-style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| 1行目↵&amp;lt;br&amp;gt;☐↵&amp;lt;br&amp;gt;2行目↵&amp;lt;br&amp;gt;☐↵&amp;lt;br&amp;gt;☐☐↵&amp;lt;br&amp;gt;3行目↵&amp;lt;br&amp;gt;☐↵&amp;lt;br&amp;gt;☐☐↵&amp;lt;br&amp;gt;☐☐☐↵&amp;lt;br&amp;gt;4行目&lt;br /&gt;
| 1行目↵&amp;lt;br&amp;gt;2行目↵&amp;lt;br&amp;gt;3行目↵&amp;lt;br&amp;gt;4行目&lt;br /&gt;
| 1行目↵&amp;lt;br&amp;gt;2行目↵&amp;lt;br&amp;gt;↵&amp;lt;br&amp;gt;3行目↵&amp;lt;br&amp;gt;↵&amp;lt;br&amp;gt;4行目&lt;br /&gt;
| 1行目↵&amp;lt;br&amp;gt;2行目↵&amp;lt;br&amp;gt;☐↵&amp;lt;br&amp;gt;3行目↵&amp;lt;br&amp;gt;☐↵&amp;lt;br&amp;gt;☐☐↵&amp;lt;br&amp;gt;4行目&lt;br /&gt;
| あいう↵&amp;lt;br&amp;gt;あいう↵&amp;lt;br&amp;gt;☐↵&amp;lt;br&amp;gt;☐↵&amp;lt;br&amp;gt;☐☐↵&amp;lt;br&amp;gt;あいう↵&amp;lt;br&amp;gt;あいう↵&amp;lt;br&amp;gt;カキク↵&amp;lt;br&amp;gt;さしす↵&amp;lt;br&amp;gt;カキク&amp;lt;br&amp;gt;&lt;br /&gt;
| あいう↵&amp;lt;br&amp;gt;☐↵&amp;lt;br&amp;gt;☐☐↵&amp;lt;br&amp;gt;カキク↵&amp;lt;br&amp;gt;さしす&lt;br /&gt;
| あいう↵&amp;lt;br&amp;gt;☐↵&amp;lt;br&amp;gt;☐↵&amp;lt;br&amp;gt;☐☐↵&amp;lt;br&amp;gt;カキク↵&amp;lt;br&amp;gt;さしす&lt;br /&gt;
| あいう↵&amp;lt;br&amp;gt;☐↵&amp;lt;br&amp;gt;☐☐↵&amp;lt;br&amp;gt;あいう↵&amp;lt;br&amp;gt;カキク↵&amp;lt;br&amp;gt;さしす↵&amp;lt;br&amp;gt;カキク&lt;br /&gt;
| あいう↵&amp;lt;br&amp;gt;☐↵&amp;lt;br&amp;gt;カキク&lt;br /&gt;
| ☐☐↵&amp;lt;br&amp;gt;さしす&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
;★入力文字列を含む／含まない行を削除...&lt;br /&gt;
&amp;lt;pre style=&amp;quot;word-wrap:break-word;&amp;quot;&amp;gt;&lt;br /&gt;
f.push([&amp;quot;入力文字列を含む行を削除...&amp;quot;,&amp;quot;L&amp;quot;,function(_){ //2019/06/01&lt;br /&gt;
  var p=Prompt(&amp;quot;以下の文字列を含む行を削除:&amp;quot;,&amp;quot;&amp;quot;); if(p)return _.replace(/^(.*)$\n?/gm,function(s,t){return (t.indexOf(p)&amp;gt;=0)? &amp;quot;&amp;quot;:s}) }]);&lt;br /&gt;
f.push([&amp;quot;入力文字列を含まない行を削除...&amp;quot;,&amp;quot;L&amp;quot;,function(_){ //2019/06/01&lt;br /&gt;
  var p=Prompt(&amp;quot;以下の文字列を含まない行を削除:&amp;quot;,&amp;quot;&amp;quot;); if(p)return _.replace(/^(.*)$\n?/gm,function(s,t){return (t.indexOf(p)&amp;gt;=0)? s:&amp;quot;&amp;quot;}) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;正規表現に一致する／しない行を削除...&lt;br /&gt;
:&amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;※正規表現は JavaScript (JScript) の仕様で記述します。&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;word-wrap:break-word;&amp;quot;&amp;gt;&lt;br /&gt;
f.push([&amp;quot;正規表現に一致する行を削除...&amp;quot;,&amp;quot;L&amp;quot;,function(_){ //2019/06/01&lt;br /&gt;
  var p=Prompt(&amp;quot;以下の正規表現に一致する行を削除:&amp;quot;,&amp;quot;&amp;quot;); if(p){ p=new RegExp(p); return _.replace(/^(.*)$\n?/gm,function(s,t){return p.test(t)? &amp;quot;&amp;quot;:s}) } }]);&lt;br /&gt;
f.push([&amp;quot;正規表現に一致しない行を削除...&amp;quot;,&amp;quot;L&amp;quot;,function(_){ //2019/06/01&lt;br /&gt;
  var p=Prompt(&amp;quot;以下の正規表現に一致しない行を削除:&amp;quot;,&amp;quot;&amp;quot;); if(p){ p=new RegExp(p); return _.replace(/^(.*)$\n?/gm,function(s,t){return p.test(t)? s:&amp;quot;&amp;quot;}) } }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;行頭／行末から数文字削除...&lt;br /&gt;
:各行の行頭/行末から指定した文字数分を削除します。&lt;br /&gt;
:※結合文字列には対応していません。&lt;br /&gt;
&amp;lt;pre style=&amp;quot;word-wrap:break-word;&amp;quot;&amp;gt;&lt;br /&gt;
f.push([&amp;quot;行頭から数文字削除...&amp;quot;,&amp;quot;L&amp;quot;,function(_){ //2019/06/01&lt;br /&gt;
  var n=parseInt(Prompt(&amp;quot;行頭から削除する字数: ※半角数字&amp;quot;,&amp;quot;&amp;quot;)); if(n&amp;gt;0)return _.replace(new RegExp(&amp;quot;^(?:[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[^\\n]){0,&amp;quot;+n+&amp;quot;}&amp;quot;,&amp;quot;gm&amp;quot;),&amp;quot;&amp;quot;) }]);&lt;br /&gt;
f.push([&amp;quot;行末から数文字削除...&amp;quot;,&amp;quot;L&amp;quot;,function(_){ //2019/06/01&lt;br /&gt;
  var n=parseInt(Prompt(&amp;quot;行末から削除する字数: ※半角数字&amp;quot;,&amp;quot;&amp;quot;)); if(n&amp;gt;0)return _.replace(new RegExp(&amp;quot;(?:[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[^\\n]){0,&amp;quot;+n+&amp;quot;}$&amp;quot;,&amp;quot;gm&amp;quot;),&amp;quot;&amp;quot;) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==検索/置換==&lt;br /&gt;
&lt;br /&gt;
;ASCII文字を単語検索&lt;br /&gt;
:空白文字などを除く ASCII 印字可能文字 (U+0021～007E) が1文字以上連続する箇所を検索します。&lt;br /&gt;
&amp;lt;pre style=&amp;quot;word-wrap:break-word;&amp;quot;&amp;gt;&lt;br /&gt;
f.push([&amp;quot;ASCII文字を単語検索&amp;quot;,&amp;quot;&amp;quot;,function(_,$){ //2017/05/28&lt;br /&gt;
  $.Find(&amp;quot;(?&amp;lt;!\\g&amp;lt;Graph&amp;gt;)(?&amp;lt;Graph&amp;gt;[!-~])+&amp;quot;, meFindReplaceCase+meFindReplaceRegExp+meFindAround+meFindNext) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
;半角カナを単語検索&lt;br /&gt;
:半角カナ類 (ｦ～ｯ ｱ～ﾝ ｡ ｢ ｣ ､ ･ ｰ ﾞ ﾟ) が1文字以上連続する箇所を検索します。&lt;br /&gt;
&amp;lt;pre style=&amp;quot;word-wrap:break-word;&amp;quot;&amp;gt;&lt;br /&gt;
f.push([&amp;quot;半角カナを単語検索&amp;quot;,&amp;quot;&amp;quot;,function(_,$){ //2017/05/28&lt;br /&gt;
  $.Find(&amp;quot;(?&amp;lt;!\\g&amp;lt;HKana&amp;gt;)(?&amp;lt;HKana&amp;gt;[｡-ﾟ])+&amp;quot;, meFindReplaceCase+meFindReplaceRegExp+meFindAround+meFindNext) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
;全角英数を単語検索&lt;br /&gt;
:全角英数字 (０～９ Ａ～Ｚ ａ～ｚ) が1文字以上連続する箇所を検索します。&lt;br /&gt;
&amp;lt;pre style=&amp;quot;word-wrap:break-word;&amp;quot;&amp;gt;&lt;br /&gt;
f.push([&amp;quot;全角英数を単語検索&amp;quot;,&amp;quot;&amp;quot;,function(_,$){ //2017/05/28&lt;br /&gt;
  $.Find(&amp;quot;(?&amp;lt;!\\g&amp;lt;FAlnm&amp;gt;)(?&amp;lt;FAlnm&amp;gt;[０-９Ａ-Ｚａ-ｚ])+&amp;quot;, meFindReplaceCase+meFindReplaceRegExp+meFindAround+meFindNext) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
;CJK漢字を単語検索&lt;br /&gt;
:CJK (China/Japan/Korea) の漢字が1文字以上連続する箇所を検索します。&lt;br /&gt;
&amp;lt;pre style=&amp;quot;word-wrap:break-word;&amp;quot;&amp;gt;&lt;br /&gt;
f.push([&amp;quot;CJK漢字を単語検索&amp;quot;,&amp;quot;&amp;quot;,function(_,$){ //2017/05/28&lt;br /&gt;
  $.Find(&amp;quot;(?&amp;lt;!\\g&amp;lt;Han&amp;gt;\\g&amp;lt;VS&amp;gt;|\\g&amp;lt;Han&amp;gt;)(?:(?&amp;lt;Han&amp;gt;[\\p{Han}])(?&amp;lt;VS&amp;gt;[\\x{FE00}-\\x{FE02}\\x{E0100}-\\x{E01EF}])?)+&amp;quot;, meFindReplaceCase+meFindReplaceRegExp+meFindAround+meFindNext) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;ひらがなを単語検索&lt;br /&gt;
;カタカナを単語検索&lt;br /&gt;
:平仮名/片仮名が1文字以上連続する箇所を検索します。&lt;br /&gt;
:※検索対象となる文字は、下表のとおりです。囲み文字 ㋐ や組み文字 ㍍ は含まれません。&lt;br /&gt;
:{|class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
! !! 種別 !! 文字 !! Shift_JIS !! Unicode !! 備考&lt;br /&gt;
|-&lt;br /&gt;
!rowspan=&amp;quot;3&amp;quot;| 平仮名&amp;lt;br&amp;gt;(かな)&amp;lt;br&amp;gt;89字&lt;br /&gt;
|rowspan=&amp;quot;3&amp;quot;| 全角ひらがな (89字)&lt;br /&gt;
| ぁ ～ ん&amp;lt;br&amp;gt;ゔゕゖ || 0x829F～82F1&amp;lt;br&amp;gt;- || U+3041～3093&amp;lt;br&amp;gt;U+3094～3096 || ※SJIS では ゔゕゖ の3字は保存不可&lt;br /&gt;
|-&lt;br /&gt;
| ゝゞ || 0x8154, 8155 || U+309D, 309E || 踊り字（繰り返し）&lt;br /&gt;
|-&lt;br /&gt;
| ゟ || - || U+309F || 「より」の合字&lt;br /&gt;
|-&lt;br /&gt;
!rowspan=&amp;quot;5&amp;quot;| 片仮名&amp;lt;br&amp;gt;(カナ)&amp;lt;br&amp;gt;164字&lt;br /&gt;
|rowspan=&amp;quot;3&amp;quot;| 全角カタカナ (93字)&lt;br /&gt;
| ァ ～ ヶ&amp;lt;br&amp;gt;ヷヸヹヺ || 0x8340～8396&amp;lt;br&amp;gt;- || U+30A1～30F6&amp;lt;br&amp;gt;U+30F7～30FA || ※SJIS では ヷヸヹヺ の4字は保存不可&lt;br /&gt;
|-&lt;br /&gt;
| ヽヾ || 0x8152, 8153 || U+30FD, 30FE || 踊り字（繰り返し）&lt;br /&gt;
|-&lt;br /&gt;
| ヿ || - || U+30FF || 「コト」の合字&lt;br /&gt;
|-&lt;br /&gt;
| 半角カタカナ (55字) || ｦ ～ ｯ&amp;lt;br&amp;gt;ｱ ～ ﾝ || 0xA6～AF&amp;lt;br&amp;gt;0xB1～DD || U+FF66～FF6F&amp;lt;br&amp;gt;U+FF71～FF9D ||&lt;br /&gt;
|-&lt;br /&gt;
| カタカナ拡張 (16字) || ㇰ ～ ㇿ || - || U+31F0～31FF || アイヌ語表記などに用いる&lt;br /&gt;
|-&lt;br /&gt;
!rowspan=&amp;quot;5&amp;quot;| 記号&amp;lt;br&amp;gt;8字&lt;br /&gt;
|colspan=&amp;quot;5&amp;quot;| &amp;lt;span style=&amp;quot;color:#c00;&amp;quot;&amp;gt;※以下は、&amp;lt;b&amp;gt;仮名の後&amp;lt;/b&amp;gt;に続いて出現する場合のみ検索される。&amp;lt;/span&amp;gt;例＞ 複製゜ー&amp;lt;span style=&amp;quot;background:#b4e4b4;&amp;quot;&amp;gt;コヒ゜ー&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 半角/全角濁点 (2字) || ﾞ ゛ || 0xDE, 814A || U+FF9E, 309B ||&lt;br /&gt;
|-&lt;br /&gt;
| 半角/全角半濁点 (2字) || ﾟ ゜ || 0xDF, 814B || U+FF9F, 309C ||&lt;br /&gt;
|-&lt;br /&gt;
| 結合用濁点/半濁点 (2字) || &amp;amp;#x3099; &amp;amp;#x309A; || - || U+3099, 309A || 結合文字&lt;br /&gt;
|-&lt;br /&gt;
| 半角/全角長音符 (2字) || ｰ ー || 0xB0, 815B || U+FF70, 30FC ||&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;pre style=&amp;quot;word-wrap:break-word;&amp;quot;&amp;gt;&lt;br /&gt;
f.push([&amp;quot;ひらがなを単語検索&amp;quot;,&amp;quot;&amp;quot;,function(_,$){ //2017/05/28&lt;br /&gt;
  $.Find(&amp;quot;(?&amp;lt;!\\g&amp;lt;Kana&amp;gt;\\g&amp;lt;Mark&amp;gt;\\g&amp;lt;Mark&amp;gt;|\\g&amp;lt;Kana&amp;gt;\\g&amp;lt;Mark&amp;gt;|\\g&amp;lt;Kana&amp;gt;)(?:(?&amp;lt;Kana&amp;gt;[ぁ-\\x{3096}ゝゞ\\x{309F}])(?&amp;lt;Mark&amp;gt;[\\x{3099}\\x{309A}゛ﾞ゜ﾟーｰ])*)+&amp;quot;, meFindReplaceCase+meFindReplaceRegExp+meFindAround+meFindNext) }]);&lt;br /&gt;
f.push([&amp;quot;カタカナを単語検索&amp;quot;,&amp;quot;&amp;quot;,function(_,$){ //2017/05/28&lt;br /&gt;
  $.Find(&amp;quot;(?&amp;lt;!\\g&amp;lt;Kana&amp;gt;\\g&amp;lt;Mark&amp;gt;\\g&amp;lt;Mark&amp;gt;|\\g&amp;lt;Kana&amp;gt;\\g&amp;lt;Mark&amp;gt;|\\g&amp;lt;Kana&amp;gt;)(?:(?&amp;lt;Kana&amp;gt;[ァ-\\x{30FA}ヽヾ\\x{30FF}ｦ-ｯｱ-ﾝ\\x{31F0}-\\x{31FF}])(?&amp;lt;Mark&amp;gt;[\\x{3099}\\x{309A}゛ﾞ゜ﾟーｰ])*)+&amp;quot;, meFindReplaceCase+meFindReplaceRegExp+meFindAround+meFindNext) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;CP932依存文字を検索&lt;br /&gt;
:Shift_JIS (CP932) の環境依存文字 (NEC特殊文字・IBM拡張文字・ユーザー定義外字・未定義文字) を検索します。&lt;br /&gt;
&amp;lt;pre style=&amp;quot;word-wrap:break-word;&amp;quot;&amp;gt;&lt;br /&gt;
f.push([&amp;quot;CP932依存文字を検索&amp;quot;,&amp;quot;&amp;quot;,function(_,$){ //2017/05/28&lt;br /&gt;
  $.Find(&amp;quot;[纊褜鍈銈蓜俉炻昱棈鋹曻彅丨仡仼伀伃伹佖侒侊侚侔俍偀倢俿倞偆偰偂傔僴僘兊兤冝冾凬刕劜劦勀勛匀匇匤卲厓厲叝﨎咜咊咩哿喆坙坥垬埈埇﨏\\x{FA10}增墲夋奓奛奝奣妤妺孖寀甯寘寬尞岦岺峵崧嵓﨑嵂嵭嶸嶹巐弡弴彧德忞恝悅悊惞惕愠惲愑愷愰憘戓抦揵摠撝擎敎昀昕昻昉昮昞昤晥晗晙\\x{FA12}晳暙暠暲暿曺朎\\x{F929}杦枻桒柀栁桄棏﨓楨﨔榘槢樰橫橆橳橾櫢櫤毖氿汜沆汯泚洄涇浯涖涬淏淸淲淼渹湜渧渼溿澈澵濵瀅瀇瀨炅炫焏焄煜煆煇\\x{FA15}燁燾犱犾猤\\x{FA16}獷玽珉珖珣珒琇珵琦琪琩琮瑢璉璟甁畯皂皜皞皛皦\\x{FA17}睆劯砡硎硤硺礰\\x{FA18}\\x{FA19}\\x{FA1A}禔\\x{FA1B}禛竑竧\\x{FA1C}竫箞\\x{FA1D}絈絜綷綠緖繒罇羡\\x{FA1E}茁荢荿菇菶葈蒴蕓蕙蕫﨟薰\\x{FA20}﨡蠇裵訒訷詹誧誾諟\\x{FA22}諶譓譿賰賴贒赶﨣軏﨤\\x{FA25}遧郞\\x{FA26}鄕鄧釚釗釞釭釮釤釥鈆鈐鈊鈺鉀鈼鉎鉙鉑鈹鉧銧鉷鉸鋧鋗鋙鋐﨧鋕鋠鋓錥錡鋻﨨錞鋿錝錂鍰鍗鎤鏆鏞鏸鐱鑅鑈閒\\x{F9DC}﨩隝隯霳霻靃靍靏靑靕顗顥\\x{FA2A}\\x{FA2B}餧\\x{FA2C}馞驎髙髜魵魲鮏鮱鮻鰀鵰鵫\\x{FA2D}鸙黑①-⑳Ⅰ-Ⅹⅰ-ⅹ㍉㌔㌢㍍㌘㌧㌃㌶㍑㍗㌍㌦㌣㌫㍊㌻㎜㎝㎞㎎㎏㏄㎡〝〟№㏍℡㊤㊥㊦㊧㊨㈱㈲㈹㍾㍽㍼㍻∮∑∟⊿￤＇＂\\x{E000}-\\x{E757}\\x{80}\\x{F8F0}-\\x{F8F3}]&amp;quot;, meFindReplaceCase+meFindReplaceRegExp+meFindAround+meFindNext) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;CJK互換漢字を検索&lt;br /&gt;
:CJK互換漢字 (U+F900～FAD9, 2F800～2FA1D) を検索します（CJK統合漢字扱いの12字 および 未定義の2字は除く）。&lt;br /&gt;
&amp;lt;pre style=&amp;quot;word-wrap:break-word;&amp;quot;&amp;gt;&lt;br /&gt;
f.push([&amp;quot;CJK互換漢字を検索&amp;quot;,&amp;quot;&amp;quot;,function(_,$){ //2018/01/15&lt;br /&gt;
  $.Find(&amp;quot;[[^﨎﨏﨑﨓﨔﨟﨡﨣﨤﨧﨨﨩\\x{FA6E}\\x{FA6F}]&amp;amp;&amp;amp;[\\x{F900}-\\x{FAD9}\\x{2F800}-\\x{2FA1D}]]&amp;quot;, meFindReplaceCase+meFindReplaceRegExp+meFindAround+meFindNext) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;サロゲートペアを検索&lt;br /&gt;
:UTF-16において2バイト2個組で1文字を形成する文字 (U+10000～10FFFF) を検索します。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;サロゲートペアを検索&amp;quot;,&amp;quot;&amp;quot;,function(_,$){ //2015/09/30&lt;br /&gt;
  $.Find(&amp;quot;[\\x{10000}-\\x{10FFFF}]&amp;quot;, meFindReplaceCase+meFindReplaceRegExp+meFindAround+meFindNext) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;結合文字列を検索&lt;br /&gt;
:他の文字と組み合わせて1文字を形成する文字列を検索します。&lt;br /&gt;
:※結合文字列や異体字を表示するには、アプリやフォントの対応が必要です。&lt;br /&gt;
:{|class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
!&lt;br /&gt;
!colspan=&amp;quot;4&amp;quot;| ラテン文字&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot;| ひらがな&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot;| 漢字(異体字)&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot;| 囲み文字&lt;br /&gt;
|-&lt;br /&gt;
! 実際の表示&lt;br /&gt;
| ǖ ||colspan=&amp;quot;3&amp;quot;| u&amp;amp;#x308;&amp;amp;#x304;&lt;br /&gt;
| じ ||colspan=&amp;quot;2&amp;quot;| し&amp;amp;#x3099;&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;| 辻&amp;amp;#xE0100;&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;| あ&amp;amp;#x20DE;&lt;br /&gt;
|-&lt;br /&gt;
! 文字の構成&lt;br /&gt;
| ǖ || u||&amp;amp;#x308;||&amp;amp;#x304;&lt;br /&gt;
| じ || し||&amp;amp;#x3099;&lt;br /&gt;
| 辻||&amp;amp;#xE0100;&lt;br /&gt;
| あ||&amp;amp;#x20DE;&lt;br /&gt;
|-&lt;br /&gt;
! Unicode&lt;br /&gt;
| 01D6 || 0075||0308||0304&lt;br /&gt;
| 3058 || 3057||3099&lt;br /&gt;
| 8FBB||E0100&lt;br /&gt;
| 3042||20DE&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;pre style=&amp;quot;word-wrap:break-word;&amp;quot;&amp;gt;&lt;br /&gt;
f.push([&amp;quot;結合文字列を検索&amp;quot;,&amp;quot;&amp;quot;,function(_,$){ //2017/05/28&lt;br /&gt;
  $.Find(&amp;quot;(?:[^\\p{M}\\n]|^)[\\p{M}]+&amp;quot;, meFindReplaceCase+meFindReplaceRegExp+meFindAround+meFindNext) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;選択文字列を検索&lt;br /&gt;
:下記の条件で検索を行います。&lt;br /&gt;
:&amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;※Mery の仕様上、改行や折り返しを含むと検索強調が不完全になります。&amp;lt;/b&amp;gt;&lt;br /&gt;
:{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 検索文字列&lt;br /&gt;
| ※選択文字列&lt;br /&gt;
|-&lt;br /&gt;
! フラグ&lt;br /&gt;
| 大文字と小文字を区別する (meFindReplaceCase)&amp;lt;br&amp;gt;正規表現を使用する (meFindReplaceRegExp)&amp;lt;br&amp;gt;文末まで検索したら文頭に移動する (meFindAround)&amp;lt;br&amp;gt;下/次を検索 (meFindNext)&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;pre style=&amp;quot;word-wrap:break-word;&amp;quot;&amp;gt;&lt;br /&gt;
f.push([&amp;quot;選択文字列を検索&amp;quot;,&amp;quot;s&amp;quot;,function(_,$){ //2019/06/01&lt;br /&gt;
  var acp=$.GetActivePos(),anp=$.GetAnchorPos(),sx=ScrollX,sy=ScrollY; Redraw=false; $.Find(_.replace(/[$()*+.?\[\\\]^{|}]/g,&amp;quot;\\$&amp;amp;&amp;quot;), meFindReplaceCase+meFindReplaceRegExp+meFindAround+meFindNext); $.SetActivePos(acp);$.SetAnchorPos(anp);ScrollX=sx;ScrollY=sy; Redraw=true; }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;選択文字列をすべて削除&lt;br /&gt;
:下記の条件で置換を行い、選択文字列を削除します。&lt;br /&gt;
:{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 検索文字列&lt;br /&gt;
| ※選択文字列&lt;br /&gt;
|-&lt;br /&gt;
! 置換文字列&lt;br /&gt;
| ※空欄&lt;br /&gt;
|-&lt;br /&gt;
! フラグ&lt;br /&gt;
| 大文字と小文字を区別する (meFindReplaceCase)&amp;lt;br&amp;gt;正規表現を使用する (meFindReplaceRegExp)&amp;lt;br&amp;gt;すべて置換 (meReplaceAll)&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;pre style=&amp;quot;word-wrap:break-word;&amp;quot;&amp;gt;&lt;br /&gt;
f.push([&amp;quot;選択文字列をすべて削除&amp;quot;,&amp;quot;s&amp;quot;,function(_,$){ //2019/06/01&lt;br /&gt;
  $.Replace(_.replace(/[$()*+.?\[\\\]^{|}]/g,&amp;quot;\\$&amp;amp;&amp;quot;), &amp;quot;&amp;quot;, meFindReplaceCase+meFindReplaceRegExp+meReplaceAll) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;検索強調をすべて解除&lt;br /&gt;
:[検索]→[検索文字列の強調を解除] をすべての文書で実行します。&lt;br /&gt;
&amp;lt;pre style=&amp;quot;word-wrap:break-word;&amp;quot;&amp;gt;&lt;br /&gt;
f.push([&amp;quot;検索強調をすべて解除&amp;quot;,&amp;quot;&amp;quot;,function(){ //2015/03/14&lt;br /&gt;
  for(var ei=0;ei&amp;lt;Editors.Count;ei++){var d=Editors.Item(ei).Documents; for(var i=0;i&amp;lt;d.Count;i++){d.Item(i).HighlightFind=false}} }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;検索結果カウント&lt;br /&gt;
:前回（直前）の検索条件で文書全体を検索し直し、一致した件数をステータスバーに表示します。&lt;br /&gt;
:&amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;※検索条件が複雑なほど、件数が多いほど処理に時間がかかります&amp;lt;/b&amp;gt;（作者の環境では、1000件で約2秒かかりました）。&lt;br /&gt;
:※処理に時間をかけたくない場合は「&amp;lt;b&amp;gt;[[検索ヒット数表示]]&amp;lt;/b&amp;gt;」プラグインの導入をオススメします。&lt;br /&gt;
&amp;lt;pre style=&amp;quot;word-wrap:break-word;&amp;quot;&amp;gt;&lt;br /&gt;
f.push([&amp;quot;検索結果カウント&amp;quot;,&amp;quot;&amp;quot;,function(_,$){ //2015/09/30&lt;br /&gt;
  var t=new Date(),n=-1,acp=$.GetActivePos(),anp=$.GetAnchorPos(),sx=ScrollX,sy=ScrollY; Redraw=false; Status=&amp;quot;&amp;quot;; $.StartOfDocument(); do{$.FindRepeat(meFindNext);n++}while(!Status); $.SetActivePos(acp);$.SetAnchorPos(anp);ScrollX=sx;ScrollY=sy; Redraw=true; Status=n+&amp;quot;件の検索結果 (処理時間: &amp;quot;+(new Date()-t)/1000+&amp;quot;秒)&amp;quot; }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==文書情報==&lt;br /&gt;
&lt;br /&gt;
;総字行数カウント&lt;br /&gt;
:総文字数と総表示行数をステータスバーに表示します。&lt;br /&gt;
:表示される数値は「すべて選択」時に表示される字数・行数と同値になります。&lt;br /&gt;
:※サロゲートペアは2文字と数えます。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;総字行数カウント&amp;quot;,&amp;quot;&amp;quot;,function(){ //2019/06/01&lt;br /&gt;
  Status=Document.Text.length+&amp;quot;文字 (&amp;quot;+Document.GetLines(meGetLineView)+&amp;quot;表示行)&amp;quot; }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;文字数カウント(空白は除く)&lt;br /&gt;
:選択範囲または文書全体の文字数（改行/半角空白/全角空白/水平タブは除く）をステータスバーに表示します。&lt;br /&gt;
:※サロゲートペアは1文字と数えます。&lt;br /&gt;
&amp;lt;pre style=&amp;quot;word-wrap:break-word;&amp;quot;&amp;gt;&lt;br /&gt;
f.push([&amp;quot;文字数カウント(空白は除く)&amp;quot;,&amp;quot;&amp;quot;,function(_){ //2019/06/01&lt;br /&gt;
  Status=(_||Document.Text).replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,&amp;quot;_&amp;quot;).replace(/[\t\n\r 　]/g,&amp;quot;&amp;quot;).length+&amp;quot;文字 (改行･空白抜き)&amp;quot; }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;ステータスバーの表示をコピー&lt;br /&gt;
:ステータスバーの左端の欄に表示されている文字列をコピーします。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;ステータスバーの表示をコピー&amp;quot;,&amp;quot;&amp;quot;,function(){ //2019/06/01&lt;br /&gt;
  ClipboardData.SetData(Status) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;編集中のファイルのパスをコピー&lt;br /&gt;
;編集中の全ファイルのパスをコピー&lt;br /&gt;
:現在編集中のファイルのパスをクリップボードにコピーします。&lt;br /&gt;
:新規作成ファイルなどパスが存在しない場合は、&amp;lt;無題&amp;gt; の文字がコピーされます。&lt;br /&gt;
&amp;lt;pre style=&amp;quot;word-wrap:break-word;&amp;quot;&amp;gt;&lt;br /&gt;
f.push([&amp;quot;編集中のファイルのパスをコピー&amp;quot;,&amp;quot;&amp;quot;,function(){ //2015/03/14&lt;br /&gt;
  ClipboardData.SetData(Document.FullName||&amp;quot;&amp;lt;無題&amp;gt;&amp;quot;) }]);&lt;br /&gt;
f.push([&amp;quot;編集中の全ファイルのパスをコピー&amp;quot;,&amp;quot;&amp;quot;,function(){ //2015/03/14&lt;br /&gt;
  var list=[]; for(var ei=0;ei&amp;lt;Editors.Count;ei++){var d=Editors.Item(ei).Documents; for(var i=0;i&amp;lt;d.Count;i++){list.push(d.Item(i).FullName||&amp;quot;&amp;lt;無題&amp;gt;&amp;quot;)}} ClipboardData.SetData(list.join(&amp;quot;\r\n&amp;quot;)) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==並べ替え==&lt;br /&gt;
&lt;br /&gt;
;★行を昇順／降順並べ(Unicode)&lt;br /&gt;
:Unicode 順に並べ替えます。&lt;br /&gt;
&amp;lt;pre style=&amp;quot;word-wrap:break-word;&amp;quot;&amp;gt;&lt;br /&gt;
f.push([&amp;quot;行を昇順並べ(Unicode)&amp;quot;,&amp;quot;L&amp;quot;,function(_){ //2017/06/25&lt;br /&gt;
  return _.replace(/\uFFFF/g,&amp;quot;\uFFFF_&amp;quot;).replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,&amp;quot;\uFFFF$&amp;amp;&amp;quot;).split(&amp;quot;\n&amp;quot;).sort().join(&amp;quot;\n&amp;quot;).replace(/\uFFFF([\uD800-\uDBFF][\uDC00-\uDFFF])/g,&amp;quot;$1&amp;quot;).replace(/\uFFFF_/g,&amp;quot;\uFFFF&amp;quot;) }]);&lt;br /&gt;
f.push([&amp;quot;行を降順並べ(Unicode)&amp;quot;,&amp;quot;L&amp;quot;,function(_){ //2017/06/25&lt;br /&gt;
  return _.replace(/\uFFFF/g,&amp;quot;\uFFFF_&amp;quot;).replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,&amp;quot;\uFFFF$&amp;amp;&amp;quot;).split(&amp;quot;\n&amp;quot;).sort().reverse().join(&amp;quot;\n&amp;quot;).replace(/\uFFFF([\uD800-\uDBFF][\uDC00-\uDFFF])/g,&amp;quot;$1&amp;quot;).replace(/\uFFFF_/g,&amp;quot;\uFFFF&amp;quot;) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;★行を逆順並べ&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;行を逆順並べ&amp;quot;,&amp;quot;L&amp;quot;,function(_){ //2014/10/12&lt;br /&gt;
  return _.split(&amp;quot;\n&amp;quot;).reverse().join(&amp;quot;\n&amp;quot;) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;行をシャッフル&lt;br /&gt;
:ランダムに並べ替えます。&lt;br /&gt;
&amp;lt;pre style=&amp;quot;word-wrap:break-word;&amp;quot;&amp;gt;&lt;br /&gt;
f.push([&amp;quot;行をシャッフル&amp;quot;,&amp;quot;L&amp;quot;,function(_){ //2014/10/12&lt;br /&gt;
  var a=_.split(&amp;quot;\n&amp;quot;),i=a.length,j,t; while(i){j=Math.floor(Math.random()*i--); t=a[i];a[i]=a[j];a[j]=t;} return a.join(&amp;quot;\n&amp;quot;) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;行を文字数順並べ&lt;br /&gt;
:文字数の少ない順に並べ替えます。&lt;br /&gt;
:※符号点（コードポイント）の少ない順。結合文字列には対応していません。&lt;br /&gt;
:文字数の多い順に並べ替えたい場合は、&amp;lt;code&amp;gt;a.len-b.len&amp;lt;/code&amp;gt; を &amp;lt;code&amp;gt;b.len-a.len&amp;lt;/code&amp;gt; に書き換えてください。&lt;br /&gt;
&amp;lt;pre style=&amp;quot;word-wrap:break-word;&amp;quot;&amp;gt;&lt;br /&gt;
f.push([&amp;quot;行を文字数順並べ&amp;quot;,&amp;quot;L&amp;quot;,function(_){ //2019/06/01&lt;br /&gt;
  var b=_.replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,&amp;quot;_&amp;quot;).split(&amp;quot;\n&amp;quot;),a=_.split(&amp;quot;\n&amp;quot;); for(var i=0;i&amp;lt;a.length;i++){a[i]={len:b[i].length,txt:a[i]}} a.sort(function(a,b){return a.len-b.len}); for(var i=0;i&amp;lt;a.length;i++){a[i]=a[i].txt} return a.join(&amp;quot;\n&amp;quot;) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;数行毎に逆順並べ...&lt;br /&gt;
:選択範囲を指定した行数で区切り、区間ごとに逆順に並べ替えます。&lt;br /&gt;
&amp;lt;pre style=&amp;quot;word-wrap:break-word;&amp;quot;&amp;gt;&lt;br /&gt;
f.push([&amp;quot;数行毎に逆順並べ...&amp;quot;,&amp;quot;L&amp;quot;,function(_){ //2019/06/01&lt;br /&gt;
  var n=parseInt(Prompt(&amp;quot;以下の行数毎に逆順並べ: ※半角数字&amp;quot;,&amp;quot;&amp;quot;)); if(n&amp;gt;0)return (_+&amp;quot;\n&amp;quot;).replace(new RegExp(&amp;quot;(?:^.*$\\n){1,&amp;quot;+n+&amp;quot;}&amp;quot;,&amp;quot;gm&amp;quot;),function(s){return s.split(&amp;quot;\n&amp;quot;).reverse().join(&amp;quot;\n&amp;quot;)}).slice(1) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
;数行一組で逆順並べ...&lt;br /&gt;
:選択範囲を指定した行数で一組とし、組単位で逆順に並べ替えます。&lt;br /&gt;
&amp;lt;pre style=&amp;quot;word-wrap:break-word;&amp;quot;&amp;gt;&lt;br /&gt;
f.push([&amp;quot;数行一組で逆順並べ...&amp;quot;,&amp;quot;L&amp;quot;,function(_){ //2019/06/01&lt;br /&gt;
  var n=parseInt(Prompt(&amp;quot;以下の行数を一組として逆順並べ: ※半角数字&amp;quot;,&amp;quot;&amp;quot;)); if(n&amp;gt;0)return (_+&amp;quot;\n&amp;quot;).match(new RegExp(&amp;quot;(?:^.*$\\n){1,&amp;quot;+n+&amp;quot;}&amp;quot;,&amp;quot;gm&amp;quot;)).reverse().join(&amp;quot;&amp;quot;).slice(0,-1) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;空行毎に逆順並べ&lt;br /&gt;
:選択範囲を空行（改行のみの行）で区切り、区間ごとに逆順に並べ替えます。&lt;br /&gt;
&amp;lt;pre style=&amp;quot;word-wrap:break-word;&amp;quot;&amp;gt;&lt;br /&gt;
f.push([&amp;quot;空行毎に逆順並べ&amp;quot;,&amp;quot;L&amp;quot;,function(_){ //2019/06/01&lt;br /&gt;
  return (_+&amp;quot;\n&amp;quot;).replace(/\n+|[\s\S]*?\n(?=\n|$)/g,function(s){return s.split(&amp;quot;\n&amp;quot;).reverse().join(&amp;quot;\n&amp;quot;)}).slice(1) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
;空行一組で逆順並べ&lt;br /&gt;
:選択範囲を空行区切りで一組とし、組単位で逆順に並べ替えます。&lt;br /&gt;
&amp;lt;pre style=&amp;quot;word-wrap:break-word;&amp;quot;&amp;gt;&lt;br /&gt;
f.push([&amp;quot;空行一組で逆順並べ&amp;quot;,&amp;quot;L&amp;quot;,function(_){ //2019/06/01&lt;br /&gt;
  return (_+&amp;quot;\n&amp;quot;).match(/\n+|[\s\S]*?\n(?=\n|$)/g).reverse().join(&amp;quot;&amp;quot;).slice(0,-1) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;指定見出しで逆順並べ...&lt;br /&gt;
:入力した文字列から始まる行を「見出し」とし、見出し単位で逆順に並べ替えます。&lt;br /&gt;
&amp;lt;pre style=&amp;quot;word-wrap:break-word;&amp;quot;&amp;gt;&lt;br /&gt;
f.push([&amp;quot;指定見出しで逆順並べ...&amp;quot;,&amp;quot;L&amp;quot;,function(_){ //2019/06/01&lt;br /&gt;
  var p=Prompt(&amp;quot;以下の文字から始まる行を一組にして逆順並べ:&amp;quot;,&amp;quot;■&amp;quot;).replace(/[$()*+.?\[\\\]^{|}]/g,&amp;quot;\\$&amp;amp;&amp;quot;); if(p){ var r=(_+&amp;quot;\n&amp;quot;).match(new RegExp(&amp;quot;[\\s\\S]*?\\n(?=&amp;quot;+p+&amp;quot;|$)&amp;quot;,&amp;quot;g&amp;quot;)); if(r[0].indexOf(p)!==0)r.push(r.shift()); return r.reverse().join(&amp;quot;&amp;quot;).slice(0,-1) } }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;※行を逆順並べ系コマンドの比較 （☐ は空白／↵ は改行）&lt;br /&gt;
:{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 例文 !! 数行毎&amp;lt;br&amp;gt;(3行) !! 数行一組&amp;lt;br&amp;gt;(3行)&lt;br /&gt;
!rowspan=&amp;quot;2&amp;quot; width=&amp;quot;6px&amp;quot;|&lt;br /&gt;
! 例文 !! 空行毎 !! 空行一組&lt;br /&gt;
|-&lt;br /&gt;
| 1行目1組&amp;lt;br&amp;gt;2行目&amp;lt;br&amp;gt;3行目&amp;lt;br&amp;gt;4行目2組&amp;lt;br&amp;gt;5行目&amp;lt;br&amp;gt;6行目&amp;lt;br&amp;gt;7行目3組&amp;lt;br&amp;gt;8行目&amp;lt;br&amp;gt;9行目&amp;lt;br&amp;gt;10行目4組&amp;lt;br&amp;gt;11行目&lt;br /&gt;
| 3行目&amp;lt;br&amp;gt;2行目&amp;lt;br&amp;gt;1行目1組&amp;lt;br&amp;gt;6行目&amp;lt;br&amp;gt;5行目&amp;lt;br&amp;gt;4行目2組&amp;lt;br&amp;gt;9行目&amp;lt;br&amp;gt;8行目&amp;lt;br&amp;gt;7行目3組&amp;lt;br&amp;gt;11行目&amp;lt;br&amp;gt;10行目4組&lt;br /&gt;
| 10行目4組&amp;lt;br&amp;gt;11行目&amp;lt;br&amp;gt;7行目3組&amp;lt;br&amp;gt;8行目&amp;lt;br&amp;gt;9行目&amp;lt;br&amp;gt;4行目2組&amp;lt;br&amp;gt;5行目&amp;lt;br&amp;gt;6行目&amp;lt;br&amp;gt;1行目1組&amp;lt;br&amp;gt;2行目&amp;lt;br&amp;gt;3行目&lt;br /&gt;
| 1行目1組↵&amp;lt;br&amp;gt;2行目↵&amp;lt;br&amp;gt;3行目↵&amp;lt;br&amp;gt;↵&amp;lt;br&amp;gt;5行目2組↵&amp;lt;br&amp;gt;6行目↵&amp;lt;br&amp;gt;☐☐↵&amp;lt;br&amp;gt;8行目↵&amp;lt;br&amp;gt;↵&amp;lt;br&amp;gt;10行目3組↵&amp;lt;br&amp;gt;11行目&lt;br /&gt;
| 3行目↵&amp;lt;br&amp;gt;2行目↵&amp;lt;br&amp;gt;1行目1組↵&amp;lt;br&amp;gt;↵&amp;lt;br&amp;gt;8行目↵&amp;lt;br&amp;gt;☐☐↵&amp;lt;br&amp;gt;6行目↵&amp;lt;br&amp;gt;5行目2組↵&amp;lt;br&amp;gt;↵&amp;lt;br&amp;gt;11行目↵&amp;lt;br&amp;gt;10行目3組&lt;br /&gt;
| 10行目3組↵&amp;lt;br&amp;gt;11行目↵&amp;lt;br&amp;gt;↵&amp;lt;br&amp;gt;5行目2組↵&amp;lt;br&amp;gt;6行目↵&amp;lt;br&amp;gt;☐☐↵&amp;lt;br&amp;gt;8行目↵&amp;lt;br&amp;gt;↵&amp;lt;br&amp;gt;1行目1組↵&amp;lt;br&amp;gt;2行目↵&amp;lt;br&amp;gt;3行目&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
;文字を逆順並べ&lt;br /&gt;
:各行の文字を逆順に並べ替えます。&lt;br /&gt;
:例＞ &amp;lt;span style=&amp;quot;background:#bfdfff;&amp;quot;&amp;gt;文字を逆順並べ&amp;lt;/span&amp;gt; → べ並順逆を字文&lt;br /&gt;
:※[http://unicode.org/reports/tr29/ UAX #29] で規定される「拡張書記素クラスタ」に部分的に対応しています。対応していない文字は位置がズレます。&lt;br /&gt;
:* サロゲートペア (U+10000～10FFFF)&lt;br /&gt;
:* 結合文字の一部 (U+0300～6F, 1AB0～FF, 1DC0～FF, 20D0～FF, 3099～A, FE20～F)&lt;br /&gt;
:* 異体字セレクタ (U+180B～D, FE00～F, E0100～EF)&lt;br /&gt;
:* ゼロ幅非接合子/接合子 (U+200C～D)&lt;br /&gt;
:* 絵文字の国旗 (U+1F1E6～FF)&lt;br /&gt;
:* 絵文字の肌色指定 (U+1F3FB～F)&lt;br /&gt;
:* 結合不可の制御文字 (U+0000～1F, 007F～9F, 00AD, 2028～9, FEFF)&lt;br /&gt;
:例＞ &amp;lt;span style=&amp;quot;background:#bfdfff;&amp;quot;&amp;gt;𠮟る／りんこ&amp;amp;#x3099;／tre&amp;amp;#x301;ma&amp;lt;/span&amp;gt; → ame&amp;amp;#x301;rt／こ&amp;amp;#x3099;んり／る𠮟&lt;br /&gt;
:{|class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
! 例文&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|𠮟||る&lt;br /&gt;
!rowspan=&amp;quot;6&amp;quot; width=&amp;quot;6px&amp;quot;|&lt;br /&gt;
|り||ん||colspan=&amp;quot;2&amp;quot;|こ&amp;amp;#x3099;&lt;br /&gt;
!rowspan=&amp;quot;6&amp;quot; width=&amp;quot;6px&amp;quot;|&lt;br /&gt;
|t||r||colspan=&amp;quot;2&amp;quot;|e&amp;amp;#x301;||m||a&lt;br /&gt;
|-&lt;br /&gt;
! Unicode&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|20B9F||308B&lt;br /&gt;
|308A||3093||style=&amp;quot;background:#fe6;&amp;quot;|3053||style=&amp;quot;background:#fcc;&amp;quot;|3099&lt;br /&gt;
|0074||0072||style=&amp;quot;background:#fe6;&amp;quot;|0065||style=&amp;quot;background:#fcc;&amp;quot;|0301||006D||0061&lt;br /&gt;
|-&lt;br /&gt;
! UTF-16&lt;br /&gt;
|style=&amp;quot;background:#fe6;&amp;quot;|D842||style=&amp;quot;background:#fcc;&amp;quot;|DF9F||308B&lt;br /&gt;
|colspan=&amp;quot;4&amp;quot;|※同上&lt;br /&gt;
|colspan=&amp;quot;6&amp;quot;|※同上&lt;br /&gt;
|-&lt;br /&gt;
!rowspan=&amp;quot;3&amp;quot;|実行後&lt;br /&gt;
|る||colspan=&amp;quot;2&amp;quot;|𠮟&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|こ&amp;amp;#x3099;||ん||り&lt;br /&gt;
|a||m||colspan=&amp;quot;2&amp;quot;|e&amp;amp;#x301;||r||t&lt;br /&gt;
|-&lt;br /&gt;
|308B||colspan=&amp;quot;2&amp;quot;|20B9F&lt;br /&gt;
|style=&amp;quot;background:#fe6;&amp;quot;|3053||style=&amp;quot;background:#fcc;&amp;quot;|3099||3093||308A&lt;br /&gt;
|0061||006D||style=&amp;quot;background:#fe6;&amp;quot;|0065||style=&amp;quot;background:#fcc;&amp;quot;|0301||0072||0074&lt;br /&gt;
|-&lt;br /&gt;
|308B||style=&amp;quot;background:#fe6;&amp;quot;|D842||style=&amp;quot;background:#fcc;&amp;quot;|DF9F&lt;br /&gt;
|colspan=&amp;quot;4&amp;quot;|※同上&lt;br /&gt;
|colspan=&amp;quot;6&amp;quot;|※同上&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;pre style=&amp;quot;word-wrap:break-word;&amp;quot;&amp;gt;&lt;br /&gt;
f.push([&amp;quot;文字を逆順並べ&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2017/06/25&lt;br /&gt;
  var X=new RegExp(/[\x00-\x1F\x7F-\x9F\xAD\u2028\u2029\uFEFF]|(?:(?:\uD83C[\uDDE6-\uDDFF]){2}|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\s\S])(?:[\u0300-\u036F\u1AB0-\u1AFF\u1DC0-\u1DFF\u20D0-\u20FF\u3099\u309A\uFE20-\uFE2F\u200C\u200D\u180B-\u180D\uFE00-\uFE0F]|\uDB40[\uDD00-\uDDEF]|\uD83C[\uDFFB-\uDFFF])*/g); return _.replace(/[^\n]+/g,function(s){return s.match(X).reverse().join(&amp;quot;&amp;quot;)}) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;文字をシャッフル&lt;br /&gt;
:各行の文字をランダムに並べ替えます。&lt;br /&gt;
:例＞ &amp;lt;span style=&amp;quot;background:#bfdfff;&amp;quot;&amp;gt;文字をシャッフル&amp;lt;/span&amp;gt; → フ字をャシッル文&lt;br /&gt;
&amp;lt;pre style=&amp;quot;word-wrap:break-word;&amp;quot;&amp;gt;&lt;br /&gt;
f.push([&amp;quot;文字をシャッフル&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2017/06/25&lt;br /&gt;
  var X=new RegExp(/[\x00-\x1F\x7F-\x9F\xAD\u2028\u2029\uFEFF]|(?:(?:\uD83C[\uDDE6-\uDDFF]){2}|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\s\S])(?:[\u0300-\u036F\u1AB0-\u1AFF\u1DC0-\u1DFF\u20D0-\u20FF\u3099\u309A\uFE20-\uFE2F\u200C\u200D\u180B-\u180D\uFE00-\uFE0F]|\uDB40[\uDD00-\uDDEF]|\uD83C[\uDFFB-\uDFFF])*/g); return _.replace(/[^\n]+/g,function(s){var a=s.match(X),i=a.length,j,t; while(i){j=Math.floor(Math.random()*i--); t=a[i];a[i]=a[j];a[j]=t;} return a.join(&amp;quot;&amp;quot;)}) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==字種/数値変換==&lt;br /&gt;
;★半角英数→全角&lt;br /&gt;
;★全角英数→半角&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;半角英数→全角&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2014/02/10&lt;br /&gt;
  return _.replace(/[0-9A-Za-z]/g,function(s){return String.fromCharCode(s.charCodeAt(0)+0xFEE0)}) }]);&lt;br /&gt;
f.push([&amp;quot;全角英数→半角&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2014/02/10&lt;br /&gt;
  return _.replace(/[０-９Ａ-Ｚａ-ｚ]/g,function(s){return String.fromCharCode(s.charCodeAt(0)-0xFEE0)}) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;★半角カナ→全角&lt;br /&gt;
;★全角カナ→半角&lt;br /&gt;
&amp;lt;pre style=&amp;quot;word-wrap:break-word;&amp;quot;&amp;gt;&lt;br /&gt;
f.push([&amp;quot;半角カナ→全角&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2015/03/14&lt;br /&gt;
  return _.replaceBatch([ [&amp;quot;ｳﾞ&amp;quot;,&amp;quot;ヴ&amp;quot;],[&amp;quot;ｶﾞ&amp;quot;,&amp;quot;ガ&amp;quot;],[&amp;quot;ｷﾞ&amp;quot;,&amp;quot;ギ&amp;quot;],[&amp;quot;ｸﾞ&amp;quot;,&amp;quot;グ&amp;quot;],[&amp;quot;ｹﾞ&amp;quot;,&amp;quot;ゲ&amp;quot;],[&amp;quot;ｺﾞ&amp;quot;,&amp;quot;ゴ&amp;quot;],[&amp;quot;ｻﾞ&amp;quot;,&amp;quot;ザ&amp;quot;],[&amp;quot;ｼﾞ&amp;quot;,&amp;quot;ジ&amp;quot;],[&amp;quot;ｽﾞ&amp;quot;,&amp;quot;ズ&amp;quot;],[&amp;quot;ｾﾞ&amp;quot;,&amp;quot;ゼ&amp;quot;],[&amp;quot;ｿﾞ&amp;quot;,&amp;quot;ゾ&amp;quot;],[&amp;quot;ﾀﾞ&amp;quot;,&amp;quot;ダ&amp;quot;],[&amp;quot;ﾁﾞ&amp;quot;,&amp;quot;ヂ&amp;quot;],[&amp;quot;ﾂﾞ&amp;quot;,&amp;quot;ヅ&amp;quot;],[&amp;quot;ﾃﾞ&amp;quot;,&amp;quot;デ&amp;quot;],[&amp;quot;ﾄﾞ&amp;quot;,&amp;quot;ド&amp;quot;],[&amp;quot;ﾊﾞ&amp;quot;,&amp;quot;バ&amp;quot;],[&amp;quot;ﾋﾞ&amp;quot;,&amp;quot;ビ&amp;quot;],[&amp;quot;ﾌﾞ&amp;quot;,&amp;quot;ブ&amp;quot;],[&amp;quot;ﾍﾞ&amp;quot;,&amp;quot;ベ&amp;quot;],[&amp;quot;ﾎﾞ&amp;quot;,&amp;quot;ボ&amp;quot;],[&amp;quot;ﾊﾟ&amp;quot;,&amp;quot;パ&amp;quot;],[&amp;quot;ﾋﾟ&amp;quot;,&amp;quot;ピ&amp;quot;],[&amp;quot;ﾌﾟ&amp;quot;,&amp;quot;プ&amp;quot;],[&amp;quot;ﾍﾟ&amp;quot;,&amp;quot;ペ&amp;quot;],[&amp;quot;ﾎﾟ&amp;quot;,&amp;quot;ポ&amp;quot;],[&amp;quot;｡&amp;quot;,&amp;quot;。&amp;quot;],[&amp;quot;｢&amp;quot;,&amp;quot;「&amp;quot;],[&amp;quot;｣&amp;quot;,&amp;quot;」&amp;quot;],[&amp;quot;､&amp;quot;,&amp;quot;、&amp;quot;],[&amp;quot;･&amp;quot;,&amp;quot;・&amp;quot;],[&amp;quot;ｦ&amp;quot;,&amp;quot;ヲ&amp;quot;],[&amp;quot;ｧ&amp;quot;,&amp;quot;ァ&amp;quot;],[&amp;quot;ｨ&amp;quot;,&amp;quot;ィ&amp;quot;],[&amp;quot;ｩ&amp;quot;,&amp;quot;ゥ&amp;quot;],[&amp;quot;ｪ&amp;quot;,&amp;quot;ェ&amp;quot;],[&amp;quot;ｫ&amp;quot;,&amp;quot;ォ&amp;quot;],[&amp;quot;ｬ&amp;quot;,&amp;quot;ャ&amp;quot;],[&amp;quot;ｭ&amp;quot;,&amp;quot;ュ&amp;quot;],[&amp;quot;ｮ&amp;quot;,&amp;quot;ョ&amp;quot;],[&amp;quot;ｯ&amp;quot;,&amp;quot;ッ&amp;quot;],[&amp;quot;ｰ&amp;quot;,&amp;quot;ー&amp;quot;],[&amp;quot;ｱ&amp;quot;,&amp;quot;ア&amp;quot;],[&amp;quot;ｲ&amp;quot;,&amp;quot;イ&amp;quot;],[&amp;quot;ｳ&amp;quot;,&amp;quot;ウ&amp;quot;],[&amp;quot;ｴ&amp;quot;,&amp;quot;エ&amp;quot;],[&amp;quot;ｵ&amp;quot;,&amp;quot;オ&amp;quot;],[&amp;quot;ｶ&amp;quot;,&amp;quot;カ&amp;quot;],[&amp;quot;ｷ&amp;quot;,&amp;quot;キ&amp;quot;],[&amp;quot;ｸ&amp;quot;,&amp;quot;ク&amp;quot;],[&amp;quot;ｹ&amp;quot;,&amp;quot;ケ&amp;quot;],[&amp;quot;ｺ&amp;quot;,&amp;quot;コ&amp;quot;],[&amp;quot;ｻ&amp;quot;,&amp;quot;サ&amp;quot;],[&amp;quot;ｼ&amp;quot;,&amp;quot;シ&amp;quot;],[&amp;quot;ｽ&amp;quot;,&amp;quot;ス&amp;quot;],[&amp;quot;ｾ&amp;quot;,&amp;quot;セ&amp;quot;],[&amp;quot;ｿ&amp;quot;,&amp;quot;ソ&amp;quot;],[&amp;quot;ﾀ&amp;quot;,&amp;quot;タ&amp;quot;],[&amp;quot;ﾁ&amp;quot;,&amp;quot;チ&amp;quot;],[&amp;quot;ﾂ&amp;quot;,&amp;quot;ツ&amp;quot;],[&amp;quot;ﾃ&amp;quot;,&amp;quot;テ&amp;quot;],[&amp;quot;ﾄ&amp;quot;,&amp;quot;ト&amp;quot;],[&amp;quot;ﾅ&amp;quot;,&amp;quot;ナ&amp;quot;],[&amp;quot;ﾆ&amp;quot;,&amp;quot;ニ&amp;quot;],[&amp;quot;ﾇ&amp;quot;,&amp;quot;ヌ&amp;quot;],[&amp;quot;ﾈ&amp;quot;,&amp;quot;ネ&amp;quot;],[&amp;quot;ﾉ&amp;quot;,&amp;quot;ノ&amp;quot;],[&amp;quot;ﾊ&amp;quot;,&amp;quot;ハ&amp;quot;],[&amp;quot;ﾋ&amp;quot;,&amp;quot;ヒ&amp;quot;],[&amp;quot;ﾌ&amp;quot;,&amp;quot;フ&amp;quot;],[&amp;quot;ﾍ&amp;quot;,&amp;quot;ヘ&amp;quot;],[&amp;quot;ﾎ&amp;quot;,&amp;quot;ホ&amp;quot;],[&amp;quot;ﾏ&amp;quot;,&amp;quot;マ&amp;quot;],[&amp;quot;ﾐ&amp;quot;,&amp;quot;ミ&amp;quot;],[&amp;quot;ﾑ&amp;quot;,&amp;quot;ム&amp;quot;],[&amp;quot;ﾒ&amp;quot;,&amp;quot;メ&amp;quot;],[&amp;quot;ﾓ&amp;quot;,&amp;quot;モ&amp;quot;],[&amp;quot;ﾔ&amp;quot;,&amp;quot;ヤ&amp;quot;],[&amp;quot;ﾕ&amp;quot;,&amp;quot;ユ&amp;quot;],[&amp;quot;ﾖ&amp;quot;,&amp;quot;ヨ&amp;quot;],[&amp;quot;ﾗ&amp;quot;,&amp;quot;ラ&amp;quot;],[&amp;quot;ﾘ&amp;quot;,&amp;quot;リ&amp;quot;],[&amp;quot;ﾙ&amp;quot;,&amp;quot;ル&amp;quot;],[&amp;quot;ﾚ&amp;quot;,&amp;quot;レ&amp;quot;],[&amp;quot;ﾛ&amp;quot;,&amp;quot;ロ&amp;quot;],[&amp;quot;ﾜ&amp;quot;,&amp;quot;ワ&amp;quot;],[&amp;quot;ﾝ&amp;quot;,&amp;quot;ン&amp;quot;],[&amp;quot;ﾞ&amp;quot;,&amp;quot;゛&amp;quot;],[&amp;quot;ﾟ&amp;quot;,&amp;quot;゜&amp;quot;] ]) }]);&lt;br /&gt;
f.push([&amp;quot;全角カナ→半角&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2015/03/14&lt;br /&gt;
  return _.replaceBatch([ [&amp;quot;ヴ&amp;quot;,&amp;quot;ｳﾞ&amp;quot;],[&amp;quot;ガ&amp;quot;,&amp;quot;ｶﾞ&amp;quot;],[&amp;quot;ギ&amp;quot;,&amp;quot;ｷﾞ&amp;quot;],[&amp;quot;グ&amp;quot;,&amp;quot;ｸﾞ&amp;quot;],[&amp;quot;ゲ&amp;quot;,&amp;quot;ｹﾞ&amp;quot;],[&amp;quot;ゴ&amp;quot;,&amp;quot;ｺﾞ&amp;quot;],[&amp;quot;ザ&amp;quot;,&amp;quot;ｻﾞ&amp;quot;],[&amp;quot;ジ&amp;quot;,&amp;quot;ｼﾞ&amp;quot;],[&amp;quot;ズ&amp;quot;,&amp;quot;ｽﾞ&amp;quot;],[&amp;quot;ゼ&amp;quot;,&amp;quot;ｾﾞ&amp;quot;],[&amp;quot;ゾ&amp;quot;,&amp;quot;ｿﾞ&amp;quot;],[&amp;quot;ダ&amp;quot;,&amp;quot;ﾀﾞ&amp;quot;],[&amp;quot;ヂ&amp;quot;,&amp;quot;ﾁﾞ&amp;quot;],[&amp;quot;ヅ&amp;quot;,&amp;quot;ﾂﾞ&amp;quot;],[&amp;quot;デ&amp;quot;,&amp;quot;ﾃﾞ&amp;quot;],[&amp;quot;ド&amp;quot;,&amp;quot;ﾄﾞ&amp;quot;],[&amp;quot;バ&amp;quot;,&amp;quot;ﾊﾞ&amp;quot;],[&amp;quot;ビ&amp;quot;,&amp;quot;ﾋﾞ&amp;quot;],[&amp;quot;ブ&amp;quot;,&amp;quot;ﾌﾞ&amp;quot;],[&amp;quot;ベ&amp;quot;,&amp;quot;ﾍﾞ&amp;quot;],[&amp;quot;ボ&amp;quot;,&amp;quot;ﾎﾞ&amp;quot;],[&amp;quot;パ&amp;quot;,&amp;quot;ﾊﾟ&amp;quot;],[&amp;quot;ピ&amp;quot;,&amp;quot;ﾋﾟ&amp;quot;],[&amp;quot;プ&amp;quot;,&amp;quot;ﾌﾟ&amp;quot;],[&amp;quot;ペ&amp;quot;,&amp;quot;ﾍﾟ&amp;quot;],[&amp;quot;ポ&amp;quot;,&amp;quot;ﾎﾟ&amp;quot;],[&amp;quot;。&amp;quot;,&amp;quot;｡&amp;quot;],[&amp;quot;「&amp;quot;,&amp;quot;｢&amp;quot;],[&amp;quot;」&amp;quot;,&amp;quot;｣&amp;quot;],[&amp;quot;、&amp;quot;,&amp;quot;､&amp;quot;],[&amp;quot;・&amp;quot;,&amp;quot;･&amp;quot;],[&amp;quot;ヲ&amp;quot;,&amp;quot;ｦ&amp;quot;],[&amp;quot;ァ&amp;quot;,&amp;quot;ｧ&amp;quot;],[&amp;quot;ィ&amp;quot;,&amp;quot;ｨ&amp;quot;],[&amp;quot;ゥ&amp;quot;,&amp;quot;ｩ&amp;quot;],[&amp;quot;ェ&amp;quot;,&amp;quot;ｪ&amp;quot;],[&amp;quot;ォ&amp;quot;,&amp;quot;ｫ&amp;quot;],[&amp;quot;ャ&amp;quot;,&amp;quot;ｬ&amp;quot;],[&amp;quot;ュ&amp;quot;,&amp;quot;ｭ&amp;quot;],[&amp;quot;ョ&amp;quot;,&amp;quot;ｮ&amp;quot;],[&amp;quot;ッ&amp;quot;,&amp;quot;ｯ&amp;quot;],[&amp;quot;ー&amp;quot;,&amp;quot;ｰ&amp;quot;],[&amp;quot;ア&amp;quot;,&amp;quot;ｱ&amp;quot;],[&amp;quot;イ&amp;quot;,&amp;quot;ｲ&amp;quot;],[&amp;quot;ウ&amp;quot;,&amp;quot;ｳ&amp;quot;],[&amp;quot;エ&amp;quot;,&amp;quot;ｴ&amp;quot;],[&amp;quot;オ&amp;quot;,&amp;quot;ｵ&amp;quot;],[&amp;quot;カ&amp;quot;,&amp;quot;ｶ&amp;quot;],[&amp;quot;キ&amp;quot;,&amp;quot;ｷ&amp;quot;],[&amp;quot;ク&amp;quot;,&amp;quot;ｸ&amp;quot;],[&amp;quot;ケ&amp;quot;,&amp;quot;ｹ&amp;quot;],[&amp;quot;コ&amp;quot;,&amp;quot;ｺ&amp;quot;],[&amp;quot;サ&amp;quot;,&amp;quot;ｻ&amp;quot;],[&amp;quot;シ&amp;quot;,&amp;quot;ｼ&amp;quot;],[&amp;quot;ス&amp;quot;,&amp;quot;ｽ&amp;quot;],[&amp;quot;セ&amp;quot;,&amp;quot;ｾ&amp;quot;],[&amp;quot;ソ&amp;quot;,&amp;quot;ｿ&amp;quot;],[&amp;quot;タ&amp;quot;,&amp;quot;ﾀ&amp;quot;],[&amp;quot;チ&amp;quot;,&amp;quot;ﾁ&amp;quot;],[&amp;quot;ツ&amp;quot;,&amp;quot;ﾂ&amp;quot;],[&amp;quot;テ&amp;quot;,&amp;quot;ﾃ&amp;quot;],[&amp;quot;ト&amp;quot;,&amp;quot;ﾄ&amp;quot;],[&amp;quot;ナ&amp;quot;,&amp;quot;ﾅ&amp;quot;],[&amp;quot;ニ&amp;quot;,&amp;quot;ﾆ&amp;quot;],[&amp;quot;ヌ&amp;quot;,&amp;quot;ﾇ&amp;quot;],[&amp;quot;ネ&amp;quot;,&amp;quot;ﾈ&amp;quot;],[&amp;quot;ノ&amp;quot;,&amp;quot;ﾉ&amp;quot;],[&amp;quot;ハ&amp;quot;,&amp;quot;ﾊ&amp;quot;],[&amp;quot;ヒ&amp;quot;,&amp;quot;ﾋ&amp;quot;],[&amp;quot;フ&amp;quot;,&amp;quot;ﾌ&amp;quot;],[&amp;quot;ヘ&amp;quot;,&amp;quot;ﾍ&amp;quot;],[&amp;quot;ホ&amp;quot;,&amp;quot;ﾎ&amp;quot;],[&amp;quot;マ&amp;quot;,&amp;quot;ﾏ&amp;quot;],[&amp;quot;ミ&amp;quot;,&amp;quot;ﾐ&amp;quot;],[&amp;quot;ム&amp;quot;,&amp;quot;ﾑ&amp;quot;],[&amp;quot;メ&amp;quot;,&amp;quot;ﾒ&amp;quot;],[&amp;quot;モ&amp;quot;,&amp;quot;ﾓ&amp;quot;],[&amp;quot;ヤ&amp;quot;,&amp;quot;ﾔ&amp;quot;],[&amp;quot;ユ&amp;quot;,&amp;quot;ﾕ&amp;quot;],[&amp;quot;ヨ&amp;quot;,&amp;quot;ﾖ&amp;quot;],[&amp;quot;ラ&amp;quot;,&amp;quot;ﾗ&amp;quot;],[&amp;quot;リ&amp;quot;,&amp;quot;ﾘ&amp;quot;],[&amp;quot;ル&amp;quot;,&amp;quot;ﾙ&amp;quot;],[&amp;quot;レ&amp;quot;,&amp;quot;ﾚ&amp;quot;],[&amp;quot;ロ&amp;quot;,&amp;quot;ﾛ&amp;quot;],[&amp;quot;ワ&amp;quot;,&amp;quot;ﾜ&amp;quot;],[&amp;quot;ン&amp;quot;,&amp;quot;ﾝ&amp;quot;],[&amp;quot;゛&amp;quot;,&amp;quot;ﾞ&amp;quot;],[&amp;quot;゜&amp;quot;,&amp;quot;ﾟ&amp;quot;] ]) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;★全角かな→カナ&lt;br /&gt;
;★全角カナ→かな&lt;br /&gt;
:全角ひらがなと全角カタカナを変換します。&lt;br /&gt;
:ただし、ヴヵヶ → ゔゕゖ の変換は行いません（Shift_JIS では保存できない文字のため）。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;全角かな→カナ&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2014/02/10&lt;br /&gt;
  return _.replace(/[\u3041-\u3096ゝゞ]/g,function(s){return String.fromCharCode(s.charCodeAt(0)+0x60)}) }]);&lt;br /&gt;
f.push([&amp;quot;全角カナ→かな(ヴヵヶ除く)&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2015/02/14&lt;br /&gt;
  return _.replace(/[\u30A1-\u30F3ヽヾ]/g,function(s){return String.fromCharCode(s.charCodeAt(0)-0x60)}) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
:ヴヵヶ → ゔゕゖ の変換も行う場合は、下記の内容に差し替えてください。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;全角カナ→かな&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2014/02/10&lt;br /&gt;
  return _.replace(/[\u30A1-\u30F6ヽヾ]/g,function(s){return String.fromCharCode(s.charCodeAt(0)-0x60)}) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;標準変換&lt;br /&gt;
:マクロ「&amp;lt;b&amp;gt;[[標準変換]]&amp;lt;/b&amp;gt;」を移植（一部改変）したものです。&lt;br /&gt;
:全角英数・全角記号は半角に、半角カナは全角に変換します。&lt;br /&gt;
:{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 文字 !! 変換前&lt;br /&gt;
! 文字 !! 標準変換版&lt;br /&gt;
! 文字 !! テキスト整形版&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| ‘ || 全角左シングルクォート&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| ` || 半角グレーブアクセント&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| &#039; || 半角アポストロフィー/シングルクォート&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| ｀ || 全角グレーブアクセント&lt;br /&gt;
| || ※変換しない&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| ` || 半角グレーブアクセント/バッククォート&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;pre style=&amp;quot;word-wrap:break-word;&amp;quot;&amp;gt;&lt;br /&gt;
f.push([&amp;quot;標準変換&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2015/03/14&lt;br /&gt;
  return _.replaceBatch([ [&amp;quot;　&amp;quot;,&amp;quot; &amp;quot;],[&amp;quot;！&amp;quot;,&amp;quot;!&amp;quot;],[&amp;quot;“&amp;quot;,&#039;&amp;quot;&#039;],[&amp;quot;”&amp;quot;,&#039;&amp;quot;&#039;],[&amp;quot;＃&amp;quot;,&amp;quot;#&amp;quot;],[&amp;quot;＄&amp;quot;,&amp;quot;$&amp;quot;],[&amp;quot;％&amp;quot;,&amp;quot;%&amp;quot;],[&amp;quot;＆&amp;quot;,&amp;quot;&amp;amp;&amp;quot;],[&amp;quot;‘&amp;quot;,&amp;quot;&#039;&amp;quot;],[&amp;quot;’&amp;quot;,&amp;quot;&#039;&amp;quot;],[&amp;quot;（&amp;quot;,&amp;quot;(&amp;quot;],[&amp;quot;）&amp;quot;,&amp;quot;)&amp;quot;],[&amp;quot;＊&amp;quot;,&amp;quot;*&amp;quot;],[&amp;quot;＋&amp;quot;,&amp;quot;+&amp;quot;],[&amp;quot;，&amp;quot;,&amp;quot;,&amp;quot;],[&amp;quot;－&amp;quot;,&amp;quot;-&amp;quot;],[&amp;quot;．&amp;quot;,&amp;quot;.&amp;quot;],[&amp;quot;／&amp;quot;,&amp;quot;/&amp;quot;],[&amp;quot;０&amp;quot;,&amp;quot;0&amp;quot;],[&amp;quot;１&amp;quot;,&amp;quot;1&amp;quot;],[&amp;quot;２&amp;quot;,&amp;quot;2&amp;quot;],[&amp;quot;３&amp;quot;,&amp;quot;3&amp;quot;],[&amp;quot;４&amp;quot;,&amp;quot;4&amp;quot;],[&amp;quot;５&amp;quot;,&amp;quot;5&amp;quot;],[&amp;quot;６&amp;quot;,&amp;quot;6&amp;quot;],[&amp;quot;７&amp;quot;,&amp;quot;7&amp;quot;],[&amp;quot;８&amp;quot;,&amp;quot;8&amp;quot;],[&amp;quot;９&amp;quot;,&amp;quot;9&amp;quot;],[&amp;quot;：&amp;quot;,&amp;quot;:&amp;quot;],[&amp;quot;；&amp;quot;,&amp;quot;;&amp;quot;],[&amp;quot;＜&amp;quot;,&amp;quot;&amp;lt;&amp;quot;],[&amp;quot;＝&amp;quot;,&amp;quot;=&amp;quot;],[&amp;quot;＞&amp;quot;,&amp;quot;&amp;gt;&amp;quot;],[&amp;quot;？&amp;quot;,&amp;quot;?&amp;quot;],[&amp;quot;＠&amp;quot;,&amp;quot;@&amp;quot;],[&amp;quot;Ａ&amp;quot;,&amp;quot;A&amp;quot;],[&amp;quot;Ｂ&amp;quot;,&amp;quot;B&amp;quot;],[&amp;quot;Ｃ&amp;quot;,&amp;quot;C&amp;quot;],[&amp;quot;Ｄ&amp;quot;,&amp;quot;D&amp;quot;],[&amp;quot;Ｅ&amp;quot;,&amp;quot;E&amp;quot;],[&amp;quot;Ｆ&amp;quot;,&amp;quot;F&amp;quot;],[&amp;quot;Ｇ&amp;quot;,&amp;quot;G&amp;quot;],[&amp;quot;Ｈ&amp;quot;,&amp;quot;H&amp;quot;],[&amp;quot;Ｉ&amp;quot;,&amp;quot;I&amp;quot;],[&amp;quot;Ｊ&amp;quot;,&amp;quot;J&amp;quot;],[&amp;quot;Ｋ&amp;quot;,&amp;quot;K&amp;quot;],[&amp;quot;Ｌ&amp;quot;,&amp;quot;L&amp;quot;],[&amp;quot;Ｍ&amp;quot;,&amp;quot;M&amp;quot;],[&amp;quot;Ｎ&amp;quot;,&amp;quot;N&amp;quot;],[&amp;quot;Ｏ&amp;quot;,&amp;quot;O&amp;quot;],[&amp;quot;Ｐ&amp;quot;,&amp;quot;P&amp;quot;],[&amp;quot;Ｑ&amp;quot;,&amp;quot;Q&amp;quot;],[&amp;quot;Ｒ&amp;quot;,&amp;quot;R&amp;quot;],[&amp;quot;Ｓ&amp;quot;,&amp;quot;S&amp;quot;],[&amp;quot;Ｔ&amp;quot;,&amp;quot;T&amp;quot;],[&amp;quot;Ｕ&amp;quot;,&amp;quot;U&amp;quot;],[&amp;quot;Ｖ&amp;quot;,&amp;quot;V&amp;quot;],[&amp;quot;Ｗ&amp;quot;,&amp;quot;W&amp;quot;],[&amp;quot;Ｘ&amp;quot;,&amp;quot;X&amp;quot;],[&amp;quot;Ｙ&amp;quot;,&amp;quot;Y&amp;quot;],[&amp;quot;Ｚ&amp;quot;,&amp;quot;Z&amp;quot;],[&amp;quot;［&amp;quot;,&amp;quot;[&amp;quot;],[&amp;quot;￥&amp;quot;,&amp;quot;\\&amp;quot;],[&amp;quot;］&amp;quot;,&amp;quot;]&amp;quot;],[&amp;quot;＾&amp;quot;,&amp;quot;^&amp;quot;],[&amp;quot;＿&amp;quot;,&amp;quot;_&amp;quot;],[&amp;quot;｀&amp;quot;,&amp;quot;`&amp;quot;],[&amp;quot;ａ&amp;quot;,&amp;quot;a&amp;quot;],[&amp;quot;ｂ&amp;quot;,&amp;quot;b&amp;quot;],[&amp;quot;ｃ&amp;quot;,&amp;quot;c&amp;quot;],[&amp;quot;ｄ&amp;quot;,&amp;quot;d&amp;quot;],[&amp;quot;ｅ&amp;quot;,&amp;quot;e&amp;quot;],[&amp;quot;ｆ&amp;quot;,&amp;quot;f&amp;quot;],[&amp;quot;ｇ&amp;quot;,&amp;quot;g&amp;quot;],[&amp;quot;ｈ&amp;quot;,&amp;quot;h&amp;quot;],[&amp;quot;ｉ&amp;quot;,&amp;quot;i&amp;quot;],[&amp;quot;ｊ&amp;quot;,&amp;quot;j&amp;quot;],[&amp;quot;ｋ&amp;quot;,&amp;quot;k&amp;quot;],[&amp;quot;ｌ&amp;quot;,&amp;quot;l&amp;quot;],[&amp;quot;ｍ&amp;quot;,&amp;quot;m&amp;quot;],[&amp;quot;ｎ&amp;quot;,&amp;quot;n&amp;quot;],[&amp;quot;ｏ&amp;quot;,&amp;quot;o&amp;quot;],[&amp;quot;ｐ&amp;quot;,&amp;quot;p&amp;quot;],[&amp;quot;ｑ&amp;quot;,&amp;quot;q&amp;quot;],[&amp;quot;ｒ&amp;quot;,&amp;quot;r&amp;quot;],[&amp;quot;ｓ&amp;quot;,&amp;quot;s&amp;quot;],[&amp;quot;ｔ&amp;quot;,&amp;quot;t&amp;quot;],[&amp;quot;ｕ&amp;quot;,&amp;quot;u&amp;quot;],[&amp;quot;ｖ&amp;quot;,&amp;quot;v&amp;quot;],[&amp;quot;ｗ&amp;quot;,&amp;quot;w&amp;quot;],[&amp;quot;ｘ&amp;quot;,&amp;quot;x&amp;quot;],[&amp;quot;ｙ&amp;quot;,&amp;quot;y&amp;quot;],[&amp;quot;ｚ&amp;quot;,&amp;quot;z&amp;quot;],[&amp;quot;｛&amp;quot;,&amp;quot;{&amp;quot;],[&amp;quot;｜&amp;quot;,&amp;quot;|&amp;quot;],[&amp;quot;｝&amp;quot;,&amp;quot;}&amp;quot;],[&amp;quot;～&amp;quot;,&amp;quot;~&amp;quot;],[&amp;quot;ｳﾞ&amp;quot;,&amp;quot;ヴ&amp;quot;],[&amp;quot;ｶﾞ&amp;quot;,&amp;quot;ガ&amp;quot;],[&amp;quot;ｷﾞ&amp;quot;,&amp;quot;ギ&amp;quot;],[&amp;quot;ｸﾞ&amp;quot;,&amp;quot;グ&amp;quot;],[&amp;quot;ｹﾞ&amp;quot;,&amp;quot;ゲ&amp;quot;],[&amp;quot;ｺﾞ&amp;quot;,&amp;quot;ゴ&amp;quot;],[&amp;quot;ｻﾞ&amp;quot;,&amp;quot;ザ&amp;quot;],[&amp;quot;ｼﾞ&amp;quot;,&amp;quot;ジ&amp;quot;],[&amp;quot;ｽﾞ&amp;quot;,&amp;quot;ズ&amp;quot;],[&amp;quot;ｾﾞ&amp;quot;,&amp;quot;ゼ&amp;quot;],[&amp;quot;ｿﾞ&amp;quot;,&amp;quot;ゾ&amp;quot;],[&amp;quot;ﾀﾞ&amp;quot;,&amp;quot;ダ&amp;quot;],[&amp;quot;ﾁﾞ&amp;quot;,&amp;quot;ヂ&amp;quot;],[&amp;quot;ﾂﾞ&amp;quot;,&amp;quot;ヅ&amp;quot;],[&amp;quot;ﾃﾞ&amp;quot;,&amp;quot;デ&amp;quot;],[&amp;quot;ﾄﾞ&amp;quot;,&amp;quot;ド&amp;quot;],[&amp;quot;ﾊﾞ&amp;quot;,&amp;quot;バ&amp;quot;],[&amp;quot;ﾋﾞ&amp;quot;,&amp;quot;ビ&amp;quot;],[&amp;quot;ﾌﾞ&amp;quot;,&amp;quot;ブ&amp;quot;],[&amp;quot;ﾍﾞ&amp;quot;,&amp;quot;ベ&amp;quot;],[&amp;quot;ﾎﾞ&amp;quot;,&amp;quot;ボ&amp;quot;],[&amp;quot;ﾊﾟ&amp;quot;,&amp;quot;パ&amp;quot;],[&amp;quot;ﾋﾟ&amp;quot;,&amp;quot;ピ&amp;quot;],[&amp;quot;ﾌﾟ&amp;quot;,&amp;quot;プ&amp;quot;],[&amp;quot;ﾍﾟ&amp;quot;,&amp;quot;ペ&amp;quot;],[&amp;quot;ﾎﾟ&amp;quot;,&amp;quot;ポ&amp;quot;],[&amp;quot;｡&amp;quot;,&amp;quot;。&amp;quot;],[&amp;quot;｢&amp;quot;,&amp;quot;「&amp;quot;],[&amp;quot;｣&amp;quot;,&amp;quot;」&amp;quot;],[&amp;quot;､&amp;quot;,&amp;quot;、&amp;quot;],[&amp;quot;･&amp;quot;,&amp;quot;・&amp;quot;],[&amp;quot;ｦ&amp;quot;,&amp;quot;ヲ&amp;quot;],[&amp;quot;ｧ&amp;quot;,&amp;quot;ァ&amp;quot;],[&amp;quot;ｨ&amp;quot;,&amp;quot;ィ&amp;quot;],[&amp;quot;ｩ&amp;quot;,&amp;quot;ゥ&amp;quot;],[&amp;quot;ｪ&amp;quot;,&amp;quot;ェ&amp;quot;],[&amp;quot;ｫ&amp;quot;,&amp;quot;ォ&amp;quot;],[&amp;quot;ｬ&amp;quot;,&amp;quot;ャ&amp;quot;],[&amp;quot;ｭ&amp;quot;,&amp;quot;ュ&amp;quot;],[&amp;quot;ｮ&amp;quot;,&amp;quot;ョ&amp;quot;],[&amp;quot;ｯ&amp;quot;,&amp;quot;ッ&amp;quot;],[&amp;quot;ｰ&amp;quot;,&amp;quot;ー&amp;quot;],[&amp;quot;ｱ&amp;quot;,&amp;quot;ア&amp;quot;],[&amp;quot;ｲ&amp;quot;,&amp;quot;イ&amp;quot;],[&amp;quot;ｳ&amp;quot;,&amp;quot;ウ&amp;quot;],[&amp;quot;ｴ&amp;quot;,&amp;quot;エ&amp;quot;],[&amp;quot;ｵ&amp;quot;,&amp;quot;オ&amp;quot;],[&amp;quot;ｶ&amp;quot;,&amp;quot;カ&amp;quot;],[&amp;quot;ｷ&amp;quot;,&amp;quot;キ&amp;quot;],[&amp;quot;ｸ&amp;quot;,&amp;quot;ク&amp;quot;],[&amp;quot;ｹ&amp;quot;,&amp;quot;ケ&amp;quot;],[&amp;quot;ｺ&amp;quot;,&amp;quot;コ&amp;quot;],[&amp;quot;ｻ&amp;quot;,&amp;quot;サ&amp;quot;],[&amp;quot;ｼ&amp;quot;,&amp;quot;シ&amp;quot;],[&amp;quot;ｽ&amp;quot;,&amp;quot;ス&amp;quot;],[&amp;quot;ｾ&amp;quot;,&amp;quot;セ&amp;quot;],[&amp;quot;ｿ&amp;quot;,&amp;quot;ソ&amp;quot;],[&amp;quot;ﾀ&amp;quot;,&amp;quot;タ&amp;quot;],[&amp;quot;ﾁ&amp;quot;,&amp;quot;チ&amp;quot;],[&amp;quot;ﾂ&amp;quot;,&amp;quot;ツ&amp;quot;],[&amp;quot;ﾃ&amp;quot;,&amp;quot;テ&amp;quot;],[&amp;quot;ﾄ&amp;quot;,&amp;quot;ト&amp;quot;],[&amp;quot;ﾅ&amp;quot;,&amp;quot;ナ&amp;quot;],[&amp;quot;ﾆ&amp;quot;,&amp;quot;ニ&amp;quot;],[&amp;quot;ﾇ&amp;quot;,&amp;quot;ヌ&amp;quot;],[&amp;quot;ﾈ&amp;quot;,&amp;quot;ネ&amp;quot;],[&amp;quot;ﾉ&amp;quot;,&amp;quot;ノ&amp;quot;],[&amp;quot;ﾊ&amp;quot;,&amp;quot;ハ&amp;quot;],[&amp;quot;ﾋ&amp;quot;,&amp;quot;ヒ&amp;quot;],[&amp;quot;ﾌ&amp;quot;,&amp;quot;フ&amp;quot;],[&amp;quot;ﾍ&amp;quot;,&amp;quot;ヘ&amp;quot;],[&amp;quot;ﾎ&amp;quot;,&amp;quot;ホ&amp;quot;],[&amp;quot;ﾏ&amp;quot;,&amp;quot;マ&amp;quot;],[&amp;quot;ﾐ&amp;quot;,&amp;quot;ミ&amp;quot;],[&amp;quot;ﾑ&amp;quot;,&amp;quot;ム&amp;quot;],[&amp;quot;ﾒ&amp;quot;,&amp;quot;メ&amp;quot;],[&amp;quot;ﾓ&amp;quot;,&amp;quot;モ&amp;quot;],[&amp;quot;ﾔ&amp;quot;,&amp;quot;ヤ&amp;quot;],[&amp;quot;ﾕ&amp;quot;,&amp;quot;ユ&amp;quot;],[&amp;quot;ﾖ&amp;quot;,&amp;quot;ヨ&amp;quot;],[&amp;quot;ﾗ&amp;quot;,&amp;quot;ラ&amp;quot;],[&amp;quot;ﾘ&amp;quot;,&amp;quot;リ&amp;quot;],[&amp;quot;ﾙ&amp;quot;,&amp;quot;ル&amp;quot;],[&amp;quot;ﾚ&amp;quot;,&amp;quot;レ&amp;quot;],[&amp;quot;ﾛ&amp;quot;,&amp;quot;ロ&amp;quot;],[&amp;quot;ﾜ&amp;quot;,&amp;quot;ワ&amp;quot;],[&amp;quot;ﾝ&amp;quot;,&amp;quot;ン&amp;quot;],[&amp;quot;ﾞ&amp;quot;,&amp;quot;゛&amp;quot;],[&amp;quot;ﾟ&amp;quot;,&amp;quot;゜&amp;quot;] ]) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;表外漢字→代替&lt;br /&gt;
:[https://ja.wiktionary.org/wiki/%E8%A1%A8%E5%A4%96%E6%BC%A2%E5%AD%97%E5%AD%97%E4%BD%93%E8%A1%A8%E3%81%AE%E6%BC%A2%E5%AD%97%E4%B8%80%E8%A6%A7 表外漢字字体表] 1022字のうち &amp;lt;span style=&amp;quot;background:#ffee62;&amp;quot;&amp;gt;Shift_JIS (CP932) では保存できない文字40字&amp;lt;/span&amp;gt;を、保存できる文字に置換します。&lt;br /&gt;
:{|class=&amp;quot;wikitable&amp;quot; style=&amp;quot;font:120% &#039;ヒラギノ角ゴ ProN W3&#039;,&#039;ヒラギノ角ゴ ProN&#039;,&#039;メイリオ&#039;,Meiryo,sans-serif;&amp;quot;&lt;br /&gt;
|-style=&amp;quot;background:#ffee62;&amp;quot;&lt;br /&gt;
|啞||焰||鷗||摑||麴||噓||俠||頰||軀||俱||繫||姸||鹼||嚙||攢||𠮟||繡||蔣||醬||蟬||搔||瘦||驒||簞||塡||顚||禱||瀆||吞||囊||剝||潑||醱||屛||幷||麵||萊||屢||沪||蠟&lt;br /&gt;
|-&lt;br /&gt;
|唖||焔||鴎||掴||麹||嘘||侠||頬||躯||倶||繋||妍||鹸||噛||攅||叱||繍||蒋||醤||蝉||掻||痩||騨||箪||填||顛||祷||涜||呑||嚢||剥||溌||醗||屏||并||麺||莱||屡||濾||蝋&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;pre style=&amp;quot;word-wrap:break-word;&amp;quot;&amp;gt;&lt;br /&gt;
f.push([&amp;quot;表外漢字→代替&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2017/06/25&lt;br /&gt;
  return _.replaceBatch([ [&amp;quot;\u555E&amp;quot;,&amp;quot;唖&amp;quot;],[&amp;quot;\u7130&amp;quot;,&amp;quot;焔&amp;quot;],[&amp;quot;\u9DD7&amp;quot;,&amp;quot;鴎&amp;quot;],[&amp;quot;\u6451&amp;quot;,&amp;quot;掴&amp;quot;],[&amp;quot;\u9EB4&amp;quot;,&amp;quot;麹&amp;quot;],[&amp;quot;\u5653&amp;quot;,&amp;quot;嘘&amp;quot;],[&amp;quot;\u4FE0&amp;quot;,&amp;quot;侠&amp;quot;],[&amp;quot;\u9830&amp;quot;,&amp;quot;頬&amp;quot;],[&amp;quot;\u8EC0&amp;quot;,&amp;quot;躯&amp;quot;],[&amp;quot;\u4FF1&amp;quot;,&amp;quot;倶&amp;quot;],[&amp;quot;\u7E6B&amp;quot;,&amp;quot;繋&amp;quot;],[&amp;quot;\u59F8&amp;quot;,&amp;quot;妍&amp;quot;],[&amp;quot;\u9E7C&amp;quot;,&amp;quot;鹸&amp;quot;],[&amp;quot;\u5699&amp;quot;,&amp;quot;噛&amp;quot;],[&amp;quot;\u6522&amp;quot;,&amp;quot;攅&amp;quot;],[&amp;quot;\uD842\uDF9F&amp;quot;,&amp;quot;叱&amp;quot;],[&amp;quot;\u7E61&amp;quot;,&amp;quot;繍&amp;quot;],[&amp;quot;\u8523&amp;quot;,&amp;quot;蒋&amp;quot;],[&amp;quot;\u91AC&amp;quot;,&amp;quot;醤&amp;quot;],[&amp;quot;\u87EC&amp;quot;,&amp;quot;蝉&amp;quot;],[&amp;quot;\u6414&amp;quot;,&amp;quot;掻&amp;quot;],[&amp;quot;\u7626&amp;quot;,&amp;quot;痩&amp;quot;],[&amp;quot;\u9A52&amp;quot;,&amp;quot;騨&amp;quot;],[&amp;quot;\u7C1E&amp;quot;,&amp;quot;箪&amp;quot;],[&amp;quot;\u5861&amp;quot;,&amp;quot;填&amp;quot;],[&amp;quot;\u985A&amp;quot;,&amp;quot;顛&amp;quot;],[&amp;quot;\u79B1&amp;quot;,&amp;quot;祷&amp;quot;],[&amp;quot;\u7006&amp;quot;,&amp;quot;涜&amp;quot;],[&amp;quot;\u541E&amp;quot;,&amp;quot;呑&amp;quot;],[&amp;quot;\u56CA&amp;quot;,&amp;quot;嚢&amp;quot;],[&amp;quot;\u525D&amp;quot;,&amp;quot;剥&amp;quot;],[&amp;quot;\u6F51&amp;quot;,&amp;quot;溌&amp;quot;],[&amp;quot;\u91B1&amp;quot;,&amp;quot;醗&amp;quot;],[&amp;quot;\u5C5B&amp;quot;,&amp;quot;屏&amp;quot;],[&amp;quot;\u5E77&amp;quot;,&amp;quot;并&amp;quot;],[&amp;quot;\u9EB5&amp;quot;,&amp;quot;麺&amp;quot;],[&amp;quot;\u840A&amp;quot;,&amp;quot;莱&amp;quot;],[&amp;quot;\u5C62&amp;quot;,&amp;quot;屡&amp;quot;],[&amp;quot;\u6CAA&amp;quot;,&amp;quot;濾&amp;quot;],[&amp;quot;\u881F&amp;quot;,&amp;quot;蝋&amp;quot;] ]) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;★10→16進数&lt;br /&gt;
:半角数字列を10進数値とみなし、16進数値に変換します。&lt;br /&gt;
:例＞ &amp;lt;span style=&amp;quot;background:#bfdfff;&amp;quot;&amp;gt;291／15／44015&amp;lt;/span&amp;gt; → 123／F／ABEF&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;10→16進数&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2014/05/31&lt;br /&gt;
  return _.replace(/[0-9]+/g,function(s){return Number(s).toString(16).toUpperCase()}) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
;★16→10進数&lt;br /&gt;
:半角英数字列を16進数値とみなし、10進数値に変換します。英字の大小、0x の有無は問いません。&lt;br /&gt;
:例＞ &amp;lt;span style=&amp;quot;background:#bfdfff;&amp;quot;&amp;gt;123／0x0F／abef&amp;lt;/span&amp;gt; → 291／15／44015&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;16→10進数&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2017/06/25&lt;br /&gt;
  return _.replace(/(?:0x)?([0-9a-f]+)/gi,function(_,x){return Number(&amp;quot;0x&amp;quot;+x)}) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;2進接頭辞換算&lt;br /&gt;
:半角数字列を 2&amp;lt;sup&amp;gt;10&amp;lt;/sup&amp;gt; = 1024 の倍量単位 (Ki,Mi,Gi...Yi) に変換します（小数点第3位を四捨五入）。&lt;br /&gt;
:例＞ &amp;lt;span style=&amp;quot;background:#bfdfff;&amp;quot;&amp;gt;1023／1024／54321／1,048,576／1,073,741,824&amp;lt;/span&amp;gt; → 1023／1.00Ki／53.05Ki／1.00Mi／1.00Gi&lt;br /&gt;
&amp;lt;pre style=&amp;quot;word-wrap:break-word;&amp;quot;&amp;gt;&lt;br /&gt;
f.push([&amp;quot;2進接頭辞換算&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2015/03/14&lt;br /&gt;
  var k=1024,p=&amp;quot;?KMGTPEZY&amp;quot;; return _.replace(/[0-9]+(,?[0-9]{3})+/g,function(s){var x=0,n=s.replace(/,/g,&amp;quot;&amp;quot;); if(n&amp;lt;k)return s; while(n&amp;gt;=k&amp;amp;&amp;amp;x&amp;lt;8){n/=k;x++} return n.toFixed(2)+p.charAt(x)+&amp;quot;i&amp;quot;}) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==符号化/復号化==&lt;br /&gt;
&lt;br /&gt;
;URL %エンコード／デコード(UTF-8)&lt;br /&gt;
:URL アドレスに使用されるパーセントエンコーディングの符号化/復号化を行います。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;URL %エンコード(UTF-8)&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2014/02/01&lt;br /&gt;
  return encodeURI(_).replace(/%0D%0A|%0D|%0A/g,&amp;quot;\n&amp;quot;) }]);&lt;br /&gt;
f.push([&amp;quot;URL %デコード(UTF-8)&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2014/02/01&lt;br /&gt;
  return decodeURIComponent(_) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Base64エンコード／デコード(UTF-8)&lt;br /&gt;
:[https://ja.wikipedia.org/wiki/Base64 Base64] 形式の符号化/復号化を行います。&lt;br /&gt;
:※バイナリデータ（画像や音声など）の復号化は、[編集]→[選択範囲の変換]→[Base64デコード] をご利用ください。&lt;br /&gt;
:&amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;注意点&amp;lt;/b&amp;gt;&lt;br /&gt;
:* 改行は LF (0x0A) としてエンコードされます。&lt;br /&gt;
:* A～Z a～z 0～9 + / 以外の文字（改行含む）は除去してからデコードされます。&lt;br /&gt;
&amp;lt;pre style=&amp;quot;word-wrap:break-word;&amp;quot;&amp;gt;&lt;br /&gt;
f.push([&amp;quot;Base64エンコード(UTF-8)&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2019/06/01&lt;br /&gt;
  var B=&amp;quot;ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/&amp;quot;.split(&amp;quot;&amp;quot;), asc=unescape(encodeURIComponent(_)), n=asc.length, b64=&amp;quot;&amp;quot;, x; for(var i=0;i&amp;lt;n;){x=(asc.charCodeAt(i++)&amp;lt;&amp;lt;16)|(asc.charCodeAt(i++)&amp;lt;&amp;lt;8)|(asc.charCodeAt(i++)); b64+=B[x&amp;gt;&amp;gt;&amp;gt;18&amp;amp;0x3F]+B[x&amp;gt;&amp;gt;&amp;gt;12&amp;amp;0x3F]+B[x&amp;gt;&amp;gt;&amp;gt;6&amp;amp;0x3F]+B[x&amp;amp;0x3F]} if(n%3)b64=b64.slice(0,n%3-3)+&amp;quot;===&amp;quot;.slice(n%3); return b64 }]);&lt;br /&gt;
f.push([&amp;quot;Base64デコード(UTF-8)&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2019/06/01&lt;br /&gt;
  var B=&amp;quot;ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/&amp;quot;, A={}; for(var i=0;i&amp;lt;B.length;i++){A[B.charAt(i)]=i} var b64=_.replace(/[^A-Za-z0-9+/]/g,&amp;quot;&amp;quot;).split(&amp;quot;&amp;quot;), n=b64.length, asc=&amp;quot;&amp;quot;, x; for(var i=0;i&amp;lt;n;){x=(A[b64[i++]]&amp;lt;&amp;lt;18)|(A[b64[i++]]&amp;lt;&amp;lt;12)|(A[b64[i++]]&amp;lt;&amp;lt;6)|(A[b64[i++]]); asc+=String.fromCharCode(x&amp;gt;&amp;gt;&amp;gt;16&amp;amp;0xFF,x&amp;gt;&amp;gt;&amp;gt;8&amp;amp;0xFF,x&amp;amp;0xFF)} asc=asc.replace(/(?:[\x00-\x7F]|[\xC2-\xDF][\x80-\xBF]|[\xE0-\xEF][\x80-\xBF]{2}|[\xF0-\xF7][\x80-\xBF]{3}|.){1,50}/g,function(asc){return decodeURIComponent(escape(asc))}); if(n%4)asc=asc.slice(0,n%4-4); return asc }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;\uHHHH エンコード／デコード&lt;br /&gt;
:JavaScript などで使用される \uHHHH 形式の変換を行います。※HHHH＝4桁の16進数&lt;br /&gt;
:例＞ &amp;lt;span style=&amp;quot;background:#bfdfff;&amp;quot;&amp;gt;Aわ𩸽&amp;lt;/span&amp;gt; ←→ &amp;lt;span style=&amp;quot;background:#bfdfff;&amp;quot;&amp;gt;\u0041\u308F\uD867\uDE3D&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;word-wrap:break-word;&amp;quot;&amp;gt;&lt;br /&gt;
f.push([&amp;quot;\\uHHHH エンコード&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2017/06/25&lt;br /&gt;
  return _.replace(/[^\n]/g,function(s){return &amp;quot;\\u&amp;quot;+(&amp;quot;000&amp;quot;+s.charCodeAt(0).toString(16).toUpperCase()).slice(-4)}) }]);&lt;br /&gt;
f.push([&amp;quot;\\uHHHH デコード&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2014/10/12&lt;br /&gt;
  return _.replace(/\\u([0-9A-Fa-f]{4})/g,function(_,n){return String.fromCharCode(Number(&amp;quot;0x&amp;quot;+n))}) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;\u4H \U8H エンコード／デコード&lt;br /&gt;
:Unicode で使用される \u4H および \U8H 形式の変換を行います。※4H, 8H＝4桁, 8桁の16進数&lt;br /&gt;
:例＞ &amp;lt;span style=&amp;quot;background:#bfdfff;&amp;quot;&amp;gt;Aわ𩸽&amp;lt;/span&amp;gt; ←→ &amp;lt;span style=&amp;quot;background:#bfdfff;&amp;quot;&amp;gt;\u0041\u308F\U00029E3D&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;word-wrap:break-word;&amp;quot;&amp;gt;&lt;br /&gt;
f.push([&amp;quot;\\u4H \\U8H エンコード&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2017/06/25&lt;br /&gt;
  return _.replace(/[^\n]+/g,function(s){var r=&amp;quot;&amp;quot;,u,v; for(var i=0;i&amp;lt;s.length;i++){u=s.charCodeAt(i); if(0xD800&amp;lt;=u&amp;amp;&amp;amp;u&amp;lt;=0xDBFF){v=s.charCodeAt(i+1); if(0xDC00&amp;lt;=v&amp;amp;&amp;amp;v&amp;lt;=0xDFFF){i++;u=0x10000+(u-0xD800&amp;lt;&amp;lt;10)+(v-0xDC00);r+=&amp;quot;\\U&amp;quot;+toHex(u,8);continue}} r+=&amp;quot;\\u&amp;quot;+toHex(u,4)} return r}); function toHex(n,d){return (&amp;quot;000&amp;quot;+n.toString(16).toUpperCase()).slice(-d)} }]);&lt;br /&gt;
f.push([&amp;quot;\\u4H \\U8H デコード&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2015/09/30&lt;br /&gt;
  return _.replace(/\\u([0-9A-Fa-f]{4})|\\U([0-9A-Fa-f]{8})/g,function(s,u4,U8){var n=Number(&amp;quot;0x&amp;quot;+(u4||U8)); return (n&amp;lt;=0xFFFF)?String.fromCharCode(n): (n&amp;lt;=0x10FFFF)?String.fromCharCode(n-0x10000&amp;gt;&amp;gt;10|0xD800,n&amp;amp;0x3FF|0xDC00): s}) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;\x{hex} エンコード／デコード&lt;br /&gt;
:Mery の正規表現 (鬼車/鬼雲) などで使用される \x{hex} 形式の変換を行います。※hex＝1～6桁の16進数&lt;br /&gt;
:例＞ &amp;lt;span style=&amp;quot;background:#bfdfff;&amp;quot;&amp;gt;Aわ𩸽&amp;lt;/span&amp;gt; ←→ &amp;lt;span style=&amp;quot;background:#bfdfff;&amp;quot;&amp;gt;\x{41}\x{308f}\x{29e3d}&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;word-wrap:break-word;&amp;quot;&amp;gt;&lt;br /&gt;
f.push([&amp;quot;\\x{hex} エンコード&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2017/06/25&lt;br /&gt;
  return _.replace(/[^\n]+/g,function(s){var r=&amp;quot;&amp;quot;,u,v; for(var i=0;i&amp;lt;s.length;i++){u=s.charCodeAt(i); if(0xD800&amp;lt;=u&amp;amp;&amp;amp;u&amp;lt;=0xDBFF){v=s.charCodeAt(i+1); if(0xDC00&amp;lt;=v&amp;amp;&amp;amp;v&amp;lt;=0xDFFF){i++;u=0x10000+(u-0xD800&amp;lt;&amp;lt;10)+(v-0xDC00)}} r+=(&amp;quot;\\x{&amp;quot;+u.toString(16)+&amp;quot;}&amp;quot;)} return r}) }]);&lt;br /&gt;
f.push([&amp;quot;\\x{hex} デコード&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2015/03/14&lt;br /&gt;
  return _.replace(/\\x\{([0-9A-Fa-f]{1,6})\}/g,function(s,n){n=Number(&amp;quot;0x&amp;quot;+n); return (n&amp;lt;=0xFFFF)?String.fromCharCode(n): (n&amp;lt;=0x10FFFF)?String.fromCharCode(n-0x10000&amp;gt;&amp;gt;10|0xD800,n&amp;amp;0x3FF|0xDC00): s}) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;&amp;amp;#dec; エンコード／デコード&lt;br /&gt;
:HTML などで使用される &amp;amp;#dec; 形式の変換を行います。※dec＝1～7桁の10進数&lt;br /&gt;
:例＞ &amp;lt;span style=&amp;quot;background:#bfdfff;&amp;quot;&amp;gt;Aわ𩸽&amp;lt;/span&amp;gt; ←→ &amp;lt;span style=&amp;quot;background:#bfdfff;&amp;quot;&amp;gt;&amp;amp;amp;#65;&amp;amp;amp;#12431;&amp;amp;amp;#171581;&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;word-wrap:break-word;&amp;quot;&amp;gt;&lt;br /&gt;
f.push([&amp;quot;&amp;amp;&amp;amp;#dec; エンコード&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2017/06/25&lt;br /&gt;
  return _.replace(/[^\n]+/g,function(s){var r=&amp;quot;&amp;quot;,u,v; for(var i=0;i&amp;lt;s.length;i++){u=s.charCodeAt(i); if(0xD800&amp;lt;=u&amp;amp;&amp;amp;u&amp;lt;=0xDBFF){v=s.charCodeAt(i+1); if(0xDC00&amp;lt;=v&amp;amp;&amp;amp;v&amp;lt;=0xDFFF){i++;u=0x10000+(u-0xD800&amp;lt;&amp;lt;10)+(v-0xDC00)}} r+=(&amp;quot;&amp;amp;#&amp;quot;+u+&amp;quot;;&amp;quot;)} return r}) }]);&lt;br /&gt;
f.push([&amp;quot;&amp;amp;&amp;amp;#dec; デコード&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2015/03/14&lt;br /&gt;
  return _.replace(/&amp;amp;#([0-9]{1,7});/g,function(s,n){n=Number(n); return (n&amp;lt;=0xFFFF)?String.fromCharCode(n): (n&amp;lt;=0x10FFFF)?String.fromCharCode(n-0x10000&amp;gt;&amp;gt;10|0xD800,n&amp;amp;0x3FF|0xDC00): s}) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;&amp;amp;#xHEX; エンコード／デコード&lt;br /&gt;
:HTML などで使用される &amp;amp;#xHEX; 形式の変換を行います。※HEX＝1～6桁の16進数&lt;br /&gt;
:例＞ &amp;lt;span style=&amp;quot;background:#bfdfff;&amp;quot;&amp;gt;Aわ𩸽&amp;lt;/span&amp;gt; ←→ &amp;lt;span style=&amp;quot;background:#bfdfff;&amp;quot;&amp;gt;&amp;amp;amp;#x41;&amp;amp;amp;#x308F;&amp;amp;amp;#x29E3D;&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;word-wrap:break-word;&amp;quot;&amp;gt;&lt;br /&gt;
f.push([&amp;quot;&amp;amp;&amp;amp;#xHEX; エンコード&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2017/06/25&lt;br /&gt;
  return _.replace(/[^\n]+/g,function(s){var r=&amp;quot;&amp;quot;,u,v; for(var i=0;i&amp;lt;s.length;i++){u=s.charCodeAt(i); if(0xD800&amp;lt;=u&amp;amp;&amp;amp;u&amp;lt;=0xDBFF){v=s.charCodeAt(i+1); if(0xDC00&amp;lt;=v&amp;amp;&amp;amp;v&amp;lt;=0xDFFF){i++;u=0x10000+(u-0xD800&amp;lt;&amp;lt;10)+(v-0xDC00)}} r+=(&amp;quot;&amp;amp;#x&amp;quot;+u.toString(16).toUpperCase()+&amp;quot;;&amp;quot;)} return r}) }]);&lt;br /&gt;
f.push([&amp;quot;&amp;amp;&amp;amp;#xHEX; デコード&amp;quot;,&amp;quot;s&amp;quot;,function(_){ //2017/06/25&lt;br /&gt;
  return _.replace(/&amp;amp;#[Xx]([0-9A-Fa-f]{1,6});/g,function(s,n){n=Number(&amp;quot;0x&amp;quot;+n); return (n&amp;lt;=0xFFFF)?String.fromCharCode(n): (n&amp;lt;=0x10FFFF)?String.fromCharCode(n-0x10000&amp;gt;&amp;gt;10|0xD800,n&amp;amp;0x3FF|0xDC00): s}) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==拡張コード用==&lt;br /&gt;
&lt;br /&gt;
;拡張コード テンプレート&lt;br /&gt;
:拡張コードの雛形を挿入します。コマンドを自作したい場合にご利用ください。&lt;br /&gt;
&amp;lt;pre style=&amp;quot;word-wrap:break-word;&amp;quot;&amp;gt;&lt;br /&gt;
f.push([&amp;quot;拡張コード テンプレート&amp;quot;,function(f){ //2019/06/01&lt;br /&gt;
f.push([&amp;quot;コマンド&amp;quot;,&amp;quot;&amp;quot;,function(_,$){&lt;br /&gt;
  $.StartOfLine(); return [&#039;f.push([&amp;quot;コマンド&amp;quot;,&amp;quot;&amp;quot;,function(_,$){\n  &#039; , &#039; }]);\n&#039;] }]);&lt;br /&gt;
f.push([&amp;quot;コマンド s (選択必須)&amp;quot;,&amp;quot;&amp;quot;,function(_,$){&lt;br /&gt;
  $.StartOfLine(); return [&#039;f.push([&amp;quot;コマンド&amp;quot;,&amp;quot;s&amp;quot;,function(_,$){\n  return _.replace(&#039; , &#039;) }]);\n&#039;] }]);&lt;br /&gt;
f.push([&amp;quot;コマンド L (行選択)&amp;quot;,&amp;quot;&amp;quot;,function(_,$){&lt;br /&gt;
  $.StartOfLine(); return [&#039;f.push([&amp;quot;コマンド&amp;quot;,&amp;quot;L&amp;quot;,function(_,$){\n  return _.replace(&#039; , &#039;) }]);\n&#039;] }]);&lt;br /&gt;
f.push([&amp;quot;サブメニュー&amp;quot;,&amp;quot;L&amp;quot;,function(_){&lt;br /&gt;
  return [&#039;f.push([&amp;quot;&#039; , &#039;メニュー&#039; , &#039;&amp;quot;,function(f){\n&#039;+ _ +&#039;\n}]);&#039;] }]);&lt;br /&gt;
f.push([&amp;quot;セパレーター&amp;quot;,&amp;quot;&amp;quot;,function(_,$){&lt;br /&gt;
  $.StartOfLine(); return [&#039;f.push([&amp;quot;--------&amp;quot;]);\n&#039; , &#039;&#039;] }]);&lt;br /&gt;
}]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;replaceBatch 補助&lt;br /&gt;
:[[#replaceBatch メソッド|replaceBatch メソッド]]用の配列作成を補助するコマンド群です。&lt;br /&gt;
:※書式の解析精度は不完全です。検索/置換文字に &amp;lt;code&amp;gt;&amp;quot; &#039; , / \ ]&amp;lt;/code&amp;gt; を含む配列は誤変換する恐れがあります。&lt;br /&gt;
:※書式ミスは考慮していません。誤変換した場合は書式ミスの可能性も疑ってみてください。&lt;br /&gt;
&lt;br /&gt;
;交換 [&amp;quot;a&amp;quot;,&amp;quot;b&amp;quot;] → [&amp;quot;b&amp;quot;,&amp;quot;a&amp;quot;]&lt;br /&gt;
:配列の検索文字列と置換文字列を入れ替えます。正規表現は検索側のみ使用可なので交換しません（例では &amp;lt;code&amp;gt;■,□&amp;lt;/code&amp;gt; のペアが該当）。&lt;br /&gt;
:例＞ &amp;lt;code style=&amp;quot;background:#bfdfff;&amp;quot;&amp;gt;[&amp;quot;●&amp;quot;,&amp;quot;○&amp;quot;],[&#039;▲&#039;,&#039;△&#039;],[/■/g,&amp;quot;□&amp;quot;],[&amp;quot;◆&amp;quot;,&#039;◇&#039;]&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;[&amp;quot;○&amp;quot;,&amp;quot;●&amp;quot;],[&#039;△&#039;,&#039;▲&#039;],[/■/g,&amp;quot;□&amp;quot;],[&#039;◇&#039;,&amp;quot;◆&amp;quot;]&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;word-wrap:break-word;&amp;quot;&amp;gt;&lt;br /&gt;
f.push([&#039;交換 [&amp;quot;a&amp;quot;,&amp;quot;b&amp;quot;] → [&amp;quot;b&amp;quot;,&amp;quot;a&amp;quot;]&#039;,&amp;quot;s&amp;quot;,function(_){ //2014/05/31&lt;br /&gt;
  return _.replace(/\[(&amp;quot;[^\\&amp;quot;]*(?:\\.[^\\&amp;quot;]*)*&amp;quot;|&#039;[^\\&#039;]*(?:\\.[^\\&#039;]*)*&#039;),(&amp;quot;[^\\&amp;quot;]*(?:\\.[^\\&amp;quot;]*)*&amp;quot;|&#039;[^\\&#039;]*(?:\\.[^\\&#039;]*)*&#039;)\]/g,&amp;quot;[$2,$1]&amp;quot;) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;分割 [&amp;quot;a&amp;quot;,&amp;quot;b&amp;quot;] → &amp;quot;a&amp;quot; › &amp;quot;b&amp;quot;↵&lt;br /&gt;
;結合 &amp;quot;a&amp;quot; › &amp;quot;b&amp;quot;↵ → [&amp;quot;a&amp;quot;,&amp;quot;b&amp;quot;]&lt;br /&gt;
:配列と TSV 形式を変換します。&lt;br /&gt;
&amp;lt;pre style=&amp;quot;word-wrap:break-word;&amp;quot;&amp;gt;&lt;br /&gt;
f.push([&#039;分割 [&amp;quot;a&amp;quot;,&amp;quot;b&amp;quot;] → &amp;quot;a&amp;quot; \u203A &amp;quot;b&amp;quot;\u21B5&#039;,&amp;quot;L&amp;quot;,function(_){ //2017/06/25&lt;br /&gt;
  return _.replace(/,?\[(&amp;quot;[^\\&amp;quot;]*(?:\\.[^\\&amp;quot;]*)*&amp;quot;|&#039;[^\\&#039;]*(?:\\.[^\\&#039;]*)*&#039;|\/.*?\/[gim]*),(&amp;quot;[^\\&amp;quot;]*(?:\\.[^\\&amp;quot;]*)*&amp;quot;|&#039;[^\\&#039;]*(?:\\.[^\\&#039;]*)*&#039;)\],?/g,&amp;quot;\n$1\t$2\n&amp;quot;).replace(/\n\n/g,&amp;quot;\n&amp;quot;) }]);&lt;br /&gt;
f.push([&#039;結合 &amp;quot;a&amp;quot; \u203A &amp;quot;b&amp;quot;\u21B5 → [&amp;quot;a&amp;quot;,&amp;quot;b&amp;quot;]&#039;,&amp;quot;L&amp;quot;,function(_){ //2015/03/14&lt;br /&gt;
  return _.replace(/\n?(((&amp;quot;.*&amp;quot;|&#039;.*&#039;|\/.*\/[gim]*)\t(&amp;quot;.*&amp;quot;|&#039;.*&#039;)\n*)+)/g,function(s,r){return r.replace(/(&amp;quot;.*&amp;quot;|&#039;.*&#039;|\/.*\/[gim]*)\t(&amp;quot;.*&amp;quot;|&#039;.*&#039;)\n*/g,&amp;quot;[$1,$2],&amp;quot;).replace(/,$/,&amp;quot;&amp;quot;)}) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=拡張コード：書式=&lt;br /&gt;
&lt;br /&gt;
==コマンド==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
f.push([&amp;quot;コマンド名&amp;quot;,&amp;quot;オプション&amp;quot;,function(引数){ 処理 }]);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
;オプション&lt;br /&gt;
:{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
| &amp;lt;code&amp;gt;s&amp;lt;/code&amp;gt; || 実行に範囲選択を要求 (require selection)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;c&amp;lt;/code&amp;gt; || 実行にクリップボードを要求 (require clipboard)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;L&amp;lt;/code&amp;gt; || 行選択してから処理 (select Line)&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;O&amp;lt;/code&amp;gt; || 非選択時はすべて選択してから処理 (select OR all)&amp;lt;br&amp;gt;※実験的機能（変更・廃止の可能性あり）&lt;br /&gt;
|}&lt;br /&gt;
:複数指定する場合、空白で区切ります。順序は問いません。&amp;lt;br&amp;gt;※仕様上、&amp;lt;code&amp;gt;0-9 A-Z a-z _&amp;lt;/code&amp;gt; 以外の文字ならば区切りと判定されますが、空白を推奨します。&lt;br /&gt;
;引数&lt;br /&gt;
:第1引数に [[マクロリファレンス:Selection_インターフェイス#Text_プロパティ|Document.Selection.Text]] が、&amp;lt;br&amp;gt;第2引数に [[マクロリファレンス:Selection_インターフェイス|Document.Selection]] が渡されます。&lt;br /&gt;
;処理&lt;br /&gt;
:String (文字列) か Array (配列) を return すると、選択範囲を置換してカーソルを移動します。それ以外 (undefined など) の場合は、選択範囲に対し何もしません。&lt;br /&gt;
:なお、処理の途中で選択範囲が変化した場合、変化先で置換が行われます。&lt;br /&gt;
:{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 例 !! 動作&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;quot;abcd&amp;quot;&amp;lt;/code&amp;gt; || abcd に置換後、abcd を選択 = &amp;lt;code&amp;gt;[&amp;quot;&amp;quot;,&amp;quot;abcd&amp;quot;,&amp;quot;&amp;quot;]&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;[&amp;quot;ab&amp;quot;,&amp;quot;cd&amp;quot;]&amp;lt;/code&amp;gt; || abcd に置換後、ab と cd の間に移動&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;[&amp;quot;ab&amp;quot;,&amp;quot;cd&amp;quot;,&amp;quot;&amp;quot;]&amp;lt;/code&amp;gt; || abcd に置換後、cd を選択&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==サブメニュー==&lt;br /&gt;
サブメニューを設けます。サブメニュー内サブメニュー（階層化）も可能です。&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
f.push([&amp;quot;メニュー名&amp;quot;,function(f){&lt;br /&gt;
/* コマンド or サブメニュー or セパレーター */&lt;br /&gt;
}]);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==セパレーター==&lt;br /&gt;
セパレーター（区切り）を設けます。&amp;lt;br&amp;gt;※半角ハイフン &amp;lt;code&amp;gt;-&amp;lt;/code&amp;gt; は何個でも含められますが、他の文字は含められません。&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
f.push([&amp;quot;--------&amp;quot;]);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==replaceBatch メソッド==&lt;br /&gt;
&amp;lt;code&amp;gt;replace&amp;lt;/code&amp;gt; を連鎖させる記法（メソッドチェーン）の省略記法です。&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
f.push([&amp;quot;例 replaceBatch&amp;quot;,&amp;quot;s&amp;quot;,function(_){&lt;br /&gt;
  return _.replaceBatch([ [&amp;quot;ABC&amp;quot;,&amp;quot;DEF&amp;quot;],[&amp;quot;(1)&amp;quot;,&amp;quot;①&amp;quot;],[/GHI/gi,&amp;quot;JKL&amp;quot;] ]) }]);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
上記の処理は、下記と同じ処理になります。&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
f.push([&amp;quot;例 replace&amp;quot;,&amp;quot;s&amp;quot;,function(_){&lt;br /&gt;
  return _.replace(/ABC/g,&amp;quot;DEF&amp;quot;).replace(/\(1\)/g,&amp;quot;①&amp;quot;).replace(/GHI/gi,&amp;quot;JKL&amp;quot;) }]);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Masme</name></author>
	</entry>
	<entry>
		<id>https://www.haijin-boys.com/wiki/index.php?title=%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:%E3%83%86%E3%82%AD%E3%82%B9%E3%83%88%E6%95%B4%E5%BD%A2.zip&amp;diff=4374</id>
		<title>ファイル:テキスト整形.zip</title>
		<link rel="alternate" type="text/html" href="https://www.haijin-boys.com/wiki/index.php?title=%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:%E3%83%86%E3%82%AD%E3%82%B9%E3%83%88%E6%95%B4%E5%BD%A2.zip&amp;diff=4374"/>
		<updated>2019-06-01T14:30:30Z</updated>

		<summary type="html">&lt;p&gt;Masme: 収録コマンド一覧を更新&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==収録コマンド一覧 (2019/06/01)==&lt;br /&gt;
* 小説/作文&lt;br /&gt;
** 地の文の行頭を字下げ&lt;br /&gt;
** 括弧前の句読点を除去&lt;br /&gt;
** ！？を半角/全角に整形&lt;br /&gt;
** 連続する！？を整形&lt;br /&gt;
** 三点リーダー(……)に整形&lt;br /&gt;
** 全角ダッシュ(――)に整形&lt;br /&gt;
* Web/HTML&lt;br /&gt;
** HTMLタグを除去&lt;br /&gt;
** ―――― (区切り)&lt;br /&gt;
** 実体参照 &amp;amp;&amp;quot;&amp;lt;&amp;gt; → &amp;amp;xxx;&lt;br /&gt;
** 実体参照 &amp;amp;xxx; → ␣&amp;gt;&amp;lt;&amp;quot;&amp;amp;&lt;br /&gt;
** ―――― (区切り)&lt;br /&gt;
** 数値参照 &amp;amp;#dec; に変換&lt;br /&gt;
** 数値参照 &amp;amp;#xHEX; に変換&lt;br /&gt;
** 数値参照を文字に変換&lt;br /&gt;
* ―――― (区切り)&lt;br /&gt;
* 挿入/貼付&lt;br /&gt;
** 半角/全角の間を空ける&lt;br /&gt;
** 半角英数/全角の間を空ける&lt;br /&gt;
** 数値を3桁,区切りに&lt;br /&gt;
** ―――― (区切り)&lt;br /&gt;
** 行頭に貼り付け&lt;br /&gt;
** 行末に貼り付け&lt;br /&gt;
** 行頭に挿入...&lt;br /&gt;
** 行末に挿入...&lt;br /&gt;
* 除去/削除&lt;br /&gt;
** 空白文字を除去&lt;br /&gt;
** 行頭行末の空白を除去&lt;br /&gt;
** 行頭の空白を除去&lt;br /&gt;
** 行末の空白を除去&lt;br /&gt;
** ―――― (区切り)&lt;br /&gt;
** 空白行を削除&lt;br /&gt;
** 重複行を単一化&lt;br /&gt;
** 連続する重複行を単一化&lt;br /&gt;
** ―――― (区切り)&lt;br /&gt;
** 入力文字列を含む行を削除...&lt;br /&gt;
** 入力文字列を含まない行を削除...&lt;br /&gt;
* 並べ替え&lt;br /&gt;
** 行を昇順並べ(Unicode)&lt;br /&gt;
** 行を降順並べ(Unicode)&lt;br /&gt;
** 行を逆順並べ&lt;br /&gt;
* 字種/数値変換&lt;br /&gt;
** 半角英数→全角&lt;br /&gt;
** 全角英数→半角&lt;br /&gt;
** 半角カナ→全角&lt;br /&gt;
** 全角カナ→半角&lt;br /&gt;
** ―――― (区切り)&lt;br /&gt;
** 全角かな→カナ&lt;br /&gt;
** 全角カナ→かな(ヴヵヶ除く)&lt;br /&gt;
** ―――― (区切り)&lt;br /&gt;
** 10→16進数&lt;br /&gt;
** 16→10進数&lt;br /&gt;
* ―――― (区切り)&lt;br /&gt;
* 行頭 // を挿入/削除&lt;br /&gt;
* このマクロを編集&lt;/div&gt;</summary>
		<author><name>Masme</name></author>
	</entry>
	<entry>
		<id>https://www.haijin-boys.com/wiki/index.php?title=%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:%E3%83%86%E3%82%AD%E3%82%B9%E3%83%88%E6%95%B4%E5%BD%A2.zip&amp;diff=4373</id>
		<title>ファイル:テキスト整形.zip</title>
		<link rel="alternate" type="text/html" href="https://www.haijin-boys.com/wiki/index.php?title=%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:%E3%83%86%E3%82%AD%E3%82%B9%E3%83%88%E6%95%B4%E5%BD%A2.zip&amp;diff=4373"/>
		<updated>2019-06-01T14:29:16Z</updated>

		<summary type="html">&lt;p&gt;Masme: Masme が ファイル:テキスト整形.zip の新しいバージョンを アップロードしました&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==収録コマンド一覧 (2018/01/15 最新版)==&lt;br /&gt;
&lt;br /&gt;
* 小説/作文&lt;br /&gt;
** 地の文の行頭を字下げ&lt;br /&gt;
** 括弧前の句読点を除去&lt;br /&gt;
** ！？を半角/全角に整形&lt;br /&gt;
** 連続する！？を整形&lt;br /&gt;
** 三点リーダー(……)に整形&lt;br /&gt;
** 全角ダッシュ(――)に整形&lt;br /&gt;
* Web/HTML&lt;br /&gt;
** HTMLタグを除去&lt;br /&gt;
** ―――― (区切り)&lt;br /&gt;
** 実体参照 &amp;amp;&amp;quot;&amp;lt;&amp;gt; → &amp;amp;xxx;&lt;br /&gt;
** 実体参照 &amp;amp;xxx; → ␣&amp;gt;&amp;lt;&amp;quot;&amp;amp;&lt;br /&gt;
** ―――― (区切り)&lt;br /&gt;
** 数値参照 &amp;amp;#dec; に変換&lt;br /&gt;
** 数値参照 &amp;amp;#xHEX; に変換&lt;br /&gt;
** 数値参照を文字に変換&lt;br /&gt;
* ―――― (区切り)&lt;br /&gt;
* 挿入/貼付&lt;br /&gt;
** 半角/全角の間を空ける&lt;br /&gt;
** 半角英数/全角の間を空ける&lt;br /&gt;
** 数値を3桁,区切りに&lt;br /&gt;
** ―――― (区切り)&lt;br /&gt;
** 各行行頭に貼り付け&lt;br /&gt;
** 各行行末に貼り付け&lt;br /&gt;
** 各行行頭に文字列付加...&lt;br /&gt;
** 各行行末に文字列付加...&lt;br /&gt;
* 除去/削除&lt;br /&gt;
** 空白文字を除去&lt;br /&gt;
** 行頭行末の空白を除去&lt;br /&gt;
** 行頭の空白を除去&lt;br /&gt;
** 行末の空白を除去&lt;br /&gt;
** ―――― (区切り)&lt;br /&gt;
** 空白行を削除&lt;br /&gt;
** 重複行を単一化&lt;br /&gt;
** 連続する重複行を単一化&lt;br /&gt;
** ―――― (区切り)&lt;br /&gt;
** 入力文字列を含む行を削除...&lt;br /&gt;
** 入力文字列を含まない行を削除...&lt;br /&gt;
* 並べ替え&lt;br /&gt;
** 行を昇順並べ(Unicode)&lt;br /&gt;
** 行を降順並べ(Unicode)&lt;br /&gt;
** 行を逆順並べ&lt;br /&gt;
* 字種/数値変換&lt;br /&gt;
** 半角英数→全角&lt;br /&gt;
** 全角英数→半角&lt;br /&gt;
** 半角カナ→全角&lt;br /&gt;
** 全角カナ→半角&lt;br /&gt;
** ―――― (区切り)&lt;br /&gt;
** 全角かな→カナ&lt;br /&gt;
** 全角カナ→かな(ヴヵヶ除く)&lt;br /&gt;
** ―――― (区切り)&lt;br /&gt;
** 10→16進数&lt;br /&gt;
** 16→10進数&lt;br /&gt;
* ―――― (区切り)&lt;br /&gt;
* 行頭 // を付加/削除&lt;/div&gt;</summary>
		<author><name>Masme</name></author>
	</entry>
	<entry>
		<id>https://www.haijin-boys.com/wiki/index.php?title=%E6%A4%9C%E7%B4%A2(SJIS%E4%BB%A5%E5%A4%96)&amp;diff=4372</id>
		<title>検索(SJIS以外)</title>
		<link rel="alternate" type="text/html" href="https://www.haijin-boys.com/wiki/index.php?title=%E6%A4%9C%E7%B4%A2(SJIS%E4%BB%A5%E5%A4%96)&amp;diff=4372"/>
		<updated>2019-06-01T14:27:48Z</updated>

		<summary type="html">&lt;p&gt;Masme: マクロ更新&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Shift_JIS (CP932) で保存できない Unicode 文字を検索します。&lt;br /&gt;
&lt;br /&gt;
Mery の検索機能を利用しているため、下記の特徴があります。&lt;br /&gt;
* 検索文字列および検索強調が変更されます。&lt;br /&gt;
* マクロ実行後は「次を検索(F3)」「前を検索(Shift+F3)」で次/前を検索できます。&lt;br /&gt;
&lt;br /&gt;
==ソースコード==&lt;br /&gt;
ダウンロード→ &amp;lt;b&amp;gt;[[メディア:検索(SJIS以外).zip|検索(SJIS以外).zip]]&amp;lt;/b&amp;gt; (2019/06/01)&lt;br /&gt;
&lt;br /&gt;
* 拙作ですがアイコンファイル (検索(SJIS以外).ico) を同梱してあります。&amp;lt;br&amp;gt;Mery 2.4.7 以降の場合、マクロ (検索(SJIS以外).js) と同じフォルダに、&amp;lt;br&amp;gt;Mery 2.4.6 以前の場合、Mery.exe と同じフォルダに、&amp;lt;br&amp;gt;アイコンファイルを配置しておくとツールバーにアイコンが読み込まれます。&lt;br /&gt;
&lt;br /&gt;
おまけ→ &amp;lt;b&amp;gt;[[メディア:検索強調を解除.zip|検索強調を解除.zip]]&amp;lt;/b&amp;gt; (2019/06/01)&lt;br /&gt;
&lt;br /&gt;
* 「検索文字列の強調を解除」をマクロで再現したものです。アイコンファイルも同梱してあります。&lt;br /&gt;
&lt;br /&gt;
==更新履歴==&lt;br /&gt;
[[ファイル:検索(SJIS以外).zip]] / [[ファイル:検索強調を解除.zip]]&lt;br /&gt;
&lt;br /&gt;
* 2019/06/01&lt;br /&gt;
** アイコンを一部変更。カラーパレットを調整。&lt;br /&gt;
*** (SJIS以外) 双眼鏡を中央下寄せ。&lt;br /&gt;
*** (強調を解除) 全体的に下寄せ。帯の色を緑→橙に。16x16の帯を長く。24x24の双眼鏡を大きく。&lt;br /&gt;
* 2017/06/26&lt;br /&gt;
** 単独サロゲートは検索対象外とした（仕様上、正しく検索できないため）。&lt;br /&gt;
* 2017/06/25&lt;br /&gt;
** アイコンファイルに24x24・32x32・48x48の画像を追加。&lt;br /&gt;
** 変数を使用しないことにした。&lt;br /&gt;
* 2015/12/26&lt;br /&gt;
** アイコンの指定先を &amp;quot;My Macros\検索(SJIS以外).ico&amp;quot; → &amp;quot;検索(SJIS以外).ico&amp;quot; に変更。&lt;br /&gt;
** アイコンの指定先を &amp;quot;My Macros\検索強調を解除.ico&amp;quot; → &amp;quot;検索強調を解除.ico&amp;quot; に変更。&lt;br /&gt;
* 2014/09/16&lt;br /&gt;
** 初版公開。&lt;br /&gt;
&lt;br /&gt;
==既知の不具合==&lt;br /&gt;
* 単独サロゲートは検索対象外です。&lt;br /&gt;
*: 仕様上、単独サロゲートを正しく検索できないため、非対応としています。&lt;/div&gt;</summary>
		<author><name>Masme</name></author>
	</entry>
	<entry>
		<id>https://www.haijin-boys.com/wiki/index.php?title=%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:%E6%A4%9C%E7%B4%A2%E5%BC%B7%E8%AA%BF%E3%82%92%E8%A7%A3%E9%99%A4.zip&amp;diff=4371</id>
		<title>ファイル:検索強調を解除.zip</title>
		<link rel="alternate" type="text/html" href="https://www.haijin-boys.com/wiki/index.php?title=%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:%E6%A4%9C%E7%B4%A2%E5%BC%B7%E8%AA%BF%E3%82%92%E8%A7%A3%E9%99%A4.zip&amp;diff=4371"/>
		<updated>2019-06-01T14:25:57Z</updated>

		<summary type="html">&lt;p&gt;Masme: Masme が ファイル:検索強調を解除.zip の新しいバージョンを アップロードしました&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;検索強調を解除.js&lt;/div&gt;</summary>
		<author><name>Masme</name></author>
	</entry>
	<entry>
		<id>https://www.haijin-boys.com/wiki/index.php?title=%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:%E6%A4%9C%E7%B4%A2(SJIS%E4%BB%A5%E5%A4%96).zip&amp;diff=4370</id>
		<title>ファイル:検索(SJIS以外).zip</title>
		<link rel="alternate" type="text/html" href="https://www.haijin-boys.com/wiki/index.php?title=%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:%E6%A4%9C%E7%B4%A2(SJIS%E4%BB%A5%E5%A4%96).zip&amp;diff=4370"/>
		<updated>2019-06-01T14:25:19Z</updated>

		<summary type="html">&lt;p&gt;Masme: Masme が ファイル:検索(SJIS以外).zip の新しいバージョンを アップロードしました&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;検索(SJIS以外).js&lt;/div&gt;</summary>
		<author><name>Masme</name></author>
	</entry>
	<entry>
		<id>https://www.haijin-boys.com/wiki/index.php?title=%E3%82%B3%E3%83%A1%E3%83%B3%E3%83%88%E3%83%9E%E3%83%BC%E3%82%AF%E4%BB%98%E3%81%91%E5%A4%96%E3%81%97&amp;diff=4369</id>
		<title>コメントマーク付け外し</title>
		<link rel="alternate" type="text/html" href="https://www.haijin-boys.com/wiki/index.php?title=%E3%82%B3%E3%83%A1%E3%83%B3%E3%83%88%E3%83%9E%E3%83%BC%E3%82%AF%E4%BB%98%E3%81%91%E5%A4%96%E3%81%97&amp;diff=4369"/>
		<updated>2019-06-01T14:24:02Z</updated>

		<summary type="html">&lt;p&gt;Masme: masme版を更新&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= 手石 版 (2014/03) =&lt;br /&gt;
コメントマークの付け外しをするマクロです。&amp;lt;br&amp;gt;&lt;br /&gt;
js 以外の拡張子に対応させる時は、最後の関数に追加してください。&lt;br /&gt;
&lt;br /&gt;
== 更新履歴 ==&lt;br /&gt;
* 2013/03/28&lt;br /&gt;
** 無題のときに対応しました。&lt;br /&gt;
* 2014/03/22&lt;br /&gt;
** できるだけ短くしてみました。&lt;br /&gt;
&lt;br /&gt;
== ソースコード ==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
// コメントマーク.js&lt;br /&gt;
// 行頭コメントマークを付けたり外したり。&lt;br /&gt;
// 空白文字の後ろにあっても外す。つけるときは行頭に。&lt;br /&gt;
&lt;br /&gt;
var sel = Editor.ActiveDocument.Selection;&lt;br /&gt;
var ty = sel.GetTopPointY( mePosLogical );&lt;br /&gt;
var bx = sel.GetBottomPointX( mePosLogical );&lt;br /&gt;
var by = sel.GetBottomPointY( mePosLogical );&lt;br /&gt;
if ( bx == 1 &amp;amp;&amp;amp; ty != by ){ by--; };&lt;br /&gt;
sel.SetActivePoint( mePosLogical, 1, ty, false );&lt;br /&gt;
sel.SetActivePoint( mePosLogical, 1, by+1, true );&lt;br /&gt;
&lt;br /&gt;
var mark = commentMark();&lt;br /&gt;
var reg = new RegExp( &amp;quot;^([ \t]*&amp;quot; + mark + &amp;quot;\\s?)?(?=.)&amp;quot;, &amp;quot;mg&amp;quot; );&lt;br /&gt;
mark += &amp;quot; &amp;quot;;&lt;br /&gt;
&lt;br /&gt;
sel.Text = sel.Text.replace( reg, function( s0, s1 ){ return ( s1 == undefined )? mark : &amp;quot;&amp;quot; } );&lt;br /&gt;
&lt;br /&gt;
function commentMark(){&lt;br /&gt;
	switch( Document.Mode.toLowerCase() ){&lt;br /&gt;
	case &amp;quot;text&amp;quot; : return &amp;quot;//&amp;quot;;&lt;br /&gt;
	case &amp;quot;javascript&amp;quot; : return &amp;quot;//&amp;quot;;&lt;br /&gt;
	case &amp;quot;tex&amp;quot; : return &amp;quot;%&amp;quot;;&lt;br /&gt;
	case &amp;quot;ruby&amp;quot; : return &amp;quot;#&amp;quot;;&lt;br /&gt;
	default : return Prompt( &amp;quot;コメントマーク？&amp;quot;, &amp;quot;//&amp;quot;);&lt;br /&gt;
	};&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= masme 版 =&lt;br /&gt;
マクロ「[[テキスト整形]]」の「行頭 // を挿入/削除」を独立・改造したものです。&amp;lt;br&amp;gt;&lt;br /&gt;
論理行頭にコメント文字が有れば削除（アンコメント）し、無ければ挿入（コメントアウト）します。&lt;br /&gt;
&lt;br /&gt;
* 空白行（改行/半角空白/水平タブのみの行）はコメントアウトしないようにしました。&lt;br /&gt;
* 初期設定では、インデントされたコメント文字には対応していません。&amp;lt;br&amp;gt;「indent」変数を「false」から「true」に書き換えると、手石 版のように行頭空白後のコメント文字も削除するようになります。&amp;lt;br&amp;gt;インデントへの対応は、手石 版と同様に削除限定です。挿入するときは論理行頭になります。&lt;br /&gt;
* 編集モードによる定義切替は、マクロ「[[Eclipse風コメントアウト]]」を参考にしました。&lt;br /&gt;
&lt;br /&gt;
== 更新履歴 ==&lt;br /&gt;
* 2019/06/01&lt;br /&gt;
** コメント文字を付け外しした次の行に変更行の印がつかないようにした。&lt;br /&gt;
**: 末尾の改行（次の行頭）を範囲に含めず書き換えるように変更。&lt;br /&gt;
* 2016/02/28&lt;br /&gt;
** 編集モードによる定義切替が正常に機能していないミスを修正。&lt;br /&gt;
* 2015/02/14&lt;br /&gt;
** 特殊文字があると誤動作する不具合を再修正。&lt;br /&gt;
* 2015/02/14&lt;br /&gt;
** 「行コメント文字の定義」に正規表現の特殊文字があると誤動作する不具合を修正。&lt;br /&gt;
** 矩形選択（始点or終点が左下かつ論理行頭）時、下端の行が範囲から漏れる不具合を修正。&lt;br /&gt;
** テキストの処理方法を変更。&lt;br /&gt;
* 2014/02/22&lt;br /&gt;
** 初版公開。&lt;br /&gt;
&lt;br /&gt;
== ソースコード ==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
//■行コメントのアン・アウト&lt;br /&gt;
//　2014/02/11-2019/06/01&lt;br /&gt;
//・行頭にコメント文字が有れば削除し、無ければ挿入する。空白行には挿入しない。&lt;br /&gt;
&lt;br /&gt;
//■行コメント文字の定義 ●初期値=&amp;quot;//&amp;quot;&lt;br /&gt;
var comment = &amp;quot;//&amp;quot;;&lt;br /&gt;
//■インデントされたコメント文字も削除(true:する/false:しない) ●初期値=false&lt;br /&gt;
var indent = false ? &amp;quot;[ \t]*&amp;quot; : &amp;quot;&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
//▼編集モードによる定義切替&lt;br /&gt;
comment = (function(){&lt;br /&gt;
  switch (Document.Mode.toLowerCase()) {&lt;br /&gt;
  case &amp;quot;bat&amp;quot;:&lt;br /&gt;
    return &amp;quot;::&amp;quot;;&lt;br /&gt;
  case &amp;quot;c#&amp;quot;:&lt;br /&gt;
  case &amp;quot;c++&amp;quot;:&lt;br /&gt;
  case &amp;quot;javascript&amp;quot;:&lt;br /&gt;
    return &amp;quot;//&amp;quot;;&lt;br /&gt;
  case &amp;quot;ini&amp;quot;:&lt;br /&gt;
  case &amp;quot;python&amp;quot;:&lt;br /&gt;
  case &amp;quot;ruby&amp;quot;:&lt;br /&gt;
    return &amp;quot;#&amp;quot;;&lt;br /&gt;
  case &amp;quot;visualbasic&amp;quot;:&lt;br /&gt;
  case &amp;quot;vbscript&amp;quot;:&lt;br /&gt;
    return &amp;quot;&#039;&amp;quot;;&lt;br /&gt;
  default:&lt;br /&gt;
    return comment;&lt;br /&gt;
  }&lt;br /&gt;
}());&lt;br /&gt;
&lt;br /&gt;
var Sel = Document.Selection;&lt;br /&gt;
var ty = Sel.GetTopPointY(mePosLogical);&lt;br /&gt;
var by = Sel.GetBottomPointY(mePosLogical);&lt;br /&gt;
var bx = Sel.GetBottomPointX(mePosLogical);&lt;br /&gt;
var nn =(Sel.Text.match(/\n/g)||[]).length;&lt;br /&gt;
if (bx===1 &amp;amp;&amp;amp; nn&amp;lt;=by-ty &amp;amp;&amp;amp; nn) by--; //末尾改行対策&lt;br /&gt;
Sel.SetActivePoint(mePosLogical, 1, by);&lt;br /&gt;
Sel.EndOfLine(false, mePosLogical);&lt;br /&gt;
Sel.SetAnchorPoint(mePosLogical, 1, ty);&lt;br /&gt;
Sel.Text = Sel.Text.replace(new RegExp(&lt;br /&gt;
  &amp;quot;^(&amp;quot;+indent+&amp;quot;)&amp;quot;+comment.replace(/[$()*+.?[\\\]^{|}]/g,&amp;quot;\\$&amp;amp;&amp;quot;); //コメント行&lt;br /&gt;
 +&amp;quot;|^(?![ \t]*$)&amp;quot; ,&amp;quot;gm&amp;quot;) //空白行でない行頭&lt;br /&gt;
 ,function($0,$indent){return $0 ? $indent : comment}&lt;br /&gt;
);&lt;br /&gt;
Sel.SetActivePoint(mePosLogical,1,by+1);&lt;br /&gt;
Sel.SetAnchorPoint(mePosLogical,1,ty);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= sukemaru 版 =&lt;br /&gt;
「行コメント」マクロ （コメントマーク付けはずし sukemaru版）&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ダウンロード:&#039;&#039;&#039; 「[[メディア:行コメント.zip|行コメント.zip]]（アイコン入り）」（最終更新2019/04/07)&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
masme 版の設定用変数 indent = true の状態（インデントされたコメントマークを削除できる）を下地として、&#039;&#039;&#039;選択範囲内のもっとも字下げの少ない位置にあわせてコメントマークを付けられます。&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:コードブロックのコメントアウトのさいに、各行の先頭位置が少しだけ分かりやすくなります。&lt;br /&gt;
:* 空白行（タブ文字／半角スペースのみの行と、完全な空行）は無視します。&lt;br /&gt;
:* 編集モードによる定義切替は、「コメントマーク付け外し」（masme版 2016/02/28）まま。&lt;br /&gt;
:* 設定変数 comment の定義に &amp;quot;&#039;&#039;&#039;&amp;gt;&amp;lt;span style=&amp;quot;color:#c0c0c0;&amp;quot;&amp;gt;␣&amp;lt;/span&amp;gt;&#039;&#039;&#039;&amp;quot; などの引用マークを指定すると、引用マークの付けはずしにも利用できます。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
「コメントアウトするときは &amp;quot;&#039;&#039;&#039;//&amp;lt;span style=&amp;quot;color:#c0c0c0;&amp;quot;&amp;gt;␣&amp;lt;/span&amp;gt;コメント&#039;&#039;&#039;&amp;quot; や &amp;quot;&#039;&#039;&#039;&amp;gt;&amp;lt;span style=&amp;quot;color:#c0c0c0;&amp;quot;&amp;gt;␣&amp;lt;/span&amp;gt;コメント&#039;&#039;&#039;&amp;quot; のようにうしろに半角スペースを入れたいけれど、拾い物のコード内やコピペした文章内の半角スペースなしのコメント行 &amp;quot;&#039;&#039;&#039;//コメント&#039;&#039;&#039;&amp;quot; や &amp;quot;&#039;&#039;&#039;&amp;gt;コメント&#039;&#039;&#039;&amp;quot; も手軽にアンコメントしたい」という使い方も想定しています。&lt;br /&gt;
:* コメントマークの定義の末尾に「半角スペース×１」がついている状態をデフォルト状態にしてあります（初期値も編集モードごとの個別定義も）。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
選択範囲が１行内の場合は、選択範囲の先頭位置でコメントアウト／アンコメントしますので、&#039;&#039;&#039;行の途中からのインラインコメントアウト&#039;&#039;&#039;ができます。&lt;br /&gt;
:* 選択範囲の先頭が空白文字なら字下げオプションに準じて処理します。&lt;br /&gt;
:* 行の途中からの &amp;quot;&#039;&#039;&#039;// インラインコメント&#039;&#039;&#039;&amp;quot; 部分（１行内）を範囲選択している状態で Ctrl キーを押しながらマクロを実行した場合は、選択範囲の先頭にコメントマークを追加します。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;warningbox&amp;quot;&amp;gt;&lt;br /&gt;
このマクロは、以下の外部実行ファイルで機能を拡張できます。&amp;lt;br&amp;gt; マクロライブラリから ZIP ファイルをダウンロードして Mery\Macros フォルダに解凍してください。&lt;br /&gt;
* &#039;&#039;&#039;pizz 氏作成の &amp;quot;[[GetKeyState.exe(キー状態取得実行ファイル)]]&amp;quot; を Macros フォルダに配置してください。&#039;&#039;&#039;&lt;br /&gt;
ソースコードは &amp;quot;GetKeyState&amp;quot; を導入している前提で書いています。&amp;lt;br&amp;gt;&amp;lt;u&amp;gt; &amp;quot;GetKeyState&amp;quot; を導入しない場合は、ソースコード冒頭部分の指定された２行をコメントアウトしてください。&amp;lt;/u&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Ctrl キー&#039;&#039;&#039;を押しながら実行したときは、コメントアウト状態の反転ではなく、選択範囲をふくむ行全体を&#039;&#039;&#039;強制的にコメントアウト&#039;&#039;&#039;します。&lt;br /&gt;
:* &amp;quot;&#039;&#039;&#039;// コメント行&#039;&#039;&#039;&amp;quot; を含むコードブロックをまとめてコメントアウトするさいに、既存の &amp;quot;&#039;&#039;&#039;// コメント行&#039;&#039;&#039;&amp;quot; を &amp;quot;&#039;&#039;&#039;// // 二重にコメントアウト&#039;&#039;&#039;&amp;quot; できます。&lt;br /&gt;
:* 強制コメントアウトでコメントマークを挿入する位置は、行頭に限定されます。&lt;br /&gt;
:* Ctrl キーの押し下げ状態でマクロの機能を切り替えるので、このマクロに&#039;&#039;&#039;ショートカットキー&#039;&#039;&#039;を割り当てる場合は、「Ctrl キーをふくむキーパターン」と「Ctrl キーをふくまないキーパターン」の２つを登録する必要があります。&lt;br /&gt;
:: e.g.1 「Ctrl + /」キー  と  「Alt + /」キー&lt;br /&gt;
:: e.g.2 「Ctrl + Alt + /」キー  と  「Alt + /」キー&lt;br /&gt;
: ※ &amp;quot;GetKeyState&amp;quot; を導入してない場合でも、&amp;quot;強制コメントアウト&amp;quot; 以外の機能はそのまま使用できます。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
▼ &#039;&#039;&#039;注意事項&#039;&#039;&#039; (仕様上の制限) ▼&lt;br /&gt;
&lt;br /&gt;
* 動作モードの優先順位&lt;br /&gt;
:# Ctrl キーを押しながらの強制コメントアウト（行の先頭で強制コメントアウト）&lt;br /&gt;
:# インラインコメントアウト／アンコメント（行の途中からのコメントアウト）&lt;br /&gt;
:# 字下げオプションに応じたコメントアウト／アンコメントのトグル（反転）&lt;br /&gt;
&lt;br /&gt;
* 字下げルールが「半角スペースのみ または タブ文字のみである」か、混在する場合には「半角スペースとタブ文字の出現順序が同じである」という前提になっています。タブ文字ひとつを半角スペースひとつと同じように数え、表示上の幅で評価しません。&lt;br /&gt;
: 半角スペースとタブ文字が不規則に混在しているなら、字下げオプションの変数を indentMode = &#039;&#039;&#039;0&#039;&#039;&#039; or &#039;&#039;&#039;1&#039;&#039;&#039; にして使ってください。手石･masme版と同様に行の先頭でコメントアウトします。&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;GetKeyState&amp;quot; を導入しない場合は、コメントアウトの状態を&#039;&#039;&#039;反転&#039;&#039;&#039;させるだけのマクロとなり、&amp;quot;// コメントアウトされている行&amp;quot; を二重にコメントアウトすることはできなくなります。&lt;br /&gt;
: 字下げオプションの設定値が 0 でも、行頭１文字目にコメントマークがある行は、かならずアンコメントされます。&lt;br /&gt;
&lt;br /&gt;
* コメントマーク末尾の半角空白 あり/なし の差分について。&lt;br /&gt;
:* &amp;lt;span style=&amp;quot;color:#c00&amp;quot;&amp;gt;コメントマーク定義の末尾につける空白は半角スペース１文字しか想定していません。&amp;lt;/span&amp;gt;&lt;br /&gt;
:* コメントマークの定義文字列に「正規表現のメタ文字」が含まれていても大丈夫なはずですが、保証はいたしかねます。&lt;br /&gt;
:* もしも誤動作などで使いづらくなってしまうことがあった場合は、設定項目 &amp;quot;&#039;&#039;var varEnable = true;&#039;&#039;&amp;quot; の &amp;quot;&#039;&#039;true&#039;&#039;&amp;quot; を &amp;quot;&#039;&#039;false&#039;&#039;&amp;quot; にしてください。&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;span style=&amp;quot;color:#c00;&amp;quot;&amp;gt; コメント定義の先頭には空白文字をつけないでください。&amp;lt;/span&amp;gt;&lt;br /&gt;
: 行コメント文字の変数 comment = &amp;quot;hoge&amp;quot;; の先頭が空白文字だとアンコメントできなくなるので、先頭の空白文字は無視します。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
▼ &#039;&#039;&#039;使用例&#039;&#039;&#039; ▼&lt;br /&gt;
&lt;br /&gt;
※コメントマークの定義文字列: &amp;quot;&#039;&#039;&#039;//&#039;&#039;&#039; &amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;height:30em; overflow:auto;&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;例０-１&#039;&#039;&#039;. 字下げに非対応だと…&lt;br /&gt;
: ※ indentMode = &#039;&#039;&#039;0&#039;&#039;&#039;;  varEnable = false;  のばあい&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
//comment 0     =&amp;gt;  |// //comment 0     =&amp;gt;  |//comment 0   &lt;br /&gt;
// comment 1    =&amp;gt;  |comment 1          =&amp;gt;  |// comment 1  &lt;br /&gt;
  // comment 2  =&amp;gt;  |//  // comment 2   =&amp;gt;  |  // comment 2&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;例０-２&#039;&#039;&#039;. 字下げには非対応でも…	&lt;br /&gt;
: ※ indentMode = &#039;&#039;&#039;0&#039;&#039;&#039;;  varEnable = &#039;&#039;&#039;true&#039;&#039;&#039;;  (sukemaru版 独自拡張)&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
//comment 0     =&amp;gt;  |comment 0          =&amp;gt;  |// comment 0  &lt;br /&gt;
// comment 1    =&amp;gt;  |comment 1          =&amp;gt;  |// comment 1  &lt;br /&gt;
  // comment 2  =&amp;gt;  |//  // comment 2   =&amp;gt;  |  // comment 2&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;例１-１&#039;&#039;&#039;. ６行まとめて選択すると…&lt;br /&gt;
: ※ indentMode = &#039;&#039;&#039;1&#039;&#039;&#039;;  varEnable = false;  (従来版とおなじ動作)&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
//comment 0     =&amp;gt;  |// //comment 0     =&amp;gt;  |//comment 0   &lt;br /&gt;
// comment 1    =&amp;gt;  |comment 1          =&amp;gt;  |// comment 1  &lt;br /&gt;
  // comment 2  =&amp;gt;  |  comment 2        =&amp;gt;  |//   comment 2&lt;br /&gt;
  hoge          =&amp;gt;  |//   hoge          =&amp;gt;  |  hoge        &lt;br /&gt;
    fuga        =&amp;gt;  |//     fuga        =&amp;gt;  |    fuga      &lt;br /&gt;
      piyo      =&amp;gt;  |//       piyo      =&amp;gt;  |      piyo    &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;例１-２&#039;&#039;&#039;. ６行まとめて選択でも…&lt;br /&gt;
: ※ indentMode = &#039;&#039;&#039;1&#039;&#039;&#039;;  varEnable = &#039;&#039;&#039;true&#039;&#039;&#039;;  (sukemaru版 独自拡張)&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
//comment 0     =&amp;gt;  |comment 0          =&amp;gt;  |// comment 0  &lt;br /&gt;
// comment 1    =&amp;gt;  |comment 1          =&amp;gt;  |// comment 1  &lt;br /&gt;
  // comment 2  =&amp;gt;  |  comment 2        =&amp;gt;  |//   comment 2&lt;br /&gt;
  hoge          =&amp;gt;  |//   hoge          =&amp;gt;  |  hoge        &lt;br /&gt;
    fuga        =&amp;gt;  |//     fuga        =&amp;gt;  |    fuga      &lt;br /&gt;
      piyo      =&amp;gt;  |//       piyo      =&amp;gt;  |      piyo    &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;例２-１&#039;&#039;&#039;. 下３行だけを選択すれば…&lt;br /&gt;
: ※ indentMode = &#039;&#039;&#039;2&#039;&#039;&#039; or &#039;&#039;&#039;3&#039;&#039;&#039;;  (sukemaru版 独自拡張)&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
//comment 0     =&amp;gt;  |//comment 0        =&amp;gt;  |//comment 0   &lt;br /&gt;
// comment 1    =&amp;gt;  |// comment 1       =&amp;gt;  |// comment 1  &lt;br /&gt;
  // comment 2  =&amp;gt;  |  // comment 2     =&amp;gt;  |  // comment 2&lt;br /&gt;
  hoge          =&amp;gt;  |  // hoge          =&amp;gt;  |  hoge        &lt;br /&gt;
    fuga        =&amp;gt;  |  //   fuga        =&amp;gt;  |    fuga      &lt;br /&gt;
      piyo      =&amp;gt;  |  //     piyo      =&amp;gt;  |      piyo    &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;例２-２&#039;&#039;&#039;. 下４行を選択だと…&lt;br /&gt;
: ※ indentMode = &#039;&#039;&#039;2&#039;&#039;&#039; or &#039;&#039;&#039;3&#039;&#039;&#039;;  (sukemaru版 独自拡張)&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
//comment 0     =&amp;gt;  |//comment 0        =&amp;gt;  |//comment 0   &lt;br /&gt;
// comment 1    =&amp;gt;  |// comment 1       =&amp;gt;  |// comment 1  &lt;br /&gt;
  // comment 2  =&amp;gt;  |  comment 2        =&amp;gt;  |  // comment 2&lt;br /&gt;
  hoge          =&amp;gt;  |  // hoge          =&amp;gt;  |  hoge        &lt;br /&gt;
    fuga        =&amp;gt;  |  //   fuga        =&amp;gt;  |    fuga      &lt;br /&gt;
      piyo      =&amp;gt;  |  //     piyo      =&amp;gt;  |      piyo    &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;例３&#039;&#039;&#039;. ６行まとめて選択しても、コメントアウトとアンコメントで別々の先頭位置を使うこともできる&lt;br /&gt;
: ※ indentMode = &#039;&#039;&#039;3&#039;&#039;&#039;;  varEnable = &#039;&#039;&#039;true&#039;&#039;&#039;;  (sukemaru版 独自拡張)&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
//comment 0     =&amp;gt;  |comment 0          =&amp;gt;  |// comment 0  &lt;br /&gt;
// comment 1    =&amp;gt;  |comment 1          =&amp;gt;  |// comment 1  &lt;br /&gt;
  // comment 2  =&amp;gt;  |  comment 2        =&amp;gt;  |//   comment 2&lt;br /&gt;
  hoge          =&amp;gt;  |  // hoge          =&amp;gt;  |  hoge        &lt;br /&gt;
    fuga        =&amp;gt;  |  //   fuga        =&amp;gt;  |    fuga      &lt;br /&gt;
      piyo      =&amp;gt;  |  //     piyo      =&amp;gt;  |      piyo    &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;例４&#039;&#039;&#039;. 一応、こういうこともできる&lt;br /&gt;
: ※ indentMode = &#039;&#039;&#039;4&#039;&#039;&#039;;  varEnable = true;  (sukemaru版 独自拡張)&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
//comment 0     =&amp;gt;  |comment 0          =&amp;gt;  |// comment 0  &lt;br /&gt;
// comment 1    =&amp;gt;  |comment 1          =&amp;gt;  |// comment 1  &lt;br /&gt;
  // comment 2  =&amp;gt;  |  comment 2        =&amp;gt;  |  // comment 2&lt;br /&gt;
  hoge          =&amp;gt;  |  // hoge          =&amp;gt;  |  hoge        &lt;br /&gt;
    fuga        =&amp;gt;  |    // fuga        =&amp;gt;  |    fuga      &lt;br /&gt;
      piyo      =&amp;gt;  |      // piyo      =&amp;gt;  |      piyo    &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;例５&#039;&#039;&#039;. コードブロックをまとめて強制的にコメントアウトするなら&lt;br /&gt;
: ※ &#039;&#039;&#039;Ctrl キー&#039;&#039;&#039;を押しながらマクロを実行  (sukemaru版 独自拡張)&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
//comment 0     =&amp;gt;  |// //comment 0     =&amp;gt;  |//comment 0   &lt;br /&gt;
// comment 1    =&amp;gt;  |// // comment 1    =&amp;gt;  |// comment 1  &lt;br /&gt;
  // comment 2  =&amp;gt;  |//   // comment 2  =&amp;gt;  |  // comment 2&lt;br /&gt;
  hoge          =&amp;gt;  |//   hoge          =&amp;gt;  |  hoge        &lt;br /&gt;
   fuga         =&amp;gt;  |//     fuga        =&amp;gt;  |    fuga      &lt;br /&gt;
     piyo       =&amp;gt;  |//       piyo      =&amp;gt;  |      piyo    &lt;br /&gt;
&amp;lt;/source&amp;gt; &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ソースコード ==&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;ダウンロード:&#039;&#039;&#039; 「[[ファイル:行コメント.zip|行コメント.zip]]（アイコン入り）」（最終更新2019/04/07)&lt;br /&gt;
: ※以前の &#039;&#039;&#039;人柱版&#039;&#039;&#039; の追加コードを統合してあります。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot; style=&amp;quot;height:80em; overflow:auto;&amp;quot;&amp;gt;&lt;br /&gt;
#title = &amp;quot;行コメント&amp;quot;&lt;br /&gt;
#tooltip = &amp;quot;コメントマーク付けはずし&amp;quot;&lt;br /&gt;
// #icon = &amp;quot;Mery用 マテリアルデザインっぽいアイコン.icl&amp;quot;,215&lt;br /&gt;
&lt;br /&gt;
var $ctrl = 0;	// この行をコメントアウトしないこと&lt;br /&gt;
&lt;br /&gt;
// Ctrl キーの状態を取得（GetKeyState をインストールしていないなら以下の２行は無効化すること）&lt;br /&gt;
var getKeyState = &#039;&amp;quot;&#039; + editor.FullName.replace( /mery\.exe$/i , &amp;quot;Macros\\&amp;quot; ) + &#039;GetKeyState.exe&amp;quot; control&#039;;&lt;br /&gt;
$ctrl = new ActiveXObject( &amp;quot;WScript.Shell&amp;quot; ).Run( getKeyState, 0, true );&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
// -------------------- ▼ 設定項目 ▼ --------------------	&lt;br /&gt;
&lt;br /&gt;
// ●行の途中にある選択範囲をインラインコメントアウトするか？&lt;br /&gt;
var inLineEnable = true;&lt;br /&gt;
&lt;br /&gt;
  // inLineEnable = true; ならインラインコメントアウトする&lt;br /&gt;
  //  ※ 選択範囲が１行内のとき、選択範囲の先頭位置でコメントアウトする（アンコメントも可）&lt;br /&gt;
  // inLineEnable = false; ならインラインコメントアウトしない&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
// ●字下げされたコメントマークも削除するか？&lt;br /&gt;
var indentMode = 3;&lt;br /&gt;
&lt;br /&gt;
  // indentMode = 0; なら 追加／削除 する位置は「常に行頭」のみ（字下げされたコメントマークは削除しない）&lt;br /&gt;
  //  ※ 1 ～ 4  なら字下げされたコメントマークも削除する。追加する位置は以下のとおり。&lt;br /&gt;
  // indentMode = 1; なら「常に先頭」にコメントマークを追加する（例１.の使い方 ※従来版とおなじ挿入パターン）&lt;br /&gt;
  //  ※ 2 ～ 4  なら追加する位置は字下げに対応可。&lt;br /&gt;
  // indentMode = 2; なら追加と削除で同じ判定基準の先頭位置検出をする（例２.の使い方ができる）&lt;br /&gt;
  // indentMode = 3; なら追加と削除で別々の判定基準の先頭位置検出をする（例３.の使い方）&lt;br /&gt;
  // indentMode = 4; なら「常に各行の字下げ位置」にあわせてコメントマークを追加する（例４.の使い方）&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
// ■コメントマーク末尾に空白つきで定義しているときに、末尾空白のないコメントマークも削除するか？&lt;br /&gt;
// （※ comment = &amp;quot;// &amp;quot;; のときに &amp;quot;//こういうコメント行&amp;quot; もアンコメントするか？）&lt;br /&gt;
var varEnable = true;&lt;br /&gt;
&lt;br /&gt;
  // varEnable = true;  なら削除する&lt;br /&gt;
  // varEnable = false; なら削除しない&lt;br /&gt;
  // ※ 再度コメントアウトするさいは comment で定義したコメントマーク（末尾空白つき）になります。&lt;br /&gt;
  //   コメントマークを comment 末尾に空白なしで定義した場合は無視されます。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
/* ここから「コメントマーク付け外し」（masme版 2016/02/28）より改変 */ &lt;br /&gt;
// ◆行コメント文字の定義  ●初期値=&amp;quot;// &amp;quot;&lt;br /&gt;
var comment = &amp;quot;// &amp;quot;;&lt;br /&gt;
&lt;br /&gt;
// ▼コメントマークの定義切替&lt;br /&gt;
comment = ( function() {&lt;br /&gt;
&lt;br /&gt;
  // ▼拡張子による定義切り替え&lt;br /&gt;
  if ( document.Name.match( /\.def$|\.asm$|\.reg$|\.key$|\.inf$/i ) ) {&lt;br /&gt;
    return &amp;quot;; &amp;quot;;&lt;br /&gt;
  }&lt;br /&gt;
  // ▼ファイル名による定義切り替え&lt;br /&gt;
  else if ( document.Name.match( /^hosts$/i ) ) {&lt;br /&gt;
    return &amp;quot;# &amp;quot;;&lt;br /&gt;
  }&lt;br /&gt;
  // else if ( document.Name.toLowerCase() == &amp;quot;hoge.txt&amp;quot; ) {&lt;br /&gt;
  //   return &amp;quot;&amp;gt; &amp;quot;;&lt;br /&gt;
  // }&lt;br /&gt;
  // // ▼フォルダ名による定義切り替え（正規表現）&lt;br /&gt;
  // else if ( document.FullName.match( /\\mery\\(?!macros\\)/ ) ) {&lt;br /&gt;
  //   return &amp;quot;&amp;gt; &amp;quot;;&lt;br /&gt;
  // }&lt;br /&gt;
&lt;br /&gt;
  else {&lt;br /&gt;
    // ▼編集モードによる定義切り替え&lt;br /&gt;
    switch ( document.Mode.toLowerCase() ) {&lt;br /&gt;
      case &amp;quot;bat&amp;quot;:&lt;br /&gt;
        return &amp;quot;:: &amp;quot;;	// return &amp;quot;REM &amp;quot;;	&amp;quot;: &amp;quot; や &amp;quot;&#039; &amp;quot; でも可&lt;br /&gt;
      case &amp;quot;c#&amp;quot;:  case &amp;quot;c++&amp;quot;:  case &amp;quot;javascript&amp;quot;:&lt;br /&gt;
      case &amp;quot;delphi&amp;quot;:  case &amp;quot;java&amp;quot;:  case &amp;quot;jsp&amp;quot;:  case &amp;quot;windows script&amp;quot;:&lt;br /&gt;
      case &amp;quot;mery_macro_js&amp;quot;:  case &amp;quot;mery_macros_js&amp;quot;:&lt;br /&gt;
      case &amp;quot;janestyle （正規表現用）&amp;quot;:&lt;br /&gt;
        return &amp;quot;// &amp;quot;;&lt;br /&gt;
      case &amp;quot;ini&amp;quot;:  case &amp;quot;python&amp;quot;:  case &amp;quot;ruby&amp;quot;:		// ini は &amp;quot;; &amp;quot; のグループでも可&lt;br /&gt;
      case &amp;quot;perl&amp;quot;:  case &amp;quot;perlscript&amp;quot;:  case &amp;quot;php&amp;quot;:  case &amp;quot;python&amp;quot;:&lt;br /&gt;
      case &amp;quot;powershell&amp;quot;:  case &amp;quot;ruby&amp;quot;:&lt;br /&gt;
      case &amp;quot;mery msy&amp;quot;:  case &amp;quot;autohotkey&amp;quot;:&lt;br /&gt;
        return &amp;quot;# &amp;quot;;&lt;br /&gt;
      case &amp;quot;visualbasic&amp;quot;:  case &amp;quot;vbscript&amp;quot;:&lt;br /&gt;
        return &amp;quot;&#039; &amp;quot;;&lt;br /&gt;
      case &amp;quot;hsp&amp;quot;:  // case: &amp;quot;ini&amp;quot;:	// ini はデフォルトで &amp;quot;# &amp;quot; のグループ&lt;br /&gt;
        return &amp;quot;; &amp;quot;;&lt;br /&gt;
      case &amp;quot;sql&amp;quot;:&lt;br /&gt;
        return &amp;quot;-- &amp;quot;;&lt;br /&gt;
      case &amp;quot;tex&amp;quot;:&lt;br /&gt;
        return &amp;quot;% &amp;quot;;&lt;br /&gt;
      case &amp;quot;text&amp;quot;:&lt;br /&gt;
        return &amp;quot;&amp;gt; &amp;quot;;&lt;br /&gt;
      default:&lt;br /&gt;
        return comment;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
} )();&lt;br /&gt;
/* ここまで「コメントマーク付け外し」（masme版 2016/02/28）より改変 */ &lt;br /&gt;
&lt;br /&gt;
// -------------------- ▲ 設定項目 ▲ --------------------&lt;br /&gt;
&lt;br /&gt;
if ( document.ReadOnly ) {&lt;br /&gt;
  Status = &amp;quot;　ドキュメントは書き換え禁止です。&amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// コメントマークが空白文字だけならマクロを閉じる&lt;br /&gt;
else if ( comment.match( /^[ \t\n]*$/ ) ) {&lt;br /&gt;
  Status = &amp;quot;　コメントマークの定義が無効です。&amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
else {&lt;br /&gt;
  // コメントマークの先頭の空白文字は除去する&lt;br /&gt;
  // ※comment の先頭に空白文字（半角空白、タブ文字、改行）があるとアンコメントできない&lt;br /&gt;
  if ( comment.match( /^[ \t\n]*/ ) ) {&lt;br /&gt;
    comment = comment.replace( /^[ \t\n]*/ , &amp;quot;&amp;quot; );&lt;br /&gt;
  }&lt;br /&gt;
  // コメントマークの末尾が空白文字の場合、末尾空白なしのコメントマークを定義&lt;br /&gt;
  if ( varEnable &amp;amp;&amp;amp; comment.match( /\s+$/ ) ) {&lt;br /&gt;
    var comStr = comment.replace( /\s+$/ , &amp;quot;&amp;quot; );&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  // 選択範囲&lt;br /&gt;
  var s = document.selection;&lt;br /&gt;
  var tx = s.GetTopPointX( mePosLogical );&lt;br /&gt;
  var ty = s.GetTopPointY( mePosLogical );&lt;br /&gt;
  var bx = s.GetBottomPointX( mePosLogical );&lt;br /&gt;
  var by = s.GetBottomPointY( mePosLogical );&lt;br /&gt;
  var anc = s.GetAnchorPos();		// 選択範囲の開始位置&lt;br /&gt;
  var act = s.GetActivePos();		// 選択範囲の終了位置&lt;br /&gt;
  var pos = s.IsEmpty ? true : false;	// 範囲選択なしのフラグ&lt;br /&gt;
&lt;br /&gt;
  // １行内で範囲選択しているとき（右側のコメントアウト）&lt;br /&gt;
  // ※選択範囲を拡張しない&lt;br /&gt;
  if ( inLineEnable &amp;amp;&amp;amp; ty == by &amp;amp;&amp;amp; ! pos ) {&lt;br /&gt;
    var inLine = true;			// 部分選択のフラグ&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  // 範囲選択なし または 複数行選択のとき（行全体のコメントアウト）&lt;br /&gt;
  else {&lt;br /&gt;
    // 選択範囲の末尾が行頭にあるときの調整&lt;br /&gt;
    if ( ty != by &amp;amp;&amp;amp; bx == 1 ) {&lt;br /&gt;
      by --;&lt;br /&gt;
    }&lt;br /&gt;
    // 選択範囲を拡張&lt;br /&gt;
    s.SetActivePoint( mePosLogical, 1, by );	// 選択範囲の最終行の行頭&lt;br /&gt;
    s.EndOfLine( false, mePosLogical );		// 選択範囲の最終行の行末&lt;br /&gt;
    s.SetAnchorPoint( mePosLogical, 1, ty );	// あらためて選択範囲の先頭行まで選択&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  var st = s.Text;			// 選択範囲の文字列を取得&lt;br /&gt;
  var ad = AddDeleteComment( st );	// コメントアウト／アンコメント処理した文字列&lt;br /&gt;
&lt;br /&gt;
  if ( ad != st ) {	// （処理の前後で変化なしなら undo 履歴に残さない）&lt;br /&gt;
    s.Text = ad;		// コメントマークの付けはずし完了&lt;br /&gt;
  }&lt;br /&gt;
  var gap = st.length - ad.length;&lt;br /&gt;
&lt;br /&gt;
  // 選択範囲なしで実行したときは範囲選択を残さない&lt;br /&gt;
  if ( pos ) {&lt;br /&gt;
      s.SetActivePoint( mePosLogical, ( gap &amp;lt; tx ) ? tx - gap : 1, ty );&lt;br /&gt;
  }&lt;br /&gt;
  // 選択範囲が１行だけのときは選択範囲を復旧する&lt;br /&gt;
  else if ( inLine ) {&lt;br /&gt;
    s.SetActivePos( ( anc &amp;lt; act ) ? act - gap : act );&lt;br /&gt;
    s.SetAnchorPos( ( anc &amp;lt; act ) ? anc : anc - gap );&lt;br /&gt;
  }&lt;br /&gt;
  // 複数行選択なら拡張した選択範囲を復旧する&lt;br /&gt;
  else {&lt;br /&gt;
    s.SetActivePoint( mePosLogical, 1, by + 1 );&lt;br /&gt;
    s.SetAnchorPoint( mePosLogical, 1, ty );&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// ------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * 関数 AddDeleteComment( str )&lt;br /&gt;
 * 選択範囲の各行の字下げ量をチェックして、字下げ位置にあわせてコメントアウトする&lt;br /&gt;
 * コメントマークのチェックには正規表現を使っていないので、誤爆はほぼないはず&lt;br /&gt;
 * ※変数 comment の先頭が空白文字（半角スペース、タブコード \t）だとアンコメントできない&lt;br /&gt;
 */ &lt;br /&gt;
function AddDeleteComment( str ) {&lt;br /&gt;
&lt;br /&gt;
  // Ctrl キー押し下げで強制コメントアウト（※行頭にコメントマーク追加）&lt;br /&gt;
  if ( $ctrl == 1 ) {&lt;br /&gt;
    return str.replace( /^/gm , comment );&lt;br /&gt;
  }&lt;br /&gt;
    &lt;br /&gt;
  else {&lt;br /&gt;
    var id, _id, c0, d0;		// 字下げ量（空白以外の文字の最初の出現位置）&lt;br /&gt;
    var a = str.split( &amp;quot;\n&amp;quot; );	// 選択範囲を行単位に分解して配列 a に&lt;br /&gt;
    var b = [];	// 各行の字下げ量 id を格納する			→ 削除の基準 b[i]&lt;br /&gt;
    var c = [];	// id をソートして最小の字下げ量を調べる	→ 追加の基準 c[0]&lt;br /&gt;
    var d = [];	// 非コメント行の字下げ量 _id を格納する	→ 追加の基準 d[0]&lt;br /&gt;
&lt;br /&gt;
    // 選択範囲内の各行の字下げ量を取得	→ 配列 b, c, d に&lt;br /&gt;
    for ( var i = 0, len = a.length; i &amp;lt; len; i ++ ) {&lt;br /&gt;
      // 各行ごとの字下げ量&lt;br /&gt;
      id = a[i].indexOf( a[i].match( /[^ \t]/ ) );	// a[i].search( /[^ \t]/ ) とおなじ&lt;br /&gt;
&lt;br /&gt;
      // 空白行では -1 （sort のジャマ）が返されるはずなので&lt;br /&gt;
      // デタラメな数値（最小値を 0 以上に）にして id を配列 b, c に格納する&lt;br /&gt;
      id = ( id &amp;lt; 0 ) ? 1000000 : id;	// 空白行はコメントアウトしないから数値は大きく&lt;br /&gt;
      b.push( id );&lt;br /&gt;
      if ( indentMode == 2 ) {&lt;br /&gt;
        c.push( id );&lt;br /&gt;
      }&lt;br /&gt;
      // コメント行の数値もデタラメな数値にして _id を配列 d に格納&lt;br /&gt;
      else if ( indentMode == 3 ) {&lt;br /&gt;
        _id = ( a[i].substr( b[i], comment.length ) == comment ) ? 1000000 : id;&lt;br /&gt;
        d.push( _id );&lt;br /&gt;
      }&lt;br /&gt;
    }	// end for&lt;br /&gt;
&lt;br /&gt;
    // 配列 c, d を昇順で並びかえ（ → 最小値 c[0] d[0] だけ使う）&lt;br /&gt;
    if ( indentMode == 2 ) {&lt;br /&gt;
      c0 = c.sort( CompareForSort )[0];&lt;br /&gt;
    }&lt;br /&gt;
    else if ( indentMode == 3 ) {&lt;br /&gt;
      d0 = d.sort( CompareForSort )[0];&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    // 各行をコメントアウト／アンコメント処理&lt;br /&gt;
    for ( var i = 0; i &amp;lt; a.length; i ++ ) {&lt;br /&gt;
      // 空白行（id にデタラメな数値を入れた行）はスキップ&lt;br /&gt;
      if ( b[i] == 1000000 ) {&lt;br /&gt;
        continue;&lt;br /&gt;
      }&lt;br /&gt;
      // 行頭の空白 b[i] の直後がコメントマークかチェック&lt;br /&gt;
      // &amp;quot;// コメント行&amp;quot; なら...&lt;br /&gt;
      if ( a[i].substr( b[i], comment.length ) == comment ) {&lt;br /&gt;
        // アンコメント または コメントアウト&lt;br /&gt;
        a[i] = ( indentMode != 0 || b[i] == 0 )&lt;br /&gt;
                   ? a[i].substr( 0, b[i] ) + a[i].substr( b[i] + comment.length )&lt;br /&gt;
                   : comment + a[i];	// ← ( indentMode == 0 &amp;amp;&amp;amp; b[i] != 0 )&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
      // 定義されたコメントマークの末尾が空白文字つき &amp;quot;// &amp;quot; ならば&lt;br /&gt;
      // 各行が末尾空白なしの &amp;quot;//&amp;quot; でコメントアウトされているか再チェック&lt;br /&gt;
      else if ( varEnable &amp;amp;&amp;amp; comStr&lt;br /&gt;
             &amp;amp;&amp;amp; a[i].substr( b[i], comStr.length ) == comStr ) {&lt;br /&gt;
        // アンコメント または コメントアウト&lt;br /&gt;
        a[i] = ( indentMode != 0 || b[i] == 0 )&lt;br /&gt;
                   ? a[i].substr( 0, b[i] ) + a[i].substr( b[i] + comStr.length )&lt;br /&gt;
                   : comment + a[i];	// ← ( indentMode == 0 &amp;amp;&amp;amp; b[i] != 0 )&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
      // 非コメント行なら字下げ位置にあわせてコメントアウトする&lt;br /&gt;
      else {&lt;br /&gt;
        a[i] = ( indentMode == 4 ) ? a[i].slice( 0, b[i] ) + comment + a[i].slice( b[i] )&lt;br /&gt;
             : ( indentMode == 3 ) ? a[i].slice( 0, d0 ) + comment + a[i].slice( d0 )&lt;br /&gt;
             : ( indentMode == 2 ) ? a[i].slice( 0, c0 ) + comment + a[i].slice( c0 )&lt;br /&gt;
             : /*     else      */   comment + a[i];&lt;br /&gt;
      }&lt;br /&gt;
    }	// end for&lt;br /&gt;
    return a.join( &amp;quot;\n&amp;quot; );&lt;br /&gt;
  }	// end else&lt;br /&gt;
}	// end function&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * 以下の関数は『sort メソッド (Array) (JavaScript) | MSDN』より&lt;br /&gt;
 * https://msdn.microsoft.com/ja-jp/library/4b4fbfhk%28v=vs.94%29.aspx &lt;br /&gt;
 * Sorts array elements in ascending order numerically.&lt;br /&gt;
 * sort メソッドデフォルトの ascii 昇順 (1, 10, 2, 20) ではなく、&lt;br /&gt;
 * 数値の大きさ (1, 2, 10, 20) でソート&lt;br /&gt;
 */&lt;br /&gt;
function CompareForSort( first, second ) {&lt;br /&gt;
  if ( first == second )&lt;br /&gt;
    return 0;&lt;br /&gt;
  else if ( first &amp;lt; second )&lt;br /&gt;
    return -1;&lt;br /&gt;
  else	// ( first &amp;gt; second )&lt;br /&gt;
    return 1; &lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== おまけ ==&lt;br /&gt;
&amp;lt;br&amp;gt; &lt;br /&gt;
&amp;quot;&#039;&#039;&#039;/* &#039;&#039;&#039;&amp;quot;  と  &amp;quot;&#039;&#039;&#039; */&#039;&#039;&#039;&amp;quot;  と  &amp;quot;&#039;&#039;&#039; * &#039;&#039;&#039;&amp;quot;  で複数行のコメントブロックをつくるなら、&amp;lt;br&amp;gt; &lt;br /&gt;
「[[カッコで囲う|カッコで囲う（ポップアップメニューあり）]]」マクロか「[[引用符／コメント]]」マクロで。&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;u&amp;gt;hoge, fuga, piyo&amp;lt;/u&amp;gt; の３行をコメントアウトする&lt;br /&gt;
       hoge&lt;br /&gt;
         fuga&lt;br /&gt;
           piyo&lt;br /&gt;
&lt;br /&gt;
* 「&#039;&#039;&#039;カッコで囲う&#039;&#039;&#039;（ポップアップメニューあり）」マクロの「JS コメントアウト２」&amp;lt;br&amp;gt; つねに行の先頭へコメントマークを挿入します。&lt;br /&gt;
 /*&lt;br /&gt;
  *        hoge&lt;br /&gt;
  *          fuga&lt;br /&gt;
  *            piyo&lt;br /&gt;
  */&lt;br /&gt;
&lt;br /&gt;
* 「&#039;&#039;&#039;引用符／コメント&#039;&#039;&#039;」マクロの「JS コメントアウト２」&amp;lt;br&amp;gt; 字下げされたブロックの先頭位置へコメントマークを挿入します。&lt;br /&gt;
       /* &lt;br /&gt;
        * hoge&lt;br /&gt;
        *   fuga&lt;br /&gt;
        *     piyo&lt;br /&gt;
        */&lt;br /&gt;
&lt;br /&gt;
※どちらのマクロもアンコメント機能がありますが、「カッコで囲う」マクロは、「引用符／コメント」マクロによって字下げ位置に挿入されたコメントマークを正しく削除できません。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
※どちらのマクロも  &amp;quot;&#039;&#039;&#039;/* &#039;&#039;&#039;&amp;quot;  と  &amp;quot;&#039;&#039;&#039; */&#039;&#039;&#039;&amp;quot;  だけでコメントアウトすることもできます。&lt;br /&gt;
: また、&amp;quot;&#039;&#039;&#039;&amp;lt;nowiki&amp;gt;&amp;lt;!-- &amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;&amp;quot;  と  &amp;quot;&#039;&#039;&#039;&amp;lt;nowiki&amp;gt; --&amp;gt;&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;&amp;quot;  でのコメントアウトとアンコメントもできます。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* 「カッコで囲う」マクロは選択範囲内を、「引用符／コメント」マクロは選択範囲のある行全体をコメントアウトします。&lt;br /&gt;
 abcdefg&amp;lt;u&amp;gt;&#039;&#039;&#039;hijklmn&#039;&#039;&#039;&amp;lt;/u&amp;gt;opqrstuvwxyz&lt;br /&gt;
 &lt;br /&gt;
 「カッコで囲う」マクロ&lt;br /&gt;
 abcdefg &#039;&#039;&#039;&#039;&#039;/* hijklmn */&#039;&#039;&#039;&#039;&#039; opqrstuvwxyz&lt;br /&gt;
 abcdefg &#039;&#039;&#039;&#039;&#039;&amp;lt;nowiki&amp;gt;&amp;lt;!-- hijklmn --&amp;gt;&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;&#039;&#039; opqrstuvwxyz&lt;br /&gt;
 &lt;br /&gt;
 「引用符／コメント」マクロ&lt;br /&gt;
 &#039;&#039;&#039;&#039;&#039;/* abcdefghijklmnopqrstuvwxyz */&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;&#039;&#039;&amp;lt;nowiki&amp;gt;&amp;lt;!-- abcdefghijklmnopqrstuvwxyz --&amp;gt;&amp;lt;/nowiki&amp;gt;&#039;&#039;&#039;&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Masme</name></author>
	</entry>
	<entry>
		<id>https://www.haijin-boys.com/wiki/index.php?title=%E5%AD%97%E4%B8%8B%E3%81%92%E3%83%BB%E5%AD%97%E4%B8%8A%E3%81%92&amp;diff=4368</id>
		<title>字下げ・字上げ</title>
		<link rel="alternate" type="text/html" href="https://www.haijin-boys.com/wiki/index.php?title=%E5%AD%97%E4%B8%8B%E3%81%92%E3%83%BB%E5%AD%97%E4%B8%8A%E3%81%92&amp;diff=4368"/>
		<updated>2019-06-01T14:21:05Z</updated>

		<summary type="html">&lt;p&gt;Masme: masme版を更新&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;論理行単位で字下げ・字上げします。&amp;lt;br&amp;gt;&lt;br /&gt;
インデントには任意の文字列を設定できます。※初期設定は半角空白2個です。&lt;br /&gt;
&lt;br /&gt;
[[ファイル:Indent-Unindent.png]]&lt;br /&gt;
&lt;br /&gt;
= masme 版 =&lt;br /&gt;
==更新履歴==&lt;br /&gt;
* 2019/06/01&lt;br /&gt;
** 字下げ・字上げした次の行に変更行の印がつかないようにした。&lt;br /&gt;
**: 末尾の改行（次の行頭）を範囲に含めず書き換えるように変更。&lt;br /&gt;
** with 文を使用せず変数化した（他の自作マクロに合わせた）。&lt;br /&gt;
* 2019/04/12&lt;br /&gt;
** (字下げ) Quit() → break ラベル文に変更。&lt;br /&gt;
* 2015/02/14&lt;br /&gt;
** (字上げ) 「インデントの定義」に正規表現の特殊文字があると誤動作する不具合を修正。&lt;br /&gt;
** 矩形選択（始点or終点が左下かつ論理行頭）時、下端の行が範囲から漏れる不具合を修正。&lt;br /&gt;
* 2014/02/09&lt;br /&gt;
** 初版公開。&lt;br /&gt;
&lt;br /&gt;
==字下げ (インデント)==&lt;br /&gt;
* 複数行選択時 (選択範囲が2行以上) は字下げします。&amp;lt;br&amp;gt;単一行選択時 (選択範囲が1行以内) または非選択時はタブ文字を挿入します。&amp;lt;br&amp;gt;&amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;※選択範囲の行数はステータスバーの「xx文字 (xx行) 選択」の部分で判断してください。&amp;lt;/b&amp;gt;&lt;br /&gt;
* 空行 (改行のみの行) は初期状態では字下げしません。&lt;br /&gt;
* 「Tab」キーなどに割り当ててご利用ください。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
//■字下げ(インデント)&lt;br /&gt;
//　2014/02/09-2019/06/01&lt;br /&gt;
//・論理行単位で字下げする。空行は字下げしない。非選択時/単行選択時はタブ挿入。&lt;br /&gt;
&lt;br /&gt;
//■インデントの定義 ●初期値=&amp;quot;  &amp;quot;&lt;br /&gt;
var INDENT = &amp;quot;  &amp;quot;;&lt;br /&gt;
&lt;br /&gt;
quit: {&lt;br /&gt;
var Sel = Document.Selection;&lt;br /&gt;
if (Sel.GetTopPointY(mePosView)===Sel.GetBottomPointY(mePosView)) {&lt;br /&gt;
  Sel.Text = &amp;quot;\t&amp;quot;; break quit; //非選択時/単行選択時はタブ挿入して終了&lt;br /&gt;
}&lt;br /&gt;
var ty = Sel.GetTopPointY(mePosLogical);&lt;br /&gt;
var by = Sel.GetBottomPointY(mePosLogical);&lt;br /&gt;
var bx = Sel.GetBottomPointX(mePosLogical);&lt;br /&gt;
var nn =(Sel.Text.match(/\n/g)||[]).length;&lt;br /&gt;
if (bx===1 &amp;amp;&amp;amp; nn&amp;lt;=by-ty &amp;amp;&amp;amp; nn) by--; //末尾改行対策&lt;br /&gt;
Sel.SetActivePoint(mePosLogical, 1, by);&lt;br /&gt;
Sel.EndOfLine(false, mePosLogical);&lt;br /&gt;
Sel.SetAnchorPoint(mePosLogical, 1, ty);&lt;br /&gt;
Sel.Text = Sel.Text.replace(/^(?!$)/gm,INDENT);&lt;br /&gt;
Sel.SetActivePoint(mePosLogical, 1, by+1);&lt;br /&gt;
Sel.SetAnchorPoint(mePosLogical, 1, ty);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==字上げ (アンインデント)==&lt;br /&gt;
* 単一行選択時 (選択範囲が1行以内) または非選択時でも字上げします。&lt;br /&gt;
* 「Shift + Tab」キーなどに割り当ててご利用ください。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
//■字上げ(アンインデント)&lt;br /&gt;
//　2014/02/09-2019/06/01&lt;br /&gt;
//・論理行単位で字上げする。非選択時/単行選択時でも字上げする。&lt;br /&gt;
&lt;br /&gt;
//■インデントの定義 ●初期値=&amp;quot;  &amp;quot;&lt;br /&gt;
var INDENT = &amp;quot;  &amp;quot;;&lt;br /&gt;
&lt;br /&gt;
var Sel = Document.Selection;&lt;br /&gt;
var ty = Sel.GetTopPointY(mePosLogical);&lt;br /&gt;
var by = Sel.GetBottomPointY(mePosLogical);&lt;br /&gt;
var bx = Sel.GetBottomPointX(mePosLogical);&lt;br /&gt;
var nn =(Sel.Text.match(/\n/g)||[]).length;&lt;br /&gt;
if (bx===1 &amp;amp;&amp;amp; nn&amp;lt;=by-ty &amp;amp;&amp;amp; nn) by--; //末尾改行対策&lt;br /&gt;
Sel.SetActivePoint(mePosLogical, 1, by);&lt;br /&gt;
Sel.EndOfLine(false, mePosLogical);&lt;br /&gt;
Sel.SetAnchorPoint(mePosLogical, 1, ty);&lt;br /&gt;
var pat = &amp;quot;^&amp;quot;+ INDENT.replace(/[$()*+.?\[\\\]^{|}]/g,&amp;quot;\\$&amp;amp;&amp;quot;);&lt;br /&gt;
Sel.Text = Sel.Text.replace(new RegExp(pat,&amp;quot;gm&amp;quot;),&amp;quot;&amp;quot;);&lt;br /&gt;
Sel.SetActivePoint(mePosLogical, 1, by+1);&lt;br /&gt;
Sel.SetAnchorPoint(mePosLogical, 1, ty);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= sukemaru 版 =&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;ダウンロード:&#039;&#039;&#039; 「[[ファイル:字下げ／字上げ.zip]]（アイコン入り）」　最終更新: 2019/04/07&lt;br /&gt;
* [[#字下げ（スペース×２ 追加）|スペース×２ 追加]].js&lt;br /&gt;
* [[#字上げ（スペース×２ 削除）|スペース×２ 削除]].js&lt;br /&gt;
* [[#インデント|インデント]].js&lt;br /&gt;
* [[#逆インデント|アンインデント]].js&lt;br /&gt;
それぞれ専用の「マテリアルデザインっぽいアイコン」を同梱&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 字下げ（スペース×２ 追加） ==&lt;br /&gt;
;スペース×２ 追加.js&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
キャレットまたは選択範囲をふくむ論理行の各先頭に「半角スペース×２」を追加します。&lt;br /&gt;
* 選択範囲がなかった場合は「タブ文字」を追加、または「半角スペース×２」を行頭に追加します。&lt;br /&gt;
* 選択範囲があった場合は、つねに「半角スペース×２」を行頭に追加します。&lt;br /&gt;
* 行頭に「半角スペース×２」を追加する場合は、空行を無視します。&lt;br /&gt;
* 選択範囲が末尾に改行を含んでいた場合は、最後の改行を無視します。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot; style=&amp;quot;height:40em; overflow:auto;&amp;quot;&amp;gt;&lt;br /&gt;
#title = &amp;quot;字下げ&amp;quot;&lt;br /&gt;
#tooltip = &amp;quot;スペース×２ 追加&amp;quot;&lt;br /&gt;
// #icon = &amp;quot;Mery用 マテリアルデザインっぽいアイコン.icl&amp;quot;,247&lt;br /&gt;
// ※「引用の追加」マクロから行頭に文字列を追加するコードを拝借した&lt;br /&gt;
&lt;br /&gt;
// ■選択範囲なしのときには「タブ文字×１」を追加するか？&lt;br /&gt;
var tabEnable = 0;&lt;br /&gt;
&lt;br /&gt;
  // 0 なら、「半角スペース×２」を行頭に追加する（空行は無視）&lt;br /&gt;
  // 1 なら、選択範囲なしのときは「タブ文字×１」を行頭に追加する&lt;br /&gt;
  // 2 なら、選択範囲なしのときは「タブ文字×１」をキャレット位置に追加する&lt;br /&gt;
&lt;br /&gt;
// ■行頭に追加する空白文字の定義（初期値：「半角スペース×２ &amp;quot;  &amp;quot;」）&lt;br /&gt;
var blank = &amp;quot;  &amp;quot;;		// 半角スペース×２&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
var s = document.selection;&lt;br /&gt;
&lt;br /&gt;
// &amp;quot;選択範囲なし&amp;quot; のフラグ&lt;br /&gt;
var pos = s.IsEmpty ? s.GetActivePos() : &amp;quot;&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
// キャレット位置に「タブ文字×１」を挿入して終了するパターン&lt;br /&gt;
if ( pos &amp;amp;&amp;amp; tabEnable &amp;gt; 1 ) {	// tabEnable == 2&lt;br /&gt;
  s.Text = &amp;quot;\t&amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
else {&lt;br /&gt;
  var sx = ScrollX,  sy = ScrollY;&lt;br /&gt;
&lt;br /&gt;
  // 選択範囲を取得&lt;br /&gt;
  var ty = s.GetTopPointY( mePosLogical );&lt;br /&gt;
  var bx = s.GetBottomPointX( mePosLogical );&lt;br /&gt;
  var by = s.GetBottomPointY( mePosLogical );&lt;br /&gt;
  // 選択範囲を拡張&lt;br /&gt;
  if ( by != ty &amp;amp;&amp;amp; bx == 1 ) {&lt;br /&gt;
    by -= 1;&lt;br /&gt;
  }&lt;br /&gt;
  s.SetActivePoint( mePosLogical, 1, by );&lt;br /&gt;
  s.EndOfLine( false, mePosLogical );&lt;br /&gt;
  s.SetAnchorPoint( mePosLogical, 1, ty );&lt;br /&gt;
  // 選択範囲の文字列を取得&lt;br /&gt;
  var st = s.Text;&lt;br /&gt;
&lt;br /&gt;
  // 最初に選択範囲がなかった場合は、行頭に「タブ文字×１」を追加&lt;br /&gt;
  if ( pos &amp;amp;&amp;amp; tabEnable == 1 ) {&lt;br /&gt;
    var tab = &amp;quot;\t&amp;quot;;&lt;br /&gt;
    s.Text = InsertSpace( st, tab );&lt;br /&gt;
    s.SetActivePos( pos + tab.length );	// 範囲選択を残さない&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  // 選択範囲があった場合は、行頭に「半角スペース×２」を追加（空行は無視）&lt;br /&gt;
  else {	// ( ! pos || tabEnable == 0 )&lt;br /&gt;
    var t = InsertSpace( st, blank );&lt;br /&gt;
    if ( t != st ) {&lt;br /&gt;
      s.Text = t;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    if ( pos ) {	// 範囲選択を残さない&lt;br /&gt;
      s.SetActivePos( pos + ( t.length - st.length ) );&lt;br /&gt;
    }&lt;br /&gt;
    else {		// 範囲選択を残す&lt;br /&gt;
      s.SetActivePoint( mePosLogical, 1, by + 1 );&lt;br /&gt;
      s.SetAnchorPoint( mePosLogical, 1, ty );&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  ScrollX = sx;  ScrollY = sy;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// 「引用の追加」マクロより拝借&lt;br /&gt;
function InsertSpace( arg1, arg2 ) {&lt;br /&gt;
  var a = arg1.split( &amp;quot;\n&amp;quot; );&lt;br /&gt;
  for ( var i = 0; i &amp;lt; a.length; i ++ )&lt;br /&gt;
    if ( a[i].length || arg2 == &amp;quot;\t&amp;quot; )&lt;br /&gt;
      a[i] = arg2 + a[i];&lt;br /&gt;
  return a.join( &amp;quot;\n&amp;quot; );&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 字上げ（スペース×２ 削除） ==&lt;br /&gt;
;スペース×２ 削除.js&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
キャレットまたは選択範囲をふくむ論理行の各先頭から「半角スペース×２」を削除します。&lt;br /&gt;
* 行頭の「空白文字」を削除、またはキャレット位置の前後にある「タブ文字」を削除します。&lt;br /&gt;
* 選択範囲があった場合は、つねに行頭の「空白文字」だけを削除します。&lt;br /&gt;
* 削除対象の行頭の「空白文字」には「半角スペース×２」以外の空白文字もふくめます。&lt;br /&gt;
: &#039;&#039;i.e.&#039;&#039; 「半角スペース×２」「半角スペース×１」「全角スペース×１」「タブ文字×１」&lt;br /&gt;
* 選択範囲が末尾に改行を含んでいた場合は、最後の改行を無視します。&lt;br /&gt;
&lt;br /&gt;
※ sukemaru 版の「字上げ」と「逆インデント」マクロを並存させるメリットは少ないとおもいますので、お好みで選んでください。 &amp;lt;br&amp;gt; &lt;br /&gt;
「字上げ」マクロなら、削除対象に「空白文字」以外の任意の &amp;quot;文字列&amp;quot; や &amp;quot;記号&amp;quot; なども追加できます。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot; style=&amp;quot;height:40em; overflow:auto;&amp;quot;&amp;gt;&lt;br /&gt;
#title = &amp;quot;字上げ&amp;quot;&lt;br /&gt;
#tooltip = &amp;quot;スペース×２ 削除&amp;quot;&lt;br /&gt;
// #icon = &amp;quot;Mery用 マテリアルデザインっぽいアイコン.icl&amp;quot;,249&lt;br /&gt;
// ※「引用の追加」マクロから行頭の文字列を削除するコードを拝借した&lt;br /&gt;
&lt;br /&gt;
// ■選択範囲なしのときに、キャレット位置の前後にある「タブ文字」を優先的に削除するか？&lt;br /&gt;
var nearestTab = true;&lt;br /&gt;
&lt;br /&gt;
  // false にすると、つねに行頭の空白文字のみを削除&lt;br /&gt;
  // true にすると、キャレット付近の「タブ文字×１」を優先的に削除（タブ文字がなければ行頭の空白を削除）&lt;br /&gt;
&lt;br /&gt;
// ■削除対象（削除の単位）にする行頭の空白文字の定義&lt;br /&gt;
var blank = new Array( &amp;quot;  &amp;quot; , &amp;quot; &amp;quot; , &amp;quot;　&amp;quot; , &amp;quot;\t&amp;quot; );&lt;br /&gt;
&lt;br /&gt;
  // 初期値： new Array( &amp;quot;  &amp;quot; , &amp;quot; &amp;quot; , &amp;quot;　&amp;quot; , &amp;quot;\t&amp;quot; )&lt;br /&gt;
  // i.e. 「半角スペース×２ &amp;quot;  &amp;quot;」「半角スペース×１ &amp;quot; &amp;quot;」「全角スペース×１ &amp;quot;　&amp;quot; 」「タブ文字×１ &amp;quot;\t&amp;quot;」&lt;br /&gt;
  // ※ 前に置いたもののほうが優先順位が高くなるので、行頭に半角スペースが３つある行で連続で実行した場合、&lt;br /&gt;
  //   １回目では「半角スペース×２」を削除し、２回目で「半角スペース×１」を削除する&lt;br /&gt;
  // ※ 空白文字以外の &amp;quot;文字列&amp;quot; を Array() のなかに追加するのも可&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
var s = document.selection;&lt;br /&gt;
&lt;br /&gt;
// &amp;quot;選択範囲なし&amp;quot; のフラグ&lt;br /&gt;
var pos = s.IsEmpty ? s.GetActivePos() : &amp;quot;&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
// キャレット付近の「タブ文字×１」を優先的に削除するパターン&lt;br /&gt;
var isDone = false;&lt;br /&gt;
if ( pos &amp;amp;&amp;amp; nearestTab ) {&lt;br /&gt;
  if ( document.Text.charAt( pos - 1 ) == &amp;quot;\t&amp;quot; ) {&lt;br /&gt;
    s.DeleteLeft();&lt;br /&gt;
    isDone = true;&lt;br /&gt;
  }&lt;br /&gt;
  else if ( document.Text.charAt( pos ) == &amp;quot;\t&amp;quot; ) {&lt;br /&gt;
    s.Delete();&lt;br /&gt;
    isDone = true;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
if ( ! isDone ) {&lt;br /&gt;
  var sx = ScrollX,  sy = ScrollY;&lt;br /&gt;
&lt;br /&gt;
  // 選択範囲を取得&lt;br /&gt;
  var ty = s.GetTopPointY( mePosLogical );&lt;br /&gt;
  var by = s.GetBottomPointY( mePosLogical );&lt;br /&gt;
  var bx = s.GetBottomPointX( mePosLogical );&lt;br /&gt;
  // 選択範囲を拡張&lt;br /&gt;
  if ( by != ty &amp;amp;&amp;amp; bx == 1 ) {&lt;br /&gt;
    by -= 1;&lt;br /&gt;
  }&lt;br /&gt;
  s.SetActivePoint( mePosLogical, 1, by );&lt;br /&gt;
  s.EndOfLine( false, mePosLogical );&lt;br /&gt;
  s.SetAnchorPoint( mePosLogical, 1, ty );&lt;br /&gt;
  // 選択範囲の文字列を取得&lt;br /&gt;
  var st = s.Text;&lt;br /&gt;
&lt;br /&gt;
  // 行頭の空白文字を削除&lt;br /&gt;
  var t = DeleteSpace( st, blank );&lt;br /&gt;
  if ( t != st ) {&lt;br /&gt;
    s.Text = t;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  if ( pos ) {		// 範囲選択を残さない&lt;br /&gt;
    s.SetActivePos( pos - ( st.length - t.length ) );&lt;br /&gt;
  }&lt;br /&gt;
  else {		// 範囲選択を残す&lt;br /&gt;
    s.SetActivePoint( mePosLogical, 1, by + 1 );&lt;br /&gt;
    s.SetAnchorPoint( mePosLogical, 1, ty );&lt;br /&gt;
  }&lt;br /&gt;
  ScrollX = sx;  ScrollY = sy;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// 「引用の追加」マクロより拝借&lt;br /&gt;
function DeleteSpace( arg1, arg2 ) {&lt;br /&gt;
  var a = arg1.split( &amp;quot;\n&amp;quot; );&lt;br /&gt;
  for ( var i = 0; i &amp;lt; a.length; i ++ ) {&lt;br /&gt;
    for ( var j = 0; j &amp;lt; arg2.length; j ++ ) {&lt;br /&gt;
      if ( arg2[j].length == 0 )&lt;br /&gt;
        continue;&lt;br /&gt;
      if ( a[i].substr( 0, arg2[j].length ) == arg2[j] ) {&lt;br /&gt;
        a[i] = a[i].substr( arg2[j].length );&lt;br /&gt;
        break;&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  return a.join( &amp;quot;\n&amp;quot; ); &lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== インデント ==&lt;br /&gt;
;インデント.js &amp;lt;br&amp;gt; &lt;br /&gt;
既存のツールバーアイコンのアイテム「インデント」から置きかえて使う目的のマクロで、&amp;lt;span style=&amp;quot;color:#c00;&amp;quot;&amp;gt;選択範囲がなくてもタブインデント&amp;lt;/span&amp;gt;します。 &amp;lt;br&amp;gt; ソースコードの内容は「字上げ（スペース×２ 追加）」マクロとほぼ同じですが、こちらの「インデント」マクロの場合は、挿入する空白は「タブ文字」のみで空白行にたいしてもインデントを追加します。&lt;br /&gt;
* 論理行全体をタブインデント（行頭）して範囲選択します。 &amp;lt;br&amp;gt; 選択範囲が１行内ならもとの選択範囲を維持し、複数行なら対象の論理行全体を範囲選択します。&lt;br /&gt;
* またはカーソル位置にタブ文字を挿入します。&lt;br /&gt;
* 選択範囲が末尾に改行を含んでいた場合は、最後の改行を無視します。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
【推奨設定】 Tab キーに割りあてるなら &#039;&#039;tabEnable = 2&#039;&#039; , ツールバーアイコンにするなら &#039;&#039;tabEnable = 0&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot; style=&amp;quot;height:40em; overflow:auto;&amp;quot;&amp;gt;&lt;br /&gt;
#title = &amp;quot;インデント&amp;quot;&lt;br /&gt;
#tooltip = &amp;quot;選択範囲がなくてもインデント&amp;quot;&lt;br /&gt;
#icon = &amp;quot;Mery用 マテリアルデザインっぽいアイコン.icl&amp;quot;,260&lt;br /&gt;
&lt;br /&gt;
// ■選択範囲があるときに、選択範囲を「タブ文字」にするか？ 行全体をタブインデントするか？&lt;br /&gt;
var tabEnable = 0;&lt;br /&gt;
&lt;br /&gt;
  // 0 にすると、選択範囲がなくてもつねに行全体をタブインデント（行頭）&lt;br /&gt;
  // 1 にすると、選択範囲があれば行全体をタブインデント（※ツールバーアイコンの「インデント」に似た動作）&lt;br /&gt;
  // 2 にすると、選択範囲が１行内のときだけ選択範囲を「タブ文字」にする （※Tab キーの通常動作にちかい）&lt;br /&gt;
  // 3 にすると、つねに選択範囲を「タブ文字」にする（※インデントしない）&lt;br /&gt;
&lt;br /&gt;
  // ※ 0 の場合、「タブ文字」を挿入することができないので、ツールバーアイコン向けの設定。&lt;br /&gt;
  // ※ 1 の場合、選択範囲を「タブ文字」にすることができないので、Tab キーにマクロを割りあてると少し不便になるかも？&lt;br /&gt;
  //   範囲選択 → 削除 (Delete / BackSpace) → 「インデント」マクロ (Tab)&lt;br /&gt;
  // ※ 2 の場合に１行だけインデントさせるなら、行頭でクリックするか、行内でトリプルクリック&lt;br /&gt;
  //   または行番号のクリックで行全体を選択範囲にして「インデント」マクロ （末尾改行まで含める必要あり）。&lt;br /&gt;
  //   [EOF] マークのある（さいごに改行がない）文書末行だけの１行選択ではインデントできない。&lt;br /&gt;
  //   ⇔ Tab キーの通常動作では末尾改行を含める必要はない&lt;br /&gt;
  // ※ 3 は、わざわざマクロでやる意味もないかと。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
var sx = ScrollX,  sy = ScrollY;&lt;br /&gt;
var s = document.selection;&lt;br /&gt;
&lt;br /&gt;
// 選択範囲&lt;br /&gt;
var act = s.GetActivePos();&lt;br /&gt;
var anc = s.GetAnchorPos();&lt;br /&gt;
var ty = s.GetTopPointY( mePosLogical );&lt;br /&gt;
var bx = s.GetBottomPointX( mePosLogical );&lt;br /&gt;
var by = y = s.GetBottomPointY( mePosLogical );&lt;br /&gt;
&lt;br /&gt;
// カーソル位置にタブを挿入して終了するパターン&lt;br /&gt;
if ( ( s.IsEmpty &amp;amp;&amp;amp; tabEnable == 1 ) || ( tabEnable == 2 &amp;amp;&amp;amp; ty == by ) || tabEnable == 3 ) {&lt;br /&gt;
  s.Text = &amp;quot;\t&amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
else {&lt;br /&gt;
  // 選択範囲を拡張&lt;br /&gt;
  if ( ty != by &amp;amp;&amp;amp; bx == 1 ) {&lt;br /&gt;
    y --;	// 選択範囲の末尾が行頭 x = 1 にあるときの調整&lt;br /&gt;
  }&lt;br /&gt;
  s.SetActivePoint( mePosLogical, 1, y );&lt;br /&gt;
  s.EndOfLine( false, mePosLogical );&lt;br /&gt;
  s.SetAnchorPoint( mePosLogical, 1, ty );&lt;br /&gt;
  var st = s.Text;&lt;br /&gt;
&lt;br /&gt;
  // インデント&lt;br /&gt;
  s.Text = st.replace( /^/gm , &amp;quot;\t&amp;quot; );&lt;br /&gt;
&lt;br /&gt;
  // 選択範囲を復元&lt;br /&gt;
  if ( ty == by ) {&lt;br /&gt;
    s.SetActivePos( act + 1 );&lt;br /&gt;
    s.SetAnchorPos( anc + 1 );&lt;br /&gt;
  }&lt;br /&gt;
  else {&lt;br /&gt;
    s.SetActivePos( s.GetActivePos() + 1 );&lt;br /&gt;
    s.SetAnchorPoint( mePosLogical, 1, ty );&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
ScrollX = sx;  ScrollY = sy;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 逆インデント ==&lt;br /&gt;
;アンインデント.js &amp;lt;br&amp;gt; &lt;br /&gt;
既存のツールバーアイコンのアイテム「逆インデント」から置きかえて使う目的のマクロで、&amp;lt;span style=&amp;quot;color:#c00;&amp;quot;&amp;gt;選択範囲がなくてもアンインデント&amp;lt;/span&amp;gt;します。 &amp;lt;br&amp;gt; &lt;br /&gt;
機能的には「字上げ（スペース×２ 削除）」マクロとほぼ同じですが、削除できる「半角スペース×ｎ」の最大数をかんたんに設定できるようにしてあります （ &amp;quot;␣␣␣␣&amp;quot;, &amp;quot;␣␣␣&amp;quot;, &amp;quot;␣␣&amp;quot;, &amp;quot;␣&amp;quot; なら &#039;&#039;deleteSpace =&#039;&#039; &#039;&#039;&#039;&#039;&#039;4&#039;&#039;&#039;&#039;&#039; と指定するだけ）。&lt;br /&gt;
* 行頭またはカーソル付近の「タブ文字×１」か、行頭の「半角スペース×ｎ」を削除します。&lt;br /&gt;
* 選択範囲なしならカーソル付近のタブを削除するか、またはカーソルのある１行をアンインデントして、カーソル位置を復帰します。&lt;br /&gt;
* 選択範囲ありなら論理行全体をアンインデント（行頭）して範囲選択します。&lt;br /&gt;
* 選択範囲が末尾に改行を含んでいた場合は、最後の改行を無視します。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
【推奨設定】 「字上げ」マクロと並存させるなら &#039;&#039;deleteSpace = 0&#039;&#039; , 「字上げ」マクロなしで Shift＋Tab キーに割りあてるなら &#039;&#039;deleteSpace ≠ 0&#039;&#039; &amp;lt;br&amp;gt; &lt;br /&gt;
: 設定用変数 &#039;&#039;deleteSpace = ｎ&#039;&#039; で &#039;&#039;&#039;3&#039;&#039;&#039; 以上の数値を指定するさいは、Mery のオプション設定の「タブの桁数」を目安にしてください（大きな数字や非整数値を入れての動作検証はしていません）。&lt;br /&gt;
&lt;br /&gt;
※ sukemaru 版の「逆インデント」と「字上げ（スペース×２ 削除）」マクロを並存させるメリットは特にないとおもいますので、お好みで選んでください。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot; style=&amp;quot;height:40em; overflow:auto;&amp;quot;&amp;gt;&lt;br /&gt;
#title = &amp;quot;逆インデント&amp;quot;&lt;br /&gt;
#tooltip = &amp;quot;選択範囲がなくてもアンインデント&amp;quot;&lt;br /&gt;
#icon = &amp;quot;Mery用 マテリアルデザインっぽいアイコン.icl&amp;quot;,261&lt;br /&gt;
&lt;br /&gt;
// ■選択範囲なしのときに、カーソル位置の前後にある「タブ文字」を優先的に削除するか？&lt;br /&gt;
var nearestTab = true;&lt;br /&gt;
&lt;br /&gt;
  // false にすると、つねに行頭の空白文字のみを削除&lt;br /&gt;
  // true にすると、カーソル付近の「タブ文字×１」を優先的に削除（タブ文字がなければ行頭の空白を削除）&lt;br /&gt;
&lt;br /&gt;
// ■行頭の「半角スペース」や「「全角スペース」も削除するか？&lt;br /&gt;
var deleteSpace = 1;&lt;br /&gt;
&lt;br /&gt;
  // ※ 正の整数値で指定してください&lt;br /&gt;
  // 0 にすると、「タブ文字×１」だけを削除&lt;br /&gt;
  // 1 にすると、行頭の「半角スペース×２」と「半角スペース×１」も削除&lt;br /&gt;
  // 2 にすると、行頭の「半角スペース×２」と「半角スペース×１」と「全角スペース×１」も削除&lt;br /&gt;
  // 3 以上にすると、１回の逆インデントで削除できる「半角スペース×ｎ」の最大数が増加&lt;br /&gt;
  //   → 削除できる「全角スペース」の最大数は ｎ / 2 （初期設定では小数点以下を切り捨て）&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
var sx = ScrollX,  sy = ScrollY;&lt;br /&gt;
var s = document.selection;&lt;br /&gt;
&lt;br /&gt;
// &amp;quot;選択範囲なし&amp;quot; のフラグ&lt;br /&gt;
var pos = s.IsEmpty ? s.GetActivePos() : &amp;quot;&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
// カーソル付近の「タブ文字×１」を削除する場合（左側優先）&lt;br /&gt;
var isDone = false;&lt;br /&gt;
if ( pos &amp;amp;&amp;amp; nearestTab ) {&lt;br /&gt;
  if ( document.Text.charAt( pos - 1 ) == &amp;quot;\t&amp;quot; ) {&lt;br /&gt;
    s.DeleteLeft();&lt;br /&gt;
    isDone = true;&lt;br /&gt;
  }&lt;br /&gt;
  else if ( document.Text.charAt( pos ) == &amp;quot;\t&amp;quot; ) {&lt;br /&gt;
    s.Delete();&lt;br /&gt;
    isDone = true;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
if ( ! isDone ) {&lt;br /&gt;
  // 選択範囲&lt;br /&gt;
  var act = s.GetActivePos();&lt;br /&gt;
  var anc = s.GetAnchorPos();&lt;br /&gt;
  var ty = s.GetTopPointY( mePosLogical );&lt;br /&gt;
  var bx = s.GetBottomPointX( mePosLogical );&lt;br /&gt;
  var by = y = s.GetBottomPointY( mePosLogical );&lt;br /&gt;
  // 選択範囲を拡張&lt;br /&gt;
  if ( ty != by &amp;amp;&amp;amp; bx == 1 ) {&lt;br /&gt;
    y --;		// 選択範囲の末尾が行頭 x = 1 にあるときの調整&lt;br /&gt;
  }&lt;br /&gt;
  s.SetActivePoint( mePosLogical, 1, y );&lt;br /&gt;
  s.EndOfLine( false, mePosLogical );&lt;br /&gt;
  s.SetAnchorPoint( mePosLogical, 1, ty );&lt;br /&gt;
  var st = s.Text;&lt;br /&gt;
&lt;br /&gt;
  // 逆インデント&lt;br /&gt;
  // ( deleteSpace &amp;gt;= 3 ) では、/^\t|^[ ]{1,n}|^[　]{1,m}/gm  の n に deleteSpace の値、m に n/2 を代入 ※toString().replace() で小数点以下を切り捨て&lt;br /&gt;
  // ■ m = n/2 の小数点以下を切り上げ（四捨五入）にするなら Math.round() 関数の行を使用する&lt;br /&gt;
  // ※必ず ( deleteSpace &amp;gt;= 3 ) の行のひとつをコメントアウト状態にしておくこと&lt;br /&gt;
  var indent = ( deleteSpace == 1 ) ? &amp;quot;^\\t|^[ ]{1,2}&amp;quot;&lt;br /&gt;
             : ( deleteSpace == 2 ) ? &amp;quot;^\\t|^[ ]{1,2}|^[　]&amp;quot;&lt;br /&gt;
             : ( deleteSpace &amp;gt;= 3 ) ? &amp;quot;^\\t|^[ ]{1,&amp;quot; + deleteSpace + &amp;quot;}|^[　]{1,&amp;quot; + ( deleteSpace / 2 ).toString().replace( /\.\d+$/ , &amp;quot;&amp;quot; ) + &amp;quot;}&amp;quot;&lt;br /&gt;
          // : ( deleteSpace &amp;gt;= 3 ) ? &amp;quot;^\\t|^[ ]{1,&amp;quot; + deleteSpace + &amp;quot;}|^[　]{1,&amp;quot; + Math.round( deleteSpace / 2 ) + &amp;quot;}&amp;quot;&lt;br /&gt;
               /*      else      */ : &amp;quot;^\\t&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
  var u = st.replace( new RegExp( indent , &amp;quot;gm&amp;quot; ) , &amp;quot;&amp;quot; );&lt;br /&gt;
  if ( u != s.Text ) {&lt;br /&gt;
    s.Text = u;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  // カーソル位置または選択範囲を復元&lt;br /&gt;
  if ( ty == by ) {&lt;br /&gt;
    s.SetActivePos( act - ( st.length - u.length ) );&lt;br /&gt;
    s.SetAnchorPos( anc - ( st.length - u.length ) );&lt;br /&gt;
    if ( s.GetTopPointY( mePosLogical ) != ty )&lt;br /&gt;
      s.SetActivePoint( mePosLogical, 1, ty );&lt;br /&gt;
  }&lt;br /&gt;
  else {&lt;br /&gt;
    s.SetActivePos( s.GetActivePos() + 1 );&lt;br /&gt;
    s.SetAnchorPoint( mePosLogical, 1, ty );&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
ScrollX = sx;  ScrollY = sy;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== メモ ==&lt;br /&gt;
*(2019/04/07 sukemaru)&lt;br /&gt;
:ソースコードから Quit() メソッドを削除&lt;/div&gt;</summary>
		<author><name>Masme</name></author>
	</entry>
	<entry>
		<id>https://www.haijin-boys.com/wiki/index.php?title=%E3%83%9E%E3%82%AF%E3%83%AD%E3%83%A9%E3%82%A4%E3%83%96%E3%83%A9%E3%83%AA&amp;diff=4222</id>
		<title>マクロライブラリ</title>
		<link rel="alternate" type="text/html" href="https://www.haijin-boys.com/wiki/index.php?title=%E3%83%9E%E3%82%AF%E3%83%AD%E3%83%A9%E3%82%A4%E3%83%96%E3%83%A9%E3%83%AA&amp;diff=4222"/>
		<updated>2019-05-01T06:49:55Z</updated>

		<summary type="html">&lt;p&gt;Masme: 「テキスト整形」更新&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Mery で使用できるマクロを集めたライブラリです。&lt;br /&gt;
&lt;br /&gt;
スクリプトを拡張子「js」 (JavaScript、JScript の場合) にして「Macros」フォルダ等に保存し、マクロメニューの「選択」や「カスタマイズ」から読み込んで使用してください。&lt;br /&gt;
&lt;br /&gt;
マクロライブラリはどなたでも自由に編集できますので、みなさんが作成した便利なマクロをどんどん掲載してください。&lt;br /&gt;
&lt;br /&gt;
== テキスト操作補助 ==&lt;br /&gt;
&lt;br /&gt;
*[https://github.com/haijinboys/mery-macro-emmet Emmet] (Kuro)&lt;br /&gt;
*[[Zen Coding]] (Kuro)&lt;br /&gt;
*[[CSV のカーソル位置の列を削除]] (Kuro)&lt;br /&gt;
*[[対応する括弧に移動]] (Kuro, kurama, masme 他) update 2019/04/24&lt;br /&gt;
*[[選択文字列を強調]] (Kuro)&lt;br /&gt;
*[[行頭に移動]] (Kuro, 他) update 2014/03/15&lt;br /&gt;
:[[行頭か行末 または 選択範囲の始点か終点|行頭か行末 または 選択範囲の始点か終点 に移動]] (sukemaru) update 2019/03/29&lt;br /&gt;
*[[文書の先頭か末尾|文書の 先頭か末尾 に移動]] (sukemaru) update 2019/03/29&lt;br /&gt;
*[[バイト数]] (Kuro, ks, sukemaru) update 2018/11/18&lt;br /&gt;
*[[日付と時刻を挿入]] (n, masme, sukemaru) update 2018/12/09&lt;br /&gt;
*[[日付と時刻を挿入（カレンダー版）]] (papagoat) update 2016/05/24&lt;br /&gt;
*[[選択範囲を上下に移動]] (ks)&lt;br /&gt;
*[[行を複製 (複数行可)]] (sukemaru) update 2019/03/29&lt;br /&gt;
*[[TeraPadのCtrl↑と同じような動作をするマクロ]] (suke)&lt;br /&gt;
*[[TeraPadのCtrl↓と同じような動作をするマクロ]] (suke)&lt;br /&gt;
*[[Vz 風テキストスタック 2 ストロークキー]] (papagoat) update 2013/11/22&lt;br /&gt;
*[[非選択状態でも逆インデント]] (papagoat)&lt;br /&gt;
*[[ラクラク罫線]] (手石) Update 2012/12/22&lt;br /&gt;
*[[ファイル:XHTML.zip]] (アラフォー親父) HTMLタグを、ショートカット・キーに登録して入力するマクロ（文章挟み込み仕様）&lt;br /&gt;
*[[矩形ペースト]] (手石)&lt;br /&gt;
*[[自動箇条書き]] (手石) update 2013/03/15&lt;br /&gt;
*[[インデントを考慮した折り返し（改行挿入）]] (手石) update 2013/02/23&lt;br /&gt;
*[[青空文庫用整形補助]] (ks, 有志)&lt;br /&gt;
*[[部分編集]] (ks)&lt;br /&gt;
*[[文字カウント]] (masme) 2014/02/01, update 2018/08/04&lt;br /&gt;
*[[字下げ・字上げ]](インデント・逆インデント) (masme, sukemaru) 2014/02/09, update 2019/04/12&lt;br /&gt;
:「[[字下げ・字上げ#インデント|インデント／逆インデント]]」を追加&lt;br /&gt;
*[[数値を増減]](インクリメント・デクリメント) (masme) 2014/06/17, update 2016/02/28&lt;br /&gt;
*[[少し便利な Undo/Redo]] (ks)&lt;br /&gt;
*[[自動ルビ振り]] (急急如律令)&lt;br /&gt;
*[[貼付け実行後のカーソル位置を貼付け文字列の先頭にする]] (yuko, sukemaru) update 2018/11/14&lt;br /&gt;
*[[ドイツ語特殊文字]] (鯉)&lt;br /&gt;
*[[矩形選択範囲の各行先頭に文字挿入]] (yuko)&lt;br /&gt;
*[[行の先頭に貼り付け]] (sukemaru) 2018/08/24&lt;br /&gt;
*[[文章で使用されている文字をユニーク抽出]] (Kuro)&lt;br /&gt;
*[[アウトライン用ノード追加]] (mik) 2018/06/25&lt;br /&gt;
*[[アウトラインのノードレベルを上げる]] (mik) 2018/06/25&lt;br /&gt;
*[[アウトラインのノードレベルを下げる]] (mik) 2018/06/25&lt;br /&gt;
*[[アウトラインのノードの完了/未完了を切り替える]] (mik) 2018/10/18 update&lt;br /&gt;
*[[ハルナアウトライン用の完了/未完了フラグをノード名に反映する]] (mik) 2018/10/18 update&lt;br /&gt;
*[[Markdown文書で改行時にリスト、引用ブロック開始記号を自動入力する]] (catfist, yuko) 2018/10/15 update&lt;br /&gt;
*[[Markdown 向け、リスト記号 (*) のトグル]] (yuko) 2019/04/29&lt;br /&gt;
*[[引用符／コメント]] ※ポップアップメニュー (行頭の文字列操作. 「引用の追加」マクロの増補改訂版)　(sukemaru) last modified 2019/04/07&lt;br /&gt;
*[[カッコで囲う]] (ポップアップメニューあり)　(sukemaru) last modified 2019/04/07&lt;br /&gt;
:「[[カッコで囲う#カッコで囲う (ポップアップメニューなし)|カッコで囲う (簡易版 ポップアップメニューなし)]]」&amp;lt;br&amp;gt; 「[[カッコで囲う#引用符を追加／削除|引用符を追加／削除]]」（ &amp;quot;二重引用符&amp;quot; の追加／削除トグル）&lt;br /&gt;
*[[カッコをはずす]] ＆ [[カッコをはずす#カッコを削除／追加|カッコを削除／追加]] ＆ [[カッコをはずす#カッコを追加／削除|カッコを追加／削除]] (sukemaru)  2019/03/14 - 2019/04/07&lt;br /&gt;
*[[定型文を挿入]]マクロ集 (sukemaru) 2018/12/03&lt;br /&gt;
*[[何年生で習う漢字？]] (シリル) 2019/03/10&lt;br /&gt;
&lt;br /&gt;
== ファイル操作補助 ==&lt;br /&gt;
&lt;br /&gt;
*[[ファイルのプロパティ]] (sukemaru) 2018/12/18&lt;br /&gt;
*[[文字列中のパス起動]] (ks)&lt;br /&gt;
:[[選択範囲のURL・パスを開く|ひらけゴマ！]] (sukemaru) update 2019/04/07 ※「選択範囲のURL・パスを開く」&lt;br /&gt;
*[[自動バックアップ]] (ks)&lt;br /&gt;
*[[終了時状態保持・復元]] (ks)&lt;br /&gt;
*[[上書き保存(UAC対応)]] (ks)&lt;br /&gt;
*[[含んでいるフォルダを開く]] (ks)&lt;br /&gt;
*[[パスを取得]] (Kuro)&lt;br /&gt;
*[[フォルダ内のファイルをすべて開く]] (Kuro)&lt;br /&gt;
*[[ファイルを比較]] (Kuro)&lt;br /&gt;
*[[ファイル名を引数にしてアプリ起動]] (Kuro, miso)&lt;br /&gt;
*[[ブックマーク一覧ジャンプ]] (goat, sukemaru) update 2019/04/16&lt;br /&gt;
*[[拡張子の違うファイルを開く]] (n)&lt;br /&gt;
*[[フォルダを開く]] (n)&lt;br /&gt;
*[[コマンドプロンプトを開く]] (n)&lt;br /&gt;
*[[SDIウィンドウの記憶と復帰]] (papagoat) Update 2012/10/23 (説明文変更 2013/11/22)&lt;br /&gt;
*[[よく使うフォルダ]] (手石) Update 2014/02/22&lt;br /&gt;
*[[ファイル（選択範囲）の仮保存]] (手石)&lt;br /&gt;
*[[ポップアップメニューでファイル選択]] (手石)&lt;br /&gt;
*[[フォルダツリーをポップアップ表示]] (n)&lt;br /&gt;
*[[タグジャンプ]] (o)&lt;br /&gt;
*[[ウィンドウの位置とサイズを拡張子で指定]] (papagoat) Update 2014/04/17&lt;br /&gt;
*[[編集モードの自動選択]] または「書き換え禁止で開く」 ※イベントマクロ (sukemaru, Bleat) update 2019/04/24&lt;br /&gt;
*[[書き換え禁止モード色反転]] (Bleat)&lt;br /&gt;
*[[特定のフォルダで「ファイルを開く」ダイアログ]] (sukemaru) fixed 2018/12/19&lt;br /&gt;
*[[すべて閉じる]]マクロ集 (sukemaru) 2019/04/25 ② &amp;lt;br&amp;gt;｢他（右側／左側）のタブを閉じる｣ などを追加&lt;br /&gt;
*[[文書が変更されていなければ変更マークを消す]] (Noah)&lt;br /&gt;
*[[変更なしのタブをすべて閉じる]] (Noah)&lt;br /&gt;
*[[ファイルを読み直す・開きなおす]] ※ポップアップメニュー (sukemaru) update &amp;amp; fix 2019/04/30 &amp;lt;br&amp;gt; エンコード指定で読み直し・読み取り専用属性の変更・編集モードの変更・プロパティを開く・さいごに閉じたファイルを開く&lt;br /&gt;
*[[ファイルのフルパスをコピーして閉じる]] ※イベントマクロ (sukemaru) update 2019/04/14&lt;br /&gt;
*[[さいごに閉じたファイルを開く]] ※ポップアップメニュー (sukemaru) 2019/04/30&lt;br /&gt;
&lt;br /&gt;
== 変換・ソート・整形 ==&lt;br /&gt;
&lt;br /&gt;
*[[可変長を固定長に変換]] (Kuro)&lt;br /&gt;
*[[SHA でハッシュ化]] (Kuro)&lt;br /&gt;
*[[標準変換]] (Kuro)&lt;br /&gt;
*[[昇順で並び替え]] (Kuro)&lt;br /&gt;
*[[降順で並び替え]] (Kuro)&lt;br /&gt;
*[[連続する重複行を削除]] (Kuro)&lt;br /&gt;
*[[ブックマーク系コマンド集]] (ks)&lt;br /&gt;
*[[テキスト変換]] (ks)&lt;br /&gt;
**[[テキスト整形]] (masme) 2013/09/15, update 2019/05/01&lt;br /&gt;
*[[旧漢字から新漢字に変換]] (furu)&lt;br /&gt;
*[[clustalw を用いてアライメントを実行]] (suke)&lt;br /&gt;
*[[連番の挿入]] (手石)&lt;br /&gt;
*[[TSV(CSV) ⇒ 固定長]] (手石) update 2013/04/16&lt;br /&gt;
*[[行並べ替え]] (masme) 2013/08/25, update 2019/04/12&lt;br /&gt;
*[[連番を挿入]] (masme) 2013/08/25&lt;br /&gt;
*[[GFMをHTMLに変換]] (noonworks) 2014/03/09&lt;br /&gt;
*[[TrueとFalse_を切り替える|YES／NO マクロ]] (sukemaru) update 2018/11/27 ※「&amp;lt;span style=&amp;quot;color:#0000c0;&amp;quot;&amp;gt;True&amp;lt;/span&amp;gt;と&amp;lt;span style=&amp;quot;color:#c00;&amp;quot;&amp;gt;False&amp;lt;/span&amp;gt;を切り替える」&lt;br /&gt;
*[[基数変換10_16]] (シリル) 2019/02/10&lt;br /&gt;
*[[スネークケース ⇔ キャメルケースの変換]] (Noah)&lt;br /&gt;
*[[罫線変換]] (シリル) 2019/03/09&lt;br /&gt;
&lt;br /&gt;
== 検索・置換 ==&lt;br /&gt;
&lt;br /&gt;
*[[文書から検索]] (Kuro)&lt;br /&gt;
*[[単語を抽出]] (Kuro)&lt;br /&gt;
*[[このファイルから検索(マッチしない行)]] (Kuro)&lt;br /&gt;
*[[このファイルから検索(マッチする行)]] (Kuro)&lt;br /&gt;
*[[タグの外側（内側）だけ置換]] (手石)&lt;br /&gt;
*[[ポップアップメニューで検索先にジャンプ]] (手石, sukemaru) Last Update 2019/04/16&lt;br /&gt;
*[[検索(SJIS以外)]] + 検索強調を解除 (masme) 2014/09/16, update 2017/06/26&lt;br /&gt;
*[https://github.com/TakamiChie/mery-scripts/blob/master/SearchWithMode.js 現在開いているファイルの言語名をつけてWeb検索] (高見知英)→[[https://vine.co/v/eeY59rFMail 実際の動作例]]&lt;br /&gt;
*[https://github.com/GunseiPaseri/Mery_macro 文字出現量ランキング] (群生系パセリ) 2015/12/28&lt;br /&gt;
*[[検索ヒット数表示]] (ks)&lt;br /&gt;
*[[任意の検索エンジンで検索]] (Noah)&lt;br /&gt;
*[[デフォルトの検索フラグを設定して検索ウィンドウ表示]] (yuko)&lt;br /&gt;
*[[簡易検索一覧]] (シリル) 2018/12/24&lt;br /&gt;
*[[簡易検索一覧などをアウトプット]] (シリル) 2018/12/31&lt;br /&gt;
*[[複数置換]] (Noah)&lt;br /&gt;
*[[類義語アウトプット【Python】]] (シリル) 2019/03/24&lt;br /&gt;
*[[校正支援アウトプット]] (シリル) 2019/05/01&lt;br /&gt;
&lt;br /&gt;
== プログラミング補助 ==&lt;br /&gt;
&lt;br /&gt;
*[[Eclipse風コメントアウト]] (ks)&lt;br /&gt;
*[[Eclipse風コメントアウト(改)]] (pizz) 2019/04/12&lt;br /&gt;
*[[コメントマーク付け外し]] (手石, masme, sukemaru) last update 2019/04/07&lt;br /&gt;
*[[スマートインデント(C 構文)]] (ks)&lt;br /&gt;
*[[ctags.exeでtagsファイルを生成、タグジャンプを行うマクロ]] (kazy)&lt;br /&gt;
*[[タグファイルから補完]] (n)&lt;br /&gt;
*[[コードスニペットもどき]] (手石) Update 2012/12/20&lt;br /&gt;
*[[TeX文書のコンパイル]] (手石)&lt;br /&gt;
*[[TeX数式のチェック]] (手石)&lt;br /&gt;
*[[簡易数式計算]] (ks)&lt;br /&gt;
*[[定義へ移動]] (ks)&lt;br /&gt;
*[[タブの桁数]] (手石)&lt;br /&gt;
*[[行末の空白を削除]] (n) 2014/12/19&lt;br /&gt;
*[https://github.com/TakamiChie/mery-scripts/tree/master/ 開いているスクリプトファイルを実行(掲載時点ではバッチファイル・Javascript・Lua・PHP・Perl・Python・Ruby・UWSCに対応。順次追加予定)] (高見知英)&lt;br /&gt;
*[https://github.com/TakamiChie/mery-scripts/tree/master/ 開いているスクリプトファイルを構文チェック(掲載時点ではPHP・Perlに対応。順次追加予定)] (高見知英)&lt;br /&gt;
*[[説明を出力]] (s) Create 2015/08/16&lt;br /&gt;
*[[拡張子からコンソール実行]] (YOS G-spec) 2016/12/11更新&lt;br /&gt;
*[[JSON整形]](Ovis) Create 2019/03/25&lt;br /&gt;
&lt;br /&gt;
== おもしろ ==&lt;br /&gt;
&lt;br /&gt;
*[[テキストブラウザ]] (Kuro)&lt;br /&gt;
*[[Yahoo!天気情報]] (Kuro)&lt;br /&gt;
*[[メール送信]] (ks)&lt;br /&gt;
*[[あつまれ☆みんなのおもしろアイコン]] (有志)&lt;br /&gt;
&lt;br /&gt;
== その他 ==&lt;br /&gt;
&lt;br /&gt;
*[[最新版を確認]] (diaphragm)&lt;br /&gt;
*[[SAPI 使って単語読み上げ]] (miso)&lt;br /&gt;
*[[フォルダ選択ダイアログ]] (手石)&lt;br /&gt;
*[[HTA(HTML)の自作ダイアログを表示]] (noonworks)&lt;br /&gt;
*[[JavaScript を実行]] (n)&lt;br /&gt;
*[[ポップアップメニューを手軽に扱う]] (komorebikoboshi)&lt;br /&gt;
*[[マクロ・関数をメニューで呼び出す]] (aliquis) 2013/08/19&lt;br /&gt;
*[[階層化マクロメニュー]] (ks)&lt;br /&gt;
*[[シェルコマンドを実行]] (sasaki)&lt;br /&gt;
*[[ポップアップメニューでチェックボックス]] (手石)&lt;br /&gt;
*[[ポップアップメニューでラジオボタン]] (手石)&lt;br /&gt;
*[[Editor.OpenFile()のポリフィル]](kazy)&lt;br /&gt;
*[[折り返しトグル切り替え]] (Bleat, sukemaru) update 2019/02/19&lt;br /&gt;
*[[ファイルロック (排他制御) 的なもの]] (PebblePot)&lt;br /&gt;
*[[Mery.iniのオプション値を取得]] ※組み込み用関数 (sukemaru) update &amp;amp; fix 2019/04/29&lt;br /&gt;
*[[Mery本体のバージョンチェック]] ※組み込み用関数 (sukemaru) 2019/04/17 &amp;lt;br&amp;gt;サンプルコード: 「Begin/EndUndoGroup() メソッドを使えるのは ver 2.7.0 以降」&lt;br /&gt;
*[[IO.Serialize() の JSON を参照する]] ※組み込み用関数 (sukemaru) 2019/04/17&lt;br /&gt;
*[[ポップアップメニューを「n*十件ずつ」のサブメニューに自動分割する]] ※組み込み用関数 (sukemaru) 2019/04/20 &amp;lt;br&amp;gt;サンプルコード: 「すべての論理行をポップアップメニューに表示する」&lt;br /&gt;
*[[タブが「縦書き」モードかチェックする]] ※組み込み用関数 (sukemaru) 2019/04/29 &amp;lt;br&amp;gt;サンプルコード: 「特定の条件で縦書きモードに切りかえる」&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
*[[キーアサイン集]] (ks, masme, 有志) last update 2018/10/08&lt;br /&gt;
*[[マテリアルデザインっぽいアイコンと『小マクロ集』]] (sukemaru) last update 2019/04/06&lt;br /&gt;
*[[includeライブラリ]] (ks)&lt;br /&gt;
*[[GetKeyState.exe(キー状態取得実行ファイル)]] (pizz) 2019/03/23&lt;br /&gt;
*[[マクロ覚え書き（開発者向け）]](ks)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- (sukemaru, 2019/04/12 コメントアウト)&lt;br /&gt;
*[[ブックマークを復元（Mery_2.7用）]] (sukemaru) 2019/04/07&lt;br /&gt;
 --&amp;gt;&lt;/div&gt;</summary>
		<author><name>Masme</name></author>
	</entry>
	<entry>
		<id>https://www.haijin-boys.com/wiki/index.php?title=%E3%83%86%E3%82%AD%E3%82%B9%E3%83%88%E6%95%B4%E5%BD%A2&amp;diff=4221</id>
		<title>テキスト整形</title>
		<link rel="alternate" type="text/html" href="https://www.haijin-boys.com/wiki/index.php?title=%E3%83%86%E3%82%AD%E3%82%B9%E3%83%88%E6%95%B4%E5%BD%A2&amp;diff=4221"/>
		<updated>2019-05-01T06:49:10Z</updated>

		<summary type="html">&lt;p&gt;Masme: 仕様変更予告。見出し一部変更。コマンド削除6個、改名3個。&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;float:right&amp;quot;&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ks 氏作のマクロ「&amp;lt;b&amp;gt;[[テキスト変換]]&amp;lt;/b&amp;gt;」の改造版です。&lt;br /&gt;
&lt;br /&gt;
【主な改造点】&lt;br /&gt;
* &amp;lt;b&amp;gt;[[#拡張コード：書式|拡張コードの書式]]&amp;lt;/b&amp;gt;を変更した。&lt;br /&gt;
** 簡易書式をベースに単純化。オプション・第2引数は削除。&lt;br /&gt;
** 関数タイプ replace/replaceS はモード R/RS に改称。replaceL は廃止。&lt;br /&gt;
* モード F (関数を実行) を追加。JScript や Mery の関数をそのまま実行することができます。&lt;br /&gt;
* モード RS で、範囲終端の改行＝次行行頭は範囲に含めないようにした。（正規表現 &amp;lt;code&amp;gt;^ $&amp;lt;/code&amp;gt; の使い勝手を考え）&lt;br /&gt;
* モード R/RS 実行後、処理した範囲を選択し直すようにした。（選択範囲の維持）&lt;br /&gt;
* メソッド &amp;lt;code&amp;gt;&amp;lt;i&amp;gt;String&amp;lt;/i&amp;gt;.replaceBatch&amp;lt;/code&amp;gt; (連続置換) を追加。&lt;br /&gt;
* 範囲選択時に対象範囲を選ぶメニューを廃止した。（毎回選ぶのが面倒なため）&lt;br /&gt;
* 非選択時に文書全体を対象範囲とする仕様を廃止した。（挿入/貼付コマンドと相性が悪いため）&lt;br /&gt;
** 文書全体を対象にしたい場合は「すべて選択」 (Ctrl+A) してから実行してください。&lt;br /&gt;
【注意点】&lt;br /&gt;
* &amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;表示行での処理には対応していません。&amp;lt;/b&amp;gt;※特記なき場合、&amp;lt;b&amp;gt;各行・行頭・行末&amp;lt;/b&amp;gt; は &amp;lt;b&amp;gt;論理行&amp;lt;/b&amp;gt; を意味しています。&lt;br /&gt;
* マクロの仕様上、&amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;矩形選択での処理には対応していません。&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=お知らせ (2019/05/01)=&lt;br /&gt;
&amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;下記の仕様変更を考えています。&amp;lt;/b&amp;gt;&lt;br /&gt;
* 処理の戻り値により選択範囲の置換・再選択を制御する仕組みを導入。&lt;br /&gt;
* マクロ「[[テキスト変換]]」の第2引数を復活。モード F は第2引数利用に変更。&lt;br /&gt;
* モードを廃止し、オプションに変更。モード RS はオプション L に変更。&lt;br /&gt;
** 非選択時/貼り付け不能時は項目がグレーになるオプション s/c を追加。&lt;br /&gt;
&amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;詳しくは [[利用者:Masme]] のページをご覧ください。&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=スターターパック=&lt;br /&gt;
ダウンロード→ &amp;lt;b&amp;gt;[[メディア:テキスト整形.zip|テキスト整形.zip]]&amp;lt;/b&amp;gt; (2018/01/15 更新)&lt;br /&gt;
* 基本コードと拡張コード(★印の項目)をまとめて、すぐ使えるようにした入門用セットです。→ &amp;lt;b&amp;gt;[[:ファイル:テキスト整形.zip|収録コマンド一覧]]&amp;lt;/b&amp;gt;&lt;br /&gt;
* 拙作ですがアイコンファイル (テキスト整形.ico) を同梱してあります。&amp;lt;br&amp;gt;Mery 2.4.7 以降の場合、マクロ (テキスト整形.js) と同じフォルダに、&amp;lt;br&amp;gt;Mery 2.4.6 以前の場合、Mery.exe と同じフォルダに、&amp;lt;br&amp;gt;アイコンファイルを配置しておくとツールバーにアイコンが読み込まれます。&lt;br /&gt;
&lt;br /&gt;
=更新履歴=&lt;br /&gt;
&amp;lt;code style=&amp;quot;background:#fe0;&amp;quot;&amp;gt;//2018/01/15&amp;lt;/code&amp;gt; でページ内検索すると、その日付で更新されたコマンドを検索できます。&lt;br /&gt;
&amp;lt;div style=&amp;quot;height:40em; overflow:auto; border:1px dashed #999;&amp;quot;&amp;gt;&lt;br /&gt;
* 2019/05/01&lt;br /&gt;
** 削除 - 大文字／小文字に変換 ¦ 半角／全角に変換&lt;br /&gt;
**: Mery 側のメソッドを使う一例として掲載していたが、結構かと判断。&lt;br /&gt;
** 削除 - 行を昇順／降順並べ(UTF-16)&lt;br /&gt;
** 改名 - \x{hex} エンコード／デコード&lt;br /&gt;
**: コマンド名のエスケープミスを修正。&lt;br /&gt;
** 改名 - 拡張コード テンプレート&lt;br /&gt;
**: 「コマンド～」→「拡張コード～」に変更。&lt;br /&gt;
* 2018/01/15&lt;br /&gt;
** 削除 - ☆インデント(半角空白2個)&lt;br /&gt;
** スターター追加 - ★行を昇順／降順並べ(Unicode) ¦ ★行を逆順並べ&lt;br /&gt;
** 追加 - CJK互換漢字を検索&lt;br /&gt;
** 修正 - Base64デコード&lt;br /&gt;
**: 最大50字ずつ処理する箇所で、異常なデータ 0xF8～FF はスルーしていたのを改修。&lt;br /&gt;
** 修正 - 挿入 Confirm(|)&lt;br /&gt;
**: 折り返しが発生した場合、カーソル位置がズレる不具合を修正（カーソル移動を CharLeft(false,移動量) → SetActivePos(GetActivePos()-移動量) に変更）。&lt;br /&gt;
** 変更 - ★重複行を単一化 ¦ 重複する／しない行を抽出&lt;br /&gt;
**: for(var i=0,n=a.length;i&amp;lt;n;i++) → for(var i=0;i&amp;lt;a.length;i++) に単純化。&lt;br /&gt;
* 2017/06/25&lt;br /&gt;
** &amp;lt;b&amp;gt;仕様変更 - アイコンファイルに24x24・32x32・48x48の画像を追加。&amp;lt;/b&amp;gt;&lt;br /&gt;
** &amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;仕様変更 - &amp;lt;samp&amp;gt;replaceBatch&amp;lt;/samp&amp;gt; メソッドで配列先頭/末尾のコンマを許容するようにした。&amp;lt;/b&amp;gt;&lt;br /&gt;
**: 例＞ &amp;lt;code&amp;gt;a.replaceBatch([ &amp;lt;b style=&amp;quot;background:#fcc;&amp;quot;&amp;gt;,&amp;lt;/b&amp;gt;[省略],[省略],[省略]&amp;lt;b style=&amp;quot;background:#fcc;&amp;quot;&amp;gt;,&amp;lt;/b&amp;gt; ])&amp;lt;/code&amp;gt;&lt;br /&gt;
** コード整理 - 基本コードを改訂。&lt;br /&gt;
** 追加 - 行を昇順／降順並べ(Unicode) ¦ ★！？を半角/全角に整形 ¦ 空白行の空白を除去 ¦ 各行行頭／各行行末から数文字削除 ¦ 重複する／しない行を抽出 ¦ 表外漢字→代替&lt;br /&gt;
** 改名 - 行を昇順／降順並べ(UTF-16) ¦ 行を逆順並べ ¦ 文字を逆順並べ&lt;br /&gt;
**: コマンド名「～の並べ替え(○順)」→「～を○順並べ」に変更。&lt;br /&gt;
**: 「行を昇順／降順並べ(Unicode)」は (UTF-16) に訂正。&lt;br /&gt;
** 改名 - ★重複行を単一化 ¦ ★連続する重複行を単一化&lt;br /&gt;
**: コマンド名「～を削除」→「～を単一化」に変更。&lt;br /&gt;
** 修正 - ★重複行を単一化&lt;br /&gt;
**: 下記の7行を削除してしまう不具合を修正（重複の判定に Object.prototype.hasOwnProperty.call() を使用するようにした）。&lt;br /&gt;
**: 「constructor」「hasOwnProperty」「isPrototypeOf」「propertyIsEnumerable」「toLocaleString」「toString」「valueOf」&lt;br /&gt;
** 変更 - ★全角ダッシュ(――)に整形&lt;br /&gt;
**: 罫線(横) ── を変換対象から除外。&lt;br /&gt;
** 変更 - ★数値参照を文字に変換 ¦ ★16→10進数 ¦ &amp;amp;#xHEX; デコード&lt;br /&gt;
**: 0Xff, &amp;amp;amp;#Xff; など X が大文字の場合に対応。&lt;br /&gt;
** 変更 - 文字を逆順並べ ¦ 文字をシャッフル ¦ \uHHHH, \u4H \U8H, \x{hex}, &amp;amp;#dec;, &amp;amp;#xHEX; エンコード&lt;br /&gt;
**: 正規表現を . → [^\n] に統一。&lt;br /&gt;
** 変更 - 文字を逆順並べ ¦ 文字をシャッフル&lt;br /&gt;
**: UAX #29 に一部対応し、\p{Zl}, {Zp}, {Cc}, U+00AD, FEFF は結合不可にした。&lt;br /&gt;
** 変更 - 選択文字列を検索&lt;br /&gt;
**: カーソル位置・スクロール位置を移動しないようにした。&lt;br /&gt;
** 変更 - 選択文字列を検索 ¦ 選択文字列をすべて削除 ¦ &amp;lt;samp&amp;gt;replaceBatch&amp;lt;/samp&amp;gt; メソッド&lt;br /&gt;
**: 特殊文字のエスケープ処理を /([$()*+.?[\\\]^{|}])/g,&amp;quot;\\$1&amp;quot; → /[$()*+.?\[\\\]^{|}]/g,&amp;quot;\\$&amp;amp;&amp;quot; に統一。&lt;br /&gt;
** 変更 - コマンド テンプレート（分割）&lt;br /&gt;
**: 配列先頭のコンマの仕様に対応（末尾は実質対応済）。&lt;br /&gt;
* 2017/05/28&lt;br /&gt;
** 追加 - 結合文字列を検索&lt;br /&gt;
** 修正 - CP932依存文字を検索&lt;br /&gt;
**: Wiki が &amp;amp;#xFA19; → 神 などの正規化(NFC)を行う影響で、漢字22字が意図どおりに検索されないミスを修正。&lt;br /&gt;
** 変更 - ASCII文字, 半角カナ, 全角英数, CJK漢字, ひらがな, カタカナを単語検索&lt;br /&gt;
**: 変数を使用せず、正規表現 \g&amp;lt;名前&amp;gt; を使用する形式に統一。&lt;br /&gt;
* 2015/12/26&lt;br /&gt;
** &amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;仕様変更 - アイコンの指定先を &amp;quot;My Macros\テキスト整形.ico&amp;quot; → &amp;quot;テキスト整形.ico&amp;quot; に変更。&amp;lt;/b&amp;gt;&lt;br /&gt;
** 変更 - マクロフォルダを開く&lt;br /&gt;
**: コマンド名「My Macros フォルダを開く」→「マクロフォルダを開く」に変更。&lt;br /&gt;
**: 「テキスト整形」マクロがあるフォルダを開くようにした（Mery 2.4.7 での Macros フォルダ改名に対処）。&lt;br /&gt;
* 2015/09/30&lt;br /&gt;
** 追加 - CP932依存文字を検索 ¦ サロゲートペアを検索 ¦ 行頭に連番付加 (#) ¦ 行頭に連番付加 (#/Σ) ¦ 行頭に連番付加 (0#) ¦ \u4H \U8H エンコード／デコード&lt;br /&gt;
** 修正 - ひらがなを単語検索 ¦ カタカナを単語検索&lt;br /&gt;
**: 選択範囲が記号の前後で途切れる問題に対処（記号2連続まで対応）。&lt;br /&gt;
** 変更 - 青空文庫 ルビを除去&lt;br /&gt;
**: 正規表現を [^《]+ → [^《\n]+ に変更し、改行を跨がないようにした。&lt;br /&gt;
** 変更 - ★HTMLタグを除去&lt;br /&gt;
**: 正規表現を .*? → [^&amp;lt;i&amp;gt;文字&amp;lt;/i&amp;gt;]* に変更し、改行を跨ぐようにした。&lt;br /&gt;
** 変更 - 文字を逆順並べ ¦ 文字をシャッフル&lt;br /&gt;
**: 処理方法を split() → match() に変更。対応文字に結合文字 (U+1AB0～FF, 1DC0～FF, 20D0～FF, FE20～F)、制御文字 (U+200C～D)、絵文字の国旗 (U+1F1E6～FF)、肌色指定 (U+1F3FB～F) を追加。&lt;br /&gt;
** 改名 - \uHHHH, \x{hex}, &amp;amp;#dec;, &amp;amp;#xHEX; エンコード／デコード&lt;br /&gt;
**: コマンド名「Unicode 文字 → ○○」→「○○ エンコード」に変更。&lt;br /&gt;
**: コマンド名「Unicode ○○ → 文字」→「○○ デコード」に変更。&lt;br /&gt;
* 2015/03/26&lt;br /&gt;
** 変更 - CJK漢字を単語検索&lt;br /&gt;
**: 異体字セレクタを考慮するようにした（ただし組合せが適正かは考慮しえない）。&lt;br /&gt;
** 変更 - 複製貼り付け&lt;br /&gt;
**: 処理中止の条件を 非数字(NaN) or 1 未満 → クリップボードが空文字 or 1 未満 に変更。&lt;br /&gt;
* 2015/03/14&lt;br /&gt;
** &amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;仕様変更 - モード R/RS 実行後、処理した範囲を選択し直すようにした。&amp;lt;/b&amp;gt;&lt;br /&gt;
** &amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;仕様変更 - モード RM を廃止した。&amp;lt;/b&amp;gt;既存コマンドはモード RS で作り直した。&lt;br /&gt;
**: ★行頭 // を付加/削除 ¦ ★インデント(半角空白2個) ¦ ★空白行を削除 ¦ ★各行行頭／各行行末に貼り付け ¦ ★各行行頭／各行行末に文字列付加 ¦ ★入力文字列を含む／含まない行を削除 ¦ 正規表現に一致する／しない行を削除&lt;br /&gt;
** &amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;仕様変更 - モード CR を廃止し、&amp;lt;code&amp;gt;&amp;lt;i&amp;gt;String&amp;lt;/i&amp;gt;.replaceBatch&amp;lt;/code&amp;gt; メソッドを追加した。&amp;lt;/b&amp;gt;既存コマンドは &amp;lt;samp&amp;gt;replaceBatch&amp;lt;/samp&amp;gt; メソッドで作り直した。&lt;br /&gt;
**: ★連続する！？を整形 ¦ ★実体参照 &amp;amp;&amp;quot;&amp;lt;&amp;gt; → &amp;amp;xxx; ¦ ★実体参照 &amp;amp;xxx; → ␣&amp;gt;&amp;lt;&amp;quot;&amp;amp; ¦ ★半角カナ→全角 ¦ ★全角カナ→半角 ¦ 標準変換&lt;br /&gt;
** &amp;lt;b&amp;gt;コード整理 - コマンド各々に更新年月日を付けるようにした。&amp;lt;/b&amp;gt;&lt;br /&gt;
** スターター除外 - ☆検索強調をすべて解除&lt;br /&gt;
** 削除 - ☆全角英数を検索 ¦ ☆半角カナを検索 ¦ ☆CJK漢字を検索&lt;br /&gt;
** 追加 - ASCII文字を単語検索 ¦ 半角カナを単語検索 ¦ 全角英数を単語検索 ¦ CJK漢字を単語検索 ¦ ひらがなを単語検索 ¦ カタカナを単語検索 ¦ 検索結果カウント ¦ 総字行数カウント&lt;br /&gt;
** 変更 - 編集中のファイルのパスをコピー ¦ 編集中の全ファイルのパスをコピー&lt;br /&gt;
**: パスが存在しない場合の名前を、無題 → &amp;lt;無題&amp;gt; に変更。&lt;br /&gt;
** 変更 - ★数値参照を文字に変換 ¦ \x{hex}, &amp;amp;#dec;, &amp;amp;#xHEX; デコード&lt;br /&gt;
**: サロゲートペアの計算を + → | に変更し、不必要な括弧を除去した（演算子の優先順が + - → &amp;gt;&amp;gt; → &amp;amp; → | である事による）。&lt;br /&gt;
** 変更 - Base64エンコード／デコード&lt;br /&gt;
**: 不必要な括弧を除去した（同上、演算子の優先順による）。&lt;br /&gt;
** 変更 - コマンド テンプレート&lt;br /&gt;
**: モード RM/CR 廃止に伴う改訂。コマンドおよびセパレータは、表示行頭に挿入するようにした。&lt;br /&gt;
* 2015/02/14&lt;br /&gt;
** &amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;仕様修正 - モード RS/RM で、矩形選択（始点or終点が左下かつ論理行頭）時、下端の行が範囲から漏れる不具合を修正。&amp;lt;/b&amp;gt;&lt;br /&gt;
** &amp;lt;b&amp;gt;コード整理 - 文字入力など追加操作を求めるコマンドは、名称末尾に目印 ... を付けた。&amp;lt;/b&amp;gt;&lt;br /&gt;
**: 複製貼り付け ¦ ★各行行頭／各行行末に文字列付加 ¦ 各行先頭／各行末尾に文字列付加 ¦ ★入力文字列を含む／含まない行を削除 ¦ 正規表現に一致する／しない行を削除&lt;br /&gt;
** 削除 - 丸数字 ⑳ → (20) ¦ 丸数字 (20) → ⑳&lt;br /&gt;
** 追加 - 行末に&amp;amp;lt;br&amp;amp;gt;を付加 ¦ &amp;amp;lt;br&amp;amp;gt;を改行に変換 ¦ ★行頭の／行末の空白を除去 ¦ 空白行を減量 ¦ 重複行を単一化(空白行は除く) ¦ ★連続する重複行を単一化 ¦ 文字のシャッフル&lt;br /&gt;
** 修正 - 各行先頭／各行末尾に文字列付加&lt;br /&gt;
**: 正規表現が意味的に不適切だったのを修正。&lt;br /&gt;
** 変更 - 空白行を圧縮&lt;br /&gt;
**: モード R → RS に。空白行内の空白を除去してから改行を処理するように変更。&lt;br /&gt;
** 変更 - 文字を逆順並べ&lt;br /&gt;
**: サロゲートペアの対処方法を変更。結合文字の一部 (U+0300～6F, 3099～A) および異体字セレクタに対応した。&lt;br /&gt;
** 変更 - 2進接頭辞換算&lt;br /&gt;
**: 正規表現を [0-9]+(,?[0-9]{3})+(\.[0-9]+)? → [0-9]+(,?[0-9]{3})+ に変更（小数は非対応とした）。&lt;br /&gt;
** 変更 - Base64デコード&lt;br /&gt;
**: JScript 5.x の decodeURIComponent() は字数が多すぎると能率が悪くなるようなので、最大50字ずつ処理するようにした（高速化）。&lt;br /&gt;
* 2014/10/12&lt;br /&gt;
** スターター除外 - ☆正規表現に一致する／しない行を削除&lt;br /&gt;
**: Mery (鬼車) と JScript (ECMAScript) では正規表現の仕様が異なり、意図しない結果を招く怖れがあるため。&lt;br /&gt;
** スターター追加 - ★数値参照 &amp;amp;#dec; に変換 ¦ ★数値参照 &amp;amp;#xHEX; に変換&lt;br /&gt;
** 追加 - ★数値参照を文字に変換 ¦ 行を逆順並べ ¦ 行をシャッフル ¦ &amp;amp;#xHEX; エンコード／デコード&lt;br /&gt;
** 修正 - 選択文字列を検索&lt;br /&gt;
**: 引数不一致により動作しないミスを修正。&lt;br /&gt;
** 修正 - 編集中の全ファイルのパスをコピー ¦ ★検索強調をすべて解除&lt;br /&gt;
**: 対象範囲を 同ウィンドウ内の全文書 → 全ウィンドウの全文書 に改修。&lt;br /&gt;
** 変更 - 複製貼り付け&lt;br /&gt;
**: 処理方法を for → while に変更。処理中止の条件を 未入力 → 非数字(NaN) or 1 未満に変更。&lt;br /&gt;
** 変更 - \x{hex}, &amp;amp;#dec; エンコード&lt;br /&gt;
**: 処理方法を 配列連結 join(&amp;quot;&amp;quot;) → 文字列連結 += に変更。&lt;br /&gt;
** 変更 - \x{hex}, &amp;amp;#dec; デコード&lt;br /&gt;
**: 下位サロゲートの計算を (n-0x10000&amp;amp;0x3FF) → (n&amp;amp;0x3FF) に短縮。&lt;br /&gt;
* 2014/07/27&lt;br /&gt;
** 修正 - Base64デコード&lt;br /&gt;
**: 終端の余分な [NUL] を除去する処理が手抜きだったのを修正。&lt;br /&gt;
* 2014/05/31&lt;br /&gt;
** 削除 - Base64エンコード(Unicode)&lt;br /&gt;
**: Mery の「Base64デコード」機能と同じ方式の Base64エンコード(UTF-8) に差し替え。&lt;br /&gt;
** 追加 - Base64エンコード／デコード(UTF-8)&lt;br /&gt;
** 変更 - ★数値を3桁,区切りに&lt;br /&gt;
**: 数字列を抽出して処理するように変更（高速化）。&lt;br /&gt;
** 変更 - ★数値を3桁,区切りに ¦ 丸数字 (20) → ⑳ ¦ ★10→16進数 ¦ 2進接頭辞換算&lt;br /&gt;
**: 正規表現を \d → [0-9] に統一。&lt;br /&gt;
** 修正 - コマンド テンプレート（モード CR 交換/分割）&lt;br /&gt;
**: エスケープ文字 \ をより正確に判定できる正規表現に改修。&lt;br /&gt;
* 2014/05/24&lt;br /&gt;
** 修正 - 各行末尾に文字列付加&lt;br /&gt;
**: 選択範囲の次行先頭にも文字列付加してしまう問題に対処。&lt;br /&gt;
** 変更 - 複製貼り付け&lt;br /&gt;
**: クリップボードの内容を変数に格納しておくように変更（高速化）。&lt;br /&gt;
** 変更 - 複製貼り付け ¦ 各行先頭／各行末尾に文字列付加&lt;br /&gt;
**: Prompt() 関連の処理を単純にした（モード RM 以外では冗長だった）。&lt;br /&gt;
* 2014/05/22&lt;br /&gt;
** 追加 - 2進接頭辞換算&lt;br /&gt;
** 変更 - \x{hex}, &amp;amp;#dec; デコード&lt;br /&gt;
**: サロゲートペアの String.fromCharCode() の引数を複数指定に改修、ビット演算に一部変更。&lt;br /&gt;
* 2014/05/16&lt;br /&gt;
** 変更 - \x{hex}, &amp;amp;#dec; エンコード&lt;br /&gt;
**: 処理方法を replace(for ループ) に統一。&lt;br /&gt;
* 2014/04/27&lt;br /&gt;
** 追加 - &amp;amp;#dec; エンコード／デコード&lt;br /&gt;
* 2014/03/14&lt;br /&gt;
** 追加 - 青空文庫 ルビを除去 ¦ 青空文庫 注記を除去&lt;br /&gt;
* 2014/03/08&lt;br /&gt;
** 追加 - 選択文字列を検索 ¦ 選択文字列をすべて削除&lt;br /&gt;
** 変更 - ★全角英数を検索 ¦ ★半角カナを検索 ¦ ★CJK漢字を検索&lt;br /&gt;
**: 検索方向を 前 → 次 に変更。念の為「大文字と小文字を区別」フラグを追加。&lt;br /&gt;
* 2014/03/01&lt;br /&gt;
** 追加 - ★連続する！？を整形 ¦ ★全角ダッシュ(――)に整形&lt;br /&gt;
** 変更 - ★括弧前の句読点を除去&lt;br /&gt;
**: 全角コンマ ， /全角ピリオド ． を除去対象に追加。&lt;br /&gt;
** 変更 - ★三点リーダー(……)に整形&lt;br /&gt;
**: 全角コンマ ， /全角ピリオド ． /半角中黒 ･ /三点リーダー … /二点リーダー ‥ を変換対象に追加。&lt;br /&gt;
** 変更 - マクロフォルダを開く&lt;br /&gt;
**: 処理方法を WScript.Shell.Run(&amp;quot;explorer&amp;quot;) → Shell.Application.Explore() に変更。&lt;br /&gt;
* 2014/02/22&lt;br /&gt;
** 追加 - 丸数字 ⑳ → (20) ¦ 丸数字 (20) → ⑳&lt;br /&gt;
** 変更 - 文字を逆順並べ ¦ \uHHHH, \x{hex} エンコード&lt;br /&gt;
**: 処理方法を for ループ → replace() に変更（字数削減）。&lt;br /&gt;
** 変更 - コマンド テンプレート&lt;br /&gt;
**: モード CR 作成補助コマンドを追加。モード CR テンプレートを変更。&lt;br /&gt;
* 2014/02/17&lt;br /&gt;
** 修正 - ★各行行頭／各行行末に貼り付け&lt;br /&gt;
**: クリップボード終端の改行文字を除去する正規表現を修正。\r\n|\r|\n$ → (\r\n|\r|\n)$&lt;br /&gt;
* 2014/02/16&lt;br /&gt;
** &amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;仕様修正 - モード CR で、正規表現の特殊文字があると誤動作する不具合を修正。&amp;lt;/b&amp;gt;&lt;br /&gt;
** &amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;仕様変更 - モード CR で、正規表現 (JScript) による検索置換に対応した。&amp;lt;/b&amp;gt;&lt;br /&gt;
** コード整理 - コメントアウトしていた基本コードを削除した。→ 2014/01/08 スクロール位置&lt;br /&gt;
** コード整理 - 下記の6カテゴリを3カテゴリに統合。コマンドの名称や配置を見直した。&lt;br /&gt;
**: (空白の追加 + 各行に追加) (空白の削除 + 行の削除) (数値の変換 + 文字種変換)&lt;br /&gt;
** スターター除外 - ☆標準変換&lt;br /&gt;
** 追加 - 複製貼り付け ¦ 文字を逆順並べ ¦ ★半角カナ→全角 ¦ ★全角カナ→半角&lt;br /&gt;
** 変更 - ★各行行頭／各行行末に貼り付け&lt;br /&gt;
**: クリップボード終端の改行文字は除去するようにした（行切り取り・行コピーとの相性を考え）。&lt;br /&gt;
** 変更 - コマンド テンプレート&lt;br /&gt;
**: モード CR テンプレートを刷新。&lt;br /&gt;
* 2014/02/10&lt;br /&gt;
** スターター除外 - ☆空白行を圧縮&lt;br /&gt;
** 追加 - ★空白行を削除 ¦ \uHHHH デコード ¦ \x{hex} エンコード／デコード&lt;br /&gt;
** 変更 - 挿入 Confirm(|)&lt;br /&gt;
**: 接尾辞の長さ(s.length)でカーソル移動量を決めるようにした。&lt;br /&gt;
* 2014/02/01&lt;br /&gt;
** 追加 - \uHHHH エンコード&lt;br /&gt;
** 変更 - ★全角かな→カナ ¦ ★全角カナ→かな&lt;br /&gt;
**: 踊り字（繰り返し記号） ゝゞヽヾ を変換対象に追加。&lt;br /&gt;
* 2014/01/24&lt;br /&gt;
** 追加 - ★半角/全角の間を空ける ¦ ★半角英数/全角の間を空ける&lt;br /&gt;
** 変更 - ★全角カナ→かな&lt;br /&gt;
**: ヴヵヶ → ゔゕゖ の変換を行わないようにした（Shift_JIS では保存できない文字のため）。&lt;br /&gt;
* 2014/01/12&lt;br /&gt;
** &amp;lt;b&amp;gt;仕様変更 - スターターパックにアイコンファイルを同梱し、読み込むようにした。&amp;lt;/b&amp;gt;&lt;br /&gt;
** 修正 - 編集中のファイルのパスをコピー ¦ 編集中の全ファイルのパスをコピー&lt;br /&gt;
**: 改行を LF → CR+LF に変更し、メモ帳でも正しく改行されるようにした。&lt;br /&gt;
** 修正 - ★数値を3桁,区切りに&lt;br /&gt;
**: 小数点以下（ピリオド以降）は桁区切りしないようにした。&lt;br /&gt;
* 2014/01/08&lt;br /&gt;
** &amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;仕様変更 - コマンド実行時、スクロール位置を記憶・復元しないように（コメントアウト）した。&amp;lt;/b&amp;gt;&lt;br /&gt;
**: 検索系コマンドと相性が悪く、Mery の検索機能と挙動が合っていないため。&lt;br /&gt;
** スターター追加 - ★CJK漢字を検索 ¦ ★検索強調をすべて解除&lt;br /&gt;
** 追加 - ★全角英数を検索 ¦ ★半角カナを検索&lt;br /&gt;
** 修正 - ★16→10進数&lt;br /&gt;
**: 16進数に使用しない英字 G～Z を変換対象に含めていたミスを修正。&lt;br /&gt;
* 2013/12/30&lt;br /&gt;
** 追加 - 挿入 Confirm(|) ¦ ★数値を3桁,区切りに ¦ ★10→16進数 ¦ ★16→10進数&lt;br /&gt;
** 修正 - My Macros フォルダを開く (現「マクロフォルダを開く」)&lt;br /&gt;
**: 「テキスト整形」マクロのあるフォルダではなく Mery.exe 直下の My Macros フォルダを開くようにした。&lt;br /&gt;
* 2013/09/15&lt;br /&gt;
** 初版公開。&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=基本コード=&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot; style=&amp;quot;height:35em; overflow:auto;&amp;quot;&amp;gt;&lt;br /&gt;
//■テキスト整形&lt;br /&gt;
//　2013/09/15-2017/06/25&lt;br /&gt;
&lt;br /&gt;
//■拡張コード：コマンド一覧&lt;br /&gt;
var f = [];&lt;br /&gt;
// ----------------- ↓ここより下に拡張コードを追加&lt;br /&gt;
&lt;br /&gt;
// ----------------- ↑ここより上に拡張コードを追加&lt;br /&gt;
/*■拡張コード：書式&lt;br /&gt;
//▼コマンド&lt;br /&gt;
f.push([&amp;quot;コマンド名&amp;quot;,&amp;quot;モード&amp;quot;,function(引数){マクロ}]);&lt;br /&gt;
//▽モード F (Function)     - 関数を実行&lt;br /&gt;
  function( Document.Selection ) : 戻値なし&lt;br /&gt;
//▽モード R (Replace)      - 選択範囲を置換&lt;br /&gt;
//▽モード RS (Select-line) - 選択範囲を行頭行末まで拡張して置換&lt;br /&gt;
  function( Document.Selection.Text ) : String&lt;br /&gt;
//▼サブメニュー&lt;br /&gt;
f.push([&amp;quot;メニュー名&amp;quot;,function(f){コマンドなど}]);&lt;br /&gt;
//▼セパレータ&lt;br /&gt;
f.push([&amp;quot;----&amp;quot;]);&lt;br /&gt;
// ----------------- */&lt;br /&gt;
&lt;br /&gt;
//■メソッド：連続置換&lt;br /&gt;
//&amp;quot;string&amp;quot;.replaceBatch([ [検索1,置換1],[検索2,置換2],[検索3,置換3],… ]);&lt;br /&gt;
String.prototype.replaceBatch = function(a) { //▲引数の型はチェックしてない&lt;br /&gt;
  var $this = this, i = 0, n = a.length;&lt;br /&gt;
  if (!a[0]) i++;&lt;br /&gt;
  if (!a[n-1]) n--;&lt;br /&gt;
  for (; i&amp;lt;n; i++) {&lt;br /&gt;
    if (typeof a[i][0]===&amp;quot;string&amp;quot;) //◆特殊文字をエスケープし、&amp;quot;g&amp;quot;フラグを付加&lt;br /&gt;
      a[i][0] = new RegExp(a[i][0].replace(/[$()*+.?\[\\\]^{|}]/g,&amp;quot;\\$&amp;amp;&amp;quot;),&amp;quot;g&amp;quot;);&lt;br /&gt;
    $this = $this.replace(a[i][0],a[i][1]);&lt;br /&gt;
  }&lt;br /&gt;
  return $this;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
(function(){&lt;br /&gt;
//■実行コード&lt;br /&gt;
var Sel = Document.Selection;&lt;br /&gt;
var cmd = [], cid = 1; //コマンド, ID&lt;br /&gt;
//コマンド一覧からメニュー作成&lt;br /&gt;
var Menu = CreatePopupMenu();&lt;br /&gt;
(function ListToMenu(List, Menu) {&lt;br /&gt;
  for (var i=0,n=List.length; i&amp;lt;n; i++) {&lt;br /&gt;
    var $L = List[i], $Ln = $L.length;&lt;br /&gt;
    if (typeof $L[0]!==&amp;quot;string&amp;quot;) continue;&lt;br /&gt;
    switch (true) {&lt;br /&gt;
    //◆コマンド	$L = [&amp;quot;コマンド名&amp;quot;,&amp;quot;モード&amp;quot;,function]&lt;br /&gt;
    case ($Ln===3 &amp;amp;&amp;amp; /^(F|RS?)$/.test($L[1]) &amp;amp;&amp;amp; typeof $L[2]===&amp;quot;function&amp;quot;):&lt;br /&gt;
      cmd[cid] = {mode:$L[1], func:$L[2]};&lt;br /&gt;
      Menu.Add($L[0]+&amp;quot;\t&amp;quot;+$L[1], cid++);&lt;br /&gt;
      break;&lt;br /&gt;
    //◆サブメニュー	$L = [&amp;quot;メニュー名&amp;quot;,function]&lt;br /&gt;
    case ($Ln===2 &amp;amp;&amp;amp; typeof $L[1]===&amp;quot;function&amp;quot;):&lt;br /&gt;
      var sub_f = [], sub_Menu = CreatePopupMenu();&lt;br /&gt;
      $L[1](sub_f);&lt;br /&gt;
      Menu.AddPopup($L[0], sub_Menu);&lt;br /&gt;
      ListToMenu(sub_f, sub_Menu); //再帰処理：サブメニュー作成&lt;br /&gt;
      break;&lt;br /&gt;
    //◆セパレータ	$L = [&amp;quot;----&amp;quot;]&lt;br /&gt;
    case ($Ln===1 &amp;amp;&amp;amp; /^-+$/.test($L[0])):&lt;br /&gt;
      Menu.Add(&amp;quot;&amp;quot;, 0, meMenuSeparator);&lt;br /&gt;
      break;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}(f, Menu));&lt;br /&gt;
//ポップアップメニューを表示して処理&lt;br /&gt;
if (cid = Menu.Track(mePosMouse)) { //※キャンセル(Esc)時は0が返る&lt;br /&gt;
  switch (cmd[cid].mode) {&lt;br /&gt;
  case &amp;quot;F&amp;quot;:	//関数を実行&lt;br /&gt;
    cmd[cid].func(Sel);&lt;br /&gt;
    break;&lt;br /&gt;
  case &amp;quot;RS&amp;quot;:	//選択範囲を行頭行末まで拡張&lt;br /&gt;
    selectLine(Sel);&lt;br /&gt;
    //↓FALL THROUGH&lt;br /&gt;
  case &amp;quot;R&amp;quot;:	//選択範囲を置換&lt;br /&gt;
    var pos = new Pos(Sel);&lt;br /&gt;
    Sel.Text = cmd[cid].func(Sel.Text);&lt;br /&gt;
    pos.restore();&lt;br /&gt;
    break;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
//■選択範囲を行頭行末まで拡張&lt;br /&gt;
function selectLine(Sel, includeBreak) {&lt;br /&gt;
  var ty = Sel.GetTopPointY(mePosLogical);&lt;br /&gt;
  var by = Sel.GetBottomPointY(mePosLogical);&lt;br /&gt;
  var bx = Sel.GetBottomPointX(mePosLogical);&lt;br /&gt;
  var nn =(Sel.Text.match(/\n/g)||[]).length;&lt;br /&gt;
  if (bx===1 &amp;amp;&amp;amp; nn&amp;lt;=by-ty &amp;amp;&amp;amp; nn) by--; //下端行頭を含めない&lt;br /&gt;
  Sel.SetActivePoint(mePosLogical, 1, by);&lt;br /&gt;
  Sel.EndOfLine(false, mePosLogical);&lt;br /&gt;
  Sel.SetAnchorPoint(mePosLogical, 1, ty);&lt;br /&gt;
  if (includeBreak) Sel.CharRight(true); //末尾改行を含める&lt;br /&gt;
};&lt;br /&gt;
//■位置情報オブジェクト&lt;br /&gt;
function Pos(Sel) {&lt;br /&gt;
  this.acp = Sel.GetActivePos();&lt;br /&gt;
  this.anp = Sel.GetAnchorPos();&lt;br /&gt;
  this.len = Document.Text.length;&lt;br /&gt;
  this.restore = function(isCollapse) {&lt;br /&gt;
    var isRev = this.acp&amp;lt;this.anp, gap = Document.Text.length - this.len;&lt;br /&gt;
    Sel.SetAnchorPos(this.anp+(isRev? gap : 0));&lt;br /&gt;
    Sel.SetActivePos(this.acp+(isRev? 0 : gap), !isCollapse);&lt;br /&gt;
  };&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
}());&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=拡張コード=&lt;br /&gt;
* ★印の項目は、スターターパックに収録されているコマンドです。&lt;br /&gt;
&lt;br /&gt;
==小説/作文==&lt;br /&gt;
&lt;br /&gt;
;★地の文の行頭を字下げ&lt;br /&gt;
:開き括弧類 &amp;lt;code style=&amp;quot;color:#c00;&amp;quot;&amp;gt;‘ “ （ 〔 ［ ｛ 〈 《 「 『 【&amp;lt;/code&amp;gt; および 半角空白/全角空白/水平タブ/改行 &amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;以外&amp;lt;/b&amp;gt;の文字で始まる行を「地の文」とみなし、行頭に全角空白を挿入します。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;地の文の行頭を字下げ&amp;quot;,&amp;quot;RS&amp;quot;,function(a){ //2015/02/14&lt;br /&gt;
  return a.replace(/^([^‘“（〔［｛〈《「『【 　\t\n])/gm,&amp;quot;　$1&amp;quot;) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;★括弧前の句読点を除去&lt;br /&gt;
:閉じ括弧類 &amp;lt;code style=&amp;quot;color:#c00;&amp;quot;&amp;gt;’ ” ） 〕 ］ ｝ 〉 》 」 』 】&amp;lt;/code&amp;gt; の直前に句読点 &amp;lt;code style=&amp;quot;color:#c00;&amp;quot;&amp;gt;、 。 ， ．&amp;lt;/code&amp;gt; がある場合、除去します。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;括弧前の句読点を除去&amp;quot;,&amp;quot;R&amp;quot;,function(a){ //2014/03/01&lt;br /&gt;
  return a.replace(/[、。，．](?=[’”）〕］｝〉》」』】])/g,&amp;quot;&amp;quot;) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;★！？を半角/全角に整形&lt;br /&gt;
:感嘆符・疑問符 &amp;lt;code style=&amp;quot;color:#c00;&amp;quot;&amp;gt;！ ？&amp;lt;/code&amp;gt; を、直前の文字が半角なら半角に、全角なら全角に整形します。&lt;br /&gt;
:直前の文字がない場合（範囲先頭や行頭）は整形しません。&lt;br /&gt;
:※&amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;半角文字&amp;lt;/b&amp;gt;＝半角空白＋ASCII文字＋半角カナ、&amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;全角文字&amp;lt;/b&amp;gt;＝それ以外の文字、を意味しています。&lt;br /&gt;
:例＞ &amp;lt;span style=&amp;quot;background:#bfdfff;&amp;quot;&amp;gt;Wha&amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;t&amp;lt;/b&amp;gt;！？／あ&amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;れ&amp;lt;/b&amp;gt;!?&amp;lt;/span&amp;gt; → What!?／あれ！？（※&amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;赤字&amp;lt;/b&amp;gt;が直前の文字）&lt;br /&gt;
&amp;lt;pre style=&amp;quot;word-wrap:break-word;&amp;quot;&amp;gt;&lt;br /&gt;
f.push([&amp;quot;！？を半角/全角に整形&amp;quot;,&amp;quot;R&amp;quot;,function(a){ //2017/06/25&lt;br /&gt;
  return a.replace(/[!?！？]+/g,function(s,i,c){c=c.charAt(i-1); return (!c||c===&amp;quot;\n&amp;quot;)? s: /[ -~｡-ﾟ]/.test(c)? s.replace(/！/g,&amp;quot;!&amp;quot;).replace(/？/g,&amp;quot;?&amp;quot;): s.replace(/\!/g,&amp;quot;！&amp;quot;).replace(/\?/g,&amp;quot;？&amp;quot;)}) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;★連続する！？を整形&lt;br /&gt;
:2文字以上連続する感嘆符・疑問符 &amp;lt;code style=&amp;quot;color:#c00;&amp;quot;&amp;gt;！ ？&amp;lt;/code&amp;gt; を半角2文字に整形します。&lt;br /&gt;
:例＞ &amp;lt;span style=&amp;quot;background:#bfdfff;&amp;quot;&amp;gt;！！／！！？／?!!!／?!!!?&amp;lt;/span&amp;gt; → !!／!?／?!／??&lt;br /&gt;
&amp;lt;pre style=&amp;quot;word-wrap:break-word;&amp;quot;&amp;gt;&lt;br /&gt;
f.push([&amp;quot;連続する！？を整形&amp;quot;,&amp;quot;R&amp;quot;,function(a){ //2015/03/14&lt;br /&gt;
  return a.replaceBatch([ [/[!！][!?！？]*[!！]/g,&amp;quot;!!&amp;quot;],[/[!！][!?！？]*[?？]/g,&amp;quot;!?&amp;quot;],[/[?？][!?！？]*[!！]/g,&amp;quot;?!&amp;quot;],[/[?？][!?！？]*[?？]/g,&amp;quot;??&amp;quot;] ]) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;★三点リーダー(……)に整形&lt;br /&gt;
:1～3文字以上連続する中黒・句点・読点などを、三点リーダー2文字 …… に整形します。&lt;br /&gt;
:例＞ &amp;lt;span style=&amp;quot;background:#bfdfff;&amp;quot;&amp;gt;そんな・・・・。&amp;lt;/span&amp;gt; → そんな……。&lt;br /&gt;
:※変換対象となるのは以下の8パターンです。&lt;br /&gt;
:{|class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
! 名称 !! 連続字数 !! 例 !! Shift_JIS !! Unicode&lt;br /&gt;
|-&lt;br /&gt;
| 全角読点 ||rowspan=&amp;quot;6&amp;quot;| 3字以上 || 、、、 || 0x8141 || U+3001&lt;br /&gt;
|-&lt;br /&gt;
| 全角句点 || 。。。 || 0x8142 || U+3002&lt;br /&gt;
|-&lt;br /&gt;
| 全角コンマ || ，，， || 0x8143 || U+FF0C&lt;br /&gt;
|-&lt;br /&gt;
| 全角ピリオド || ．．． || 0x8144 || U+FF0E&lt;br /&gt;
|-&lt;br /&gt;
| 全角中黒 || ・・・ || 0x8145 || U+30FB&lt;br /&gt;
|-&lt;br /&gt;
| 半角中黒 || ･･･ || 0xA5 || U+FF65&lt;br /&gt;
|-&lt;br /&gt;
| 三点リーダー ||rowspan=&amp;quot;2&amp;quot;| 1字以上 || … || 0x8163 || U+2026&lt;br /&gt;
|-&lt;br /&gt;
| 二点リーダー || ‥ || 0x8164 || U+2025&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;三点リーダー(……)に整形&amp;quot;,&amp;quot;R&amp;quot;,function(a){ //2014/03/01&lt;br /&gt;
  return a.replace(/、{3,}|。{3,}|，{3,}|．{3,}|・{3,}|･{3,}|…{1,}|‥{1,}/g,&amp;quot;……&amp;quot;) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;★全角ダッシュ(――)に整形&lt;br /&gt;
:2文字以上連続する長音などを、全角ダッシュ2文字 ―― に整形します。&lt;br /&gt;
:例＞ &amp;lt;span style=&amp;quot;background:#bfdfff;&amp;quot;&amp;gt;そんなーーー。&amp;lt;/span&amp;gt; → そんな――。&lt;br /&gt;
:※変換対象となるのは以下の4パターンです。&lt;br /&gt;
:{|class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
! 名称 !! 連続字数 !! 例 !! Shift_JIS !! Unicode&lt;br /&gt;
|-&lt;br /&gt;
| 全角長音符 ||rowspan=&amp;quot;5&amp;quot;| 2字以上 || ーー || 0x815B || U+30FC&lt;br /&gt;
|-&lt;br /&gt;
| em ダッシュ&amp;lt;br&amp;gt;(全角ダッシュ) || —— || - || U+2014&lt;br /&gt;
|-&lt;br /&gt;
| 全角ダッシュ&amp;lt;br&amp;gt;(水平線) || ―― || 0x815C || U+2015&lt;br /&gt;
|-&lt;br /&gt;
| 全角マイナス || －－ || 0x817C || U+FF0D&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;全角ダッシュ(――)に整形&amp;quot;,&amp;quot;R&amp;quot;,function(a){ //2017/06/25&lt;br /&gt;
  return a.replace(/ー{2,}|\u2014{2,}|―{2,}|－{2,}/g,&amp;quot;――&amp;quot;) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;青空文庫 ルビを除去&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color:#c00;&amp;quot;&amp;gt;《&amp;lt;/code&amp;gt; で始まり &amp;lt;code style=&amp;quot;color:#c00;&amp;quot;&amp;gt;》&amp;lt;/code&amp;gt; で終わる箇所を除去します。ルビ開始位置を表す &amp;lt;code style=&amp;quot;color:#c00;&amp;quot;&amp;gt;｜&amp;lt;/code&amp;gt; がある場合、&amp;lt;code style=&amp;quot;color:#c00;&amp;quot;&amp;gt;｜&amp;lt;/code&amp;gt; も除去します。&lt;br /&gt;
:例＞ &amp;lt;span style=&amp;quot;background:#bfdfff;&amp;quot;&amp;gt;一応《いちおう》何時《いつ》もの／霧の｜ロンドン警視庁《スコットランドヤード》&amp;lt;/span&amp;gt; → 一応何時もの／霧のロンドン警視庁&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;青空文庫 ルビを除去&amp;quot;,&amp;quot;R&amp;quot;,function(a){ //2015/09/30&lt;br /&gt;
  return a.replace(/(?:｜([^《\n]+))?《.*?》/g,&amp;quot;$1&amp;quot;) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;青空文庫 注記を除去&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color:#c00;&amp;quot;&amp;gt;［＃&amp;lt;/code&amp;gt; で始まり &amp;lt;code style=&amp;quot;color:#c00;&amp;quot;&amp;gt;］&amp;lt;/code&amp;gt; で終わる箇所を除去します。&lt;br /&gt;
:例＞ &amp;lt;span style=&amp;quot;background:#bfdfff;&amp;quot;&amp;gt;［＃注記付き］名※［＃二の字点、1-2-22］［＃「（銘々）」の注記付き終わり］&amp;lt;/span&amp;gt; → 名※&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;青空文庫 注記を除去&amp;quot;,&amp;quot;R&amp;quot;,function(a){ //2014/03/14&lt;br /&gt;
  return a.replace(/［＃.*?］/g,&amp;quot;&amp;quot;) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
;青空文庫 注記(外字以外)を除去&lt;br /&gt;
:外字を表す注記 &amp;lt;code style=&amp;quot;color:#c00;&amp;quot;&amp;gt;※［＃～］&amp;lt;/code&amp;gt; は例外とし、除去しません。&lt;br /&gt;
:例＞ &amp;lt;span style=&amp;quot;background:#bfdfff;&amp;quot;&amp;gt;［＃注記付き］名※［＃二の字点、1-2-22］［＃「（銘々）」の注記付き終わり］&amp;lt;/span&amp;gt; → 名※［＃二の字点、1-2-22］&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;青空文庫 注記(外字以外)を除去&amp;quot;,&amp;quot;R&amp;quot;,function(a){ //2014/03/14&lt;br /&gt;
  return a.replace(/(※［＃.*?］)|［＃.*?］/g,&amp;quot;$1&amp;quot;) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Web/HTML==&lt;br /&gt;
&lt;br /&gt;
;★HTMLタグを除去&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;HTMLタグを除去&amp;quot;,&amp;quot;R&amp;quot;,function(a){ //2015/09/30&lt;br /&gt;
  return a.replace(/&amp;lt;(&amp;quot;[^&amp;quot;]*&amp;quot;|&#039;[^&#039;]*&#039;|[^&amp;quot;&#039;&amp;gt;])*&amp;gt;/g,&amp;quot;&amp;quot;) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;行末に&amp;amp;lt;br&amp;amp;gt;を付加&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;行末に&amp;lt;br&amp;gt;を付加&amp;quot;,&amp;quot;RS&amp;quot;,function(a){ //2015/02/14&lt;br /&gt;
  return a.replace(/$/gm,&amp;quot;&amp;lt;br&amp;gt;&amp;quot;) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
;&amp;amp;lt;br&amp;amp;gt;を改行に変換&lt;br /&gt;
:改行タグを改行に変換します。ただし、改行タグ直後に改行が含まれている場合は、二重改行にならないようタグのみ削除します。&lt;br /&gt;
:※対応タグは &amp;lt;code&amp;gt;&amp;amp;lt;br&amp;amp;gt; &amp;amp;lt;br/&amp;amp;gt; &amp;amp;lt;br /&amp;amp;gt;&amp;lt;/code&amp;gt; の3種類です。英字の大小は問いません。&lt;br /&gt;
:&amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;※属性付きには対応していません。&amp;lt;/b&amp;gt;例＞ &amp;lt;code&amp;gt;&amp;amp;lt;br clear=&amp;quot;all&amp;quot;&amp;amp;gt;&amp;lt;/code&amp;gt; など&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;&amp;lt;br&amp;gt;を改行に変換&amp;quot;,&amp;quot;R&amp;quot;,function(a){ //2015/02/14&lt;br /&gt;
  return a.replace(/&amp;lt;br( ?\/)?&amp;gt;\n?/gi,&amp;quot;\n&amp;quot;) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;★実体参照 &amp;amp;&amp;quot;&amp;lt;&amp;gt; → &amp;amp;xxx;&lt;br /&gt;
;★実体参照 &amp;amp;xxx; → ␣&amp;gt;&amp;lt;&amp;quot;&amp;amp;&lt;br /&gt;
:HTML で使用される文字実体参照の変換を行います。&lt;br /&gt;
:{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 文字 !! 実体参照 !! 備考&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| &amp;amp;lt; || &amp;amp;amp;lt; || 小なり不等号 (less-than sign)&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| &amp;amp;gt; || &amp;amp;amp;gt; || 大なり不等号 (greater-than sign)&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| &amp;amp;quot; || &amp;amp;amp;quot; || 引用符 (quotation mark)&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| &amp;amp;amp; || &amp;amp;amp;amp; || アンド (ampersand)&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| &amp;amp;nbsp; || &amp;amp;amp;nbsp; || 折り返し禁止空白 (no-break space)&lt;br /&gt;
|}&lt;br /&gt;
:&amp;amp;amp;nbsp; は U+00A0 (No-Break Space) ではなく、U+0020 (半角空白) に変換します。&lt;br /&gt;
:空白文字 → &amp;amp;amp;nbsp; の変換は、実用上不都合が多いため行いません。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&#039;実体参照 &amp;amp;&amp;amp;&amp;quot;&amp;lt;&amp;gt; → &amp;amp;&amp;amp;xxx;&#039;,&amp;quot;R&amp;quot;,function(a){ //2015/03/14&lt;br /&gt;
  return a.replaceBatch([ [&amp;quot;&amp;amp;&amp;quot;,&amp;quot;&amp;amp;amp;&amp;quot;],[&#039;&amp;quot;&#039;,&amp;quot;&amp;amp;quot;&amp;quot;],[&amp;quot;&amp;lt;&amp;quot;,&amp;quot;&amp;amp;lt;&amp;quot;],[&amp;quot;&amp;gt;&amp;quot;,&amp;quot;&amp;amp;gt;&amp;quot;] ]) }]);&lt;br /&gt;
f.push([&#039;実体参照 &amp;amp;&amp;amp;xxx; → \u2423&amp;gt;&amp;lt;&amp;quot;&amp;amp;&amp;amp;&#039;,&amp;quot;R&amp;quot;,function(a){ //2015/03/14&lt;br /&gt;
  return a.replaceBatch([ [&amp;quot;&amp;amp;nbsp;&amp;quot;,&amp;quot; &amp;quot;],[&amp;quot;&amp;amp;gt;&amp;quot;,&amp;quot;&amp;gt;&amp;quot;],[&amp;quot;&amp;amp;lt;&amp;quot;,&amp;quot;&amp;lt;&amp;quot;],[&amp;quot;&amp;amp;quot;&amp;quot;,&#039;&amp;quot;&#039;],[&amp;quot;&amp;amp;amp;&amp;quot;,&amp;quot;&amp;amp;&amp;quot;] ]) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
:半角空白 → &amp;amp;amp;nbsp; の変換も行う場合は、下記の内容に差し替えてください。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&#039;実体参照 &amp;amp;&amp;amp;&amp;quot;&amp;lt;&amp;gt;\u2423 → &amp;amp;&amp;amp;xxx;&#039;,&amp;quot;R&amp;quot;,function(a){ //2015/03/14&lt;br /&gt;
  return a.replaceBatch([ [&amp;quot;&amp;amp;&amp;quot;,&amp;quot;&amp;amp;amp;&amp;quot;],[&#039;&amp;quot;&#039;,&amp;quot;&amp;amp;quot;&amp;quot;],[&amp;quot;&amp;lt;&amp;quot;,&amp;quot;&amp;amp;lt;&amp;quot;],[&amp;quot;&amp;gt;&amp;quot;,&amp;quot;&amp;amp;gt;&amp;quot;],[&amp;quot; &amp;quot;,&amp;quot;&amp;amp;nbsp;&amp;quot;] ]) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;★数値参照 &amp;amp;#dec; に変換&lt;br /&gt;
:文字列を数値文字参照(10進)形式に変換します。(dec＝decimal／十進法)&lt;br /&gt;
:例＞ &amp;lt;span style=&amp;quot;background:#bfdfff;&amp;quot;&amp;gt;Aわ𩸽&amp;lt;/span&amp;gt; → &amp;amp;amp;#65;&amp;amp;amp;#12431;&amp;amp;amp;#171581;&lt;br /&gt;
:→ &amp;lt;b&amp;gt;[[#符号化/復号化]]&amp;lt;/b&amp;gt; の節の &amp;lt;b&amp;gt;&amp;amp;#dec; エンコード&amp;lt;/b&amp;gt; を参照&lt;br /&gt;
&lt;br /&gt;
;★数値参照 &amp;amp;#xHEX; に変換&lt;br /&gt;
:文字列を数値文字参照(16進)形式に変換します。(HEX＝hexadecimal／十六進法)&lt;br /&gt;
:例＞ &amp;lt;span style=&amp;quot;background:#bfdfff;&amp;quot;&amp;gt;Aわ𩸽&amp;lt;/span&amp;gt; → &amp;amp;amp;#x41;&amp;amp;amp;#x308F;&amp;amp;amp;#x29E3D;&lt;br /&gt;
:→ &amp;lt;b&amp;gt;[[#符号化/復号化]]&amp;lt;/b&amp;gt; の節の &amp;lt;b&amp;gt;&amp;amp;#xHEX; エンコード&amp;lt;/b&amp;gt; を参照&lt;br /&gt;
&lt;br /&gt;
;★数値参照を文字に変換&lt;br /&gt;
:数値文字参照(10進/16進)を文字列に変換します。&lt;br /&gt;
:例＞ &amp;lt;span style=&amp;quot;background:#bfdfff;&amp;quot;&amp;gt;&amp;amp;amp;#65;&amp;amp;amp;#x308F;&amp;amp;amp;#x29e3d;&amp;lt;/span&amp;gt; → Aわ𩸽&lt;br /&gt;
&amp;lt;pre style=&amp;quot;word-wrap:break-word;&amp;quot;&amp;gt;&lt;br /&gt;
f.push([&amp;quot;数値参照を文字に変換&amp;quot;,&amp;quot;R&amp;quot;,function(a){ //2017/06/25&lt;br /&gt;
  return a.replace(/&amp;amp;#([0-9]{1,7});|&amp;amp;#[Xx]([0-9A-Fa-f]{1,6});/g,function(s,d,x){var n=Number(d||&amp;quot;0x&amp;quot;+x); return (n&amp;lt;=0xFFFF)?String.fromCharCode(n): (n&amp;lt;=0x10FFFF)?String.fromCharCode(n-0x10000&amp;gt;&amp;gt;10|0xD800,n&amp;amp;0x3FF|0xDC00): s}) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==マクロ/コード==&lt;br /&gt;
&lt;br /&gt;
;★行頭 // を付加/削除&lt;br /&gt;
:行頭に // が無い行なら // を付加し、有る行なら // を削除します。&lt;br /&gt;
:※このコマンドをよく利用される場合は「&amp;lt;b&amp;gt;[[コメントマーク付け外し]]&amp;lt;/b&amp;gt;」マクロの導入をオススメします。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;行頭 \/\/ を付加/削除&amp;quot;,&amp;quot;RS&amp;quot;,function(a){ //2015/03/14&lt;br /&gt;
  return a.replace(/^(\/\/)?/gm,function(s){return s? &amp;quot;&amp;quot;: &amp;quot;\/\/&amp;quot;}) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;挿入 Confirm(|)&lt;br /&gt;
:文字列 &amp;lt;code&amp;gt;if(!Confirm())Quit();&amp;lt;/code&amp;gt; を挿入します。&lt;br /&gt;
:&amp;lt;code&amp;gt;Alert()&amp;lt;/code&amp;gt; と違い、[キャンセル] ボタンを押すとマクロを強制終了できるため、無限ループにハマっても対処できます。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;挿入 Confirm(|)&amp;quot;,&amp;quot;F&amp;quot;,function(a){ //2018/01/15&lt;br /&gt;
  var p=&amp;quot;if(!Confirm(&amp;quot;,s=&amp;quot;))Quit();&amp;quot;; a.Text=p+a.Text+s; a.SetActivePos(a.GetActivePos()-s.length) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;マクロフォルダを開く&lt;br /&gt;
:エクスプローラを起動し、「テキスト整形」マクロがあるフォルダを開きます。&lt;br /&gt;
&amp;lt;pre style=&amp;quot;word-wrap:break-word;&amp;quot;&amp;gt;&lt;br /&gt;
f.push([&amp;quot;マクロフォルダを開く&amp;quot;,&amp;quot;F&amp;quot;,function(a){ //2015/12/26&lt;br /&gt;
  new ActiveXObject(&amp;quot;Shell.Application&amp;quot;).Explore(new ActiveXObject(&amp;quot;Scripting.FileSystemObject&amp;quot;).GetParentFolderName(ScriptFullName)) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;選択範囲を eval で評価&lt;br /&gt;
:ステータスバーに eval(選択範囲) した結果を表示します。&lt;br /&gt;
:たとえば、選択範囲が &amp;lt;code style=&amp;quot;background:#bfdfff;&amp;quot;&amp;gt;10*(5+20)&amp;lt;/code&amp;gt; なら、250 と表示されます。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;選択範囲を eval で評価&amp;quot;,&amp;quot;F&amp;quot;,function(a){ //2014/02/01&lt;br /&gt;
  if(a.Text){Status=eval(a.Text)} }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==挿入/貼付==&lt;br /&gt;
&lt;br /&gt;
;★半角/全角の間を空ける&lt;br /&gt;
;★半角英数/全角の間を空ける&lt;br /&gt;
:半角文字/半角英数と全角文字の間に半角空白を挿入します。&lt;br /&gt;
:※&amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;半角文字&amp;lt;/b&amp;gt;＝ASCII文字＋半角カナ、&amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;全角文字&amp;lt;/b&amp;gt;＝それ以外の文字、を意味しています。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;半角/全角の間を空ける&amp;quot;,&amp;quot;R&amp;quot;,function(a){ //2014/02/16&lt;br /&gt;
  return a.replace(/([!-~｡-ﾟ](?=[^!-~｡-ﾟ 　\t\n])|[^!-~｡-ﾟ 　\t\n](?=[!-~｡-ﾟ]))/g,&amp;quot;$1 &amp;quot;) }]);&lt;br /&gt;
f.push([&amp;quot;半角英数/全角の間を空ける&amp;quot;,&amp;quot;R&amp;quot;,function(a){ //2014/02/16&lt;br /&gt;
  return a.replace(/([0-9A-Za-z](?=[^!-~｡-ﾟ 　\t\n])|[^!-~｡-ﾟ 　\t\n](?=[0-9A-Za-z]))/g,&amp;quot;$1 &amp;quot;) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;★数値を3桁,区切りに&lt;br /&gt;
:半角数字列を3桁毎にコンマで区切ります。小数点以下（ピリオド以降）は桁区切りしません。&lt;br /&gt;
:例＞ &amp;lt;span style=&amp;quot;background:#bfdfff;&amp;quot;&amp;gt;87654321／0.12345／54321.12345&amp;lt;/span&amp;gt; → 87,654,321／0.12345／54,321.12345&lt;br /&gt;
&amp;lt;pre style=&amp;quot;word-wrap:break-word;&amp;quot;&amp;gt;&lt;br /&gt;
f.push([&amp;quot;数値を3桁,区切りに&amp;quot;,&amp;quot;R&amp;quot;,function(a){ //2014/10/12&lt;br /&gt;
  return a.replace(/([^.0-9]|^)([0-9]+)/g,function(s,t,n){return t+n.replace(/([0-9])(?=(?:[0-9]{3})+$)/g,&amp;quot;$1,&amp;quot;)}) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;複製貼り付け...&lt;br /&gt;
:クリップボードの文字列を、入力した回数分複製してから貼り付けます。&lt;br /&gt;
&amp;lt;pre style=&amp;quot;word-wrap:break-word;&amp;quot;&amp;gt;&lt;br /&gt;
f.push([&amp;quot;複製貼り付け...&amp;quot;,&amp;quot;R&amp;quot;,function(a){ //2015/03/26&lt;br /&gt;
  var r=[],c=ClipboardData.GetData(),n=parseInt(Prompt(&amp;quot;複製回数: ※半角数字&amp;quot;,&amp;quot;&amp;quot;)); if(!c||n&amp;lt;1)Quit(); while(n--){r.push(c)} return r.join(&amp;quot;&amp;quot;) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;★各行行頭／各行行末に貼り付け&lt;br /&gt;
:クリップボードの文字列を、各行の行頭/行末に貼り付けます。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;各行行頭に貼り付け&amp;quot;,&amp;quot;RS&amp;quot;,function(a){ //2015/09/30&lt;br /&gt;
  var c=ClipboardData.GetData().replace(/(\r\n|[\r\n])$/,&amp;quot;&amp;quot;); return a.replace(/^/gm,c) }]);&lt;br /&gt;
f.push([&amp;quot;各行行末に貼り付け&amp;quot;,&amp;quot;RS&amp;quot;,function(a){ //2015/09/30&lt;br /&gt;
  var c=ClipboardData.GetData().replace(/(\r\n|[\r\n])$/,&amp;quot;&amp;quot;); return a.replace(/$/gm,c) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;★各行行頭／各行行末に文字列付加...&lt;br /&gt;
:入力した文字列を、各行の行頭/行末に挿入します。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;各行行頭に文字列付加...&amp;quot;,&amp;quot;RS&amp;quot;,function(a){ //2015/03/14&lt;br /&gt;
  var p=Prompt(&amp;quot;各行行頭に付加する文字列:&amp;quot;,&amp;quot;&amp;quot;); if(!p)Quit(); return a.replace(/^/gm,p) }]);&lt;br /&gt;
f.push([&amp;quot;各行行末に文字列付加...&amp;quot;,&amp;quot;RS&amp;quot;,function(a){ //2015/03/14&lt;br /&gt;
  var p=Prompt(&amp;quot;各行行末に付加する文字列:&amp;quot;,&amp;quot;&amp;quot;); if(!p)Quit(); return a.replace(/$/gm,p) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;各行先頭／各行末尾に文字列付加...&lt;br /&gt;
:下記の条件で置換を行い、入力した文字列を各行の先頭/末尾に挿入します。&lt;br /&gt;
:&amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;※矩形対応には Mery 2.1.0 以降が必要です。&amp;lt;/b&amp;gt;&lt;br /&gt;
:&amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;※Mery の仕様上、ゼロ幅には対応していません。&amp;lt;/b&amp;gt;ゼロ幅で実行すると、&amp;lt;b&amp;gt;表示行頭&amp;lt;/b&amp;gt;に文字列が挿入されます。&lt;br /&gt;
:{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 検索文字列 (先頭)&lt;br /&gt;
| &amp;lt;code&amp;gt;^(?=.&amp;amp;#x7C;\n)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! 検索文字列 (末尾)&lt;br /&gt;
| &amp;lt;code&amp;gt;(?&amp;lt;=.)$&amp;amp;#x7C;^(?=\n)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
! 置換文字列&lt;br /&gt;
| ※入力した文字列&lt;br /&gt;
|-&lt;br /&gt;
! フラグ&lt;br /&gt;
| 正規表現を使用する (meFindReplaceRegExp)&amp;lt;br&amp;gt;選択した範囲のみ (meReplaceSelOnly)&amp;lt;br&amp;gt;すべて置換 (meReplaceAll)&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;pre style=&amp;quot;word-wrap:break-word;&amp;quot;&amp;gt;&lt;br /&gt;
f.push([&amp;quot;各行先頭に文字列付加...&amp;quot;,&amp;quot;F&amp;quot;,function(a){ //2015/02/14&lt;br /&gt;
  var p=Prompt(&amp;quot;各行先頭に付加する文字列:&amp;quot;,&amp;quot;&amp;quot;); if(!p)Quit(); a.Replace(&amp;quot;^(?=.|\\n)&amp;quot;,p, meFindReplaceRegExp+meReplaceSelOnly+meReplaceAll) }]);&lt;br /&gt;
f.push([&amp;quot;各行末尾に文字列付加...&amp;quot;,&amp;quot;F&amp;quot;,function(a){ //2015/02/14&lt;br /&gt;
  var p=Prompt(&amp;quot;各行末尾に付加する文字列:&amp;quot;,&amp;quot;&amp;quot;); if(!p)Quit(); a.Replace(&amp;quot;(?&amp;lt;=.)$|^(?=\\n)&amp;quot;,p, meFindReplaceRegExp+meReplaceSelOnly+meReplaceAll) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;行頭に連番付加 (#)&lt;br /&gt;
:行頭に連番 (1), (2), (3) … を挿入します。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;行頭に連番付加 (#)&amp;quot;,&amp;quot;RS&amp;quot;,function(a){ //2015/09/30&lt;br /&gt;
  var re=/^/gm, n=1, pf=&amp;quot;(&amp;quot;, sf=&amp;quot;)&amp;quot;; return a.replace(re,function(s){return pf+(n++)+sf}) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
;行頭に連番付加 (#/Σ)&lt;br /&gt;
:選択行数を Σ として、連番 (1/Σ), (2/Σ), (3/Σ) … を挿入します。&lt;br /&gt;
&amp;lt;pre style=&amp;quot;word-wrap:break-word;&amp;quot;&amp;gt;&lt;br /&gt;
f.push([&amp;quot;行頭に連番付加 (#/Σ)&amp;quot;,&amp;quot;RS&amp;quot;,function(a){ //2015/09/30&lt;br /&gt;
  var re=/^/gm, n=1, m=(a.match(re)||[]).length, pf=&amp;quot;(&amp;quot;, sf=&amp;quot;/&amp;quot;+m+&amp;quot;)&amp;quot;; return a.replace(re,function(s){return pf+(n++)+sf}) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
;行頭に連番付加 (0#)&lt;br /&gt;
:連番が2桁以上になる場合、桁揃えした連番 (01), (02), (03) … を挿入します。&lt;br /&gt;
&amp;lt;pre style=&amp;quot;word-wrap:break-word;&amp;quot;&amp;gt;&lt;br /&gt;
f.push([&amp;quot;行頭に連番付加 (0#)&amp;quot;,&amp;quot;RS&amp;quot;,function(a){ //2015/09/30&lt;br /&gt;
  var re=/^/gm, n=1, m=(a.match(re)||[]).length, pf=&amp;quot;(&amp;quot;, sf=&amp;quot;)&amp;quot;, sp=&amp;quot;0&amp;quot;, k=String(m).length, sp=new Array(k).join(sp); return a.replace(re,function(s){return pf+(sp+(n++)).slice(-k)+sf}) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;※行頭に連番付加系コマンドの比較&lt;br /&gt;
:{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 実行前 !! (#) !! (#/Σ) !! (0#)&lt;br /&gt;
|-&lt;br /&gt;
| 1行目&amp;lt;br&amp;gt;2行目&amp;lt;br&amp;gt;…&amp;lt;br&amp;gt;9行目&amp;lt;br&amp;gt;10行目&amp;lt;br&amp;gt;11行目&amp;lt;br&amp;gt;…&amp;lt;br&amp;gt;99行目&amp;lt;br&amp;gt;100行目&lt;br /&gt;
| (1)1行目&amp;lt;br&amp;gt;(2)2行目&amp;lt;br&amp;gt;…&amp;lt;br&amp;gt;(9)9行目&amp;lt;br&amp;gt;(10)10行目&amp;lt;br&amp;gt;(11)11行目&amp;lt;br&amp;gt;…&amp;lt;br&amp;gt;(99)99行目&amp;lt;br&amp;gt;(100)100行目&lt;br /&gt;
| (1/100)1行目&amp;lt;br&amp;gt;(2/100)2行目&amp;lt;br&amp;gt;…&amp;lt;br&amp;gt;(9/100)9行目&amp;lt;br&amp;gt;(10/100)10行目&amp;lt;br&amp;gt;(11/100)11行目&amp;lt;br&amp;gt;…&amp;lt;br&amp;gt;(99/100)99行目&amp;lt;br&amp;gt;(100/100)100行目&lt;br /&gt;
| (001)1行目&amp;lt;br&amp;gt;(002)2行目&amp;lt;br&amp;gt;…&amp;lt;br&amp;gt;(009)9行目&amp;lt;br&amp;gt;(010)10行目&amp;lt;br&amp;gt;(011)11行目&amp;lt;br&amp;gt;…&amp;lt;br&amp;gt;(099)99行目&amp;lt;br&amp;gt;(100)100行目&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==除去/削除==&lt;br /&gt;
&lt;br /&gt;
;★空白文字を除去&lt;br /&gt;
:空白文字（半角空白/全角空白/水平タブ）を除去します。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;空白文字を除去&amp;quot;,&amp;quot;R&amp;quot;,function(a){ //2013/09/15&lt;br /&gt;
  return a.replace(/[ 　\t]+/g,&amp;quot;&amp;quot;) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
;★行頭行末の／行頭の／行末の空白を除去&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;行頭行末の空白を除去&amp;quot;,&amp;quot;RS&amp;quot;,function(a){ //2013/09/15&lt;br /&gt;
  return a.replace(/^[ 　\t]+|[ 　\t]+$/gm,&amp;quot;&amp;quot;) }]);&lt;br /&gt;
f.push([&amp;quot;行頭の空白を除去&amp;quot;,&amp;quot;RS&amp;quot;,function(a){ //2015/02/14&lt;br /&gt;
  return a.replace(/^[ 　\t]+/gm,&amp;quot;&amp;quot;) }]);&lt;br /&gt;
f.push([&amp;quot;行末の空白を除去&amp;quot;,&amp;quot;RS&amp;quot;,function(a){ //2015/02/14&lt;br /&gt;
  return a.replace(/[ 　\t]+$/gm,&amp;quot;&amp;quot;) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;空白行の空白を除去&lt;br /&gt;
:空白行を、改行のみの空行にします。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;空白行の空白を除去&amp;quot;,&amp;quot;RS&amp;quot;,function(a){ //2017/06/25&lt;br /&gt;
  return a.replace(/^[ 　\t]+$/gm,&amp;quot;&amp;quot;) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;★空白行を削除&lt;br /&gt;
:空白行（半角空白/全角空白/水平タブ/改行のみの行）を削除します。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;空白行を削除&amp;quot;,&amp;quot;RS&amp;quot;,function(a){ //2015/03/14&lt;br /&gt;
  return a.replace(/^[ 　\t]*$\n?/gm,&amp;quot;&amp;quot;) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
;空白行を圧縮&lt;br /&gt;
:連続する空白行を1行の空行に変換します。連続しない（＝1行の）空白行は削除します。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;空白行を圧縮&amp;quot;,&amp;quot;RS&amp;quot;,function(a){ //2015/02/14&lt;br /&gt;
  return a.replace(/^[ 　\t]+$/gm,&amp;quot;&amp;quot;).replace(/^(\n)\n+|^\n/gm,&amp;quot;$1&amp;quot;) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
;空白行を減量&lt;br /&gt;
:連続する空白行を1行分削減します。&lt;br /&gt;
:空白行の連続が3行なら2行に、2行なら1行に、1行なら0行（＝削除）になります。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;空白行を減量&amp;quot;,&amp;quot;RS&amp;quot;,function(a){ //2015/02/14&lt;br /&gt;
  return a.replace(/((?:^[ 　\t]*$\n?)*)(?:^[ 　\t]*$\n?)/gm,&amp;quot;$1&amp;quot;) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;★重複行を単一化&lt;br /&gt;
:同じ内容の行が2個以上ある場合、2個目以降を削除します。&lt;br /&gt;
&amp;lt;pre style=&amp;quot;word-wrap:break-word;&amp;quot;&amp;gt;&lt;br /&gt;
f.push([&amp;quot;重複行を単一化&amp;quot;,&amp;quot;RS&amp;quot;,function(a){ //2018/01/15&lt;br /&gt;
  var a=a.split(&amp;quot;\n&amp;quot;),b=[],map={}; for(var i=0;i&amp;lt;a.length;i++){ if(!Object.prototype.hasOwnProperty.call(map,a[i])){map[a[i]]=true;b.push(a[i])} } return b.join(&amp;quot;\n&amp;quot;) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
;重複行を単一化(空白行は除く)&lt;br /&gt;
:空白行（半角空白/全角空白/水平タブ/改行のみの行）は例外とし、削除しません。&lt;br /&gt;
&amp;lt;pre style=&amp;quot;word-wrap:break-word;&amp;quot;&amp;gt;&lt;br /&gt;
f.push([&amp;quot;重複行を単一化(空白行は除く)&amp;quot;,&amp;quot;RS&amp;quot;,function(a){ //2018/01/15&lt;br /&gt;
  var a=a.split(&amp;quot;\n&amp;quot;),b=[],map={}; for(var i=0;i&amp;lt;a.length;i++){ if(/^[ 　\t]*$/.test(a[i])||!Object.prototype.hasOwnProperty.call(map,a[i])){map[a[i]]=true;b.push(a[i])} } return b.join(&amp;quot;\n&amp;quot;) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
;★連続する重複行を単一化&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;連続する重複行を単一化&amp;quot;,&amp;quot;RS&amp;quot;,function(a){ //2015/02/14&lt;br /&gt;
  return a.replace(/(^.*$)\n(^\1$\n?)+/gm,&amp;quot;$2&amp;quot;) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;重複する／しない行を抽出&lt;br /&gt;
&amp;lt;pre style=&amp;quot;word-wrap:break-word;&amp;quot;&amp;gt;&lt;br /&gt;
f.push([&amp;quot;重複する行を抽出&amp;quot;,&amp;quot;RS&amp;quot;,function(a){ //2018/01/15&lt;br /&gt;
  var a=a.split(&amp;quot;\n&amp;quot;),b=[],k=0,map={}; for(var i=0;i&amp;lt;a.length;i++){ if(!Object.prototype.hasOwnProperty.call(map,a[i])){b[k]={dup:false,txt:a[i]};map[a[i]]=k++;}else{b[map[a[i]]].dup=true} } i=b.length;while(--i&amp;gt;=0){ if(b[i].dup){b[i]=b[i].txt}else{b.splice(i,1)} } return b.join(&amp;quot;\n&amp;quot;) }]);&lt;br /&gt;
f.push([&amp;quot;重複しない行を抽出&amp;quot;,&amp;quot;RS&amp;quot;,function(a){ //2018/01/15&lt;br /&gt;
  var a=a.split(&amp;quot;\n&amp;quot;),b=[],k=0,map={}; for(var i=0;i&amp;lt;a.length;i++){ if(!Object.prototype.hasOwnProperty.call(map,a[i])){b[k]={dup:false,txt:a[i]};map[a[i]]=k++;}else{b[map[a[i]]].dup=true} } i=b.length;while(--i&amp;gt;=0){ if(!b[i].dup){b[i]=b[i].txt}else{b.splice(i,1)} } return b.join(&amp;quot;\n&amp;quot;) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;※空白行系／重複行系コマンドの比較 （☐ は空白／↵ は改行）&lt;br /&gt;
:{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 元の文 !! 空白行&amp;lt;br&amp;gt;を削除 !! 空白行&amp;lt;br&amp;gt;を圧縮 !! 空白行&amp;lt;br&amp;gt;を減量&lt;br /&gt;
!rowspan=&amp;quot;2&amp;quot; width=&amp;quot;6px&amp;quot;|&lt;br /&gt;
! 元の文 !! 重複行を&amp;lt;br&amp;gt;単一化 !! 空白行は&amp;lt;br&amp;gt;除く !! 連続する&amp;lt;br&amp;gt;重複行 !! 重複する&amp;lt;br&amp;gt;行を抽出 !! しない&amp;lt;br&amp;gt;行を抽出&lt;br /&gt;
|-style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| 1行目↵&amp;lt;br&amp;gt;☐↵&amp;lt;br&amp;gt;2行目↵&amp;lt;br&amp;gt;☐↵&amp;lt;br&amp;gt;☐☐↵&amp;lt;br&amp;gt;3行目↵&amp;lt;br&amp;gt;☐↵&amp;lt;br&amp;gt;☐☐↵&amp;lt;br&amp;gt;☐☐☐↵&amp;lt;br&amp;gt;4行目&lt;br /&gt;
| 1行目↵&amp;lt;br&amp;gt;2行目↵&amp;lt;br&amp;gt;3行目↵&amp;lt;br&amp;gt;4行目&lt;br /&gt;
| 1行目↵&amp;lt;br&amp;gt;2行目↵&amp;lt;br&amp;gt;↵&amp;lt;br&amp;gt;3行目↵&amp;lt;br&amp;gt;↵&amp;lt;br&amp;gt;4行目&lt;br /&gt;
| 1行目↵&amp;lt;br&amp;gt;2行目↵&amp;lt;br&amp;gt;☐↵&amp;lt;br&amp;gt;3行目↵&amp;lt;br&amp;gt;☐↵&amp;lt;br&amp;gt;☐☐↵&amp;lt;br&amp;gt;4行目&lt;br /&gt;
| あいう↵&amp;lt;br&amp;gt;あいう↵&amp;lt;br&amp;gt;☐↵&amp;lt;br&amp;gt;☐↵&amp;lt;br&amp;gt;☐☐↵&amp;lt;br&amp;gt;あいう↵&amp;lt;br&amp;gt;あいう↵&amp;lt;br&amp;gt;カキク↵&amp;lt;br&amp;gt;さしす↵&amp;lt;br&amp;gt;カキク&amp;lt;br&amp;gt;&lt;br /&gt;
| あいう↵&amp;lt;br&amp;gt;☐↵&amp;lt;br&amp;gt;☐☐↵&amp;lt;br&amp;gt;カキク↵&amp;lt;br&amp;gt;さしす&lt;br /&gt;
| あいう↵&amp;lt;br&amp;gt;☐↵&amp;lt;br&amp;gt;☐↵&amp;lt;br&amp;gt;☐☐↵&amp;lt;br&amp;gt;カキク↵&amp;lt;br&amp;gt;さしす&lt;br /&gt;
| あいう↵&amp;lt;br&amp;gt;☐↵&amp;lt;br&amp;gt;☐☐↵&amp;lt;br&amp;gt;あいう↵&amp;lt;br&amp;gt;カキク↵&amp;lt;br&amp;gt;さしす↵&amp;lt;br&amp;gt;カキク&lt;br /&gt;
| あいう↵&amp;lt;br&amp;gt;☐↵&amp;lt;br&amp;gt;カキク&lt;br /&gt;
| ☐☐↵&amp;lt;br&amp;gt;さしす&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
;★入力文字列を含む／含まない行を削除...&lt;br /&gt;
&amp;lt;pre style=&amp;quot;word-wrap:break-word;&amp;quot;&amp;gt;&lt;br /&gt;
f.push([&amp;quot;入力文字列を含む行を削除...&amp;quot;,&amp;quot;RS&amp;quot;,function(a){ //2015/03/14&lt;br /&gt;
  var p=Prompt(&amp;quot;以下の文字列を含む行を削除:&amp;quot;,&amp;quot;&amp;quot;); if(!p)Quit(); return a.replace(/^(.*)$\n?/gm,function(s,t){return (t.indexOf(p)&amp;gt;=0)? &amp;quot;&amp;quot;:s}) }]);&lt;br /&gt;
f.push([&amp;quot;入力文字列を含まない行を削除...&amp;quot;,&amp;quot;RS&amp;quot;,function(a){ //2015/03/14&lt;br /&gt;
  var p=Prompt(&amp;quot;以下の文字列を含まない行を削除:&amp;quot;,&amp;quot;&amp;quot;); if(!p)Quit(); return a.replace(/^(.*)$\n?/gm,function(s,t){return (t.indexOf(p)&amp;gt;=0)? s:&amp;quot;&amp;quot;}) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;正規表現に一致する／しない行を削除...&lt;br /&gt;
:&amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;※正規表現は JScript / JavaScript の仕様で記述します。&amp;lt;/b&amp;gt;Mery の正規表現 (鬼車/鬼雲) と仕様が異なる点があるので注意してください。&lt;br /&gt;
&amp;lt;pre style=&amp;quot;word-wrap:break-word;&amp;quot;&amp;gt;&lt;br /&gt;
f.push([&amp;quot;正規表現に一致する行を削除...&amp;quot;,&amp;quot;RS&amp;quot;,function(a){ //2015/03/14&lt;br /&gt;
  var p=Prompt(&amp;quot;以下の正規表現に一致する行を削除:&amp;quot;,&amp;quot;&amp;quot;); if(!p)Quit(); p=new RegExp(p); return a.replace(/^(.*)$\n?/gm,function(s,t){return p.test(t)? &amp;quot;&amp;quot;:s}) }]);&lt;br /&gt;
f.push([&amp;quot;正規表現に一致しない行を削除...&amp;quot;,&amp;quot;RS&amp;quot;,function(a){ //2015/03/14&lt;br /&gt;
  var p=Prompt(&amp;quot;以下の正規表現に一致しない行を削除:&amp;quot;,&amp;quot;&amp;quot;); if(!p)Quit(); p=new RegExp(p); return a.replace(/^(.*)$\n?/gm,function(s,t){return p.test(t)? s:&amp;quot;&amp;quot;}) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;各行行頭／行末から数文字削除...&lt;br /&gt;
:各行の行頭/行末から指定した文字数分を削除します。&lt;br /&gt;
:※サロゲートペアには対応していますが、結合文字列などには対応していません。&lt;br /&gt;
&amp;lt;pre style=&amp;quot;word-wrap:break-word;&amp;quot;&amp;gt;&lt;br /&gt;
f.push([&amp;quot;各行行頭から数文字削除...&amp;quot;,&amp;quot;RS&amp;quot;,function(a){ //2017/06/25&lt;br /&gt;
  var n=parseInt(Prompt(&amp;quot;各行行頭から削除する字数: ※半角数字&amp;quot;,&amp;quot;&amp;quot;)); if(!n||n&amp;lt;1)Quit(); return a.replace(new RegExp(&amp;quot;^(?:[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[^\\n]){0,&amp;quot;+n+&amp;quot;}&amp;quot;,&amp;quot;gm&amp;quot;),&amp;quot;&amp;quot;) }]);&lt;br /&gt;
f.push([&amp;quot;各行行末から数文字削除...&amp;quot;,&amp;quot;RS&amp;quot;,function(a){ //2017/06/25&lt;br /&gt;
  var n=parseInt(Prompt(&amp;quot;各行行末から削除する字数: ※半角数字&amp;quot;,&amp;quot;&amp;quot;)); if(!n||n&amp;lt;1)Quit(); return a.replace(new RegExp(&amp;quot;(?:[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[^\\n]){0,&amp;quot;+n+&amp;quot;}$&amp;quot;,&amp;quot;gm&amp;quot;),&amp;quot;&amp;quot;) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==検索/置換==&lt;br /&gt;
&lt;br /&gt;
;ASCII文字を単語検索&lt;br /&gt;
:空白文字などを除く ASCII 印字可能文字 (U+0021～007E) が1文字以上連続する箇所を検索します。&lt;br /&gt;
&amp;lt;pre style=&amp;quot;word-wrap:break-word;&amp;quot;&amp;gt;&lt;br /&gt;
f.push([&amp;quot;ASCII文字を単語検索&amp;quot;,&amp;quot;F&amp;quot;,function(a){ //2017/05/28&lt;br /&gt;
  a.Find(&amp;quot;(?&amp;lt;!\\g&amp;lt;Graph&amp;gt;)(?&amp;lt;Graph&amp;gt;[!-~])+&amp;quot;, meFindReplaceCase+meFindReplaceRegExp+meFindAround+meFindNext) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
;半角カナを単語検索&lt;br /&gt;
:半角カナ類 (ｦ～ｯ ｱ～ﾝ ｡ ｢ ｣ ､ ･ ｰ ﾞ ﾟ) が1文字以上連続する箇所を検索します。&lt;br /&gt;
&amp;lt;pre style=&amp;quot;word-wrap:break-word;&amp;quot;&amp;gt;&lt;br /&gt;
f.push([&amp;quot;半角カナを単語検索&amp;quot;,&amp;quot;F&amp;quot;,function(a){ //2017/05/28&lt;br /&gt;
  a.Find(&amp;quot;(?&amp;lt;!\\g&amp;lt;HKana&amp;gt;)(?&amp;lt;HKana&amp;gt;[｡-ﾟ])+&amp;quot;, meFindReplaceCase+meFindReplaceRegExp+meFindAround+meFindNext) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
;全角英数を単語検索&lt;br /&gt;
:全角英数字 (０～９ Ａ～Ｚ ａ～ｚ) が1文字以上連続する箇所を検索します。&lt;br /&gt;
&amp;lt;pre style=&amp;quot;word-wrap:break-word;&amp;quot;&amp;gt;&lt;br /&gt;
f.push([&amp;quot;全角英数を単語検索&amp;quot;,&amp;quot;F&amp;quot;,function(a){ //2017/05/28&lt;br /&gt;
  a.Find(&amp;quot;(?&amp;lt;!\\g&amp;lt;FAlnm&amp;gt;)(?&amp;lt;FAlnm&amp;gt;[０-９Ａ-Ｚａ-ｚ])+&amp;quot;, meFindReplaceCase+meFindReplaceRegExp+meFindAround+meFindNext) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
;CJK漢字を単語検索&lt;br /&gt;
:CJK (China/Japan/Korea) の漢字が1文字以上連続する箇所を検索します。&lt;br /&gt;
&amp;lt;pre style=&amp;quot;word-wrap:break-word;&amp;quot;&amp;gt;&lt;br /&gt;
f.push([&amp;quot;CJK漢字を単語検索&amp;quot;,&amp;quot;F&amp;quot;,function(a){ //2017/05/28&lt;br /&gt;
  a.Find(&amp;quot;(?&amp;lt;!\\g&amp;lt;Han&amp;gt;\\g&amp;lt;VS&amp;gt;|\\g&amp;lt;Han&amp;gt;)(?:(?&amp;lt;Han&amp;gt;[\\p{Han}])(?&amp;lt;VS&amp;gt;[\\x{FE00}-\\x{FE02}\\x{E0100}-\\x{E01EF}])?)+&amp;quot;, meFindReplaceCase+meFindReplaceRegExp+meFindAround+meFindNext) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;ひらがなを単語検索&lt;br /&gt;
;カタカナを単語検索&lt;br /&gt;
:平仮名/片仮名が1文字以上連続する箇所を検索します。&lt;br /&gt;
:※検索対象となる文字は、下表のとおりです。囲み文字 ㋐ や組み文字 ㍍ は含まれません。&lt;br /&gt;
:{|class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
! !! 種別 !! 文字 !! Shift_JIS !! Unicode !! 備考&lt;br /&gt;
|-&lt;br /&gt;
!rowspan=&amp;quot;3&amp;quot;| 平仮名&amp;lt;br&amp;gt;(かな)&amp;lt;br&amp;gt;89字&lt;br /&gt;
|rowspan=&amp;quot;3&amp;quot;| 全角ひらがな (89字)&lt;br /&gt;
| ぁ ～ ん&amp;lt;br&amp;gt;ゔゕゖ || 0x829F～82F1&amp;lt;br&amp;gt;- || U+3041～3093&amp;lt;br&amp;gt;U+3094～3096 || ※SJIS では ゔゕゖ の3字は保存不可&lt;br /&gt;
|-&lt;br /&gt;
| ゝゞ || 0x8154, 8155 || U+309D, 309E || 踊り字（繰り返し）&lt;br /&gt;
|-&lt;br /&gt;
| ゟ || - || U+309F || 「より」の合字&lt;br /&gt;
|-&lt;br /&gt;
!rowspan=&amp;quot;5&amp;quot;| 片仮名&amp;lt;br&amp;gt;(カナ)&amp;lt;br&amp;gt;164字&lt;br /&gt;
|rowspan=&amp;quot;3&amp;quot;| 全角カタカナ (93字)&lt;br /&gt;
| ァ ～ ヶ&amp;lt;br&amp;gt;ヷヸヹヺ || 0x8340～8396&amp;lt;br&amp;gt;- || U+30A1～30F6&amp;lt;br&amp;gt;U+30F7～30FA || ※SJIS では ヷヸヹヺ の4字は保存不可&lt;br /&gt;
|-&lt;br /&gt;
| ヽヾ || 0x8152, 8153 || U+30FD, 30FE || 踊り字（繰り返し）&lt;br /&gt;
|-&lt;br /&gt;
| ヿ || - || U+30FF || 「コト」の合字&lt;br /&gt;
|-&lt;br /&gt;
| 半角カタカナ (55字) || ｦ ～ ｯ&amp;lt;br&amp;gt;ｱ ～ ﾝ || 0xA6～AF&amp;lt;br&amp;gt;0xB1～DD || U+FF66～FF6F&amp;lt;br&amp;gt;U+FF71～FF9D ||&lt;br /&gt;
|-&lt;br /&gt;
| カタカナ拡張 (16字) || ㇰ ～ ㇿ || - || U+31F0～31FF || アイヌ語表記などに用いる&lt;br /&gt;
|-&lt;br /&gt;
!rowspan=&amp;quot;5&amp;quot;| 記号&amp;lt;br&amp;gt;8字&lt;br /&gt;
|colspan=&amp;quot;5&amp;quot;| &amp;lt;span style=&amp;quot;color:#c00;&amp;quot;&amp;gt;※以下は、&amp;lt;b&amp;gt;仮名の後&amp;lt;/b&amp;gt;に続いて出現する場合のみ検索される。&amp;lt;/span&amp;gt;例＞ 複製゜ー&amp;lt;span style=&amp;quot;background:#b4e4b4;&amp;quot;&amp;gt;コヒ゜ー&amp;lt;/span&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 半角/全角濁点 (2字) || ﾞ ゛ || 0xDE, 814A || U+FF9E, 309B ||&lt;br /&gt;
|-&lt;br /&gt;
| 半角/全角半濁点 (2字) || ﾟ ゜ || 0xDF, 814B || U+FF9F, 309C ||&lt;br /&gt;
|-&lt;br /&gt;
| 結合用濁点/半濁点 (2字) || &amp;amp;#x3099; &amp;amp;#x309A; || - || U+3099, 309A || 結合文字&lt;br /&gt;
|-&lt;br /&gt;
| 半角/全角長音符 (2字) || ｰ ー || 0xB0, 815B || U+FF70, 30FC ||&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;pre style=&amp;quot;word-wrap:break-word;&amp;quot;&amp;gt;&lt;br /&gt;
f.push([&amp;quot;ひらがなを単語検索&amp;quot;,&amp;quot;F&amp;quot;,function(a){ //2017/05/28&lt;br /&gt;
  a.Find(&amp;quot;(?&amp;lt;!\\g&amp;lt;Kana&amp;gt;\\g&amp;lt;Mark&amp;gt;\\g&amp;lt;Mark&amp;gt;|\\g&amp;lt;Kana&amp;gt;\\g&amp;lt;Mark&amp;gt;|\\g&amp;lt;Kana&amp;gt;)(?:(?&amp;lt;Kana&amp;gt;[ぁ-\\x{3096}ゝゞ\\x{309F}])(?&amp;lt;Mark&amp;gt;[\\x{3099}\\x{309A}゛ﾞ゜ﾟーｰ])*)+&amp;quot;, meFindReplaceCase+meFindReplaceRegExp+meFindAround+meFindNext) }]);&lt;br /&gt;
f.push([&amp;quot;カタカナを単語検索&amp;quot;,&amp;quot;F&amp;quot;,function(a){ //2017/05/28&lt;br /&gt;
  a.Find(&amp;quot;(?&amp;lt;!\\g&amp;lt;Kana&amp;gt;\\g&amp;lt;Mark&amp;gt;\\g&amp;lt;Mark&amp;gt;|\\g&amp;lt;Kana&amp;gt;\\g&amp;lt;Mark&amp;gt;|\\g&amp;lt;Kana&amp;gt;)(?:(?&amp;lt;Kana&amp;gt;[ァ-\\x{30FA}ヽヾ\\x{30FF}ｦ-ｯｱ-ﾝ\\x{31F0}-\\x{31FF}])(?&amp;lt;Mark&amp;gt;[\\x{3099}\\x{309A}゛ﾞ゜ﾟーｰ])*)+&amp;quot;, meFindReplaceCase+meFindReplaceRegExp+meFindAround+meFindNext) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;CP932依存文字を検索&lt;br /&gt;
:Shift_JIS (CP932) の環境依存文字 (NEC特殊文字・IBM拡張文字・ユーザー定義外字・未定義文字) を検索します。&lt;br /&gt;
&amp;lt;pre style=&amp;quot;word-wrap:break-word;&amp;quot;&amp;gt;&lt;br /&gt;
f.push([&amp;quot;CP932依存文字を検索&amp;quot;,&amp;quot;F&amp;quot;,function(a){ //2017/05/28&lt;br /&gt;
  a.Find(&amp;quot;[纊褜鍈銈蓜俉炻昱棈鋹曻彅丨仡仼伀伃伹佖侒侊侚侔俍偀倢俿倞偆偰偂傔僴僘兊兤冝冾凬刕劜劦勀勛匀匇匤卲厓厲叝﨎咜咊咩哿喆坙坥垬埈埇﨏\\x{FA10}增墲夋奓奛奝奣妤妺孖寀甯寘寬尞岦岺峵崧嵓﨑嵂嵭嶸嶹巐弡弴彧德忞恝悅悊惞惕愠惲愑愷愰憘戓抦揵摠撝擎敎昀昕昻昉昮昞昤晥晗晙\\x{FA12}晳暙暠暲暿曺朎\\x{F929}杦枻桒柀栁桄棏﨓楨﨔榘槢樰橫橆橳橾櫢櫤毖氿汜沆汯泚洄涇浯涖涬淏淸淲淼渹湜渧渼溿澈澵濵瀅瀇瀨炅炫焏焄煜煆煇\\x{FA15}燁燾犱犾猤\\x{FA16}獷玽珉珖珣珒琇珵琦琪琩琮瑢璉璟甁畯皂皜皞皛皦\\x{FA17}睆劯砡硎硤硺礰\\x{FA18}\\x{FA19}\\x{FA1A}禔\\x{FA1B}禛竑竧\\x{FA1C}竫箞\\x{FA1D}絈絜綷綠緖繒罇羡\\x{FA1E}茁荢荿菇菶葈蒴蕓蕙蕫﨟薰\\x{FA20}﨡蠇裵訒訷詹誧誾諟\\x{FA22}諶譓譿賰賴贒赶﨣軏﨤\\x{FA25}遧郞\\x{FA26}鄕鄧釚釗釞釭釮釤釥鈆鈐鈊鈺鉀鈼鉎鉙鉑鈹鉧銧鉷鉸鋧鋗鋙鋐﨧鋕鋠鋓錥錡鋻﨨錞鋿錝錂鍰鍗鎤鏆鏞鏸鐱鑅鑈閒\\x{F9DC}﨩隝隯霳霻靃靍靏靑靕顗顥\\x{FA2A}\\x{FA2B}餧\\x{FA2C}馞驎髙髜魵魲鮏鮱鮻鰀鵰鵫\\x{FA2D}鸙黑①-⑳Ⅰ-Ⅹⅰ-ⅹ㍉㌔㌢㍍㌘㌧㌃㌶㍑㍗㌍㌦㌣㌫㍊㌻㎜㎝㎞㎎㎏㏄㎡〝〟№㏍℡㊤㊥㊦㊧㊨㈱㈲㈹㍾㍽㍼㍻∮∑∟⊿￤＇＂\\x{E000}-\\x{E757}\\x{80}\\x{F8F0}-\\x{F8F3}]&amp;quot;, meFindReplaceCase+meFindReplaceRegExp+meFindAround+meFindNext) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;CJK互換漢字を検索&lt;br /&gt;
:CJK互換漢字 (U+F900～FAD9, 2F800～2FA1D) を検索します（CJK統合漢字扱いの12字 および 未定義の2字は除く）。&lt;br /&gt;
&amp;lt;pre style=&amp;quot;word-wrap:break-word;&amp;quot;&amp;gt;&lt;br /&gt;
f.push([&amp;quot;CJK互換漢字を検索&amp;quot;,&amp;quot;F&amp;quot;,function(a){ //2018/01/15&lt;br /&gt;
  a.Find(&amp;quot;[[^﨎﨏﨑﨓﨔﨟﨡﨣﨤﨧﨨﨩\\x{FA6E}\\x{FA6F}]&amp;amp;&amp;amp;[\\x{F900}-\\x{FAD9}\\x{2F800}-\\x{2FA1D}]]&amp;quot;, meFindReplaceCase+meFindReplaceRegExp+meFindAround+meFindNext) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;サロゲートペアを検索&lt;br /&gt;
:UTF-16において2バイト2個組で1文字を形成する文字 (U+10000～10FFFF) を検索します。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;サロゲートペアを検索&amp;quot;,&amp;quot;F&amp;quot;,function(a){ //2015/09/30&lt;br /&gt;
  a.Find(&amp;quot;[\\x{10000}-\\x{10FFFF}]&amp;quot;, meFindReplaceCase+meFindReplaceRegExp+meFindAround+meFindNext) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;結合文字列を検索&lt;br /&gt;
:2文字以上を組み合わせて1文字を形成する文字を検索します。&lt;br /&gt;
:※基底文字＋結合文字の組合せを検索するため、それ以外の組合せで形成される文字は正しく検索・選択できません。&lt;br /&gt;
:※結合文字列や異体字を表示するには、対応するソフトウェアやフォントが必要です。&lt;br /&gt;
:{|class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
!&lt;br /&gt;
!colspan=&amp;quot;4&amp;quot;| ラテン文字&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot;| ひらがな&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot;| 漢字(異体字)&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot;| 囲み文字&lt;br /&gt;
|-&lt;br /&gt;
! 実際の表示&lt;br /&gt;
| ǖ ||colspan=&amp;quot;3&amp;quot;| u&amp;amp;#x308;&amp;amp;#x304;&lt;br /&gt;
| じ ||colspan=&amp;quot;2&amp;quot;| し&amp;amp;#x3099;&lt;br /&gt;
| 辻 ||colspan=&amp;quot;2&amp;quot;| 辻&amp;amp;#xE0100;&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;| あ&amp;amp;#x20DE;&lt;br /&gt;
|-&lt;br /&gt;
! 文字の構成&lt;br /&gt;
| ǖ || u||&amp;amp;#x308;||&amp;amp;#x304;&lt;br /&gt;
| じ || し||&amp;amp;#x3099;&lt;br /&gt;
| 辻 || 辻||&amp;amp;#xE0100;&lt;br /&gt;
| あ||&amp;amp;#x20DE;&lt;br /&gt;
|-&lt;br /&gt;
! Unicode&lt;br /&gt;
| 01D6 || 0075||0308||0304&lt;br /&gt;
| 3058 || 3057||3099&lt;br /&gt;
| 8FBB || 8FBB||E0100&lt;br /&gt;
| 3042||20DE&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;pre style=&amp;quot;word-wrap:break-word;&amp;quot;&amp;gt;&lt;br /&gt;
f.push([&amp;quot;結合文字列を検索&amp;quot;,&amp;quot;F&amp;quot;,function(a){ //2017/05/28&lt;br /&gt;
  a.Find(&amp;quot;(?:[^\\p{M}\\n]|^)[\\p{M}]+&amp;quot;, meFindReplaceCase+meFindReplaceRegExp+meFindAround+meFindNext) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;選択文字列を検索&lt;br /&gt;
:下記の条件で検索を行います。&lt;br /&gt;
:&amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;※Mery の仕様上、改行や折り返しを含むと検索強調が不完全になります。&amp;lt;/b&amp;gt;&lt;br /&gt;
:{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 検索文字列&lt;br /&gt;
| ※選択文字列&lt;br /&gt;
|-&lt;br /&gt;
! フラグ&lt;br /&gt;
| 大文字と小文字を区別する (meFindReplaceCase)&amp;lt;br&amp;gt;正規表現を使用する (meFindReplaceRegExp)&amp;lt;br&amp;gt;文末まで検索したら文頭に移動する (meFindAround)&amp;lt;br&amp;gt;下/次を検索 (meFindNext)&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;pre style=&amp;quot;word-wrap:break-word;&amp;quot;&amp;gt;&lt;br /&gt;
f.push([&amp;quot;選択文字列を検索&amp;quot;,&amp;quot;F&amp;quot;,function(a){ //2017/06/25&lt;br /&gt;
  if(a.Text){var acp=a.GetActivePos(),anp=a.GetAnchorPos(),sx=ScrollX,sy=ScrollY; Redraw=false; a.Find(a.Text.replace(/[$()*+.?\[\\\]^{|}]/g,&amp;quot;\\$&amp;amp;&amp;quot;), meFindReplaceCase+meFindReplaceRegExp+meFindAround+meFindNext); a.SetActivePos(acp);a.SetAnchorPos(anp);ScrollX=sx;ScrollY=sy; Redraw=true;} }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;選択文字列をすべて削除&lt;br /&gt;
:下記の条件で置換を行い、選択文字列を削除します。&lt;br /&gt;
:{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 検索文字列&lt;br /&gt;
| ※選択文字列&lt;br /&gt;
|-&lt;br /&gt;
! 置換文字列&lt;br /&gt;
| ※空欄&lt;br /&gt;
|-&lt;br /&gt;
! フラグ&lt;br /&gt;
| 大文字と小文字を区別する (meFindReplaceCase)&amp;lt;br&amp;gt;正規表現を使用する (meFindReplaceRegExp)&amp;lt;br&amp;gt;すべて置換 (meReplaceAll)&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;pre style=&amp;quot;word-wrap:break-word;&amp;quot;&amp;gt;&lt;br /&gt;
f.push([&amp;quot;選択文字列をすべて削除&amp;quot;,&amp;quot;F&amp;quot;,function(a){ //2017/06/25&lt;br /&gt;
  if(a.Text)a.Replace(a.Text.replace(/[$()*+.?\[\\\]^{|}]/g,&amp;quot;\\$&amp;amp;&amp;quot;), &amp;quot;&amp;quot;, meFindReplaceCase+meFindReplaceRegExp+meReplaceAll) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;検索強調をすべて解除&lt;br /&gt;
:「検索文字列の強調を解除」をすべての文書で実行します。&lt;br /&gt;
&amp;lt;pre style=&amp;quot;word-wrap:break-word;&amp;quot;&amp;gt;&lt;br /&gt;
f.push([&amp;quot;検索強調をすべて解除&amp;quot;,&amp;quot;F&amp;quot;,function(a){ //2015/03/14&lt;br /&gt;
  for(var ei=0;ei&amp;lt;Editors.Count;ei++){var d=Editors.Item(ei).Documents; for(var i=0;i&amp;lt;d.Count;i++){d.Item(i).HighlightFind=false}} }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;検索結果カウント&lt;br /&gt;
:前回（直前）の検索条件で文書全体を検索し直し、一致した件数をステータスバーに表示します。&lt;br /&gt;
:&amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;※検索条件が複雑なほど、件数が多いほど処理に時間がかかります&amp;lt;/b&amp;gt;（作者の環境では、1000件で約2秒かかりました）。&lt;br /&gt;
:※処理に時間をかけたくない場合は「&amp;lt;b&amp;gt;[[検索ヒット数表示]]&amp;lt;/b&amp;gt;」プラグインの導入をオススメします。&lt;br /&gt;
&amp;lt;pre style=&amp;quot;word-wrap:break-word;&amp;quot;&amp;gt;&lt;br /&gt;
f.push([&amp;quot;検索結果カウント&amp;quot;,&amp;quot;F&amp;quot;,function(a){ //2015/09/30&lt;br /&gt;
  var t=new Date(),n=-1,acp=a.GetActivePos(),anp=a.GetAnchorPos(),sx=ScrollX,sy=ScrollY; Redraw=false; Status=&amp;quot;&amp;quot;; a.StartOfDocument(); do{a.FindRepeat(meFindNext);n++}while(!Status); a.SetActivePos(acp);a.SetAnchorPos(anp);ScrollX=sx;ScrollY=sy; Redraw=true; Status=n+&amp;quot;件の検索結果 (処理時間: &amp;quot;+(new Date()-t)/1000+&amp;quot;秒)&amp;quot; }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==文書情報==&lt;br /&gt;
&lt;br /&gt;
;総字行数カウント&lt;br /&gt;
:総文字数と総表示行数をステータスバーに表示します。&lt;br /&gt;
:表示される数値は、「すべて選択」時に表示される字数・行数と同値になります。&lt;br /&gt;
:※サロゲートペアは2文字扱い。結合文字や異体字セレクタもカウントされます。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;総字行数カウント&amp;quot;,&amp;quot;F&amp;quot;,function(a){ //2015/03/14&lt;br /&gt;
  Status=Document.Text.length+&amp;quot;文字 (&amp;quot;+Document.GetLines()+&amp;quot;表示行)&amp;quot; }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
:※サロゲートペアを1文字と扱い、論理行数を表示する場合は、下記のようになります。&lt;br /&gt;
&amp;lt;pre style=&amp;quot;word-wrap:break-word;&amp;quot;&amp;gt;&lt;br /&gt;
f.push([&amp;quot;総字行数カウント&amp;quot;,&amp;quot;F&amp;quot;,function(a){ //2015/09/30&lt;br /&gt;
  Status=(Document.Text.length-(Document.Text.match(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g)||[]).length)+&amp;quot;文字 (&amp;quot;+Document.GetLines(0)+&amp;quot;論理行)&amp;quot; }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;編集中のファイルのパスをコピー&lt;br /&gt;
;編集中の全ファイルのパスをコピー&lt;br /&gt;
:現在編集中のファイルのパスをクリップボードにコピーします。&lt;br /&gt;
:新規作成ファイルなどパスが存在しない場合は、&amp;lt;無題&amp;gt; の文字がコピーされます。&lt;br /&gt;
&amp;lt;pre style=&amp;quot;word-wrap:break-word;&amp;quot;&amp;gt;&lt;br /&gt;
f.push([&amp;quot;編集中のファイルのパスをコピー&amp;quot;,&amp;quot;F&amp;quot;,function(a){ //2015/03/14&lt;br /&gt;
  ClipboardData.SetData(Document.FullName||&amp;quot;&amp;lt;無題&amp;gt;&amp;quot;) }]);&lt;br /&gt;
f.push([&amp;quot;編集中の全ファイルのパスをコピー&amp;quot;,&amp;quot;F&amp;quot;,function(a){ //2015/03/14&lt;br /&gt;
  var list=[]; for(var ei=0;ei&amp;lt;Editors.Count;ei++){var d=Editors.Item(ei).Documents; for(var i=0;i&amp;lt;d.Count;i++){list.push(d.Item(i).FullName||&amp;quot;&amp;lt;無題&amp;gt;&amp;quot;)}} ClipboardData.SetData(list.join(&amp;quot;\r\n&amp;quot;)) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==並べ替え==&lt;br /&gt;
&lt;br /&gt;
;★行を昇順／降順並べ(Unicode)&lt;br /&gt;
:Unicode 順に並べ替えます（サロゲートペアが U+FFFF の次に並ぶ）。&lt;br /&gt;
&amp;lt;pre style=&amp;quot;word-wrap:break-word;&amp;quot;&amp;gt;&lt;br /&gt;
f.push([&amp;quot;行を昇順並べ(Unicode)&amp;quot;,&amp;quot;RS&amp;quot;,function(a){ //2017/06/25&lt;br /&gt;
  return a.replace(/\uFFFF/g,&amp;quot;\uFFFF_&amp;quot;).replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,&amp;quot;\uFFFF$&amp;amp;&amp;quot;).split(&amp;quot;\n&amp;quot;).sort().join(&amp;quot;\n&amp;quot;).replace(/\uFFFF([\uD800-\uDBFF][\uDC00-\uDFFF])/g,&amp;quot;$1&amp;quot;).replace(/\uFFFF_/g,&amp;quot;\uFFFF&amp;quot;) }]);&lt;br /&gt;
f.push([&amp;quot;行を降順並べ(Unicode)&amp;quot;,&amp;quot;RS&amp;quot;,function(a){ //2017/06/25&lt;br /&gt;
  return a.replace(/\uFFFF/g,&amp;quot;\uFFFF_&amp;quot;).replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,&amp;quot;\uFFFF$&amp;amp;&amp;quot;).split(&amp;quot;\n&amp;quot;).sort().reverse().join(&amp;quot;\n&amp;quot;).replace(/\uFFFF([\uD800-\uDBFF][\uDC00-\uDFFF])/g,&amp;quot;$1&amp;quot;).replace(/\uFFFF_/g,&amp;quot;\uFFFF&amp;quot;) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;★行を逆順並べ&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;行を逆順並べ&amp;quot;,&amp;quot;RS&amp;quot;,function(a){ //2014/10/12&lt;br /&gt;
  return a.split(&amp;quot;\n&amp;quot;).reverse().join(&amp;quot;\n&amp;quot;) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;行をシャッフル&lt;br /&gt;
:ランダムに並べ替えます。&lt;br /&gt;
&amp;lt;pre style=&amp;quot;word-wrap:break-word;&amp;quot;&amp;gt;&lt;br /&gt;
f.push([&amp;quot;行をシャッフル&amp;quot;,&amp;quot;RS&amp;quot;,function(a){ //2014/10/12&lt;br /&gt;
  var a=a.split(&amp;quot;\n&amp;quot;),i=a.length,j,t; while(i){j=Math.floor(Math.random()*i--); t=a[i];a[i]=a[j];a[j]=t;} return a.join(&amp;quot;\n&amp;quot;) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;文字を逆順並べ&lt;br /&gt;
:各行の文字を逆順に並べ替えます。&lt;br /&gt;
:例＞ &amp;lt;span style=&amp;quot;background:#bfdfff;&amp;quot;&amp;gt;文字を逆順並べ&amp;lt;/span&amp;gt; → べ並順逆を字文&lt;br /&gt;
:※[http://unicode.org/reports/tr29/ UAX #29] で規定される「拡張書記素クラスタ」に部分的に対応しています。対応していない文字は位置がズレます。&lt;br /&gt;
:* サロゲートペア (U+10000～10FFFF)&lt;br /&gt;
:* 結合文字の一部 (U+0300～6F, 1AB0～FF, 1DC0～FF, 20D0～FF, 3099～A, FE20～F)&lt;br /&gt;
:* 異体字セレクタ (U+180B～D, FE00～F, E0100～EF)&lt;br /&gt;
:* ゼロ幅非接合子/接合子 (U+200C～D)&lt;br /&gt;
:* 絵文字の国旗 (U+1F1E6～FF)&lt;br /&gt;
:* 絵文字の肌色指定 (U+1F3FB～F)&lt;br /&gt;
:* 結合不可の制御文字 (U+0000～1F, 007F～9F, 00AD, 2028～9, FEFF)&lt;br /&gt;
:例＞ &amp;lt;span style=&amp;quot;background:#bfdfff;&amp;quot;&amp;gt;𠮟る／りんこ&amp;amp;#x3099;／tre&amp;amp;#x301;ma&amp;lt;/span&amp;gt; → ame&amp;amp;#x301;rt／こ&amp;amp;#x3099;んり／る𠮟&lt;br /&gt;
:{|class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center;&amp;quot;&lt;br /&gt;
! 実行前&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|𠮟||る&lt;br /&gt;
!rowspan=&amp;quot;6&amp;quot; width=&amp;quot;6px&amp;quot;|&lt;br /&gt;
|り||ん||colspan=&amp;quot;2&amp;quot;|こ&amp;amp;#x3099;&lt;br /&gt;
!rowspan=&amp;quot;6&amp;quot; width=&amp;quot;6px&amp;quot;|&lt;br /&gt;
|t||r||colspan=&amp;quot;2&amp;quot;|e&amp;amp;#x301;||m||a&lt;br /&gt;
|-&lt;br /&gt;
! Unicode&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|20B9F||308B&lt;br /&gt;
|308A||3093||style=&amp;quot;background:#fe6;&amp;quot;|3053||style=&amp;quot;background:#fcc;&amp;quot;|3099&lt;br /&gt;
|0074||0072||style=&amp;quot;background:#fe6;&amp;quot;|0065||style=&amp;quot;background:#fcc;&amp;quot;|0301||006D||0061&lt;br /&gt;
|-&lt;br /&gt;
! UTF-16&lt;br /&gt;
|style=&amp;quot;background:#fe6;&amp;quot;|D842||style=&amp;quot;background:#fcc;&amp;quot;|DF9F||308B&lt;br /&gt;
|colspan=&amp;quot;4&amp;quot;|※同上&lt;br /&gt;
|colspan=&amp;quot;6&amp;quot;|※同上&lt;br /&gt;
|-&lt;br /&gt;
!rowspan=&amp;quot;3&amp;quot;|実行後&lt;br /&gt;
|る||colspan=&amp;quot;2&amp;quot;|𠮟&lt;br /&gt;
|colspan=&amp;quot;2&amp;quot;|こ&amp;amp;#x3099;||ん||り&lt;br /&gt;
|a||m||colspan=&amp;quot;2&amp;quot;|e&amp;amp;#x301;||r||t&lt;br /&gt;
|-&lt;br /&gt;
|308B||colspan=&amp;quot;2&amp;quot;|20B9F&lt;br /&gt;
|style=&amp;quot;background:#fe6;&amp;quot;|3053||style=&amp;quot;background:#fcc;&amp;quot;|3099||3093||308A&lt;br /&gt;
|0061||006D||style=&amp;quot;background:#fe6;&amp;quot;|0065||style=&amp;quot;background:#fcc;&amp;quot;|0301||0072||0074&lt;br /&gt;
|-&lt;br /&gt;
|308B||style=&amp;quot;background:#fe6;&amp;quot;|D842||style=&amp;quot;background:#fcc;&amp;quot;|DF9F&lt;br /&gt;
|colspan=&amp;quot;4&amp;quot;|※同上&lt;br /&gt;
|colspan=&amp;quot;6&amp;quot;|※同上&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;pre style=&amp;quot;word-wrap:break-word;&amp;quot;&amp;gt;&lt;br /&gt;
f.push([&amp;quot;文字を逆順並べ&amp;quot;,&amp;quot;R&amp;quot;,function(a){ //2017/06/25&lt;br /&gt;
  var X=new RegExp(/[\x00-\x1F\x7F-\x9F\xAD\u2028\u2029\uFEFF]|(?:(?:\uD83C[\uDDE6-\uDDFF]){2}|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\s\S])(?:[\u0300-\u036F\u1AB0-\u1AFF\u1DC0-\u1DFF\u20D0-\u20FF\u3099\u309A\uFE20-\uFE2F\u200C\u200D\u180B-\u180D\uFE00-\uFE0F]|\uDB40[\uDD00-\uDDEF]|\uD83C[\uDFFB-\uDFFF])*/g); return a.replace(/[^\n]+/g,function(s){return s.match(X).reverse().join(&amp;quot;&amp;quot;)}) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;文字をシャッフル&lt;br /&gt;
:各行の文字をランダムに並べ替えます。&lt;br /&gt;
:例＞ &amp;lt;span style=&amp;quot;background:#bfdfff;&amp;quot;&amp;gt;文字をシャッフル&amp;lt;/span&amp;gt; → フ字をャシッル文&lt;br /&gt;
&amp;lt;pre style=&amp;quot;word-wrap:break-word;&amp;quot;&amp;gt;&lt;br /&gt;
f.push([&amp;quot;文字をシャッフル&amp;quot;,&amp;quot;R&amp;quot;,function(a){ //2017/06/25&lt;br /&gt;
  var X=new RegExp(/[\x00-\x1F\x7F-\x9F\xAD\u2028\u2029\uFEFF]|(?:(?:\uD83C[\uDDE6-\uDDFF]){2}|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\s\S])(?:[\u0300-\u036F\u1AB0-\u1AFF\u1DC0-\u1DFF\u20D0-\u20FF\u3099\u309A\uFE20-\uFE2F\u200C\u200D\u180B-\u180D\uFE00-\uFE0F]|\uDB40[\uDD00-\uDDEF]|\uD83C[\uDFFB-\uDFFF])*/g); return a.replace(/[^\n]+/g,function(s){var a=s.match(X),i=a.length,j,t; while(i){j=Math.floor(Math.random()*i--); t=a[i];a[i]=a[j];a[j]=t;} return a.join(&amp;quot;&amp;quot;)}) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==字種/数値変換==&lt;br /&gt;
&lt;br /&gt;
;★半角英数→全角&lt;br /&gt;
;★全角英数→半角&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;半角英数→全角&amp;quot;,&amp;quot;R&amp;quot;,function(a){ //2014/02/10&lt;br /&gt;
  return a.replace(/[0-9A-Za-z]/g,function(s){return String.fromCharCode(s.charCodeAt(0)+0xFEE0)}) }]);&lt;br /&gt;
f.push([&amp;quot;全角英数→半角&amp;quot;,&amp;quot;R&amp;quot;,function(a){ //2014/02/10&lt;br /&gt;
  return a.replace(/[０-９Ａ-Ｚａ-ｚ]/g,function(s){return String.fromCharCode(s.charCodeAt(0)-0xFEE0)}) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;★半角カナ→全角&lt;br /&gt;
;★全角カナ→半角&lt;br /&gt;
&amp;lt;pre style=&amp;quot;word-wrap:break-word;&amp;quot;&amp;gt;&lt;br /&gt;
f.push([&amp;quot;半角カナ→全角&amp;quot;,&amp;quot;R&amp;quot;,function(a){ //2015/03/14&lt;br /&gt;
  return a.replaceBatch([ [&amp;quot;ｳﾞ&amp;quot;,&amp;quot;ヴ&amp;quot;],[&amp;quot;ｶﾞ&amp;quot;,&amp;quot;ガ&amp;quot;],[&amp;quot;ｷﾞ&amp;quot;,&amp;quot;ギ&amp;quot;],[&amp;quot;ｸﾞ&amp;quot;,&amp;quot;グ&amp;quot;],[&amp;quot;ｹﾞ&amp;quot;,&amp;quot;ゲ&amp;quot;],[&amp;quot;ｺﾞ&amp;quot;,&amp;quot;ゴ&amp;quot;],[&amp;quot;ｻﾞ&amp;quot;,&amp;quot;ザ&amp;quot;],[&amp;quot;ｼﾞ&amp;quot;,&amp;quot;ジ&amp;quot;],[&amp;quot;ｽﾞ&amp;quot;,&amp;quot;ズ&amp;quot;],[&amp;quot;ｾﾞ&amp;quot;,&amp;quot;ゼ&amp;quot;],[&amp;quot;ｿﾞ&amp;quot;,&amp;quot;ゾ&amp;quot;],[&amp;quot;ﾀﾞ&amp;quot;,&amp;quot;ダ&amp;quot;],[&amp;quot;ﾁﾞ&amp;quot;,&amp;quot;ヂ&amp;quot;],[&amp;quot;ﾂﾞ&amp;quot;,&amp;quot;ヅ&amp;quot;],[&amp;quot;ﾃﾞ&amp;quot;,&amp;quot;デ&amp;quot;],[&amp;quot;ﾄﾞ&amp;quot;,&amp;quot;ド&amp;quot;],[&amp;quot;ﾊﾞ&amp;quot;,&amp;quot;バ&amp;quot;],[&amp;quot;ﾋﾞ&amp;quot;,&amp;quot;ビ&amp;quot;],[&amp;quot;ﾌﾞ&amp;quot;,&amp;quot;ブ&amp;quot;],[&amp;quot;ﾍﾞ&amp;quot;,&amp;quot;ベ&amp;quot;],[&amp;quot;ﾎﾞ&amp;quot;,&amp;quot;ボ&amp;quot;],[&amp;quot;ﾊﾟ&amp;quot;,&amp;quot;パ&amp;quot;],[&amp;quot;ﾋﾟ&amp;quot;,&amp;quot;ピ&amp;quot;],[&amp;quot;ﾌﾟ&amp;quot;,&amp;quot;プ&amp;quot;],[&amp;quot;ﾍﾟ&amp;quot;,&amp;quot;ペ&amp;quot;],[&amp;quot;ﾎﾟ&amp;quot;,&amp;quot;ポ&amp;quot;],[&amp;quot;｡&amp;quot;,&amp;quot;。&amp;quot;],[&amp;quot;｢&amp;quot;,&amp;quot;「&amp;quot;],[&amp;quot;｣&amp;quot;,&amp;quot;」&amp;quot;],[&amp;quot;､&amp;quot;,&amp;quot;、&amp;quot;],[&amp;quot;･&amp;quot;,&amp;quot;・&amp;quot;],[&amp;quot;ｦ&amp;quot;,&amp;quot;ヲ&amp;quot;],[&amp;quot;ｧ&amp;quot;,&amp;quot;ァ&amp;quot;],[&amp;quot;ｨ&amp;quot;,&amp;quot;ィ&amp;quot;],[&amp;quot;ｩ&amp;quot;,&amp;quot;ゥ&amp;quot;],[&amp;quot;ｪ&amp;quot;,&amp;quot;ェ&amp;quot;],[&amp;quot;ｫ&amp;quot;,&amp;quot;ォ&amp;quot;],[&amp;quot;ｬ&amp;quot;,&amp;quot;ャ&amp;quot;],[&amp;quot;ｭ&amp;quot;,&amp;quot;ュ&amp;quot;],[&amp;quot;ｮ&amp;quot;,&amp;quot;ョ&amp;quot;],[&amp;quot;ｯ&amp;quot;,&amp;quot;ッ&amp;quot;],[&amp;quot;ｰ&amp;quot;,&amp;quot;ー&amp;quot;],[&amp;quot;ｱ&amp;quot;,&amp;quot;ア&amp;quot;],[&amp;quot;ｲ&amp;quot;,&amp;quot;イ&amp;quot;],[&amp;quot;ｳ&amp;quot;,&amp;quot;ウ&amp;quot;],[&amp;quot;ｴ&amp;quot;,&amp;quot;エ&amp;quot;],[&amp;quot;ｵ&amp;quot;,&amp;quot;オ&amp;quot;],[&amp;quot;ｶ&amp;quot;,&amp;quot;カ&amp;quot;],[&amp;quot;ｷ&amp;quot;,&amp;quot;キ&amp;quot;],[&amp;quot;ｸ&amp;quot;,&amp;quot;ク&amp;quot;],[&amp;quot;ｹ&amp;quot;,&amp;quot;ケ&amp;quot;],[&amp;quot;ｺ&amp;quot;,&amp;quot;コ&amp;quot;],[&amp;quot;ｻ&amp;quot;,&amp;quot;サ&amp;quot;],[&amp;quot;ｼ&amp;quot;,&amp;quot;シ&amp;quot;],[&amp;quot;ｽ&amp;quot;,&amp;quot;ス&amp;quot;],[&amp;quot;ｾ&amp;quot;,&amp;quot;セ&amp;quot;],[&amp;quot;ｿ&amp;quot;,&amp;quot;ソ&amp;quot;],[&amp;quot;ﾀ&amp;quot;,&amp;quot;タ&amp;quot;],[&amp;quot;ﾁ&amp;quot;,&amp;quot;チ&amp;quot;],[&amp;quot;ﾂ&amp;quot;,&amp;quot;ツ&amp;quot;],[&amp;quot;ﾃ&amp;quot;,&amp;quot;テ&amp;quot;],[&amp;quot;ﾄ&amp;quot;,&amp;quot;ト&amp;quot;],[&amp;quot;ﾅ&amp;quot;,&amp;quot;ナ&amp;quot;],[&amp;quot;ﾆ&amp;quot;,&amp;quot;ニ&amp;quot;],[&amp;quot;ﾇ&amp;quot;,&amp;quot;ヌ&amp;quot;],[&amp;quot;ﾈ&amp;quot;,&amp;quot;ネ&amp;quot;],[&amp;quot;ﾉ&amp;quot;,&amp;quot;ノ&amp;quot;],[&amp;quot;ﾊ&amp;quot;,&amp;quot;ハ&amp;quot;],[&amp;quot;ﾋ&amp;quot;,&amp;quot;ヒ&amp;quot;],[&amp;quot;ﾌ&amp;quot;,&amp;quot;フ&amp;quot;],[&amp;quot;ﾍ&amp;quot;,&amp;quot;ヘ&amp;quot;],[&amp;quot;ﾎ&amp;quot;,&amp;quot;ホ&amp;quot;],[&amp;quot;ﾏ&amp;quot;,&amp;quot;マ&amp;quot;],[&amp;quot;ﾐ&amp;quot;,&amp;quot;ミ&amp;quot;],[&amp;quot;ﾑ&amp;quot;,&amp;quot;ム&amp;quot;],[&amp;quot;ﾒ&amp;quot;,&amp;quot;メ&amp;quot;],[&amp;quot;ﾓ&amp;quot;,&amp;quot;モ&amp;quot;],[&amp;quot;ﾔ&amp;quot;,&amp;quot;ヤ&amp;quot;],[&amp;quot;ﾕ&amp;quot;,&amp;quot;ユ&amp;quot;],[&amp;quot;ﾖ&amp;quot;,&amp;quot;ヨ&amp;quot;],[&amp;quot;ﾗ&amp;quot;,&amp;quot;ラ&amp;quot;],[&amp;quot;ﾘ&amp;quot;,&amp;quot;リ&amp;quot;],[&amp;quot;ﾙ&amp;quot;,&amp;quot;ル&amp;quot;],[&amp;quot;ﾚ&amp;quot;,&amp;quot;レ&amp;quot;],[&amp;quot;ﾛ&amp;quot;,&amp;quot;ロ&amp;quot;],[&amp;quot;ﾜ&amp;quot;,&amp;quot;ワ&amp;quot;],[&amp;quot;ﾝ&amp;quot;,&amp;quot;ン&amp;quot;],[&amp;quot;ﾞ&amp;quot;,&amp;quot;゛&amp;quot;],[&amp;quot;ﾟ&amp;quot;,&amp;quot;゜&amp;quot;] ]) }]);&lt;br /&gt;
f.push([&amp;quot;全角カナ→半角&amp;quot;,&amp;quot;R&amp;quot;,function(a){ //2015/03/14&lt;br /&gt;
  return a.replaceBatch([ [&amp;quot;ヴ&amp;quot;,&amp;quot;ｳﾞ&amp;quot;],[&amp;quot;ガ&amp;quot;,&amp;quot;ｶﾞ&amp;quot;],[&amp;quot;ギ&amp;quot;,&amp;quot;ｷﾞ&amp;quot;],[&amp;quot;グ&amp;quot;,&amp;quot;ｸﾞ&amp;quot;],[&amp;quot;ゲ&amp;quot;,&amp;quot;ｹﾞ&amp;quot;],[&amp;quot;ゴ&amp;quot;,&amp;quot;ｺﾞ&amp;quot;],[&amp;quot;ザ&amp;quot;,&amp;quot;ｻﾞ&amp;quot;],[&amp;quot;ジ&amp;quot;,&amp;quot;ｼﾞ&amp;quot;],[&amp;quot;ズ&amp;quot;,&amp;quot;ｽﾞ&amp;quot;],[&amp;quot;ゼ&amp;quot;,&amp;quot;ｾﾞ&amp;quot;],[&amp;quot;ゾ&amp;quot;,&amp;quot;ｿﾞ&amp;quot;],[&amp;quot;ダ&amp;quot;,&amp;quot;ﾀﾞ&amp;quot;],[&amp;quot;ヂ&amp;quot;,&amp;quot;ﾁﾞ&amp;quot;],[&amp;quot;ヅ&amp;quot;,&amp;quot;ﾂﾞ&amp;quot;],[&amp;quot;デ&amp;quot;,&amp;quot;ﾃﾞ&amp;quot;],[&amp;quot;ド&amp;quot;,&amp;quot;ﾄﾞ&amp;quot;],[&amp;quot;バ&amp;quot;,&amp;quot;ﾊﾞ&amp;quot;],[&amp;quot;ビ&amp;quot;,&amp;quot;ﾋﾞ&amp;quot;],[&amp;quot;ブ&amp;quot;,&amp;quot;ﾌﾞ&amp;quot;],[&amp;quot;ベ&amp;quot;,&amp;quot;ﾍﾞ&amp;quot;],[&amp;quot;ボ&amp;quot;,&amp;quot;ﾎﾞ&amp;quot;],[&amp;quot;パ&amp;quot;,&amp;quot;ﾊﾟ&amp;quot;],[&amp;quot;ピ&amp;quot;,&amp;quot;ﾋﾟ&amp;quot;],[&amp;quot;プ&amp;quot;,&amp;quot;ﾌﾟ&amp;quot;],[&amp;quot;ペ&amp;quot;,&amp;quot;ﾍﾟ&amp;quot;],[&amp;quot;ポ&amp;quot;,&amp;quot;ﾎﾟ&amp;quot;],[&amp;quot;。&amp;quot;,&amp;quot;｡&amp;quot;],[&amp;quot;「&amp;quot;,&amp;quot;｢&amp;quot;],[&amp;quot;」&amp;quot;,&amp;quot;｣&amp;quot;],[&amp;quot;、&amp;quot;,&amp;quot;､&amp;quot;],[&amp;quot;・&amp;quot;,&amp;quot;･&amp;quot;],[&amp;quot;ヲ&amp;quot;,&amp;quot;ｦ&amp;quot;],[&amp;quot;ァ&amp;quot;,&amp;quot;ｧ&amp;quot;],[&amp;quot;ィ&amp;quot;,&amp;quot;ｨ&amp;quot;],[&amp;quot;ゥ&amp;quot;,&amp;quot;ｩ&amp;quot;],[&amp;quot;ェ&amp;quot;,&amp;quot;ｪ&amp;quot;],[&amp;quot;ォ&amp;quot;,&amp;quot;ｫ&amp;quot;],[&amp;quot;ャ&amp;quot;,&amp;quot;ｬ&amp;quot;],[&amp;quot;ュ&amp;quot;,&amp;quot;ｭ&amp;quot;],[&amp;quot;ョ&amp;quot;,&amp;quot;ｮ&amp;quot;],[&amp;quot;ッ&amp;quot;,&amp;quot;ｯ&amp;quot;],[&amp;quot;ー&amp;quot;,&amp;quot;ｰ&amp;quot;],[&amp;quot;ア&amp;quot;,&amp;quot;ｱ&amp;quot;],[&amp;quot;イ&amp;quot;,&amp;quot;ｲ&amp;quot;],[&amp;quot;ウ&amp;quot;,&amp;quot;ｳ&amp;quot;],[&amp;quot;エ&amp;quot;,&amp;quot;ｴ&amp;quot;],[&amp;quot;オ&amp;quot;,&amp;quot;ｵ&amp;quot;],[&amp;quot;カ&amp;quot;,&amp;quot;ｶ&amp;quot;],[&amp;quot;キ&amp;quot;,&amp;quot;ｷ&amp;quot;],[&amp;quot;ク&amp;quot;,&amp;quot;ｸ&amp;quot;],[&amp;quot;ケ&amp;quot;,&amp;quot;ｹ&amp;quot;],[&amp;quot;コ&amp;quot;,&amp;quot;ｺ&amp;quot;],[&amp;quot;サ&amp;quot;,&amp;quot;ｻ&amp;quot;],[&amp;quot;シ&amp;quot;,&amp;quot;ｼ&amp;quot;],[&amp;quot;ス&amp;quot;,&amp;quot;ｽ&amp;quot;],[&amp;quot;セ&amp;quot;,&amp;quot;ｾ&amp;quot;],[&amp;quot;ソ&amp;quot;,&amp;quot;ｿ&amp;quot;],[&amp;quot;タ&amp;quot;,&amp;quot;ﾀ&amp;quot;],[&amp;quot;チ&amp;quot;,&amp;quot;ﾁ&amp;quot;],[&amp;quot;ツ&amp;quot;,&amp;quot;ﾂ&amp;quot;],[&amp;quot;テ&amp;quot;,&amp;quot;ﾃ&amp;quot;],[&amp;quot;ト&amp;quot;,&amp;quot;ﾄ&amp;quot;],[&amp;quot;ナ&amp;quot;,&amp;quot;ﾅ&amp;quot;],[&amp;quot;ニ&amp;quot;,&amp;quot;ﾆ&amp;quot;],[&amp;quot;ヌ&amp;quot;,&amp;quot;ﾇ&amp;quot;],[&amp;quot;ネ&amp;quot;,&amp;quot;ﾈ&amp;quot;],[&amp;quot;ノ&amp;quot;,&amp;quot;ﾉ&amp;quot;],[&amp;quot;ハ&amp;quot;,&amp;quot;ﾊ&amp;quot;],[&amp;quot;ヒ&amp;quot;,&amp;quot;ﾋ&amp;quot;],[&amp;quot;フ&amp;quot;,&amp;quot;ﾌ&amp;quot;],[&amp;quot;ヘ&amp;quot;,&amp;quot;ﾍ&amp;quot;],[&amp;quot;ホ&amp;quot;,&amp;quot;ﾎ&amp;quot;],[&amp;quot;マ&amp;quot;,&amp;quot;ﾏ&amp;quot;],[&amp;quot;ミ&amp;quot;,&amp;quot;ﾐ&amp;quot;],[&amp;quot;ム&amp;quot;,&amp;quot;ﾑ&amp;quot;],[&amp;quot;メ&amp;quot;,&amp;quot;ﾒ&amp;quot;],[&amp;quot;モ&amp;quot;,&amp;quot;ﾓ&amp;quot;],[&amp;quot;ヤ&amp;quot;,&amp;quot;ﾔ&amp;quot;],[&amp;quot;ユ&amp;quot;,&amp;quot;ﾕ&amp;quot;],[&amp;quot;ヨ&amp;quot;,&amp;quot;ﾖ&amp;quot;],[&amp;quot;ラ&amp;quot;,&amp;quot;ﾗ&amp;quot;],[&amp;quot;リ&amp;quot;,&amp;quot;ﾘ&amp;quot;],[&amp;quot;ル&amp;quot;,&amp;quot;ﾙ&amp;quot;],[&amp;quot;レ&amp;quot;,&amp;quot;ﾚ&amp;quot;],[&amp;quot;ロ&amp;quot;,&amp;quot;ﾛ&amp;quot;],[&amp;quot;ワ&amp;quot;,&amp;quot;ﾜ&amp;quot;],[&amp;quot;ン&amp;quot;,&amp;quot;ﾝ&amp;quot;],[&amp;quot;゛&amp;quot;,&amp;quot;ﾞ&amp;quot;],[&amp;quot;゜&amp;quot;,&amp;quot;ﾟ&amp;quot;] ]) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;★全角かな→カナ&lt;br /&gt;
;★全角カナ→かな&lt;br /&gt;
:全角ひらがなと全角カタカナを変換します。&lt;br /&gt;
:ただし、ヴヵヶ → ゔゕゖ の変換は行いません（Shift_JIS では保存できない文字のため）。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;全角かな→カナ&amp;quot;,&amp;quot;R&amp;quot;,function(a){ //2014/02/10&lt;br /&gt;
  return a.replace(/[\u3041-\u3096ゝゞ]/g,function(s){return String.fromCharCode(s.charCodeAt(0)+0x60)}) }]);&lt;br /&gt;
f.push([&amp;quot;全角カナ→かな(ヴヵヶ除く)&amp;quot;,&amp;quot;R&amp;quot;,function(a){ //2015/02/14&lt;br /&gt;
  return a.replace(/[\u30A1-\u30F3ヽヾ]/g,function(s){return String.fromCharCode(s.charCodeAt(0)-0x60)}) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
:ヴヵヶ → ゔゕゖ の変換も行う場合は、下記の内容に差し替えてください。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;全角カナ→かな&amp;quot;,&amp;quot;R&amp;quot;,function(a){ //2014/02/10&lt;br /&gt;
  return a.replace(/[\u30A1-\u30F6ヽヾ]/g,function(s){return String.fromCharCode(s.charCodeAt(0)-0x60)}) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;標準変換&lt;br /&gt;
:マクロ「&amp;lt;b&amp;gt;[[標準変換]]&amp;lt;/b&amp;gt;」を移植（一部改変）したものです。&lt;br /&gt;
:全角英数・全角記号は半角に、半角カナは全角に変換します。&lt;br /&gt;
:{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 文字 !! 変換前&lt;br /&gt;
! 文字 !! 標準変換版&lt;br /&gt;
! 文字 !! テキスト整形版&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| ‘ || 全角左シングルクォート&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| ` || 半角グレーブアクセント&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| &#039; || 半角アポストロフィー/シングルクォート&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| ｀ || 全角グレーブアクセント&lt;br /&gt;
| || ※変換しない&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| ` || 半角グレーブアクセント/バッククォート&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;pre style=&amp;quot;word-wrap:break-word;&amp;quot;&amp;gt;&lt;br /&gt;
f.push([&amp;quot;標準変換&amp;quot;,&amp;quot;R&amp;quot;,function(a){ //2015/03/14&lt;br /&gt;
  return a.replaceBatch([ [&amp;quot;　&amp;quot;,&amp;quot; &amp;quot;],[&amp;quot;！&amp;quot;,&amp;quot;!&amp;quot;],[&amp;quot;“&amp;quot;,&#039;&amp;quot;&#039;],[&amp;quot;”&amp;quot;,&#039;&amp;quot;&#039;],[&amp;quot;＃&amp;quot;,&amp;quot;#&amp;quot;],[&amp;quot;＄&amp;quot;,&amp;quot;$&amp;quot;],[&amp;quot;％&amp;quot;,&amp;quot;%&amp;quot;],[&amp;quot;＆&amp;quot;,&amp;quot;&amp;amp;&amp;quot;],[&amp;quot;‘&amp;quot;,&amp;quot;&#039;&amp;quot;],[&amp;quot;’&amp;quot;,&amp;quot;&#039;&amp;quot;],[&amp;quot;（&amp;quot;,&amp;quot;(&amp;quot;],[&amp;quot;）&amp;quot;,&amp;quot;)&amp;quot;],[&amp;quot;＊&amp;quot;,&amp;quot;*&amp;quot;],[&amp;quot;＋&amp;quot;,&amp;quot;+&amp;quot;],[&amp;quot;，&amp;quot;,&amp;quot;,&amp;quot;],[&amp;quot;－&amp;quot;,&amp;quot;-&amp;quot;],[&amp;quot;．&amp;quot;,&amp;quot;.&amp;quot;],[&amp;quot;／&amp;quot;,&amp;quot;/&amp;quot;],[&amp;quot;０&amp;quot;,&amp;quot;0&amp;quot;],[&amp;quot;１&amp;quot;,&amp;quot;1&amp;quot;],[&amp;quot;２&amp;quot;,&amp;quot;2&amp;quot;],[&amp;quot;３&amp;quot;,&amp;quot;3&amp;quot;],[&amp;quot;４&amp;quot;,&amp;quot;4&amp;quot;],[&amp;quot;５&amp;quot;,&amp;quot;5&amp;quot;],[&amp;quot;６&amp;quot;,&amp;quot;6&amp;quot;],[&amp;quot;７&amp;quot;,&amp;quot;7&amp;quot;],[&amp;quot;８&amp;quot;,&amp;quot;8&amp;quot;],[&amp;quot;９&amp;quot;,&amp;quot;9&amp;quot;],[&amp;quot;：&amp;quot;,&amp;quot;:&amp;quot;],[&amp;quot;；&amp;quot;,&amp;quot;;&amp;quot;],[&amp;quot;＜&amp;quot;,&amp;quot;&amp;lt;&amp;quot;],[&amp;quot;＝&amp;quot;,&amp;quot;=&amp;quot;],[&amp;quot;＞&amp;quot;,&amp;quot;&amp;gt;&amp;quot;],[&amp;quot;？&amp;quot;,&amp;quot;?&amp;quot;],[&amp;quot;＠&amp;quot;,&amp;quot;@&amp;quot;],[&amp;quot;Ａ&amp;quot;,&amp;quot;A&amp;quot;],[&amp;quot;Ｂ&amp;quot;,&amp;quot;B&amp;quot;],[&amp;quot;Ｃ&amp;quot;,&amp;quot;C&amp;quot;],[&amp;quot;Ｄ&amp;quot;,&amp;quot;D&amp;quot;],[&amp;quot;Ｅ&amp;quot;,&amp;quot;E&amp;quot;],[&amp;quot;Ｆ&amp;quot;,&amp;quot;F&amp;quot;],[&amp;quot;Ｇ&amp;quot;,&amp;quot;G&amp;quot;],[&amp;quot;Ｈ&amp;quot;,&amp;quot;H&amp;quot;],[&amp;quot;Ｉ&amp;quot;,&amp;quot;I&amp;quot;],[&amp;quot;Ｊ&amp;quot;,&amp;quot;J&amp;quot;],[&amp;quot;Ｋ&amp;quot;,&amp;quot;K&amp;quot;],[&amp;quot;Ｌ&amp;quot;,&amp;quot;L&amp;quot;],[&amp;quot;Ｍ&amp;quot;,&amp;quot;M&amp;quot;],[&amp;quot;Ｎ&amp;quot;,&amp;quot;N&amp;quot;],[&amp;quot;Ｏ&amp;quot;,&amp;quot;O&amp;quot;],[&amp;quot;Ｐ&amp;quot;,&amp;quot;P&amp;quot;],[&amp;quot;Ｑ&amp;quot;,&amp;quot;Q&amp;quot;],[&amp;quot;Ｒ&amp;quot;,&amp;quot;R&amp;quot;],[&amp;quot;Ｓ&amp;quot;,&amp;quot;S&amp;quot;],[&amp;quot;Ｔ&amp;quot;,&amp;quot;T&amp;quot;],[&amp;quot;Ｕ&amp;quot;,&amp;quot;U&amp;quot;],[&amp;quot;Ｖ&amp;quot;,&amp;quot;V&amp;quot;],[&amp;quot;Ｗ&amp;quot;,&amp;quot;W&amp;quot;],[&amp;quot;Ｘ&amp;quot;,&amp;quot;X&amp;quot;],[&amp;quot;Ｙ&amp;quot;,&amp;quot;Y&amp;quot;],[&amp;quot;Ｚ&amp;quot;,&amp;quot;Z&amp;quot;],[&amp;quot;［&amp;quot;,&amp;quot;[&amp;quot;],[&amp;quot;￥&amp;quot;,&amp;quot;\\&amp;quot;],[&amp;quot;］&amp;quot;,&amp;quot;]&amp;quot;],[&amp;quot;＾&amp;quot;,&amp;quot;^&amp;quot;],[&amp;quot;＿&amp;quot;,&amp;quot;_&amp;quot;],[&amp;quot;｀&amp;quot;,&amp;quot;`&amp;quot;],[&amp;quot;ａ&amp;quot;,&amp;quot;a&amp;quot;],[&amp;quot;ｂ&amp;quot;,&amp;quot;b&amp;quot;],[&amp;quot;ｃ&amp;quot;,&amp;quot;c&amp;quot;],[&amp;quot;ｄ&amp;quot;,&amp;quot;d&amp;quot;],[&amp;quot;ｅ&amp;quot;,&amp;quot;e&amp;quot;],[&amp;quot;ｆ&amp;quot;,&amp;quot;f&amp;quot;],[&amp;quot;ｇ&amp;quot;,&amp;quot;g&amp;quot;],[&amp;quot;ｈ&amp;quot;,&amp;quot;h&amp;quot;],[&amp;quot;ｉ&amp;quot;,&amp;quot;i&amp;quot;],[&amp;quot;ｊ&amp;quot;,&amp;quot;j&amp;quot;],[&amp;quot;ｋ&amp;quot;,&amp;quot;k&amp;quot;],[&amp;quot;ｌ&amp;quot;,&amp;quot;l&amp;quot;],[&amp;quot;ｍ&amp;quot;,&amp;quot;m&amp;quot;],[&amp;quot;ｎ&amp;quot;,&amp;quot;n&amp;quot;],[&amp;quot;ｏ&amp;quot;,&amp;quot;o&amp;quot;],[&amp;quot;ｐ&amp;quot;,&amp;quot;p&amp;quot;],[&amp;quot;ｑ&amp;quot;,&amp;quot;q&amp;quot;],[&amp;quot;ｒ&amp;quot;,&amp;quot;r&amp;quot;],[&amp;quot;ｓ&amp;quot;,&amp;quot;s&amp;quot;],[&amp;quot;ｔ&amp;quot;,&amp;quot;t&amp;quot;],[&amp;quot;ｕ&amp;quot;,&amp;quot;u&amp;quot;],[&amp;quot;ｖ&amp;quot;,&amp;quot;v&amp;quot;],[&amp;quot;ｗ&amp;quot;,&amp;quot;w&amp;quot;],[&amp;quot;ｘ&amp;quot;,&amp;quot;x&amp;quot;],[&amp;quot;ｙ&amp;quot;,&amp;quot;y&amp;quot;],[&amp;quot;ｚ&amp;quot;,&amp;quot;z&amp;quot;],[&amp;quot;｛&amp;quot;,&amp;quot;{&amp;quot;],[&amp;quot;｜&amp;quot;,&amp;quot;|&amp;quot;],[&amp;quot;｝&amp;quot;,&amp;quot;}&amp;quot;],[&amp;quot;～&amp;quot;,&amp;quot;~&amp;quot;],[&amp;quot;ｳﾞ&amp;quot;,&amp;quot;ヴ&amp;quot;],[&amp;quot;ｶﾞ&amp;quot;,&amp;quot;ガ&amp;quot;],[&amp;quot;ｷﾞ&amp;quot;,&amp;quot;ギ&amp;quot;],[&amp;quot;ｸﾞ&amp;quot;,&amp;quot;グ&amp;quot;],[&amp;quot;ｹﾞ&amp;quot;,&amp;quot;ゲ&amp;quot;],[&amp;quot;ｺﾞ&amp;quot;,&amp;quot;ゴ&amp;quot;],[&amp;quot;ｻﾞ&amp;quot;,&amp;quot;ザ&amp;quot;],[&amp;quot;ｼﾞ&amp;quot;,&amp;quot;ジ&amp;quot;],[&amp;quot;ｽﾞ&amp;quot;,&amp;quot;ズ&amp;quot;],[&amp;quot;ｾﾞ&amp;quot;,&amp;quot;ゼ&amp;quot;],[&amp;quot;ｿﾞ&amp;quot;,&amp;quot;ゾ&amp;quot;],[&amp;quot;ﾀﾞ&amp;quot;,&amp;quot;ダ&amp;quot;],[&amp;quot;ﾁﾞ&amp;quot;,&amp;quot;ヂ&amp;quot;],[&amp;quot;ﾂﾞ&amp;quot;,&amp;quot;ヅ&amp;quot;],[&amp;quot;ﾃﾞ&amp;quot;,&amp;quot;デ&amp;quot;],[&amp;quot;ﾄﾞ&amp;quot;,&amp;quot;ド&amp;quot;],[&amp;quot;ﾊﾞ&amp;quot;,&amp;quot;バ&amp;quot;],[&amp;quot;ﾋﾞ&amp;quot;,&amp;quot;ビ&amp;quot;],[&amp;quot;ﾌﾞ&amp;quot;,&amp;quot;ブ&amp;quot;],[&amp;quot;ﾍﾞ&amp;quot;,&amp;quot;ベ&amp;quot;],[&amp;quot;ﾎﾞ&amp;quot;,&amp;quot;ボ&amp;quot;],[&amp;quot;ﾊﾟ&amp;quot;,&amp;quot;パ&amp;quot;],[&amp;quot;ﾋﾟ&amp;quot;,&amp;quot;ピ&amp;quot;],[&amp;quot;ﾌﾟ&amp;quot;,&amp;quot;プ&amp;quot;],[&amp;quot;ﾍﾟ&amp;quot;,&amp;quot;ペ&amp;quot;],[&amp;quot;ﾎﾟ&amp;quot;,&amp;quot;ポ&amp;quot;],[&amp;quot;｡&amp;quot;,&amp;quot;。&amp;quot;],[&amp;quot;｢&amp;quot;,&amp;quot;「&amp;quot;],[&amp;quot;｣&amp;quot;,&amp;quot;」&amp;quot;],[&amp;quot;､&amp;quot;,&amp;quot;、&amp;quot;],[&amp;quot;･&amp;quot;,&amp;quot;・&amp;quot;],[&amp;quot;ｦ&amp;quot;,&amp;quot;ヲ&amp;quot;],[&amp;quot;ｧ&amp;quot;,&amp;quot;ァ&amp;quot;],[&amp;quot;ｨ&amp;quot;,&amp;quot;ィ&amp;quot;],[&amp;quot;ｩ&amp;quot;,&amp;quot;ゥ&amp;quot;],[&amp;quot;ｪ&amp;quot;,&amp;quot;ェ&amp;quot;],[&amp;quot;ｫ&amp;quot;,&amp;quot;ォ&amp;quot;],[&amp;quot;ｬ&amp;quot;,&amp;quot;ャ&amp;quot;],[&amp;quot;ｭ&amp;quot;,&amp;quot;ュ&amp;quot;],[&amp;quot;ｮ&amp;quot;,&amp;quot;ョ&amp;quot;],[&amp;quot;ｯ&amp;quot;,&amp;quot;ッ&amp;quot;],[&amp;quot;ｰ&amp;quot;,&amp;quot;ー&amp;quot;],[&amp;quot;ｱ&amp;quot;,&amp;quot;ア&amp;quot;],[&amp;quot;ｲ&amp;quot;,&amp;quot;イ&amp;quot;],[&amp;quot;ｳ&amp;quot;,&amp;quot;ウ&amp;quot;],[&amp;quot;ｴ&amp;quot;,&amp;quot;エ&amp;quot;],[&amp;quot;ｵ&amp;quot;,&amp;quot;オ&amp;quot;],[&amp;quot;ｶ&amp;quot;,&amp;quot;カ&amp;quot;],[&amp;quot;ｷ&amp;quot;,&amp;quot;キ&amp;quot;],[&amp;quot;ｸ&amp;quot;,&amp;quot;ク&amp;quot;],[&amp;quot;ｹ&amp;quot;,&amp;quot;ケ&amp;quot;],[&amp;quot;ｺ&amp;quot;,&amp;quot;コ&amp;quot;],[&amp;quot;ｻ&amp;quot;,&amp;quot;サ&amp;quot;],[&amp;quot;ｼ&amp;quot;,&amp;quot;シ&amp;quot;],[&amp;quot;ｽ&amp;quot;,&amp;quot;ス&amp;quot;],[&amp;quot;ｾ&amp;quot;,&amp;quot;セ&amp;quot;],[&amp;quot;ｿ&amp;quot;,&amp;quot;ソ&amp;quot;],[&amp;quot;ﾀ&amp;quot;,&amp;quot;タ&amp;quot;],[&amp;quot;ﾁ&amp;quot;,&amp;quot;チ&amp;quot;],[&amp;quot;ﾂ&amp;quot;,&amp;quot;ツ&amp;quot;],[&amp;quot;ﾃ&amp;quot;,&amp;quot;テ&amp;quot;],[&amp;quot;ﾄ&amp;quot;,&amp;quot;ト&amp;quot;],[&amp;quot;ﾅ&amp;quot;,&amp;quot;ナ&amp;quot;],[&amp;quot;ﾆ&amp;quot;,&amp;quot;ニ&amp;quot;],[&amp;quot;ﾇ&amp;quot;,&amp;quot;ヌ&amp;quot;],[&amp;quot;ﾈ&amp;quot;,&amp;quot;ネ&amp;quot;],[&amp;quot;ﾉ&amp;quot;,&amp;quot;ノ&amp;quot;],[&amp;quot;ﾊ&amp;quot;,&amp;quot;ハ&amp;quot;],[&amp;quot;ﾋ&amp;quot;,&amp;quot;ヒ&amp;quot;],[&amp;quot;ﾌ&amp;quot;,&amp;quot;フ&amp;quot;],[&amp;quot;ﾍ&amp;quot;,&amp;quot;ヘ&amp;quot;],[&amp;quot;ﾎ&amp;quot;,&amp;quot;ホ&amp;quot;],[&amp;quot;ﾏ&amp;quot;,&amp;quot;マ&amp;quot;],[&amp;quot;ﾐ&amp;quot;,&amp;quot;ミ&amp;quot;],[&amp;quot;ﾑ&amp;quot;,&amp;quot;ム&amp;quot;],[&amp;quot;ﾒ&amp;quot;,&amp;quot;メ&amp;quot;],[&amp;quot;ﾓ&amp;quot;,&amp;quot;モ&amp;quot;],[&amp;quot;ﾔ&amp;quot;,&amp;quot;ヤ&amp;quot;],[&amp;quot;ﾕ&amp;quot;,&amp;quot;ユ&amp;quot;],[&amp;quot;ﾖ&amp;quot;,&amp;quot;ヨ&amp;quot;],[&amp;quot;ﾗ&amp;quot;,&amp;quot;ラ&amp;quot;],[&amp;quot;ﾘ&amp;quot;,&amp;quot;リ&amp;quot;],[&amp;quot;ﾙ&amp;quot;,&amp;quot;ル&amp;quot;],[&amp;quot;ﾚ&amp;quot;,&amp;quot;レ&amp;quot;],[&amp;quot;ﾛ&amp;quot;,&amp;quot;ロ&amp;quot;],[&amp;quot;ﾜ&amp;quot;,&amp;quot;ワ&amp;quot;],[&amp;quot;ﾝ&amp;quot;,&amp;quot;ン&amp;quot;],[&amp;quot;ﾞ&amp;quot;,&amp;quot;゛&amp;quot;],[&amp;quot;ﾟ&amp;quot;,&amp;quot;゜&amp;quot;] ]) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;表外漢字→代替&lt;br /&gt;
:[https://ja.wiktionary.org/wiki/%E8%A1%A8%E5%A4%96%E6%BC%A2%E5%AD%97%E5%AD%97%E4%BD%93%E8%A1%A8%E3%81%AE%E6%BC%A2%E5%AD%97%E4%B8%80%E8%A6%A7 表外漢字字体表] 1022字のうち &amp;lt;span style=&amp;quot;background:#ffee62;&amp;quot;&amp;gt;Shift_JIS (CP932) では保存できない文字40字&amp;lt;/span&amp;gt;を、保存できる文字に置換します。&lt;br /&gt;
:{|class=&amp;quot;wikitable&amp;quot; style=&amp;quot;font:120% &#039;ヒラギノ角ゴ ProN W3&#039;,&#039;ヒラギノ角ゴ ProN&#039;,&#039;メイリオ&#039;,Meiryo,sans-serif;&amp;quot;&lt;br /&gt;
|-style=&amp;quot;background:#ffee62;&amp;quot;&lt;br /&gt;
|啞||焰||鷗||摑||麴||噓||俠||頰||軀||俱||繫||姸||鹼||嚙||攢||𠮟||繡||蔣||醬||蟬||搔||瘦||驒||簞||塡||顚||禱||瀆||吞||囊||剝||潑||醱||屛||幷||麵||萊||屢||沪||蠟&lt;br /&gt;
|-&lt;br /&gt;
|唖||焔||鴎||掴||麹||嘘||侠||頬||躯||倶||繋||妍||鹸||噛||攅||叱||繍||蒋||醤||蝉||掻||痩||騨||箪||填||顛||祷||涜||呑||嚢||剥||溌||醗||屏||并||麺||莱||屡||濾||蝋&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;pre style=&amp;quot;word-wrap:break-word;&amp;quot;&amp;gt;&lt;br /&gt;
f.push([&amp;quot;表外漢字→代替&amp;quot;,&amp;quot;R&amp;quot;,function(a){ //2017/06/25&lt;br /&gt;
  return a.replaceBatch([ [&amp;quot;\u555E&amp;quot;,&amp;quot;唖&amp;quot;],[&amp;quot;\u7130&amp;quot;,&amp;quot;焔&amp;quot;],[&amp;quot;\u9DD7&amp;quot;,&amp;quot;鴎&amp;quot;],[&amp;quot;\u6451&amp;quot;,&amp;quot;掴&amp;quot;],[&amp;quot;\u9EB4&amp;quot;,&amp;quot;麹&amp;quot;],[&amp;quot;\u5653&amp;quot;,&amp;quot;嘘&amp;quot;],[&amp;quot;\u4FE0&amp;quot;,&amp;quot;侠&amp;quot;],[&amp;quot;\u9830&amp;quot;,&amp;quot;頬&amp;quot;],[&amp;quot;\u8EC0&amp;quot;,&amp;quot;躯&amp;quot;],[&amp;quot;\u4FF1&amp;quot;,&amp;quot;倶&amp;quot;],[&amp;quot;\u7E6B&amp;quot;,&amp;quot;繋&amp;quot;],[&amp;quot;\u59F8&amp;quot;,&amp;quot;妍&amp;quot;],[&amp;quot;\u9E7C&amp;quot;,&amp;quot;鹸&amp;quot;],[&amp;quot;\u5699&amp;quot;,&amp;quot;噛&amp;quot;],[&amp;quot;\u6522&amp;quot;,&amp;quot;攅&amp;quot;],[&amp;quot;\uD842\uDF9F&amp;quot;,&amp;quot;叱&amp;quot;],[&amp;quot;\u7E61&amp;quot;,&amp;quot;繍&amp;quot;],[&amp;quot;\u8523&amp;quot;,&amp;quot;蒋&amp;quot;],[&amp;quot;\u91AC&amp;quot;,&amp;quot;醤&amp;quot;],[&amp;quot;\u87EC&amp;quot;,&amp;quot;蝉&amp;quot;],[&amp;quot;\u6414&amp;quot;,&amp;quot;掻&amp;quot;],[&amp;quot;\u7626&amp;quot;,&amp;quot;痩&amp;quot;],[&amp;quot;\u9A52&amp;quot;,&amp;quot;騨&amp;quot;],[&amp;quot;\u7C1E&amp;quot;,&amp;quot;箪&amp;quot;],[&amp;quot;\u5861&amp;quot;,&amp;quot;填&amp;quot;],[&amp;quot;\u985A&amp;quot;,&amp;quot;顛&amp;quot;],[&amp;quot;\u79B1&amp;quot;,&amp;quot;祷&amp;quot;],[&amp;quot;\u7006&amp;quot;,&amp;quot;涜&amp;quot;],[&amp;quot;\u541E&amp;quot;,&amp;quot;呑&amp;quot;],[&amp;quot;\u56CA&amp;quot;,&amp;quot;嚢&amp;quot;],[&amp;quot;\u525D&amp;quot;,&amp;quot;剥&amp;quot;],[&amp;quot;\u6F51&amp;quot;,&amp;quot;溌&amp;quot;],[&amp;quot;\u91B1&amp;quot;,&amp;quot;醗&amp;quot;],[&amp;quot;\u5C5B&amp;quot;,&amp;quot;屏&amp;quot;],[&amp;quot;\u5E77&amp;quot;,&amp;quot;并&amp;quot;],[&amp;quot;\u9EB5&amp;quot;,&amp;quot;麺&amp;quot;],[&amp;quot;\u840A&amp;quot;,&amp;quot;莱&amp;quot;],[&amp;quot;\u5C62&amp;quot;,&amp;quot;屡&amp;quot;],[&amp;quot;\u6CAA&amp;quot;,&amp;quot;濾&amp;quot;],[&amp;quot;\u881F&amp;quot;,&amp;quot;蝋&amp;quot;] ]) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;★10→16進数&lt;br /&gt;
:半角数字列を10進数値とみなし、16進数値に変換します。&lt;br /&gt;
:例＞ &amp;lt;span style=&amp;quot;background:#bfdfff;&amp;quot;&amp;gt;291／15／44015&amp;lt;/span&amp;gt; → 123／F／ABEF&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;10→16進数&amp;quot;,&amp;quot;R&amp;quot;,function(a){ //2014/05/31&lt;br /&gt;
  return a.replace(/[0-9]+/g,function(s){return Number(s).toString(16).toUpperCase()}) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
;★16→10進数&lt;br /&gt;
:半角英数字列を16進数値とみなし、10進数値に変換します。英字の大小、0x の有無は問いません。&lt;br /&gt;
:例＞ &amp;lt;span style=&amp;quot;background:#bfdfff;&amp;quot;&amp;gt;123／0x0F／abef&amp;lt;/span&amp;gt; → 291／15／44015&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;16→10進数&amp;quot;,&amp;quot;R&amp;quot;,function(a){ //2017/06/25&lt;br /&gt;
  return a.replace(/(?:0x)?([0-9a-f]+)/gi,function(s,x){return Number(&amp;quot;0x&amp;quot;+x)}) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;2進接頭辞換算&lt;br /&gt;
:半角数字列を 2&amp;lt;sup&amp;gt;10&amp;lt;/sup&amp;gt; = 1024 の倍量単位 (Ki,Mi,Gi...Yi) に変換します（小数点第3位を四捨五入）。&lt;br /&gt;
:例＞ &amp;lt;span style=&amp;quot;background:#bfdfff;&amp;quot;&amp;gt;1023／1024／54321／1,048,576／1,073,741,824&amp;lt;/span&amp;gt; → 1023／1.00Ki／53.05Ki／1.00Mi／1.00Gi&lt;br /&gt;
&amp;lt;pre style=&amp;quot;word-wrap:break-word;&amp;quot;&amp;gt;&lt;br /&gt;
f.push([&amp;quot;2進接頭辞換算&amp;quot;,&amp;quot;R&amp;quot;,function(a){ //2015/03/14&lt;br /&gt;
  var k=1024,p=&amp;quot;?KMGTPEZY&amp;quot;; return a.replace(/[0-9]+(,?[0-9]{3})+/g,function(s){var x=0,n=s.replace(/,/g,&amp;quot;&amp;quot;); if(n&amp;lt;k)return s; while(n&amp;gt;=k&amp;amp;&amp;amp;x&amp;lt;8){n/=k;x++} return n.toFixed(2)+p.charAt(x)+&amp;quot;i&amp;quot;}) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==符号化/復号化==&lt;br /&gt;
&lt;br /&gt;
;URL %エンコード／デコード(UTF-8)&lt;br /&gt;
:URL アドレスに使用される UTF-8 パーセントエンコーディングの符号化/復号化を行います。&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
f.push([&amp;quot;URL %エンコード(UTF-8)&amp;quot;,&amp;quot;R&amp;quot;,function(a){ //2014/02/01&lt;br /&gt;
  return encodeURI(a).replace(/%0D%0A|%0D|%0A/g,&amp;quot;\n&amp;quot;) }]);&lt;br /&gt;
f.push([&amp;quot;URL %デコード(UTF-8)&amp;quot;,&amp;quot;R&amp;quot;,function(a){ //2014/02/01&lt;br /&gt;
  return decodeURIComponent(a) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;Base64エンコード／デコード(UTF-8)&lt;br /&gt;
:[https://ja.wikipedia.org/wiki/Base64 Base64] 形式の符号化/復号化を行います。&lt;br /&gt;
:※バイナリデータ（画像や音声など）の復号化は、[編集]→[選択範囲の変換]→[Base64デコード] をご利用ください。&lt;br /&gt;
:&amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;エンコード時の注意点&amp;lt;/b&amp;gt;&lt;br /&gt;
:* 改行は LF (0x0A) とみなされます（Mery の内部改行文字が LF のため）。&lt;br /&gt;
:&amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;デコード時の注意点&amp;lt;/b&amp;gt;&lt;br /&gt;
:* デコード前に A～Z a～z 0～9 + / 以外の文字（改行含む）は削除されます。&lt;br /&gt;
&amp;lt;pre style=&amp;quot;word-wrap:break-word;&amp;quot;&amp;gt;&lt;br /&gt;
f.push([&amp;quot;Base64エンコード(UTF-8)&amp;quot;,&amp;quot;R&amp;quot;,function(txt){ //2018/01/15&lt;br /&gt;
  txt=unescape(encodeURIComponent(txt)); var len=txt.length, out=&amp;quot;&amp;quot;, b=&amp;quot;ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/&amp;quot;.split(&amp;quot;&amp;quot;); for(var i=0;i&amp;lt;len;){var x=(txt.charCodeAt(i++)&amp;lt;&amp;lt;16)|(txt.charCodeAt(i++)&amp;lt;&amp;lt;8)|(txt.charCodeAt(i++)); out+=b[x&amp;gt;&amp;gt;&amp;gt;18&amp;amp;0x3F]+b[x&amp;gt;&amp;gt;&amp;gt;12&amp;amp;0x3F]+b[x&amp;gt;&amp;gt;&amp;gt;6&amp;amp;0x3F]+b[x&amp;amp;0x3F]} if(len%3)out=out.slice(0,len%3-3)+&amp;quot;===&amp;quot;.slice(len%3); return out }]);&lt;br /&gt;
f.push([&amp;quot;Base64デコード(UTF-8)&amp;quot;,&amp;quot;R&amp;quot;,function(txt){ //2018/01/15&lt;br /&gt;
  txt=txt.replace(/[^A-Za-z0-9+/]/g,&amp;quot;&amp;quot;).split(&amp;quot;&amp;quot;); var len=txt.length, out=&amp;quot;&amp;quot;, a={}, b=&amp;quot;ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/&amp;quot;; for(var i=0;i&amp;lt;b.length;i++){a[b.charAt(i)]=i} for(var i=0;i&amp;lt;len;){var x=(a[txt[i++]]&amp;lt;&amp;lt;18)|(a[txt[i++]]&amp;lt;&amp;lt;12)|(a[txt[i++]]&amp;lt;&amp;lt;6)|(a[txt[i++]]); out+=String.fromCharCode(x&amp;gt;&amp;gt;&amp;gt;16&amp;amp;0xFF,x&amp;gt;&amp;gt;&amp;gt;8&amp;amp;0xFF,x&amp;amp;0xFF)} out=out.replace(/(?:[\x00-\x7F]|[\xC2-\xDF][\x80-\xBF]|[\xE0-\xEF][\x80-\xBF]{2}|[\xF0-\xF7][\x80-\xBF]{3}|.){1,50}/g,function(out){return decodeURIComponent(escape(out))}); if(len%4)out=out.slice(0,len%4-4); return out }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;\uHHHH エンコード／デコード&lt;br /&gt;
:JavaScript などで使用される \uHHHH 形式の変換を行います。※HHHH＝4桁の16進数・UTF-16BEバイナリ値&lt;br /&gt;
:例＞ &amp;lt;span style=&amp;quot;background:#bfdfff;&amp;quot;&amp;gt;Aわ𩸽&amp;lt;/span&amp;gt; ←→ &amp;lt;span style=&amp;quot;background:#bfdfff;&amp;quot;&amp;gt;\u0041\u308F\uD867\uDE3D&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;word-wrap:break-word;&amp;quot;&amp;gt;&lt;br /&gt;
f.push([&amp;quot;\\uHHHH エンコード&amp;quot;,&amp;quot;R&amp;quot;,function(a){ //2017/06/25&lt;br /&gt;
  return a.replace(/[^\n]/g,function(s){return &amp;quot;\\u&amp;quot;+(&amp;quot;000&amp;quot;+s.charCodeAt(0).toString(16).toUpperCase()).slice(-4)}) }]);&lt;br /&gt;
f.push([&amp;quot;\\uHHHH デコード&amp;quot;,&amp;quot;R&amp;quot;,function(a){ //2014/10/12&lt;br /&gt;
  return a.replace(/\\u([0-9A-Fa-f]{4})/g,function(s,n){return String.fromCharCode(Number(&amp;quot;0x&amp;quot;+n))}) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;\u4H \U8H エンコード／デコード&lt;br /&gt;
:Unicode で使用される \u4H および \U8H 形式の変換を行います。※4H, 8H＝4桁, 8桁の16進数・Unicodeスカラー値&lt;br /&gt;
:例＞ &amp;lt;span style=&amp;quot;background:#bfdfff;&amp;quot;&amp;gt;Aわ𩸽&amp;lt;/span&amp;gt; ←→ &amp;lt;span style=&amp;quot;background:#bfdfff;&amp;quot;&amp;gt;\u0041\u308F\U00029E3D&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;word-wrap:break-word;&amp;quot;&amp;gt;&lt;br /&gt;
f.push([&amp;quot;\\u4H \\U8H エンコード&amp;quot;,&amp;quot;R&amp;quot;,function(a){ //2017/06/25&lt;br /&gt;
  return a.replace(/[^\n]+/g,function(s){var r=&amp;quot;&amp;quot;,u,v; for(var i=0;i&amp;lt;s.length;i++){u=s.charCodeAt(i); if(0xD800&amp;lt;=u&amp;amp;&amp;amp;u&amp;lt;=0xDBFF){v=s.charCodeAt(i+1); if(0xDC00&amp;lt;=v&amp;amp;&amp;amp;v&amp;lt;=0xDFFF){i++;u=0x10000+(u-0xD800&amp;lt;&amp;lt;10)+(v-0xDC00);r+=&amp;quot;\\U&amp;quot;+toHex(u,8);continue}} r+=&amp;quot;\\u&amp;quot;+toHex(u,4)} return r}); function toHex(n,d){return (&amp;quot;000&amp;quot;+n.toString(16).toUpperCase()).slice(-d)} }]);&lt;br /&gt;
f.push([&amp;quot;\\u4H \\U8H デコード&amp;quot;,&amp;quot;R&amp;quot;,function(a){ //2015/09/30&lt;br /&gt;
  return a.replace(/\\u([0-9A-Fa-f]{4})|\\U([0-9A-Fa-f]{8})/g,function(s,u4,U8){var n=Number(&amp;quot;0x&amp;quot;+(u4||U8)); return (n&amp;lt;=0xFFFF)?String.fromCharCode(n): (n&amp;lt;=0x10FFFF)?String.fromCharCode(n-0x10000&amp;gt;&amp;gt;10|0xD800,n&amp;amp;0x3FF|0xDC00): s}) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;\x{hex} エンコード／デコード&lt;br /&gt;
:Mery の正規表現 (鬼車/鬼雲) などで使用される \x{hex} 形式の変換を行います。※hex＝1～6桁の16進数・Unicodeスカラー値&lt;br /&gt;
:例＞ &amp;lt;span style=&amp;quot;background:#bfdfff;&amp;quot;&amp;gt;Aわ𩸽&amp;lt;/span&amp;gt; ←→ &amp;lt;span style=&amp;quot;background:#bfdfff;&amp;quot;&amp;gt;\x{41}\x{308f}\x{29e3d}&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;word-wrap:break-word;&amp;quot;&amp;gt;&lt;br /&gt;
f.push([&amp;quot;\\x{hex} エンコード&amp;quot;,&amp;quot;R&amp;quot;,function(a){ //2017/06/25&lt;br /&gt;
  return a.replace(/[^\n]+/g,function(s){var r=&amp;quot;&amp;quot;,u,v; for(var i=0;i&amp;lt;s.length;i++){u=s.charCodeAt(i); if(0xD800&amp;lt;=u&amp;amp;&amp;amp;u&amp;lt;=0xDBFF){v=s.charCodeAt(i+1); if(0xDC00&amp;lt;=v&amp;amp;&amp;amp;v&amp;lt;=0xDFFF){i++;u=0x10000+(u-0xD800&amp;lt;&amp;lt;10)+(v-0xDC00)}} r+=(&amp;quot;\\x{&amp;quot;+u.toString(16)+&amp;quot;}&amp;quot;)} return r}) }]);&lt;br /&gt;
f.push([&amp;quot;\\x{hex} デコード&amp;quot;,&amp;quot;R&amp;quot;,function(a){ //2015/03/14&lt;br /&gt;
  return a.replace(/\\x\{([0-9A-Fa-f]{1,6})\}/g,function(s,n){n=Number(&amp;quot;0x&amp;quot;+n); return (n&amp;lt;=0xFFFF)?String.fromCharCode(n): (n&amp;lt;=0x10FFFF)?String.fromCharCode(n-0x10000&amp;gt;&amp;gt;10|0xD800,n&amp;amp;0x3FF|0xDC00): s}) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;&amp;amp;#dec; エンコード／デコード&lt;br /&gt;
:HTML などで使用される &amp;amp;#dec; 形式の変換を行います。※dec＝1～7桁の10進数・Unicodeスカラー値&lt;br /&gt;
:例＞ &amp;lt;span style=&amp;quot;background:#bfdfff;&amp;quot;&amp;gt;Aわ𩸽&amp;lt;/span&amp;gt; ←→ &amp;lt;span style=&amp;quot;background:#bfdfff;&amp;quot;&amp;gt;&amp;amp;amp;#65;&amp;amp;amp;#12431;&amp;amp;amp;#171581;&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;word-wrap:break-word;&amp;quot;&amp;gt;&lt;br /&gt;
f.push([&amp;quot;&amp;amp;&amp;amp;#dec; エンコード&amp;quot;,&amp;quot;R&amp;quot;,function(a){ //2017/06/25&lt;br /&gt;
  return a.replace(/[^\n]+/g,function(s){var r=&amp;quot;&amp;quot;,u,v; for(var i=0;i&amp;lt;s.length;i++){u=s.charCodeAt(i); if(0xD800&amp;lt;=u&amp;amp;&amp;amp;u&amp;lt;=0xDBFF){v=s.charCodeAt(i+1); if(0xDC00&amp;lt;=v&amp;amp;&amp;amp;v&amp;lt;=0xDFFF){i++;u=0x10000+(u-0xD800&amp;lt;&amp;lt;10)+(v-0xDC00)}} r+=(&amp;quot;&amp;amp;#&amp;quot;+u+&amp;quot;;&amp;quot;)} return r}) }]);&lt;br /&gt;
f.push([&amp;quot;&amp;amp;&amp;amp;#dec; デコード&amp;quot;,&amp;quot;R&amp;quot;,function(a){ //2015/03/14&lt;br /&gt;
  return a.replace(/&amp;amp;#([0-9]{1,7});/g,function(s,n){n=Number(n); return (n&amp;lt;=0xFFFF)?String.fromCharCode(n): (n&amp;lt;=0x10FFFF)?String.fromCharCode(n-0x10000&amp;gt;&amp;gt;10|0xD800,n&amp;amp;0x3FF|0xDC00): s}) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;&amp;amp;#xHEX; エンコード／デコード&lt;br /&gt;
:HTML などで使用される &amp;amp;#xHEX; 形式の変換を行います。※HEX＝1～6桁の16進数・Unicodeスカラー値&lt;br /&gt;
:例＞ &amp;lt;span style=&amp;quot;background:#bfdfff;&amp;quot;&amp;gt;Aわ𩸽&amp;lt;/span&amp;gt; ←→ &amp;lt;span style=&amp;quot;background:#bfdfff;&amp;quot;&amp;gt;&amp;amp;amp;#x41;&amp;amp;amp;#x308F;&amp;amp;amp;#x29E3D;&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;word-wrap:break-word;&amp;quot;&amp;gt;&lt;br /&gt;
f.push([&amp;quot;&amp;amp;&amp;amp;#xHEX; エンコード&amp;quot;,&amp;quot;R&amp;quot;,function(a){ //2017/06/25&lt;br /&gt;
  return a.replace(/[^\n]+/g,function(s){var r=&amp;quot;&amp;quot;,u,v; for(var i=0;i&amp;lt;s.length;i++){u=s.charCodeAt(i); if(0xD800&amp;lt;=u&amp;amp;&amp;amp;u&amp;lt;=0xDBFF){v=s.charCodeAt(i+1); if(0xDC00&amp;lt;=v&amp;amp;&amp;amp;v&amp;lt;=0xDFFF){i++;u=0x10000+(u-0xD800&amp;lt;&amp;lt;10)+(v-0xDC00)}} r+=(&amp;quot;&amp;amp;#x&amp;quot;+u.toString(16).toUpperCase()+&amp;quot;;&amp;quot;)} return r}) }]);&lt;br /&gt;
f.push([&amp;quot;&amp;amp;&amp;amp;#xHEX; デコード&amp;quot;,&amp;quot;R&amp;quot;,function(a){ //2017/06/25&lt;br /&gt;
  return a.replace(/&amp;amp;#[Xx]([0-9A-Fa-f]{1,6});/g,function(s,n){n=Number(&amp;quot;0x&amp;quot;+n); return (n&amp;lt;=0xFFFF)?String.fromCharCode(n): (n&amp;lt;=0x10FFFF)?String.fromCharCode(n-0x10000&amp;gt;&amp;gt;10|0xD800,n&amp;amp;0x3FF|0xDC00): s}) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==拡張コード用==&lt;br /&gt;
&lt;br /&gt;
;拡張コード テンプレート&lt;br /&gt;
:拡張コードの雛形を挿入します。コマンドを自作したい場合にご利用ください。&lt;br /&gt;
&amp;lt;pre style=&amp;quot;word-wrap:break-word;&amp;quot;&amp;gt;&lt;br /&gt;
f.push([&amp;quot;拡張コード テンプレート&amp;quot;,function(f){ //2015/03/14&lt;br /&gt;
f.push([&amp;quot;コマンド F (Function)&amp;quot;,&amp;quot;F&amp;quot;,function(a){&lt;br /&gt;
  var p=&#039;f.push([&amp;quot;&amp;quot;,&amp;quot;F&amp;quot;,function(a){\n  &#039;,s=&#039; }]);\n&#039;; a.StartOfLine(); Document.Write(p+s); a.CharLeft(false,s.length) }]);&lt;br /&gt;
f.push([&amp;quot;コマンド R (Replace)&amp;quot;,&amp;quot;F&amp;quot;,function(a){&lt;br /&gt;
  var p=&#039;f.push([&amp;quot;&amp;quot;,&amp;quot;R&amp;quot;,function(a){\n  return &#039;,s=&#039; }]);\n&#039;; a.StartOfLine(); Document.Write(p+s); a.CharLeft(false,s.length) }]);&lt;br /&gt;
f.push([&amp;quot;コマンド RS (Select-line)&amp;quot;,&amp;quot;F&amp;quot;,function(a){&lt;br /&gt;
  var p=&#039;f.push([&amp;quot;&amp;quot;,&amp;quot;RS&amp;quot;,function(a){\n  return &#039;,s=&#039; }]);\n&#039;; a.StartOfLine(); Document.Write(p+s); a.CharLeft(false,s.length) }]);&lt;br /&gt;
f.push([&amp;quot;サブメニュー&amp;quot;,&amp;quot;F&amp;quot;,function(a){&lt;br /&gt;
  var p=&#039;f.push([&amp;quot;&amp;quot;,function(f){\n&#039;,s=&#039;}]);\n&#039;; Document.Write(p+a.Text+s) }]);&lt;br /&gt;
f.push([&amp;quot;セパレータ&amp;quot;,&amp;quot;F&amp;quot;,function(a){&lt;br /&gt;
  a.StartOfLine(); Document.Write(&#039;f.push([&amp;quot;----&amp;quot;]);\n&#039;) }]);&lt;br /&gt;
}]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;連続置換・配列作成補助&lt;br /&gt;
:&amp;lt;code&amp;gt;replaceBatch&amp;lt;/code&amp;gt; (連続置換メソッド) の配列作成を補助するコマンド群です。&lt;br /&gt;
:&amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;※書式の解析精度は不完全です。&amp;lt;/b&amp;gt;検索/置換文字に &amp;lt;code&amp;gt;&amp;quot; &#039; , / \ ]&amp;lt;/code&amp;gt; を含む配列は誤変換する恐れがあります。&lt;br /&gt;
:&amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;※書式ミスがある場合については考慮していません。&amp;lt;/b&amp;gt;誤変換した場合は書式ミスの可能性も疑ってみてください。&lt;br /&gt;
&lt;br /&gt;
;交換 [&amp;quot;a&amp;quot;,&amp;quot;b&amp;quot;] → [&amp;quot;b&amp;quot;,&amp;quot;a&amp;quot;]&lt;br /&gt;
:配列の検索文字列と置換文字列を入れ替えます。※正規表現は検索/置換の役割を交換できないため何もしません（例では &amp;lt;code&amp;gt;■,□&amp;lt;/code&amp;gt; のペアが該当）。&lt;br /&gt;
:例＞ &amp;lt;code style=&amp;quot;background:#bfdfff;&amp;quot;&amp;gt;[&amp;quot;●&amp;quot;,&amp;quot;○&amp;quot;],[&#039;▲&#039;,&#039;△&#039;],[/■/g,&amp;quot;□&amp;quot;],[&amp;quot;◆&amp;quot;,&#039;◇&#039;]&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;[&amp;quot;○&amp;quot;,&amp;quot;●&amp;quot;],[&#039;△&#039;,&#039;▲&#039;],[/■/g,&amp;quot;□&amp;quot;],[&#039;◇&#039;,&amp;quot;◆&amp;quot;]&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;pre style=&amp;quot;word-wrap:break-word;&amp;quot;&amp;gt;&lt;br /&gt;
f.push([&#039;交換 [&amp;quot;a&amp;quot;,&amp;quot;b&amp;quot;] → [&amp;quot;b&amp;quot;,&amp;quot;a&amp;quot;]&#039;,&amp;quot;R&amp;quot;,function(a){ //2014/05/31&lt;br /&gt;
  return a.replace(/\[(&amp;quot;[^\\&amp;quot;]*(?:\\.[^\\&amp;quot;]*)*&amp;quot;|&#039;[^\\&#039;]*(?:\\.[^\\&#039;]*)*&#039;),(&amp;quot;[^\\&amp;quot;]*(?:\\.[^\\&amp;quot;]*)*&amp;quot;|&#039;[^\\&#039;]*(?:\\.[^\\&#039;]*)*&#039;)\]/g,&amp;quot;[$2,$1]&amp;quot;) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;分割 [&amp;quot;a&amp;quot;,&amp;quot;b&amp;quot;] → &amp;quot;a&amp;quot; › &amp;quot;b&amp;quot;↵&lt;br /&gt;
;結合 &amp;quot;a&amp;quot; › &amp;quot;b&amp;quot;↵ → [&amp;quot;a&amp;quot;,&amp;quot;b&amp;quot;]&lt;br /&gt;
:配列と TSV 形式を変換します。&lt;br /&gt;
&amp;lt;pre style=&amp;quot;word-wrap:break-word;&amp;quot;&amp;gt;&lt;br /&gt;
f.push([&#039;分割 [&amp;quot;a&amp;quot;,&amp;quot;b&amp;quot;] → &amp;quot;a&amp;quot; \u203A &amp;quot;b&amp;quot;\u21B5&#039;,&amp;quot;R&amp;quot;,function(a){ //2017/06/25&lt;br /&gt;
  return a.replace(/,?\[(&amp;quot;[^\\&amp;quot;]*(?:\\.[^\\&amp;quot;]*)*&amp;quot;|&#039;[^\\&#039;]*(?:\\.[^\\&#039;]*)*&#039;|\/.*?\/[gim]*),(&amp;quot;[^\\&amp;quot;]*(?:\\.[^\\&amp;quot;]*)*&amp;quot;|&#039;[^\\&#039;]*(?:\\.[^\\&#039;]*)*&#039;)\],?/g,&amp;quot;\n$1\t$2\n&amp;quot;).replace(/\n\n/g,&amp;quot;\n&amp;quot;) }]);&lt;br /&gt;
f.push([&#039;結合 &amp;quot;a&amp;quot; \u203A &amp;quot;b&amp;quot;\u21B5 → [&amp;quot;a&amp;quot;,&amp;quot;b&amp;quot;]&#039;,&amp;quot;R&amp;quot;,function(a){ //2015/03/14&lt;br /&gt;
  return a.replace(/\n?(((&amp;quot;.*&amp;quot;|&#039;.*&#039;|\/.*\/[gim]*)\t(&amp;quot;.*&amp;quot;|&#039;.*&#039;)\n*)+)/g,function(s,r){return r.replace(/(&amp;quot;.*&amp;quot;|&#039;.*&#039;|\/.*\/[gim]*)\t(&amp;quot;.*&amp;quot;|&#039;.*&#039;)\n*/g,&amp;quot;[$1,$2],&amp;quot;).replace(/,$/,&amp;quot;&amp;quot;)}) }]);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=拡張コード：書式=&lt;br /&gt;
&lt;br /&gt;
==コマンド==&lt;br /&gt;
&lt;br /&gt;
;モード F (Function)&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
f.push([&amp;quot;コマンド名&amp;quot;,&amp;quot;F&amp;quot;,function( 引数 ){ マクロ }]);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
:【マクロ】の記述をそのまま実行します。&lt;br /&gt;
:コマンド実行時、以下の処理が行われます。&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
(function( 引数 ){ マクロ })( Document.Selection );&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
;モード R (Replace)&lt;br /&gt;
;モード RS (Select-line)&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
f.push([&amp;quot;コマンド名&amp;quot;,&amp;quot;R&amp;quot;,function( 引数 ){ マクロ }]);&lt;br /&gt;
f.push([&amp;quot;コマンド名&amp;quot;,&amp;quot;RS&amp;quot;,function( 引数 ){ マクロ }]);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
:モード R は、選択範囲を【マクロ】の処理結果で置換します。&lt;br /&gt;
:モード RS は、選択範囲を行頭行末まで拡張してから置換します。&lt;br /&gt;
:コマンド実行時、以下の処理が行われます。&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
Document.Selection.Text = (function( 引数 ){ マクロ })( Document.Selection.Text );&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
:また、コマンド実行前に選択範囲を記憶し、実行後に処理結果を加味しつつ復元します。&lt;br /&gt;
&lt;br /&gt;
==サブメニュー==&lt;br /&gt;
サブメニューを設けます。&amp;lt;br&amp;gt;&lt;br /&gt;
サブメニュー内にサブメニューを作ること(階層化)も可能です。&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
f.push([&amp;quot;メニュー名&amp;quot;,function(f){&lt;br /&gt;
【コマンド or サブメニュー or セパレータ】&lt;br /&gt;
}]);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==セパレータ==&lt;br /&gt;
セパレータ(区切り)を設けます。&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
f.push([&amp;quot;----&amp;quot;]);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
半角ハイフン &amp;lt;code&amp;gt;-&amp;lt;/code&amp;gt; の数は何個でもかまいません。&amp;lt;br&amp;gt;&lt;br /&gt;
ただし、半角ハイフン以外の文字を含めることはできません。&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
f.push([&amp;quot;-&amp;quot;]);         	//← OK (1個)&lt;br /&gt;
f.push([&amp;quot;----------&amp;quot;]);	//← OK (10個)&lt;br /&gt;
f.push([&amp;quot;--区切り--&amp;quot;]);	//← NG&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==メソッド==&lt;br /&gt;
;&amp;lt;code&amp;gt;&amp;lt;i&amp;gt;string&amp;lt;/i&amp;gt;.replaceBatch(&amp;lt;i&amp;gt;array&amp;lt;/i&amp;gt;)&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;&amp;lt;i&amp;gt;string&amp;lt;/i&amp;gt;&amp;lt;/code&amp;gt; を &amp;lt;code&amp;gt;&amp;lt;i&amp;gt;array&amp;lt;/i&amp;gt;&amp;lt;/code&amp;gt; (配列) の内容に従い連続置換した結果(文字列)を返します。&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
f.push([&amp;quot;replaceBatch&amp;quot;,&amp;quot;R&amp;quot;,function(a){&lt;br /&gt;
  return a.replaceBatch([ [&amp;quot;ABC&amp;quot;,&amp;quot;DEF&amp;quot;],[&amp;quot;(1)&amp;quot;,&amp;quot;①&amp;quot;],[/GHI/gi,&amp;quot;JKL&amp;quot;] ]) }]);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;replaceBatch&amp;lt;/code&amp;gt; は、&amp;lt;code&amp;gt;replace&amp;lt;/code&amp;gt; を連鎖させる記法（メソッドチェーン）をより簡素に記述するためのメソッドです。&amp;lt;br&amp;gt;上記のコマンドは、下記のコマンドと同一の処理になります。&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
f.push([&amp;quot;replace&amp;quot;,&amp;quot;R&amp;quot;,function(a){&lt;br /&gt;
  return a.replace(/ABC/g,&amp;quot;DEF&amp;quot;).replace(/\(1\)/g,&amp;quot;①&amp;quot;).replace(/GHI/gi,&amp;quot;JKL&amp;quot;) }]);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;replaceBatch&amp;lt;/code&amp;gt; は、String のメソッドであるため、どのモードでも利用できます。&amp;lt;br&amp;gt;また、戻値も String であるため、&amp;lt;code&amp;gt;replace&amp;lt;/code&amp;gt; のようにメソッドチェーンが行えます。&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
//※モード R で利用する&lt;br /&gt;
f.push([&amp;quot;コマンド名&amp;quot;,&amp;quot;R&amp;quot;,function(a){&lt;br /&gt;
  return a.replaceBatch([ 省略 ]) }]);&lt;br /&gt;
//※モード RS で利用する&lt;br /&gt;
f.push([&amp;quot;コマンド名&amp;quot;,&amp;quot;RS&amp;quot;,function(a){&lt;br /&gt;
  return a.replaceBatch([ 省略 ]) }]);&lt;br /&gt;
//※モード F で利用する&lt;br /&gt;
f.push([&amp;quot;コマンド名&amp;quot;,&amp;quot;F&amp;quot;,function(a){&lt;br /&gt;
  a.Text = a.Text.replaceBatch([ 省略 ]) }]);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
//※replace のようにメソッドチェーンが可能&lt;br /&gt;
f.push([&amp;quot;コマンド名&amp;quot;,&amp;quot;R&amp;quot;,function(a){&lt;br /&gt;
  return a.replace(省略).replaceBatch([ 省略 ]).replace(省略) }]);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Masme</name></author>
	</entry>
</feed>