<?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=Sukemaru</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=Sukemaru"/>
	<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/Sukemaru"/>
	<updated>2026-10-08T18:48:07Z</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%E8%A6%9A%E3%81%88%E6%9B%B8%E3%81%8D%EF%BC%88%E9%96%8B%E7%99%BA%E8%80%85%E5%90%91%E3%81%91%EF%BC%89&amp;diff=5530</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%E8%A6%9A%E3%81%88%E6%9B%B8%E3%81%8D%EF%BC%88%E9%96%8B%E7%99%BA%E8%80%85%E5%90%91%E3%81%91%EF%BC%89&amp;diff=5530"/>
		<updated>2021-02-05T15:15:05Z</updated>

		<summary type="html">&lt;p&gt;Sukemaru: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= 概要 =&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;
WSH（Windows Script Host) が対応している言語であれば利用が可能です．&amp;lt;br&amp;gt;&lt;br /&gt;
標準では JScript（≒javascript）と VBScript が入っています．&amp;lt;br&amp;gt;&lt;br /&gt;
他の言語（Perl や Python）もインストールすれば使えますが，一般配布する場合利用者もインストールが必要になります．&amp;lt;br&amp;gt;&lt;br /&gt;
どの言語でも良いですが，JScript での開発者が多いため，JScript の方が情報が集まりやすくお勧めです．&lt;br /&gt;
&lt;br /&gt;
== マクロを保存する際の文字コード ==&lt;br /&gt;
基本的に単体で利用する場合はどの文字コードでも構いません．&amp;lt;br&amp;gt;&lt;br /&gt;
ただし「他のマクロから読まれる」場合は文字コードの選択が重要になります．&amp;lt;br&amp;gt;&lt;br /&gt;
今のマクロでは #title のようなプリプロセス処理が必要で，それに対応したロードができる include ライブラリの IO.Include はデフォルトで UTF-8 対応なので，UTF-8 をお勧めします（個別の指定は可能）．&amp;lt;br&amp;gt;&lt;br /&gt;
ただし読み込む側が FileSystemObject を利用している場合，SJIS/Unicode しか対応できないのでその場合は SJIS をお勧めします（Mery 1 時代のマクロなどはコレです）．&lt;br /&gt;
&lt;br /&gt;
== window.Document と Editor.ActiveDocument の違い ==&lt;br /&gt;
window.Document は，マクロ開始時にアクティブなドキュメントを指し続けます．マクロで別のドキュメントを Activate しても変わりません．&amp;lt;br&amp;gt;&lt;br /&gt;
Editor.ActiveDocument は，その時点でアクティブなドキュメントを指します．マクロで別のドキュメントを Activate すると当然変わります．&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
Editor.Documents.Item(0).Activate();&lt;br /&gt;
Alert(Document.Name);&lt;br /&gt;
Alert(Editor.ActiveDocument.Name);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
また，window.Document は Documents.Item() と一致しませんが，Editor.ActiveDocument は一致します．&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
for (var i=0; i&amp;lt;Editor.Documents.Count; i++) {&lt;br /&gt;
  if (Editor.ActiveDocument == Editor.Documents.Item(i)) {&lt;br /&gt;
    Alert(&amp;quot;Editor.ActiveDocument が一致&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
  if (Document == Editor.Documents.Item(i)) {&lt;br /&gt;
    Alert(&amp;quot;window.Document が一致&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== window.Redraw = true は必要か ==&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;
&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;
Redraw = true;&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;
var s = Document.Selection;&lt;br /&gt;
var isBoxed = (s.GetBottomPointY(mePosView) - s.GetTopPointY(mePosView)) != (s.Text.match(/\n/g) || []).length;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
2019/06/11追記（有志）：使い道は限られますが、Alt + Shit + カーソル移動のキーコードを送ることで、矩形範囲指定の開始と範囲変更は可能です。&lt;br /&gt;
  new ActiveXObject(&amp;quot;WScript.Shell&amp;quot;).SendKeys(&amp;quot;+%{left}&amp;quot;);//{right},{up},{down}&lt;br /&gt;
&lt;br /&gt;
== Document.GetLines の引数 ==&lt;br /&gt;
リファレンスには &#039;&#039;&#039;meGetLineView&#039;&#039;&#039; しか書かれていませんが，論理行単位での行数取得には引数に 0 を渡します．&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;meGetLineLogical&#039;&#039;&#039; という定数はありません．&lt;br /&gt;
&lt;br /&gt;
== プリプロセス（#title など） ==&lt;br /&gt;
対応しているプリプロセスコードは以下の通りです．&lt;br /&gt;
* &amp;lt;code&amp;gt;#icon = &amp;quot;****&amp;quot; [, アイコン番号]&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;#title = &amp;quot;****&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;#tooltip = &amp;quot;****&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;#include &amp;quot;****.js&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;#language = &amp;quot;****&amp;quot;&amp;lt;/code&amp;gt;[https://www.haijin-boys.com/software/mery/mery-2-6-6#5]　（スクリプトの言語を指定． ※[https://www.haijin-boys.com/software/mery/mery-2-6-7#9 省略時は &amp;quot;JScript(Chakra)&amp;quot;]）&lt;br /&gt;
* &amp;lt;code&amp;gt;#begingroup = true&amp;lt;/code&amp;gt;[https://www.haijin-boys.com/software/mery/mery-2-8-0#4]　（または 1 - 3 の数値． ※Mery 2.8.0 以降のみ）&lt;br /&gt;
&lt;br /&gt;
これらは必ず &#039;&#039;&#039;ファイル先頭&#039;&#039;&#039; に書かなければなりません（コメントや VBS の Option Explicit などよりも先）．&amp;lt;br&amp;gt;&lt;br /&gt;
:・ &amp;lt;code&amp;gt;#title&amp;lt;/code&amp;gt;は、マクロメニューやマクロバー、「ツールバーのカスタマイズ」に表示される &#039;&#039;&#039;マクロ名&#039;&#039;&#039; です（未指定の場合はファイル名の ****.js で表示されます）．&lt;br /&gt;
:・ &amp;lt;code&amp;gt;#tooltip&amp;lt;/code&amp;gt;は、マクロバーにマウスカーソルをあてたときにポップアップ表示される黄色い小窓（ヒント／ツールチップ／トースト）内の &#039;&#039;&#039;説明文&#039;&#039;&#039; の文字列に使用されます．&lt;br /&gt;
:・ &amp;lt;code&amp;gt;#language&amp;lt;/code&amp;gt;の詳細は、Mery.txt 内の更新履歴 『▼ 2018/03/22 (2.6.6)』 に記載されています．&lt;br /&gt;
&lt;br /&gt;
== 他のファイルのロード方法 ==&lt;br /&gt;
マクロから他のファイルを直接ロードするには以下の方法があります．&lt;br /&gt;
* FileSystemObject を利用する&lt;br /&gt;
* ADODB.Stream を利用する&lt;br /&gt;
* include ライブラリの IO クラスを利用する&lt;br /&gt;
&lt;br /&gt;
=== FileSystemObject を利用する ===&lt;br /&gt;
コードが短く簡単に扱えます．&amp;lt;br&amp;gt;&lt;br /&gt;
また FileSystemObject 自体に，ファイルの有無やフォルダ作成の機能があります．&amp;lt;br&amp;gt;&lt;br /&gt;
ただし扱える文字コードは SJIS または Unicode 限定．&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
// Scripting.FileSystemObject の定数&lt;br /&gt;
var ForReading = 1;           // ファイルを読み取り専用として開きます。このファイルには書き込むことができません。&lt;br /&gt;
var ForWriting = 2;           // ファイルを書き込み専用として開きます。&lt;br /&gt;
var ForAppending = 8;         // ファイルを開き、ファイルの最後に追加して書き込みます。&lt;br /&gt;
var TristateUseDefault = -2;  // システム デフォルトを使ってファイルを開きます。&lt;br /&gt;
var TriStateTrue = -1;        // ファイルを Unicode ファイルとして開きます。&lt;br /&gt;
var TristateFalse = 0;        // ファイルを ASCII ファイルとして開きます。&lt;br /&gt;
&lt;br /&gt;
var fso = new ActiveXObject(&amp;quot;Scripting.FileSystemObject&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
// ファイルの読み込み&lt;br /&gt;
var fsIn = fso.OpenTextFile(Document.FullName, ForReading, false, TristateUseDefault);&lt;br /&gt;
var text = fsIn.ReadAll();&lt;br /&gt;
fsIn.Close();&lt;br /&gt;
Alert(text);&lt;br /&gt;
&lt;br /&gt;
// ファイルの書き込み&lt;br /&gt;
var fsOut = fso.OpenTextFile(&amp;quot;hoge.txt&amp;quot;, ForWriting, true, TristateUseDefault);&lt;br /&gt;
fsOut.Write(text);&lt;br /&gt;
fsOut.Close();&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== ADODB.Stream を利用する ===&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 adTypeBinary = 1;           // バイナリ データを表します。&lt;br /&gt;
var adTypeText = 2;             // 既定値です。Charset で指定された文字セットにあるテキスト データを表します。&lt;br /&gt;
var adReadAll = -1;             // 既定値です。現在の位置から EOS マーカー方向に、すべてのバイトをストリームから読み取ります。これは、バイナリ ストリームに唯一有効な StreamReadEnum 値です。&lt;br /&gt;
var adReadLine = -2;            // ストリームから次の行を読み取ります (LineSeparator プロパティで指定)。&lt;br /&gt;
var adSaveCreateNotExist = 1;   // 既定値です。FileName パラメータで指定したファイルがない場合は新しいファイルが作成されます。&lt;br /&gt;
var adSaveCreateOverWrite = 2;  // FileName パラメータで指定したファイルがある場合は、現在開かれている Stream オブジェクトのデータでファイルが上書きされます。&lt;br /&gt;
&lt;br /&gt;
// ファイルの読み込み&lt;br /&gt;
var adodb = new ActiveXObject(&#039;ADODB.Stream&#039;);&lt;br /&gt;
adodb.Type = adTypeText;&lt;br /&gt;
adodb.Charset = &#039;utf-8&#039;;&lt;br /&gt;
adodb.Open();&lt;br /&gt;
adodb.LoadFromFile(Document.FullName);&lt;br /&gt;
var text = adodb.ReadText(adReadAll);&lt;br /&gt;
adodb.Close();&lt;br /&gt;
Alert(text);&lt;br /&gt;
&lt;br /&gt;
// ファイルの書き込み&lt;br /&gt;
var adodb = new ActiveXObject(&#039;ADODB.Stream&#039;);&lt;br /&gt;
adodb.Type = adTypeText;&lt;br /&gt;
adodb.Charset = &#039;utf-8&#039;;&lt;br /&gt;
adodb.Open();&lt;br /&gt;
adodb.WriteText(text);&lt;br /&gt;
adodb.SaveToFile(&amp;quot;hoge.txt&amp;quot;, adSaveCreateOverWrite);&lt;br /&gt;
adodb.Close();&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== include ライブラリの IO クラスを利用する ===&lt;br /&gt;
ファイルの読み書きを簡単にするクラスです．&amp;lt;br&amp;gt;&lt;br /&gt;
簡単に扱えることと，BOM なしの UTF-8 を書き込めることがメリットです．&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;
#include &amp;quot;include/IO.js&amp;quot;&lt;br /&gt;
&lt;br /&gt;
// ファイルの読み込み&lt;br /&gt;
var text = IO.LoadFromFile(Document.FullName, &amp;quot;utf-8&amp;quot;);&lt;br /&gt;
Alert(text);&lt;br /&gt;
&lt;br /&gt;
// ファイルの書き込み&lt;br /&gt;
IO.SaveToFile(&amp;quot;hoge.txt&amp;quot;, text, &amp;quot;utf-8&amp;quot;);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 他のマクロの実行方法 ==&lt;br /&gt;
他のマクロを実行するには，以下の方法があります．&lt;br /&gt;
* #include で取り込む&lt;br /&gt;
* ファイルをロードして eval する&lt;br /&gt;
前者は先頭でしかかけない上，動的にロードの切り替えができません．&amp;lt;br&amp;gt;&lt;br /&gt;
後者は文字コードの問題とプリプロセス処理に関する問題があります．&amp;lt;br&amp;gt;&lt;br /&gt;
include ライブラリの IO.Include を使うことで，プリプロセス処理に関しては解決できます．&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;quot;include/IO.js&amp;quot;&lt;br /&gt;
&lt;br /&gt;
eval(IO.Include(&amp;quot;test.js&amp;quot;, &amp;quot;utf-8&amp;quot;)); // #include なども処理される&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;
2019/06/11追記 (有志)： 以下の関数で可能です。&lt;br /&gt;
  function OpenFileDlg(){&lt;br /&gt;
    var HTASource = &#039;&amp;lt;object id=HtmlDlgHelper classid=CLSID:3050f4e1-98b5-11cf-bb82-00aa00bdce0b&amp;gt;&amp;lt;/object&amp;gt;\n&#039;&lt;br /&gt;
    +&#039;&amp;lt;script language=vbscript&amp;gt;\n&#039;&lt;br /&gt;
    +&#039;resizeTo 0,0\n&#039;&lt;br /&gt;
    +&#039;Sub window_onload()\n&#039;&lt;br /&gt;
    +&#039;CreateObject(&amp;quot;Scripting.FileSystemObject&amp;quot;).GetStandardStream(1).Write HtmlDlgHelper.object.openfiledlg(,,&amp;quot;All Files(*.*)|*.*|&amp;quot;,&amp;quot;ファイル選択&amp;quot;)\n&#039;&lt;br /&gt;
    +&#039;close\n&#039;&lt;br /&gt;
    +&#039;End Sub\n&#039;&lt;br /&gt;
    +&#039;&amp;lt;/script&amp;gt;\n&#039;&lt;br /&gt;
    +&#039;&amp;lt;hta:application caption=no showintaskbar=no /&amp;gt;\n&#039;;&lt;br /&gt;
    &lt;br /&gt;
    var oExec = new ActiveXObject(&#039;WScript.Shell&#039;).Exec(&lt;br /&gt;
      &#039;MSHTA.EXE &amp;quot;javascript:new ActiveXObject(\&#039;Scripting.FileSystemObject\&#039;).GetStandardStream(0).ReadAll()&amp;quot;&#039;&lt;br /&gt;
    );&lt;br /&gt;
    oExec.StdIn.Write(HTASource);&lt;br /&gt;
    oExec.StdIn.Close();&lt;br /&gt;
    &lt;br /&gt;
    var filename = oExec.StdOut.ReadAll();&lt;br /&gt;
    var nullcharAt = filename.indexOf(String.fromCharCode(0x0));&lt;br /&gt;
    if (nullcharAt &amp;gt; 0) filename = filename.substring(0, nullcharAt);&lt;br /&gt;
    return filename;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
使用例&lt;br /&gt;
  var filename = OpenFileDlg();&lt;br /&gt;
  window.alert((filename)?filename:&#039;Canceled&#039;);&lt;br /&gt;
&lt;br /&gt;
2019/06/17追記 (有志)： PoserShell 版追加,, 2019/06/19 修正： Exec と標準出力の組み合わせを、Runとクリップボードに変更&amp;lt;br&amp;gt;&lt;br /&gt;
HtmlDlgHelper.object.openfiledlg の第1引数はダイアログに初期表示する InitFile。疑似的に初期フォルダを指定することが可能だが、パス区切り文字 &amp;quot;\&amp;quot; で終わることはできない。PowerShell 版なら初期フォルダの明示、複数ファイル選択が可能。Multiselect = $false にしても $dialog.FileName に書き換えせずに $dialog.FileNames でアクセス可能。&lt;br /&gt;
  function OpenFileDlg(){&lt;br /&gt;
    ClipboardData.ClearData();&lt;br /&gt;
    var PS1Source = &#039;[void][System.Reflection.Assembly]::LoadWithPartialName(\&#039;System.windows.forms\&#039;);&#039;&lt;br /&gt;
                  +&#039;$dialog = New-Object System.Windows.Forms.OpenFileDialog;&#039;&lt;br /&gt;
                  +&#039;$dialog.Filter = \&#039;AllFiles(*.*)|*.*\&#039;;&#039;&lt;br /&gt;
                  +&#039;$dialog.InitialDirectory = \&#039;C:\\\&#039;;&#039;&lt;br /&gt;
                  +&#039;$dialog.Title = \&#039;ファイル選択\&#039;;&#039;&lt;br /&gt;
                  +&#039;$dialog.Multiselect = $true;&#039;&lt;br /&gt;
                  +&#039;if($dialog.ShowDialog() -eq [System.Windows.Forms.DialogResult]::OK){ Set-Clipboard $dialog.FileNames }&#039;&lt;br /&gt;
    new ActiveXObject(&#039;WScript.Shell&#039;).Run(&lt;br /&gt;
        &#039;PowerShell.EXE -sta -ExecutionPolicy RemoteSigned &#039; + PS1Source, 0, true&lt;br /&gt;
    );&lt;br /&gt;
    var result=ClipboardData.GetData();&lt;br /&gt;
    ClipboardData.ClearData();&lt;br /&gt;
    return result;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
== Prompt で空入力とキャンセルの区別 ==&lt;br /&gt;
できません．&lt;br /&gt;
&lt;br /&gt;
== PopupMenu.Add の ID ==&lt;br /&gt;
PopupMenu.Add() の ID は必ず 0 以外にしましょう．&amp;lt;br&amp;gt;&lt;br /&gt;
PopupMenu.Track() はキャンセルされた（メニューが押されなかった）場合，0 を返します&lt;/div&gt;</summary>
		<author><name>Sukemaru</name></author>
	</entry>
	<entry>
		<id>https://www.haijin-boys.com/wiki/index.php?title=%E3%83%90%E3%82%A4%E3%83%88%E6%95%B0&amp;diff=5529</id>
		<title>バイト数</title>
		<link rel="alternate" type="text/html" href="https://www.haijin-boys.com/wiki/index.php?title=%E3%83%90%E3%82%A4%E3%83%88%E6%95%B0&amp;diff=5529"/>
		<updated>2021-02-05T14:52:16Z</updated>

		<summary type="html">&lt;p&gt;Sukemaru: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== バイト数 ==&lt;br /&gt;
編集中の文書のバイト数をステータスバーに表示します。半角文字は1バイト、全角文字は2バイトとして計算します。&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;
// -----------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
with (document) {&lt;br /&gt;
  var s = document.selection.Text;&lt;br /&gt;
  if (s == &amp;quot;&amp;quot;)&lt;br /&gt;
    s = Text;&lt;br /&gt;
  var j = 0;&lt;br /&gt;
  var l = s.length;&lt;br /&gt;
  for (var i = 0; i &amp;lt; l; i++) {&lt;br /&gt;
    var c = s.charCodeAt(i);&lt;br /&gt;
    if ((c &amp;gt;= 0x0 &amp;amp;&amp;amp; c &amp;lt; 0x81) || (c == 0xf8f0) ||&lt;br /&gt;
      (c &amp;gt;= 0xff61 &amp;amp;&amp;amp; c &amp;lt; 0xffa0) || (c &amp;gt;= 0xf8f1 &amp;amp;&amp;amp; c &amp;lt; 0xf8f4))&lt;br /&gt;
      j += 1;&lt;br /&gt;
    else&lt;br /&gt;
      j += 2;&lt;br /&gt;
  }&lt;br /&gt;
  window.status = (&amp;quot;&amp;quot; + j).match(/./g).reverse().join(&amp;quot;&amp;quot;)&lt;br /&gt;
    .replace(/(\d{3})/g, &amp;quot;$1,&amp;quot;).match(/./g)&lt;br /&gt;
    .reverse().join(&amp;quot;&amp;quot;).replace(/^,/, &amp;quot;&amp;quot;) + &amp;quot; バイト&amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 文字コードを指定，または取得してバイト数を計算 ==&lt;br /&gt;
文字コードを指定，または取得してバイト数を計算します．&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;オプション&#039;&#039;&#039;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!encoding&lt;br /&gt;
|文字コード指定．&amp;lt;br&amp;gt;空の場合はそのドキュメントの文字モード．&amp;lt;br&amp;gt;sjis のように直接指定すれば常にその文字コードで計算．&lt;br /&gt;
|-&lt;br /&gt;
!CRLF&lt;br /&gt;
|改行コードの指定．&amp;lt;br&amp;gt;CR + LF の場合は true．&amp;lt;br&amp;gt;CR または LF の場合は false．&lt;br /&gt;
|-&lt;br /&gt;
!BOM&lt;br /&gt;
|BOM コード分を加算するかの指定．&amp;lt;br&amp;gt;BOM 分を加算するときは true．（保存したファイルのサイズと一致します）&amp;lt;br&amp;gt;BOM 分を加算しない場合は false．&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
var encoding = &amp;quot;&amp;quot;;  // 指定時はその文字コード．&lt;br /&gt;
var CRLF = true;    // 改行コードが CRLF なら true．そうでないなら false．&lt;br /&gt;
var BOM = true;     // BOM を考慮する場合は true．考慮しない場合は false．&lt;br /&gt;
&lt;br /&gt;
var charset = &amp;quot;&amp;quot;;&lt;br /&gt;
var s = Document.Selection.IsEmpty ? Document.Text : Document.Selection.Text;&lt;br /&gt;
s = CRLF ? s.replace(/\r?\n/g, &amp;quot;\r\n&amp;quot;) : s;&lt;br /&gt;
if (!encoding) {&lt;br /&gt;
  switch (Document.Encoding){&lt;br /&gt;
    case meEncodingUTF16LE:&lt;br /&gt;
    case meEncodingUTF16BE:               WriteBytes(s.length * 2 + (BOM?2:0)); Quit();&lt;br /&gt;
    case meEncodingUTF8WithSignature:&lt;br /&gt;
    case meEncodingUTF8WithoutSignature:  charset = &amp;quot;utf-8&amp;quot;;        break;&lt;br /&gt;
    case meEncodingUTF7:                  charset = &amp;quot;utf-7&amp;quot;;        break;&lt;br /&gt;
    case meEncodingEUC:                   charset = &amp;quot;euc-jp&amp;quot;;       break;&lt;br /&gt;
    case meEncodingJIS:                   charset = &amp;quot;iso-2022-jp&amp;quot;;  break;&lt;br /&gt;
    case meEncodingShiftJIS:              charset = &amp;quot;sjis&amp;quot;;         break;&lt;br /&gt;
  }&lt;br /&gt;
} else {&lt;br /&gt;
  charset = encoding;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
var adodb = new ActiveXObject(&#039;ADODB.Stream&#039;);&lt;br /&gt;
adodb.Type = 2;&lt;br /&gt;
adodb.Charset = charset;&lt;br /&gt;
adodb.Open();&lt;br /&gt;
adodb.WriteText(s);&lt;br /&gt;
var bytes = adodb.Position;&lt;br /&gt;
adodb.Close();&lt;br /&gt;
&lt;br /&gt;
if (!encoding &amp;amp;&amp;amp; (Document.Encoding == meEncodingUTF8WithoutSignature || (!BOM &amp;amp;&amp;amp; Document.Encoding == meEncodingUTF8WithSignature))) {&lt;br /&gt;
  bytes -= 3;&lt;br /&gt;
}&lt;br /&gt;
WriteBytes(bytes);&lt;br /&gt;
function WriteBytes(bytes){&lt;br /&gt;
  Status = String(bytes).split(&amp;quot;&amp;quot;).reverse().join(&amp;quot;&amp;quot;).replace(/(\d{3})/g, &amp;quot;$1,&amp;quot;).split(&amp;quot;&amp;quot;).reverse().join(&amp;quot;&amp;quot;).replace(/^,/, &amp;quot;&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sukemaru</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=5528</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=5528"/>
		<updated>2021-02-05T14:51:03Z</updated>

		<summary type="html">&lt;p&gt;Sukemaru: /* テキスト操作補助 */&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;
*[[対応する括弧に移動]] (Kuro, kurama, masme) update 2019/04/12&lt;br /&gt;
*[[行頭に移動]] (Kuro, 他) update 2020/05/22&lt;br /&gt;
*[[バイト数]] (Kuro, ks)&lt;br /&gt;
*[[日付と時刻を挿入]] (n, masme) update 2016/02/28&lt;br /&gt;
*[[日付と時刻を挿入（カレンダー版）]] (papagoat) update 2016/05/24&lt;br /&gt;
*[[選択範囲を上下に移動]] (ks)&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;
*[[数値を増減]](インクリメント・デクリメント) (masme) 2014/06/17, update 2020/05/17&lt;br /&gt;
*[[少し便利な Undo/Redo]] (ks)&lt;br /&gt;
*[[自動ルビ振り]] (急急如律令)&lt;br /&gt;
*[[貼付け実行後のカーソル位置を貼付け文字列の先頭にする]] (yuko) 2017/06/04&lt;br /&gt;
*[[ドイツ語特殊文字]] (鯉)&lt;br /&gt;
*[[矩形選択範囲の各行先頭に文字挿入]] (yuko)&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) 2020/09/04 update&lt;br /&gt;
*[[Markdown 向け、リスト記号 (*) のトグル]] (yuko) 2019/04/29&lt;br /&gt;
*[[Markdown 向け、タスクリスト (* ［］) のチェック状態をトグル]] (yuko) 2020/09/04&lt;br /&gt;
*[[何年生で習う漢字？]] (シリル) 2019/03/10&lt;br /&gt;
*[[上に行挿入]] (yuko) 2019/05/11&lt;br /&gt;
*[[選択範囲を広げる]] (yuko) 2020/03/22&lt;br /&gt;
*[[新規行番号入力]] (Takuma 他) 2020/06/17 - 2020/06/26&lt;br /&gt;
&lt;br /&gt;
== ファイル操作補助 ==&lt;br /&gt;
&lt;br /&gt;
*[[文字列中のパス起動]] (ks)&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) 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;
*[[編集モードの自動選択]] (Bleat) 2019/02/15&lt;br /&gt;
*[[書き換え禁止モード色反転]] (Bleat)&lt;br /&gt;
*[[文書が変更されていなければ変更マークを消す]] (Noah)&lt;br /&gt;
*[[変更なしのタブをすべて閉じる]] (Noah)&lt;br /&gt;
&lt;br /&gt;
== 変換・ソート・整形 ==&lt;br /&gt;
&lt;br /&gt;
*[[SHA でハッシュ化]] (Kuro)&lt;br /&gt;
*[[標準変換]] (Kuro)&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;
*[[基数変換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;
*[[タグの外側（内側）だけ置換]] (手石)&lt;br /&gt;
*[[ポップアップメニューで検索先にジャンプ]] (手石) 2014/04/19&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;
*[[任意の検索エンジンで検索]] (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;
&lt;br /&gt;
== プログラミング補助 ==&lt;br /&gt;
&lt;br /&gt;
*[[Eclipse風コメントアウト]] (ks)&lt;br /&gt;
*[[Eclipse風コメントアウト(改)]] (pizz) 2020/03/15&lt;br /&gt;
*[[コメントマーク付け外し]] (手石, masme) 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文書のコンパイル]] (手石, isari) update 2020/10/16&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) 2020/12/12更新&lt;br /&gt;
*[[JSON整形]](Ovis) Create 2019/03/25&lt;br /&gt;
*[[ScriptRun]]（Scriptコードの実行）（fuka）2020/08/02&lt;br /&gt;
&lt;br /&gt;
== おもしろ ==&lt;br /&gt;
*[[メール送信]] (ks)&lt;br /&gt;
*[[あつまれ☆みんなのおもしろアイコン]] (有志)&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) update 2019/02/13&lt;br /&gt;
*[[ファイルロック (排他制御) 的なもの]] (PebblePot)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
*[[キーアサイン集]] (ks, masme, 有志) last update 2020/05/22&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>Sukemaru</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=5527</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=5527"/>
		<updated>2021-02-05T14:49:11Z</updated>

		<summary type="html">&lt;p&gt;Sukemaru: &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;/div&gt;</summary>
		<author><name>Sukemaru</name></author>
	</entry>
	<entry>
		<id>https://www.haijin-boys.com/wiki/index.php?title=GetKeyState.exe(%E3%82%AD%E3%83%BC%E7%8A%B6%E6%85%8B%E5%8F%96%E5%BE%97%E5%AE%9F%E8%A1%8C%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB)&amp;diff=5526</id>
		<title>GetKeyState.exe(キー状態取得実行ファイル)</title>
		<link rel="alternate" type="text/html" href="https://www.haijin-boys.com/wiki/index.php?title=GetKeyState.exe(%E3%82%AD%E3%83%BC%E7%8A%B6%E6%85%8B%E5%8F%96%E5%BE%97%E5%AE%9F%E8%A1%8C%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB)&amp;diff=5526"/>
		<updated>2021-02-05T14:44:37Z</updated>

		<summary type="html">&lt;p&gt;Sukemaru: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= 概要 =&lt;br /&gt;
修飾キーの押下状態を取得する実行ファイルです。&lt;br /&gt;
&lt;br /&gt;
Shift、Ctrl、Alt いずれかのキーの押下状態を取得できます。&lt;br /&gt;
マクロスクリプトからキー状態を取得し、状態に応じて動作をコントロールしたくて作成しました。&lt;br /&gt;
&lt;br /&gt;
作成されたマクロから利用できますので、ご自由にお使いください。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
zipファイルをダウンロードしたら、ファイルのプロパティ画面で「ブロックの解除」を行ってください。&lt;br /&gt;
(これをしないと実行時に警告が表示されることがあります)&lt;br /&gt;
&lt;br /&gt;
その後、zipファイルを展開して、マクロから実行されるフォルダーに配置してください。&lt;br /&gt;
(推奨は &#039;&#039;&#039;&amp;quot;Macros&amp;quot;フォルダー&#039;&#039;&#039;とします)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ダウンロード&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
[[ファイル:GetKeyState.zip]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= 更新履歴 =&lt;br /&gt;
2019/3/4 新規作成&lt;br /&gt;
&lt;br /&gt;
2019/3/23 公開ページの変更(中身に変更はありません)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= 使い方 =&lt;br /&gt;
コマンドライン引数で、&amp;quot;Shift&amp;quot; &amp;quot;Ctrl&amp;quot; &amp;quot;Alt&amp;quot; のいずれかを渡してください。&lt;br /&gt;
 GetKeyState.exe shift		// Shiftキーの押下状態を取得する場合&lt;br /&gt;
* 大文字小文字は区別しません&lt;br /&gt;
* 実は先頭の1文字しか判断していませんので、&amp;quot;s&amp;quot;のみとかでも大丈夫です&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
戻り値(終了コード)&lt;br /&gt;
* 1: キーが押されている&lt;br /&gt;
* 0: キーは押されていない&lt;br /&gt;
* -1: エラー(引数間違い、メッセージボックスを表示します)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
マクロにショートカットキーを割り当てる際は、該当する修飾キー &amp;quot;あり&amp;quot; と &amp;quot;なし&amp;quot; の両方を割り当ててください&lt;br /&gt;
* Shift+F8 / F8 など&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ツールバーにアイコン化しているマクロの場合は、&amp;quot;修飾キー＋クリック&amp;quot; か &amp;quot;ふつうの左クリック&amp;quot; かでマクロの動作を切り替えることができます。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ツールバーの [マクロ] メニューや右クリックメニューから実行する際は、Shift または Ctrl キーを押しながら実行することができますが、Alt キーを押しながら実行することはできません（Alt キーでメニューのポップアップ表示がキャンセルされるため）。&lt;br /&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;
&lt;br /&gt;
&lt;br /&gt;
= 実装例 =&lt;br /&gt;
サンプルコードの&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot; inline&amp;gt;window.Alert( &amp;quot;XXキーが押されています&amp;quot; );&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;
;サンプルコード１&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
var wshShell = new ActiveXObject(&amp;quot;WScript.Shell&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
// カレントディレクトリをマクロディレクトリに変更&lt;br /&gt;
wshShell.CurrentDirectory = editor.FullName.match(/^.*\\/)[0] + &#039;Macros&#039;;&lt;br /&gt;
&lt;br /&gt;
// SHIFTキー状態を取得&lt;br /&gt;
var shift = wshShell.Run(&amp;quot;GetKeyState.exe shift&amp;quot;, 0, true);&lt;br /&gt;
&lt;br /&gt;
if(shift != -1){&lt;br /&gt;
  if(shift == 1) window.Alert(&amp;quot;Shiftキーが押されています&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;
* 実行ファイル GetKeyState.exe の実在確認をします（GetKeyState がない場合でも動作する）&lt;br /&gt;
* カレントディレクトリ（Mery.exe の作業フォルダ）を変更しません&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
var ctrl = 0, alt = 0;&lt;br /&gt;
&lt;br /&gt;
// GetKeyState.exe のフルパスを &amp;quot; &amp;quot; で囲う&lt;br /&gt;
var gks = &#039;&amp;quot;&#039; + editor.FullName.replace( /[^\\]+$/ , &#039;&#039; )&lt;br /&gt;
        + &#039;Macros\\GetKeyState.exe&amp;quot;&#039;;&lt;br /&gt;
&lt;br /&gt;
// 半角空白＋コマンドライン引数をつけて GetKeyState を実行する（実行ファイルの実在確認をする）&lt;br /&gt;
if ( new ActiveXObject( &amp;quot;Scripting.FileSystemObject&amp;quot; ).FileExists( gks ) ) {&lt;br /&gt;
  var wshShell = new ActiveXObject(&#039;WScript.Shell&#039;);&lt;br /&gt;
&lt;br /&gt;
  // Ctrl キーの状態を取得&lt;br /&gt;
  ctrl = wshShell.Run( gks + &#039; control&#039;, 0, true );&lt;br /&gt;
  // Alt キーの状態を取得&lt;br /&gt;
  alt = WshShell.Run( gks + &#039; alt&#039; , 0, true );&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// 修飾キーによる動作の切り替え&lt;br /&gt;
if ( ctrl &amp;gt; 0 &amp;amp;&amp;amp; alt &amp;gt; 0 ) {&lt;br /&gt;
  window.Alert( &amp;quot;CtrlキーとAltキーが押されています&amp;quot; );&lt;br /&gt;
}&lt;br /&gt;
else if ( ctrl &amp;gt; 0 ) {&lt;br /&gt;
  window.Alert( &amp;quot;Ctrlキーが押されています&amp;quot; );&lt;br /&gt;
}&lt;br /&gt;
else if ( Alt &amp;gt; 0 ) {&lt;br /&gt;
  window.Alert( &amp;quot;Altキーが押されています&amp;quot; );&lt;br /&gt;
}&lt;br /&gt;
else {&lt;br /&gt;
  window.Alert( &amp;quot;修飾キーは押されていません&amp;quot; ); // ← GetKeyState.exe がない場合も&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;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&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;
var WshShell = new ActiveXObject( &amp;quot;WScript.Shell&amp;quot; );&lt;br /&gt;
&lt;br /&gt;
// マクロ開始時の Ctrl キーの状態を取得&lt;br /&gt;
var $ctrl1 = WshShell.Run( &amp;quot;\&amp;quot;&amp;quot; + gks + &amp;quot;\&amp;quot; ctrl&amp;quot;, 0, true );&lt;br /&gt;
&lt;br /&gt;
var menu = CreatePopupMenu();&lt;br /&gt;
menu.Add( &amp;quot;ほげ&amp;quot;, 1 );&lt;br /&gt;
&lt;br /&gt;
// Ctrl キーを押しながら実行したときは、項目を追加表示する&lt;br /&gt;
if ( $ctrl1 == 1 ) {&lt;br /&gt;
  menu.Add( &amp;quot;ほげほげ&amp;quot;, 2 );&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// ポップアップメニューを表示&lt;br /&gt;
var r = menu.Track( mePosMouse );&lt;br /&gt;
&lt;br /&gt;
// Ctrl キーを押しながら項目を選択したときは、動作をを変更する&lt;br /&gt;
var $ctrl2 = WshShell.Run( &amp;quot;\&amp;quot;&amp;quot; + gks + &amp;quot;\&amp;quot; ctrl&amp;quot;, 0, true );&lt;br /&gt;
&lt;br /&gt;
switch( r ) {&lt;br /&gt;
  case 1:&lt;br /&gt;
  if      ( $ctrl2 === 0 )  window.Alert( &amp;quot;ほげ&amp;quot; );&lt;br /&gt;
  else if ( $ctrl2 === 1 )  window.Alert( &amp;quot;ふが&amp;quot; );&lt;br /&gt;
  break;&lt;br /&gt;
&lt;br /&gt;
  case 2:&lt;br /&gt;
  if      ( $ctrl2 === 0 )  window.Alert( &amp;quot;ほげほげ&amp;quot; );&lt;br /&gt;
  else if ( $ctrl2 === 1 )  window.Alert( &amp;quot;ふがふが&amp;quot; );&lt;br /&gt;
  break;&lt;br /&gt;
&lt;br /&gt;
  default:&lt;br /&gt;
  break;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= その他 =&lt;br /&gt;
&lt;br /&gt;
ソースも置いときます(VS2005 C++)&lt;br /&gt;
(こちらは通常ダウンロードの必要はありません)&lt;br /&gt;
&lt;br /&gt;
[[ファイル:GetKeyStateSrc.zip]]&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;
* ページ内の説明文、サンプルコードに加筆させていただきました (2019/03/23 - 2019/12/02, sukemaru)&lt;/div&gt;</summary>
		<author><name>Sukemaru</name></author>
	</entry>
	<entry>
		<id>https://www.haijin-boys.com/wiki/index.php?title=%E6%A7%8B%E6%96%87%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB&amp;diff=5525</id>
		<title>構文ファイル</title>
		<link rel="alternate" type="text/html" href="https://www.haijin-boys.com/wiki/index.php?title=%E6%A7%8B%E6%96%87%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB&amp;diff=5525"/>
		<updated>2021-02-05T14:36:00Z</updated>

		<summary type="html">&lt;p&gt;Sukemaru: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Mery で使用できる構文ファイルを集めたライブラリです。&lt;br /&gt;
&lt;br /&gt;
「表示」メニューの「編集モード &amp;gt; 編集モードの設定 &amp;gt; プロパティ」の下部にある「インポート」ボタンでインポートして使用します。構文ファイルライブラリはどなたでも自由に編集できますので、新しい言語やマニアックな言語の色分けに使えそうなものが出来上がったら投稿してみてくださいね。&lt;br /&gt;
&lt;br /&gt;
*[http://www.haijin-boys.com/wiki/%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:aozoramsy.zip Aozora（青空文庫形式）] (急急如律令、isari)&lt;br /&gt;
*[https://github.com/jacklegdoc/Mery-AutoHotKey-syntax/blob/master/AutoHotkey.msy AutoHotkey] (jacklegdoc)&lt;br /&gt;
*[[Bat]] (有志)&lt;br /&gt;
*[https://github.com/MihailJP/merydef/blob/master/bf.msy Brainf*ck] (MihailJP) &amp;lt;!-- 冗談半分で作ったシロモノです --&amp;gt;&lt;br /&gt;
*[[メディア:CASLII.zip|CASL II]] (YOS G-spec)&lt;br /&gt;
*[[Clojure]] (n)&lt;br /&gt;
*[[メディア:CommonLisp.zip|CommonLisp]] (YOS G-spec)&lt;br /&gt;
*[https://github.com/GunseiPaseri/mery_MSY/blob/master/css3.msy CSS3] (群生系パセリ)&lt;br /&gt;
*[[Delphi]] (kuro)&lt;br /&gt;
*[https://gist.github.com/vain0/95a28a64fb371d37613b diff/word-diff]&lt;br /&gt;
*[https://github.com/MihailJP/merydef/blob/master/d.msy D言語] (MihailJP) ※Mery本体の仕様により、コメントネストが正しく表示されません&lt;br /&gt;
*[https://github.com/MihailJP/merydef/blob/master/erlang.msy Erlang] (MihailJP)&lt;br /&gt;
*[https://github.com/MihailJP/merydef/blob/master/fsharp.msy F#] (MihailJP) ※Mery本体の仕様により、コメントネストが正しく表示されません&lt;br /&gt;
*[[メディア:Fortran.zip|Fortran]] (YOS G-spec)&lt;br /&gt;
*[https://github.com/MihailJP/merydef/blob/master/go.msy Go] (MihailJP) ※Mery本体の仕様により、Raw文字列リテラルは色分けされません&lt;br /&gt;
*[https://github.com/MihailJP/merydef/blob/master/haskell.msy Haskell] (MihailJP)&lt;br /&gt;
*[[HTML5]] (ucky)&lt;br /&gt;
*[[HTML5.1]] (momdo)&lt;br /&gt;
*[https://github.com/ShikaKingdom/MerySyntaxFile JSON] (ShikaKingdom)&lt;br /&gt;
*[https://github.com/utgw/kuin-syntaxhilight-for-mery/blob/master/kuin.msy Kuin] (うたがわきき)&lt;br /&gt;
*[[Lua]] (n)&lt;br /&gt;
*[https://github.com/MihailJP/merydef/blob/master/markdown.msy Markdown] (MihailJP)&lt;br /&gt;
*[[メディア:Matlab.zip|Matlab]] (YOS G-spec)&lt;br /&gt;
*[[MQL4_改]] (東平) 2020/03/25&lt;br /&gt;
*[[NSIS]] (Leo)&lt;br /&gt;
*[https://github.com/MihailJP/merydef/blob/master/ocaml.msy OCaml] (MihailJP) ※Mery本体の仕様により、コメントネストが正しく表示されません&lt;br /&gt;
*[https://github.com/WGGSH/ProcessingMery/blob/master/src/Processing.msy Processing] (WGG)&lt;br /&gt;
*[https://github.com/TakamiChie/mery-scripts/tree/master/msy Re:VIEW] (高見知英)&lt;br /&gt;
*[https://github.com/sh0hei/merydef/blob/master/scala.msy Scala] (sh0hei)&lt;br /&gt;
*[[メディア:ShellScript(bash).zip|ShellScript (bash)]] (yuko)&lt;br /&gt;
*[[メディア:smali.zip|smali]] (GTO)&lt;br /&gt;
*[https://github.com/ebc-2in2crc/merydef/blob/master/yaml.msy YAML] (ebc_2in2crc)&lt;br /&gt;
*[https://github.com/syeimi/Mery-msy/blob/master/Whitespace.msy Whitespace] (syeimi)&lt;br /&gt;
*[https://github.com/MihailJP/merydef/blob/master/nadesiko.msy なでしこ] (MihailJP) ※試供品。注意点は[https://github.com/MihailJP/merydef#%E3%81%AA%E3%81%A7%E3%81%97%E3%81%93-nadesikomsy]を参照のこと&lt;br /&gt;
*[https://github.com/ikebeight/hatenasyntax/blob/master/hatena.msy はてな記法] (池辺祥和) ※Mery本体の仕様により、引用記法などが正しく表示されません&lt;br /&gt;
*[[メディア:MQL4.zip|MQL4]] (才石)&lt;br /&gt;
*[https://github.com/TakamiChie/mery-scripts/blob/master/msy/less.msy Less] (高見知英)&lt;br /&gt;
*[https://github.com/moriyaki/pug.msy PUG] (もりゃき)&lt;br /&gt;
&lt;br /&gt;
*[https://www.haijin-boys.com/wiki/%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:ZScript.zip ZScript] (Starworshipper) ZBrushというCGソフトのマクロ用です。&lt;br /&gt;
== 構文ファイルとは ==&lt;br /&gt;
&lt;br /&gt;
構文ファイルとは、拡張子「.msy」のファイルで、HTMLやC++などの言語における「強調」「構文」などの情報を保持しています。編集モードの設定から、インポートすることによって使用できます。一度インポートすると、Mery内に保存されますので、構文ファイルは不要になります。&lt;br /&gt;
&lt;br /&gt;
保存されているデータはテキストで、基本は強調する単語の列挙、特別な情報を # で始まる行で保存します。有志が作った構文ファイルを実際にテキストエディタで開いて見てみると分かりやすいでしょう。&lt;/div&gt;</summary>
		<author><name>Sukemaru</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=5524</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=5524"/>
		<updated>2021-02-05T14:33:48Z</updated>

		<summary type="html">&lt;p&gt;Sukemaru: &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;
*[[対応する括弧に移動]] (Kuro, kurama, masme 他) update 2019/04/24&lt;br /&gt;
*[[行頭に移動]] (Kuro, 他) update 2020/05/22&lt;br /&gt;
*[[バイト数]] (Kuro, ks)&lt;br /&gt;
*[[日付と時刻を挿入]] (n, masme) update 2016/02/28&lt;br /&gt;
*[[日付と時刻を挿入（カレンダー版）]] (papagoat) update 2016/05/24&lt;br /&gt;
*[[選択範囲を上下に移動]] (ks)&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;
*[[数値を増減]](インクリメント・デクリメント) (masme) 2014/06/17, update 2020/05/17&lt;br /&gt;
*[[少し便利な Undo/Redo]] (ks)&lt;br /&gt;
*[[自動ルビ振り]] (急急如律令)&lt;br /&gt;
*[[貼付け実行後のカーソル位置を貼付け文字列の先頭にする]] (yuko) 2017/06/04&lt;br /&gt;
*[[ドイツ語特殊文字]] (鯉)&lt;br /&gt;
*[[矩形選択範囲の各行先頭に文字挿入]] (yuko)&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) 2020/09/04 update&lt;br /&gt;
*[[Markdown 向け、リスト記号 (*) のトグル]] (yuko) 2019/04/29&lt;br /&gt;
*[[Markdown 向け、タスクリスト (* ［］) のチェック状態をトグル]] (yuko) 2020/09/04&lt;br /&gt;
*[[何年生で習う漢字？]] (シリル) 2019/03/10&lt;br /&gt;
*[[上に行挿入]] (yuko) 2019/05/11&lt;br /&gt;
*[[選択範囲を広げる]] (yuko) 2020/03/22&lt;br /&gt;
*[[新規行番号入力]] (Takuma 他) 2020/06/17 - 2020/06/26&lt;br /&gt;
&lt;br /&gt;
== ファイル操作補助 ==&lt;br /&gt;
&lt;br /&gt;
*[[文字列中のパス起動]] (ks)&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) 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;
*[[編集モードの自動選択]] (Bleat) 2019/02/15&lt;br /&gt;
*[[書き換え禁止モード色反転]] (Bleat)&lt;br /&gt;
*[[文書が変更されていなければ変更マークを消す]] (Noah)&lt;br /&gt;
*[[変更なしのタブをすべて閉じる]] (Noah)&lt;br /&gt;
&lt;br /&gt;
== 変換・ソート・整形 ==&lt;br /&gt;
&lt;br /&gt;
*[[SHA でハッシュ化]] (Kuro)&lt;br /&gt;
*[[標準変換]] (Kuro)&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;
*[[基数変換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;
*[[タグの外側（内側）だけ置換]] (手石)&lt;br /&gt;
*[[ポップアップメニューで検索先にジャンプ]] (手石) 2014/04/19&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;
*[[任意の検索エンジンで検索]] (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;
&lt;br /&gt;
== プログラミング補助 ==&lt;br /&gt;
&lt;br /&gt;
*[[Eclipse風コメントアウト]] (ks)&lt;br /&gt;
*[[Eclipse風コメントアウト(改)]] (pizz) 2020/03/15&lt;br /&gt;
*[[コメントマーク付け外し]] (手石, masme) 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文書のコンパイル]] (手石, isari) update 2020/10/16&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) 2020/12/12更新&lt;br /&gt;
*[[JSON整形]](Ovis) Create 2019/03/25&lt;br /&gt;
*[[ScriptRun]]（Scriptコードの実行）（fuka）2020/08/02&lt;br /&gt;
&lt;br /&gt;
== おもしろ ==&lt;br /&gt;
*[[メール送信]] (ks)&lt;br /&gt;
*[[あつまれ☆みんなのおもしろアイコン]] (有志)&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) update 2019/02/13&lt;br /&gt;
*[[ファイルロック (排他制御) 的なもの]] (PebblePot)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
*[[キーアサイン集]] (ks, masme, 有志) last update 2020/05/22&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>Sukemaru</name></author>
	</entry>
	<entry>
		<id>https://www.haijin-boys.com/wiki/index.php?title=%E7%B7%A8%E9%9B%86%E3%83%A2%E3%83%BC%E3%83%89%E3%81%AE%E8%87%AA%E5%8B%95%E9%81%B8%E6%8A%9E&amp;diff=5523</id>
		<title>編集モードの自動選択</title>
		<link rel="alternate" type="text/html" href="https://www.haijin-boys.com/wiki/index.php?title=%E7%B7%A8%E9%9B%86%E3%83%A2%E3%83%BC%E3%83%89%E3%81%AE%E8%87%AA%E5%8B%95%E9%81%B8%E6%8A%9E&amp;diff=5523"/>
		<updated>2021-02-05T14:27:52Z</updated>

		<summary type="html">&lt;p&gt;Sukemaru: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;「&#039;&#039;&#039;編集モードの自動選択&#039;&#039;&#039;」または「&#039;&#039;&#039;書き換え禁止で開く&#039;&#039;&#039;」&lt;br /&gt;
&lt;br /&gt;
;「ファイルを開いたとき」専用のイベントマクロです。&lt;br /&gt;
　&#039;&#039;ref.&#039;&#039;  オンラインヘルプ: マクロ - [[ヘルプ:マクロ#カスタマイズ|カスタマイズ]]&lt;br /&gt;
&lt;br /&gt;
拡張子で適切に判別できないファイルの「[[ヘルプ:表示#編集モード|編集モード]]」を、ファイル名で自動割りふりします。&amp;lt;br&amp;gt;&lt;br /&gt;
また、ふだんは再編集の必要がないファイルをファイル名で自動割りふりして「[[ヘルプ:編集#書き換え禁止|書き換え禁止]]」で開くようにします。&lt;br /&gt;
&lt;br /&gt;
※「&#039;&#039;&#039;書き換え禁止&#039;&#039;&#039;」は Mery 上で編集禁止（仮ロック）にする機能で、 [編集]メニューの項目「書き換え禁止」で解除できます。ファイル属性を「&#039;&#039;&#039;読み取り専用&#039;&#039;&#039;」にするわけではありません。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= コマンドラインオプション =&lt;br /&gt;
マクロ上で Mery の [[ヘルプ:目次#コマンドラインオプション|コマンドラインオプション]] 指定に相当する記述法は以下のようになります。&lt;br /&gt;
&lt;br /&gt;
※このページのソースコードに書き足す場合は「 &#039;&#039;&#039;&#039;&#039;document.&#039;&#039;&#039;&#039;&#039; 」の部分は省略可。 &amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
* document.&#039;&#039;&#039;[[マクロリファレンス:Document_インターフェイス#ReadOnly プロパティ|ReadOnly]] = true;&#039;&#039;&#039;&lt;br /&gt;
:: コマンドラインオプション　&amp;lt;u&amp;gt;Mery.exe &#039;&#039;&#039;/r&#039;&#039;&#039; &amp;lt;/u&amp;gt; &lt;br /&gt;
::書き換え禁止に設定します。 &amp;lt;br&amp;gt;   &lt;br /&gt;
  	&lt;br /&gt;
&lt;br /&gt;
* document.&#039;&#039;&#039;[[マクロリファレンス:Document_インターフェイス#Mode_プロパティ|Mode]] = &amp;quot;ModeName&amp;quot;;&#039;&#039;&#039;&lt;br /&gt;
:: コマンドラインオプション　&amp;lt;u&amp;gt;Mery.exe &#039;&#039;&#039;/m&#039;&#039;&#039; &#039;&#039;&amp;quot;ModeName&amp;quot;&#039;&#039; &amp;lt;/u&amp;gt; &lt;br /&gt;
::編集モードを指定します。 &amp;lt;br&amp;gt;  &lt;br /&gt;
  	&lt;br /&gt;
&lt;br /&gt;
* document.&#039;&#039;&#039;[[マクロリファレンス:Document_インターフェイス#Encoding_プロパティ|Encoding]] = nnnn;&#039;&#039;&#039;&lt;br /&gt;
:: コマンドラインオプション　&amp;lt;u&amp;gt;Mery.exe &#039;&#039;&#039;/cp&#039;&#039;&#039; &#039;&#039;Encoding&#039;&#039; &amp;lt;/u&amp;gt; &lt;br /&gt;
::エンコードをエンコード定数で定義されている数値で指定します。 &amp;lt;br&amp;gt; &#039;&#039;ref.&#039;&#039;  [[マクロリファレンス:エンコード定数]] &amp;lt;br&amp;gt;  &lt;br /&gt;
  	&lt;br /&gt;
&lt;br /&gt;
* document.&#039;&#039;&#039;selection.[[マクロリファレンス:Selection_インターフェイス#SetActivePoint_メソッド|SetActivePoint]]( mePosLogical, x, y );&#039;&#039;&#039;&lt;br /&gt;
:: カーソル位置を設定します。&lt;br /&gt;
:* コマンドラインオプション　&amp;lt;u&amp;gt;Mery.exe &#039;&#039;&#039;/l&#039;&#039;&#039; &#039;&#039;LineNumber&#039;&#039; &amp;lt;/u&amp;gt; &lt;br /&gt;
::行(論理座標)に移動します。 ※マクロ上では &amp;quot;y&amp;quot; に行番号（1～ ）で指定&lt;br /&gt;
:* コマンドラインオプション　&amp;lt;u&amp;gt;Mery.exe &#039;&#039;&#039;/cl&#039;&#039;&#039; &#039;&#039;ColumnNumber&#039;&#039; &amp;lt;/u&amp;gt; &lt;br /&gt;
::桁(論理座標)に移動します。 ※マクロ上では &amp;quot;x&amp;quot; に桁番号（1～ ）で指定&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Bleat 版 =&lt;br /&gt;
&lt;br /&gt;
設定部分を配列化して管理しやすくした簡易バージョンです。&amp;lt;br&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;
#title = &amp;quot;編集モード自動判別&amp;quot;&lt;br /&gt;
#tooltip = &amp;quot;表示モード自動判別&amp;quot;&lt;br /&gt;
&lt;br /&gt;
// -----------------------------------------------------------------------------&lt;br /&gt;
// ファイル名に含まれる特定ワードで表示モードを変更するマクロ&lt;br /&gt;
// イベント実行「ファイルを開いた時」または「アクティブな文書が変更された時」&lt;br /&gt;
// -----------------------------------------------------------------------------&lt;br /&gt;
const type = { n:document.Name , f:document.FullName };&lt;br /&gt;
&lt;br /&gt;
//-----------------------------------設定------------------------------------&lt;br /&gt;
const n = type.f;	// 検索対象の種類：type.n：ファイル名と拡張子  type.f：フルパス&lt;br /&gt;
const RO = &amp;quot;書禁&amp;quot;;	// 書き換え禁止フラグ名（編集モード名と被る場合に変更してください）&lt;br /&gt;
const m = [&lt;br /&gt;
//	[ /ファイル名（正規表現可）/検索フラグ（省略可）, &amp;quot;編集モード名（省略可）&amp;quot; , &amp;quot;書禁フラグ（省略可）&amp;quot; ],&lt;br /&gt;
	[ /(readme|README)\.txt$/ , &amp;quot;Markdown&amp;quot; ],&lt;br /&gt;
	[ /&amp;quot;青空文庫&amp;quot; , /\/book\/ , &amp;quot;書禁&amp;quot; ],&lt;br /&gt;
	[ /\\Mery\\Macros\\.+\.js$/i , &amp;quot;Mery_Macro_JS&amp;quot; ],&lt;br /&gt;
];&lt;br /&gt;
&lt;br /&gt;
//-----------------------------------本体------------------------------------&lt;br /&gt;
for (let i = 0, imax = m.length; i &amp;lt; imax; i=(i+1)|0){&lt;br /&gt;
	if (n.match(m[i][0])) {&lt;br /&gt;
		if (m[i][1] != RO ){&lt;br /&gt;
			editor.ActiveDocument.mode = m[i][1];&lt;br /&gt;
			if ( m[i][2] === RO ) {&lt;br /&gt;
				editor.ActiveDocument.ReadOnly = true;&lt;br /&gt;
			}&lt;br /&gt;
		} else {&lt;br /&gt;
		editor.ActiveDocument.ReadOnly = true;&lt;br /&gt;
		}&lt;br /&gt;
	break;&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sukemaru</name></author>
	</entry>
	<entry>
		<id>https://www.haijin-boys.com/wiki/index.php?title=%E3%83%96%E3%83%83%E3%82%AF%E3%83%9E%E3%83%BC%E3%82%AF%E4%B8%80%E8%A6%A7%E3%82%B8%E3%83%A3%E3%83%B3%E3%83%97&amp;diff=5522</id>
		<title>ブックマーク一覧ジャンプ</title>
		<link rel="alternate" type="text/html" href="https://www.haijin-boys.com/wiki/index.php?title=%E3%83%96%E3%83%83%E3%82%AF%E3%83%9E%E3%83%BC%E3%82%AF%E4%B8%80%E8%A6%A7%E3%82%B8%E3%83%A3%E3%83%B3%E3%83%97&amp;diff=5522"/>
		<updated>2021-02-05T14:20:32Z</updated>

		<summary type="html">&lt;p&gt;Sukemaru: 内容を「ポップアップメニューでジャンプ先を選択。範囲指定中はジャンプ先まで選択範囲を拡大します。  Mery Ver.1.1.2.2840 および Ver.2.0…」で置換&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;ポップアップメニューでジャンプ先を選択。範囲指定中はジャンプ先まで選択範囲を拡大します。&lt;br /&gt;
&lt;br /&gt;
Mery Ver.1.1.2.2840 および Ver.2.0.9.3936 での動作を確認しています。&lt;br /&gt;
(2012.09.24)&lt;br /&gt;
&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;
 /*&lt;br /&gt;
 * ブックマーク一覧をポップアップメニューにして選択ジャンプ&lt;br /&gt;
 * Mery標準のブックマークが対象&lt;br /&gt;
 * 範囲選択中の場合は選択範囲を拡大&lt;br /&gt;
 */&lt;br /&gt;
 (function(){&lt;br /&gt;
   // 描画停止&lt;br /&gt;
   Redraw = false;&lt;br /&gt;
   with(document.selection){&lt;br /&gt;
     var flgBlock = !isEmpty;&lt;br /&gt;
     //カーソル位置の保存&lt;br /&gt;
     var activePos = GetActivePos();&lt;br /&gt;
     var anchorPos = GetAnchorPos();&lt;br /&gt;
     var sX = ScrollX;&lt;br /&gt;
     var sY = ScrollY;&lt;br /&gt;
 &lt;br /&gt;
     var bookmarks = new Array();&lt;br /&gt;
     StartOfDocument(false);&lt;br /&gt;
     // 先頭行がブックマークされてないか&lt;br /&gt;
     var isTopMarked = false;&lt;br /&gt;
     CharRight(false);&lt;br /&gt;
     if(PreviousBookmark()){&lt;br /&gt;
       isTopMarked = true;&lt;br /&gt;
       SelectLine();&lt;br /&gt;
       menuKey = Text.slice(0,24).replace(/\t/g, &amp;quot;\\t&amp;quot;);&lt;br /&gt;
       Collapse();&lt;br /&gt;
       bookmarks.push(&amp;quot;Line &amp;quot; + GetActivePointY(mePosLogical) + &amp;quot;:\t&amp;quot; + menuKey);&lt;br /&gt;
     } else {&lt;br /&gt;
       StartOfDocument(false);&lt;br /&gt;
     }&lt;br /&gt;
     while(NextBookmark()){&lt;br /&gt;
       SelectLine();&lt;br /&gt;
       menuKey = Text.slice(0, 24).replace(/\t/g, &amp;quot;\\t&amp;quot;);&lt;br /&gt;
       Collapse();&lt;br /&gt;
       bookmarks.push(&amp;quot;Line &amp;quot; + GetActivePointY(mePosLogical) + &amp;quot;:\t&amp;quot; + menuKey);&lt;br /&gt;
     }&lt;br /&gt;
     var bmcount = bookmarks.length;&lt;br /&gt;
     if(bmcount == 0){&lt;br /&gt;
       //カーソル位置の復帰&lt;br /&gt;
       SetActivePos(activePos);&lt;br /&gt;
       SetAnchorPos(anchorPos);&lt;br /&gt;
       ScrollX = sX;&lt;br /&gt;
       ScrollY = sY;&lt;br /&gt;
     } else {&lt;br /&gt;
       var BookmarkMenu = CreatePopupMenu();&lt;br /&gt;
       for(var i = 0; i &amp;lt; bmcount; i++){&lt;br /&gt;
         //メニューのアクセスキーも1から始まるほうが便利&lt;br /&gt;
         BookmarkMenu.Add(&amp;quot;&amp;amp;&amp;quot; + (i+1) + &amp;quot; &amp;quot; + bookmarks[i], i+1)&lt;br /&gt;
       }&lt;br /&gt;
       var ret = BookmarkMenu.Track(0);&lt;br /&gt;
       if(ret == 0){&lt;br /&gt;
         //カーソル位置の復帰&lt;br /&gt;
         SetActivePos(activePos);&lt;br /&gt;
         SetAnchorPos(anchorPos);&lt;br /&gt;
         ScrollX = sX;&lt;br /&gt;
         ScrollY = sY;&lt;br /&gt;
       } else {&lt;br /&gt;
         StartOfDocument(false);&lt;br /&gt;
         if(isTopMarked)ret--;&lt;br /&gt;
         for(i = 0; i &amp;lt; ret; i++){ NextBookmark(); }&lt;br /&gt;
       }&lt;br /&gt;
     }&lt;br /&gt;
     if(flgBlock){&lt;br /&gt;
       //ジャンプ前の選択開始位置からジャンプ後のカーソル位置まで範囲選択&lt;br /&gt;
       SetAnchorPos(anchorPos);&lt;br /&gt;
     }&lt;br /&gt;
   }&lt;br /&gt;
   // 描画再開&lt;br /&gt;
   Redraw = true;&lt;br /&gt;
 })()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Mery ver 2.7.0 以降への対応 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#c00;&amp;quot;&amp;gt;&#039;&#039;&#039;Mery ver 2.7.0 以降&#039;&#039;&#039;で使用する場合は、&#039;&#039;&#039;20&#039;&#039;&#039; 行目付近を以下のように書き換えてください。&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
変更しない場合、ドキュメントの 1 行目がブックマークされていてもポップアップメニューに表示されなくなります。 (2019/04/16 sukemaru)&lt;br /&gt;
; 変更前&lt;br /&gt;
 18.    var bookmarks = new Array();&lt;br /&gt;
 19.    &amp;lt;span style=&amp;quot;color:#c00;&amp;quot;&amp;gt;StartOfDocument(false);&amp;lt;/span&amp;gt;&lt;br /&gt;
 20.    &amp;lt;i style=&amp;quot;color:#408080;&amp;quot;&amp;gt;// 先頭行がブックマークされてないか&amp;lt;/i&amp;gt;&lt;br /&gt;
 21.    var isTopMarked = false;&lt;br /&gt;
 22.    &amp;lt;span style=&amp;quot;color:#c00;&amp;quot;&amp;gt;CharRight(false);&amp;lt;/span&amp;gt;&lt;br /&gt;
 23.    if(PreviousBookmark()){&lt;br /&gt;
 24.      isTopMarked = true;&lt;br /&gt;
; 変更後&lt;br /&gt;
 18.    var bookmarks = new Array();&lt;br /&gt;
 19.    &amp;lt;span style=&amp;quot;color:#c00;&amp;quot;&amp;gt;&#039;&#039;&#039;//&#039;&#039;&#039; StartOfDocument(false);&amp;lt;/span&amp;gt;&lt;br /&gt;
 20.    &amp;lt;i style=&amp;quot;color:#408080;&amp;quot;&amp;gt;// 先頭行がブックマークされてないか&amp;lt;/i&amp;gt;&lt;br /&gt;
 21.    var isTopMarked = false;&lt;br /&gt;
 22.    &amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;SetActivePoint(mePosLogical, 1, 2);&amp;lt;/b&amp;gt;&lt;br /&gt;
 23.    if(PreviousBookmark()){&lt;br /&gt;
 24.      isTopMarked = true;&lt;/div&gt;</summary>
		<author><name>Sukemaru</name></author>
	</entry>
	<entry>
		<id>https://www.haijin-boys.com/wiki/index.php?title=%E3%83%9D%E3%83%83%E3%83%97%E3%82%A2%E3%83%83%E3%83%97%E3%83%A1%E3%83%8B%E3%83%A5%E3%83%BC%E3%81%A7%E6%A4%9C%E7%B4%A2%E5%85%88%E3%81%AB%E3%82%B8%E3%83%A3%E3%83%B3%E3%83%97&amp;diff=5521</id>
		<title>ポップアップメニューで検索先にジャンプ</title>
		<link rel="alternate" type="text/html" href="https://www.haijin-boys.com/wiki/index.php?title=%E3%83%9D%E3%83%83%E3%83%97%E3%82%A2%E3%83%83%E3%83%97%E3%83%A1%E3%83%8B%E3%83%A5%E3%83%BC%E3%81%A7%E6%A4%9C%E7%B4%A2%E5%85%88%E3%81%AB%E3%82%B8%E3%83%A3%E3%83%B3%E3%83%97&amp;diff=5521"/>
		<updated>2021-02-05T14:17:40Z</updated>

		<summary type="html">&lt;p&gt;Sukemaru: 内容を「= 概要 = ポップアップメニューで検索にヒットした箇所へジャンプできます。  == 機能 == * 選択した文字列（選択していないと…」で置換&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= 概要 =&lt;br /&gt;
ポップアップメニューで検索にヒットした箇所へジャンプできます。&lt;br /&gt;
&lt;br /&gt;
== 機能 ==&lt;br /&gt;
* 選択した文字列（選択していないときはカーソルのある語）を検索します。&lt;br /&gt;
* ヒットした行をポップアップメニューに表示し、選択するとその行へジャンプします。&lt;br /&gt;
* 同一行にヒットする箇所が複数あったときは最初のヒット箇所にジャンプします。&lt;br /&gt;
* 検索文字列の強調解除は、変更していなければ「Alt＋F3」です。&lt;br /&gt;
&lt;br /&gt;
== コード ==&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
// pooupJump.js&lt;br /&gt;
// 2014/04/04&lt;br /&gt;
&lt;br /&gt;
var sel = document.selection&lt;br /&gt;
if ( sel.isEmpty ){ sel.SelectWord(); };&lt;br /&gt;
var s = sel.Text;&lt;br /&gt;
var ty = sel.GetTopPointY( mePosView );&lt;br /&gt;
var p = sel.GetActivePos();&lt;br /&gt;
sel.Find( s, meFindNext + meFindAround );&lt;br /&gt;
sel.SetActivePos( p );&lt;br /&gt;
&lt;br /&gt;
// ポップアップメニューでジャンプ先リスト&lt;br /&gt;
var menu_width = 66;&lt;br /&gt;
if ( &amp;quot;\t .,;:(){}[]+-=\&amp;quot;\\&amp;quot;.indexOf( s ) &amp;lt; 0 &amp;amp;&amp;amp; s.length &amp;gt; 0 ){&lt;br /&gt;
    var menu = CreatePopupMenu();&lt;br /&gt;
    var ary = [];&lt;br /&gt;
    for( var i = 0, n = document.GetLines( meGetLineView ); i &amp;lt; n ; i++ ){&lt;br /&gt;
        ary.push( document.GetLine( i+1, meGetLineView ));&lt;br /&gt;
    };&lt;br /&gt;
    var p = 0;&lt;br /&gt;
    for( var i = 0, n = ary.length; i &amp;lt; n ; i++ ){&lt;br /&gt;
        if ( ary[i].toLowerCase().indexOf( s.toLowerCase() ) &amp;gt;= 0 ){&lt;br /&gt;
            var item = ary[i].replace( /^\s*|\t/g, &amp;quot;&amp;quot; )&lt;br /&gt;
            item = ( item.length &amp;gt; menu_width + 1 )? item.slice( 0, menu_width ) + &amp;quot;...&amp;quot; : item ;&lt;br /&gt;
            var flags = ( (i+1) == ty )? meMenuChecked : 0 ; // meMenuGrayed  &lt;br /&gt;
            menu.Add( ( &amp;quot;    &amp;quot; + (i + 1) ).slice( -4 ) + &amp;quot; ： &amp;quot; + item, i + 1, flags );&lt;br /&gt;
            p++;&lt;br /&gt;
        };&lt;br /&gt;
    };&lt;br /&gt;
    if ( p &amp;gt; 1 ){ // ポップアップメニューを表示するのは、検索ヒット行が複数のとき。&lt;br /&gt;
        var r = menu.Track( mePosMouse );  // mePosMouse &lt;br /&gt;
        if ( r &amp;gt; 0 ){&lt;br /&gt;
            var line = document.GetLine( r, meGetLineView );&lt;br /&gt;
            sel.SetActivePoint( mePosView, line.indexOf( s ) + s.length + 1, r, false );&lt;br /&gt;
            sel.CharLeft( true, s.length );&lt;br /&gt;
            ScrollY = r-10;&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;
* 2014/04/04 初版&lt;br /&gt;
&lt;br /&gt;
== その他 ==&lt;br /&gt;
* 不具合があったら教えていただけると幸いです。&lt;/div&gt;</summary>
		<author><name>Sukemaru</name></author>
	</entry>
	<entry>
		<id>https://www.haijin-boys.com/wiki/index.php?title=%E6%8A%98%E3%82%8A%E8%BF%94%E3%81%97%E3%83%88%E3%82%B0%E3%83%AB%E5%88%87%E3%82%8A%E6%9B%BF%E3%81%88&amp;diff=5520</id>
		<title>折り返しトグル切り替え</title>
		<link rel="alternate" type="text/html" href="https://www.haijin-boys.com/wiki/index.php?title=%E6%8A%98%E3%82%8A%E8%BF%94%E3%81%97%E3%83%88%E3%82%B0%E3%83%AB%E5%88%87%E3%82%8A%E6%9B%BF%E3%81%88&amp;diff=5520"/>
		<updated>2021-02-05T14:12:25Z</updated>

		<summary type="html">&lt;p&gt;Sukemaru: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 概要 ==&lt;br /&gt;
好みの折り返し方式をトグル切り替えできるようにするマクロ。組み合わせは３種類。&amp;lt;br&amp;gt;&lt;br /&gt;
利点は覚えるショートカットキーがひとつ減るくらいです。&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ダウンロード ==&lt;br /&gt;
[[ファイル:折り返しトグル切り替えセット.zip]] (※Bleat版　2019/02/13)&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;内容&#039;&#039;&#039;&lt;br /&gt;
* 折り返しトグル切り替えA.js ： 折り返さない ⇔ 指定文字数で折り返し のスクリプト&lt;br /&gt;
* 折り返しトグル切り替えB.js ： 折り返さない ⇔ ウィンドウ端で折り返し のスクリプト&lt;br /&gt;
* 折り返しトグル切り替えC.js ： 指定文字数で折り返し ⇔ ウィンドウ端で折り返し のスクリプト&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
各スクリプト実行時にMacroSettingsフォルダ（includeライブラリで用意されているもの）に設定ファイルが自動作成されます。&amp;lt;br&amp;gt;&lt;br /&gt;
（例）折り返しトグル切り替えAを実行で、設定ファイル「折り返しトグル切り替えA.json」が作成 &amp;lt;br&amp;gt;&lt;br /&gt;
* ポータブル版では Mery 本体フォルダ内の Macros\MacroSettings\折り返しトグル切り替えX.json &amp;lt;br&amp;gt;&lt;br /&gt;
* インストーラ／ZIP版では ％APPDATA% フォルダ内の Mery\MacroSettings\折り返しトグル切り替えX.json &lt;br /&gt;
&lt;br /&gt;
== 使用上の注意 ==&lt;br /&gt;
&amp;lt;div class=&amp;quot;warningbox&amp;quot;&amp;gt;&lt;br /&gt;
設定ファイルの管理に[[includeライブラリ]]の関数 を利用しています。&lt;br /&gt;
このマクロの前に導入してください。&amp;lt;br&amp;gt;&lt;br /&gt;
また、動作保証がないMeryの機能IDを指定して直接呼び出すメソッドを使用しています。&amp;lt;br&amp;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;&amp;gt;&lt;br /&gt;
#include &amp;quot;include/IO.js&amp;quot;&lt;br /&gt;
#title=&amp;quot;折り返し切替A&amp;quot;&lt;br /&gt;
#tooltip = &amp;quot;折り返さない⇔指定文字数で折り返し&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
var data = {count:1};&lt;br /&gt;
data = IO.Deserialize(data);&lt;br /&gt;
data.count++;&lt;br /&gt;
&lt;br /&gt;
if(data.count &amp;gt; 2){&lt;br /&gt;
	var data = {count:1};&lt;br /&gt;
	}&lt;br /&gt;
IO.Serialize(data);&lt;br /&gt;
&lt;br /&gt;
if ( ( data.count % 2 ) != 0 ) {&lt;br /&gt;
	editor.ExecuteCommandByID(2146);	// 折り返さない&lt;br /&gt;
} else {	&lt;br /&gt;
	editor.ExecuteCommandByID(2147);	// 指定文字数で折り返す&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;
#include &amp;quot;include/IO.js&amp;quot;&lt;br /&gt;
#title=&amp;quot;折り返し切替B&amp;quot;&lt;br /&gt;
#tooltip = &amp;quot;折り返さない⇔ウィンドウ端で折り返し&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
var data = {count:1};&lt;br /&gt;
data = IO.Deserialize(data);&lt;br /&gt;
data.count++;&lt;br /&gt;
&lt;br /&gt;
if(data.count &amp;gt; 2){&lt;br /&gt;
	var data = {count:1};&lt;br /&gt;
	}&lt;br /&gt;
IO.Serialize(data);&lt;br /&gt;
&lt;br /&gt;
if ( ( data.count % 2 ) != 0 ) {&lt;br /&gt;
	editor.ExecuteCommandByID(2146);	// 折り返さない&lt;br /&gt;
} else {	&lt;br /&gt;
	editor.ExecuteCommandByID(2148);	// ウィンドウの右端で折り返す&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;
#include &amp;quot;include/IO.js&amp;quot;&lt;br /&gt;
#title=&amp;quot;折り返し切替C&amp;quot;&lt;br /&gt;
#tooltip = &amp;quot;指定文字数で折り返し⇔ウィンドウ端で折り返し&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
var data = {count:1};&lt;br /&gt;
data = IO.Deserialize(data);&lt;br /&gt;
data.count++;&lt;br /&gt;
&lt;br /&gt;
if(data.count &amp;gt; 2){&lt;br /&gt;
	var data = {count:1};&lt;br /&gt;
	}&lt;br /&gt;
IO.Serialize(data);&lt;br /&gt;
&lt;br /&gt;
if ( ( data.count % 2 ) != 0 ) {&lt;br /&gt;
	editor.ExecuteCommandByID(2147);	// 指定文字数で折り返す&lt;br /&gt;
} else {	&lt;br /&gt;
	editor.ExecuteCommandByID(2148);	// ウィンドウの右端で折り返す&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sukemaru</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=5519</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=5519"/>
		<updated>2021-02-05T14:06:45Z</updated>

		<summary type="html">&lt;p&gt;Sukemaru: &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;/div&gt;</summary>
		<author><name>Sukemaru</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=5518</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=5518"/>
		<updated>2021-02-05T14:03:18Z</updated>

		<summary type="html">&lt;p&gt;Sukemaru: 内容を「論理行単位で字下げ・字上げします。&amp;lt;br&amp;gt; インデントには任意の文字列を設定できます。※初期設定は半角空白2個です。  フ…」で置換&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;/div&gt;</summary>
		<author><name>Sukemaru</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=5517</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=5517"/>
		<updated>2021-02-05T14:00:42Z</updated>

		<summary type="html">&lt;p&gt;Sukemaru: /* テキスト操作補助 */&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;
*[[対応する括弧に移動]] (Kuro, kurama, masme 他) update 2019/04/24&lt;br /&gt;
*[[行頭に移動]] (Kuro, 他) update 2020/05/22&lt;br /&gt;
*[[バイト数]] (Kuro, ks)&lt;br /&gt;
*[[日付と時刻を挿入]] (n, masme) update 2016/02/28&lt;br /&gt;
*[[日付と時刻を挿入（カレンダー版）]] (papagoat) update 2016/05/24&lt;br /&gt;
*[[選択範囲を上下に移動]] (ks)&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, (sukemaru) last update 2020/06/29&lt;br /&gt;
*[[数値を増減]](インクリメント・デクリメント) (masme) 2014/06/17, update 2020/05/17&lt;br /&gt;
*[[少し便利な Undo/Redo]] (ks)&lt;br /&gt;
*[[自動ルビ振り]] (急急如律令)&lt;br /&gt;
*[[貼付け実行後のカーソル位置を貼付け文字列の先頭にする]] (yuko) 2017/06/04&lt;br /&gt;
*[[ドイツ語特殊文字]] (鯉)&lt;br /&gt;
*[[矩形選択範囲の各行先頭に文字挿入]] (yuko)&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) 2020/09/04 update&lt;br /&gt;
*[[Markdown 向け、リスト記号 (*) のトグル]] (yuko) 2019/04/29&lt;br /&gt;
*[[Markdown 向け、タスクリスト (* ［］) のチェック状態をトグル]] (yuko) 2020/09/04&lt;br /&gt;
*[[何年生で習う漢字？]] (シリル) 2019/03/10&lt;br /&gt;
*[[上に行挿入]] (yuko) 2019/05/11&lt;br /&gt;
*[[選択範囲を広げる]] (yuko) 2020/03/22&lt;br /&gt;
*[[新規行番号入力]] (Takuma 他) 2020/06/17 - 2020/06/26&lt;br /&gt;
&lt;br /&gt;
== ファイル操作補助 ==&lt;br /&gt;
&lt;br /&gt;
*[[文字列中のパス起動]] (ks)&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) last update 2020/06/24&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;
*[[文書が変更されていなければ変更マークを消す]] (Noah)&lt;br /&gt;
*[[変更なしのタブをすべて閉じる]] (Noah)&lt;br /&gt;
&lt;br /&gt;
== 変換・ソート・整形 ==&lt;br /&gt;
&lt;br /&gt;
*[[SHA でハッシュ化]] (Kuro)&lt;br /&gt;
*[[標準変換]] (Kuro)&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;
*[[基数変換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;
*[[タグの外側（内側）だけ置換]] (手石)&lt;br /&gt;
*[[ポップアップメニューで検索先にジャンプ]] (手石, sukemaru) Last Update 2020/06/25&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;
*[[任意の検索エンジンで検索]] (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;
&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 2020/06/28&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文書のコンパイル]] (手石, isari) update 2020/10/16&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) 2020/12/12更新&lt;br /&gt;
*[[JSON整形]](Ovis) Create 2019/03/25&lt;br /&gt;
*[[ScriptRun]]（Scriptコードの実行）（fuka）2020/08/02&lt;br /&gt;
&lt;br /&gt;
== おもしろ ==&lt;br /&gt;
*[[メール送信]] (ks)&lt;br /&gt;
*[[あつまれ☆みんなのおもしろアイコン]] (有志)&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/10/30&lt;br /&gt;
*[[ファイルロック (排他制御) 的なもの]] (PebblePot)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
*[[キーアサイン集]] (ks, masme, sukemaru, 有志) last update 2020/05/22&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>Sukemaru</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=5516</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=5516"/>
		<updated>2021-02-05T13:54:03Z</updated>

		<summary type="html">&lt;p&gt;Sukemaru: &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;/div&gt;</summary>
		<author><name>Sukemaru</name></author>
	</entry>
	<entry>
		<id>https://www.haijin-boys.com/wiki/index.php?title=%E8%B2%BC%E4%BB%98%E3%81%91%E5%AE%9F%E8%A1%8C%E5%BE%8C%E3%81%AE%E3%82%AB%E3%83%BC%E3%82%BD%E3%83%AB%E4%BD%8D%E7%BD%AE%E3%82%92%E8%B2%BC%E4%BB%98%E3%81%91%E6%96%87%E5%AD%97%E5%88%97%E3%81%AE%E5%85%88%E9%A0%AD%E3%81%AB%E3%81%99%E3%82%8B&amp;diff=5515</id>
		<title>貼付け実行後のカーソル位置を貼付け文字列の先頭にする</title>
		<link rel="alternate" type="text/html" href="https://www.haijin-boys.com/wiki/index.php?title=%E8%B2%BC%E4%BB%98%E3%81%91%E5%AE%9F%E8%A1%8C%E5%BE%8C%E3%81%AE%E3%82%AB%E3%83%BC%E3%82%BD%E3%83%AB%E4%BD%8D%E7%BD%AE%E3%82%92%E8%B2%BC%E4%BB%98%E3%81%91%E6%96%87%E5%AD%97%E5%88%97%E3%81%AE%E5%85%88%E9%A0%AD%E3%81%AB%E3%81%99%E3%82%8B&amp;diff=5515"/>
		<updated>2021-02-05T13:48:52Z</updated>

		<summary type="html">&lt;p&gt;Sukemaru: Sukemaru (トーク) による版 3530 を取り消し&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;貼付け実行後のカーソル位置は通常、貼付け文字列の末尾になります。&amp;lt;br&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;
  // カーソル位置を保存&lt;br /&gt;
  var x = GetActivePointX(mePosView);&lt;br /&gt;
  var y = GetActivePointY(mePosView);&lt;br /&gt;
  // 選択開始位置を保存&lt;br /&gt;
  var ax = GetTopPointX(mePosView);&lt;br /&gt;
  var ay = GetTopPointY(mePosView);&lt;br /&gt;
  // 選択終了位置を保存&lt;br /&gt;
  var bx = GetBottomPointX(mePosView);&lt;br /&gt;
  var by = GetBottomPointY(mePosView);&lt;br /&gt;
&lt;br /&gt;
  // 貼付け&lt;br /&gt;
  Paste();&lt;br /&gt;
  &lt;br /&gt;
  // カーソル位置を復元&lt;br /&gt;
  SetActivePoint(mePosView, x, y, false);&lt;br /&gt;
  // 範囲選択時には最左上の位置に復元&lt;br /&gt;
  if (x == bx &amp;amp;&amp;amp; y == by) {&lt;br /&gt;
    SetActivePoint(mePosView, ax, ay, false);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sukemaru</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=5514</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=5514"/>
		<updated>2021-02-05T13:28:22Z</updated>

		<summary type="html">&lt;p&gt;Sukemaru: &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;
*[[対応する括弧に移動]] (Kuro, kurama, masme 他) update 2019/04/24&lt;br /&gt;
*[[行頭に移動]] (Kuro, 他) update 2020/05/22&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;
*[[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, (sukemaru) last update 2020/06/29&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;
*[[文章で使用されている文字をユニーク抽出]] (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) 2020/09/04 update&lt;br /&gt;
*[[Markdown 向け、リスト記号 (*) のトグル]] (yuko) 2019/04/29&lt;br /&gt;
*[[Markdown 向け、タスクリスト (* ［］) のチェック状態をトグル]] (yuko) 2020/09/04&lt;br /&gt;
*[[何年生で習う漢字？]] (シリル) 2019/03/10&lt;br /&gt;
*[[上に行挿入]] (yuko) 2019/05/11&lt;br /&gt;
*[[選択範囲を広げる]] (yuko) 2020/03/22&lt;br /&gt;
*[[新規行番号入力]] (Takuma 他) 2020/06/17 - 2020/06/26&lt;br /&gt;
&lt;br /&gt;
== ファイル操作補助 ==&lt;br /&gt;
&lt;br /&gt;
*[[文字列中のパス起動]] (ks)&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) last update 2020/06/24&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;
*[[文書が変更されていなければ変更マークを消す]] (Noah)&lt;br /&gt;
*[[変更なしのタブをすべて閉じる]] (Noah)&lt;br /&gt;
&lt;br /&gt;
== 変換・ソート・整形 ==&lt;br /&gt;
&lt;br /&gt;
*[[SHA でハッシュ化]] (Kuro)&lt;br /&gt;
*[[標準変換]] (Kuro)&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;
*[[基数変換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;
*[[タグの外側（内側）だけ置換]] (手石)&lt;br /&gt;
*[[ポップアップメニューで検索先にジャンプ]] (手石, sukemaru) Last Update 2020/06/25&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;
*[[任意の検索エンジンで検索]] (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;
&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 2020/06/28&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文書のコンパイル]] (手石, isari) update 2020/10/16&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) 2020/12/12更新&lt;br /&gt;
*[[JSON整形]](Ovis) Create 2019/03/25&lt;br /&gt;
*[[ScriptRun]]（Scriptコードの実行）（fuka）2020/08/02&lt;br /&gt;
&lt;br /&gt;
== おもしろ ==&lt;br /&gt;
*[[メール送信]] (ks)&lt;br /&gt;
*[[あつまれ☆みんなのおもしろアイコン]] (有志)&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/10/30&lt;br /&gt;
*[[ファイルロック (排他制御) 的なもの]] (PebblePot)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
*[[キーアサイン集]] (ks, masme, sukemaru, 有志) last update 2020/05/22&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>Sukemaru</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=5511</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=5511"/>
		<updated>2021-01-27T14:13:46Z</updated>

		<summary type="html">&lt;p&gt;Sukemaru: &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 2020/05/22&lt;br /&gt;
*[[行頭か行末 または 選択範囲の始点か終点]] (sukemaru) last update 2020/06/26&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&lt;br /&gt;
*[[行を複製 (複数行可)]] (sukemaru) last update 2020/06/26&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 2020/06/29&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) 2020/09/04 update&lt;br /&gt;
*[[Markdown 向け、リスト記号 (*) のトグル]] (yuko) 2019/04/29&lt;br /&gt;
*[[Markdown 向け、タスクリスト (* ［］) のチェック状態をトグル]] (yuko) 2020/09/04&lt;br /&gt;
*[[引用符／コメント]] ※ポップアップメニュー (sukemaru) last update 2020/06/23&lt;br /&gt;
*[[カッコで囲う]] ※ポップアップメニュー (sukemaru) last update 2020/06/23 &amp;lt;br&amp;gt; [[カッコで囲う#カッコで囲う (ポップアップメニューなし)|カッコで囲う (簡易版)]] ＆ [[カッコで囲う#引用符を追加／削除|引用符を追加／削除]] &amp;lt;br&amp;gt; [[カッコで囲う#カッコで囲う２（各行ごとにカッコで囲う／Mery ver 3 用）|カッコで囲う２]] ※ポップアップメニュー &lt;br /&gt;
*[[カッコをはずす]] ＆ [[カッコをはずす#カッコを追加／削除|カッコを追加／削除]] (sukemaru) last update 2020/06/28&lt;br /&gt;
*[[定型文を挿入]]マクロ集 (sukemaru) 2018/12/03&lt;br /&gt;
*[[何年生で習う漢字？]] (シリル) 2019/03/10&lt;br /&gt;
*[[上に行挿入]] (yuko) 2019/05/11&lt;br /&gt;
*[[位置情報を保存してから「すべて選択／選択解除」(非スクロール)]] (sukemaru) update 2020/11/01 &amp;lt;br&amp;gt; [[位置情報を保存してから「すべて選択／選択解除」(非スクロール)#【include 版】位置を復帰／保存|位置を復帰／保存]]&lt;br /&gt;
*[[選択範囲を広げる]] (yuko) 2020/03/22&lt;br /&gt;
*[[拡張自動選択]] (sukemaru) update 2020/07/01&lt;br /&gt;
*[[追加コピー・追加切り取り]] (sukemaru) 2020/06/05&lt;br /&gt;
*[[新規行番号入力]] (Takuma 他) 2020/06/17 - 2020/06/26&lt;br /&gt;
*[[「クリップボード履歴」メニューのマクロ化]] ＋ [[プラグイン:スニペットプラグイン|スニペット機能]]　(sukemaru) last update 2020/06/27&lt;br /&gt;
*[[論理行を選択 (改行を含まない)]] (sukemaru) 2021/01/20&lt;br /&gt;
*[[選択範囲を行に分ける・改]] (sukemaru) 2021/01/20&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&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) last update 2020/06/24&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&lt;br /&gt;
*[[文書が変更されていなければ変更マークを消す]] (Noah)&lt;br /&gt;
*[[変更なしのタブをすべて閉じる]] (Noah)&lt;br /&gt;
*[[ファイルを読み直す・開きなおす]] ※ポップアップメニュー (sukemaru) last update 2019/11/30&lt;br /&gt;
*[[さいごに閉じたファイルを開く]] ※ポップアップメニュー (sukemaru) 2019/11/30&lt;br /&gt;
*[[タブを複製する]] (sukemaru) update 2020/10/30&lt;br /&gt;
*[[強制的に上書き保存]] (sukemaru) 2020/06/01&lt;br /&gt;
*[[すべて戻す]] (sukemaru) fixed 2021/01/20&lt;br /&gt;
*[[作業フォルダの変更]] (sukemaru) 2020/06/03&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&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_を切り替える]]（&amp;lt;span style=&amp;quot;color:#0000c0;&amp;quot;&amp;gt;YES&amp;lt;/span&amp;gt;／&amp;lt;span style=&amp;quot;color:#c00;&amp;quot;&amp;gt;NO&amp;lt;/span&amp;gt;マクロ） (sukemaru) last update 2020/07/01&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&lt;br /&gt;
*[[全角／半角 トグル変換]] (sukemaru) last update 2020/07/03&lt;br /&gt;
*[[大文字／小文字／頭文字 トグル変換]] (sukemaru) last update 2020/07/03&lt;br /&gt;
*[[ひらがな／カタカナ変換]] (sukemaru) last update 2020/07/08&lt;br /&gt;
*[[TAB／半角空白 トグル変換]] (sukemaru) last update 2020/07/02&lt;br /&gt;
*[[文字列の順番を逆に書き出す]] (sukemaru) update 2020/01/03&lt;br /&gt;
*[[マルチカーソル選択範囲の並べ替え]] (sukemaru) last update 2020/07/06&lt;br /&gt;
*[[マルチカーソル用:「昇順／降順」または「逆順」で並べ替え]] (sukemaru) 2020/07/08&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 2020/06/25&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&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 2021/01/20&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 2020/06/28&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文書のコンパイル]] (手石, isari) update 2020/10/16&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) 2020/12/12更新&lt;br /&gt;
*[[JSON整形]](Ovis) Create 2019/03/25&lt;br /&gt;
*[[JS フォーマット]]（JavaScript整形） (sukemaru) 2020/05/03&lt;br /&gt;
*[[ScriptRun]]（Scriptコードの実行）（fuka）2020/08/02&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;
:[[実験的マクロ・練習マクロなど|&amp;gt;&amp;gt;　別ページ]]&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/10/30&lt;br /&gt;
*[[ファイルロック (排他制御) 的なもの]] (PebblePot)&lt;br /&gt;
*[[Mery.iniのオプション値を取得]] ※組み込み関数 (sukemaru) last update 2020/05/14&lt;br /&gt;
*[[Mery本体のバージョンチェック]] ※組み込み関数 (sukemaru) 2019/04/17&lt;br /&gt;
*[[IO.Serialize() の JSON を参照する]] ※組み込み関数 (sukemaru) 2019/04/17&lt;br /&gt;
*[[ポップアップメニューを「n*十件ずつ」のサブメニューに自動分割する]] ※組み込み関数 (sukemaru) update 2020/05/28&lt;br /&gt;
*[[アクティブなタブのマクロを実行する]] (sukemaru) last update 2020/04/30&lt;br /&gt;
*[[コンパクトメニュー]] (sukemaru) last update 2020/03/29&lt;br /&gt;
*[[マクロメニュー]] (sukemaru) last update 2020/06/03&lt;br /&gt;
*[[Mery.his の履歴を整理]] (sukemaru) 2021/01/20&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
*[[キーアサイン集]] (ks, masme, sukemaru, 有志) last update 2020/05/22&lt;br /&gt;
*[[マテリアルデザインっぽいアイコンと『小マクロ集』]](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;br /&gt;
*[[マクロ用 定数一覧]] (sukemaru) update 2021/01/27&lt;/div&gt;</summary>
		<author><name>Sukemaru</name></author>
	</entry>
	<entry>
		<id>https://www.haijin-boys.com/wiki/index.php?title=%E3%83%9E%E3%82%AF%E3%83%AD%E7%94%A8_%E5%AE%9A%E6%95%B0%E4%B8%80%E8%A6%A7&amp;diff=5510</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%E7%94%A8_%E5%AE%9A%E6%95%B0%E4%B8%80%E8%A6%A7&amp;diff=5510"/>
		<updated>2021-01-27T13:59:44Z</updated>

		<summary type="html">&lt;p&gt;Sukemaru: 体裁を変更（節に分割）&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; &amp;lt;!-- sukemaru編, uploaded: 2021/01/22, modified: 2021/01/27  --&amp;gt; &lt;br /&gt;
～ Mery ver 3.1.0 （2021年1月の ver 3.2.5 まで変更なし）&lt;br /&gt;
&lt;br /&gt;
__toc__&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ExecuteCommandByID() メソッド用 定数一覧 ==&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;ref. 『plugin.h』&#039;&#039; https://github.com/haijinboys/mery-plugin-sdk/blob/master/SDK/C/Basic/plugin.h&lt;br /&gt;
&lt;br /&gt;
* じっさいの運用にあたっては、コードの可読性を考慮して&amp;lt;code&amp;gt;editor.ExecuteCommandByID( MEID_FILE_NEW = 2061 );&amp;lt;/code&amp;gt;のように記述するとよい。&amp;lt;br&amp;gt;（マクロの&amp;lt;code&amp;gt;editor.ExecuteCommandByID( id )&amp;lt;/code&amp;gt;メソッドでは『plugin.h』の&amp;lt;code&amp;gt;MEID_HOGE_FUGA&amp;lt;/code&amp;gt;を単独で定数リテラル値として利用することができない。 下の一覧では、「Pulguin.h」に&amp;lt;code&amp;gt;MEID_HOGE_FUGA&amp;lt;/code&amp;gt;が記載されていないものについては「Mery.ini」内でのコマンド名を入れてある）&lt;br /&gt;
* 日本語表記の &amp;quot;コマンド名&amp;quot; は、Mery ver 3.2.5 の ［ヘルプ］ &amp;gt;&amp;gt; ［キーボードマップ］ で表示されたもので記載しておいた。&amp;lt;br&amp;gt;標準ツールバーのメニュー内に表示されるラベルとは一部ことなる）&lt;br /&gt;
* ［マクロ］ メニュー内の一部のコマンドは、マクロから利用できない。&lt;br /&gt;
* じっさいにマクロから実行したときに&amp;lt;br&amp;gt;［ツール］ &amp;gt;&amp;gt; ［SQL整形］ コマンドの&amp;lt;code&amp;gt;MEID_TOOLS_SQL_FORMAT = 2179&amp;lt;/code&amp;gt;と&amp;lt;br&amp;gt;［ツール］ &amp;gt;&amp;gt; ［HTML Tidy］ &amp;gt;&amp;gt; ［ドキュメントの整形］ コマンドの&amp;lt;code&amp;gt;MEID_TOOLS_XML_FORMAT = 2180&amp;lt;/code&amp;gt;とが逆になる。&amp;lt;br&amp;gt;（『plugin.h』の記述ミスによるものとおもわれるが、下の一覧では『plugin.h』に記載されているまま収録してある）&lt;br /&gt;
* Mery ver 3.1.0 以降では&amp;lt;code&amp;gt;editor.QueryStatusByID( id )&amp;lt;/code&amp;gt;メソッドでメニュー項目の ✔ チェック状態も取得できるが、通常表示と無効状態（グレーアウト表示）の判別はできない。&amp;lt;br&amp;gt;（※ 戻り値の 0 ～ 3 は PopupMenu.Add() メソッドのフラグの値とは一致しない）&lt;br /&gt;
:* 戻り値&#039;&#039;&#039;&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;&#039;&#039;&#039;： 利用できない（Mery 本体のバージョンが古い）&lt;br /&gt;
:* 戻り値&#039;&#039;&#039;&amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt;&#039;&#039;&#039;： 実行できる（通常表示）または 無効状態（グレーアウト表示）&lt;br /&gt;
:* 戻り値&#039;&#039;&#039;&amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt;&#039;&#039;&#039;： ✔チェックつき + 無効（グレーアウト表示）&lt;br /&gt;
:* 戻り値&#039;&#039;&#039;&amp;lt;code&amp;gt;3&amp;lt;/code&amp;gt;&#039;&#039;&#039;： ✔チェックつき&lt;br /&gt;
*［ファイルから置換］ コマンドの ID は&amp;lt;code&amp;gt;2241&amp;lt;/code&amp;gt;と&amp;lt;code&amp;gt;2216&amp;lt;/code&amp;gt;のふたつがあり、マクロの&amp;lt;code&amp;gt;editor.ExecuteCommandByID()&amp;lt;/code&amp;gt;メソッドからは&amp;lt;code&amp;gt;MEID_SEARCH_REPLACE_IN_FILES = 2141&amp;lt;/code&amp;gt;のみが利用できる。&amp;lt;br&amp;gt;（&amp;lt;code&amp;gt;MEID_REPLACE_IN_FILES = 2216&amp;lt;/code&amp;gt;は、マクロから利用できない）&lt;br /&gt;
* MEID&amp;lt;code&amp;gt;2048&amp;lt;/code&amp;gt;～&amp;lt;code&amp;gt;2060&amp;lt;/code&amp;gt;は、トレイアイコンのポップアップメニュー内のコマンドで、マクロの&amp;lt;code&amp;gt;editor.ExecuteCommandByID()&amp;lt;/code&amp;gt;メソッドからは利用できない。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
-----&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ExecuteCommandByID( id ) メソッド用の定数 &#039;&#039;&#039;&#039;&#039;&amp;lt;code&amp;gt;id&amp;lt;/code&amp;gt;&#039;&#039;&#039;&#039;&#039; の一覧&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
/**&lt;br /&gt;
 * ExecuteCommandByID() メソッド用 定数一覧&lt;br /&gt;
 * https://github.com/haijinboys/mery-plugin-sdk/blob/master/SDK/C/Basic/plugin.h&lt;br /&gt;
 * &lt;br /&gt;
 * ※ 2048 ～ 2060 と 2216 は、マクロの ExecuteCommandByID() から利用できない。&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
// MEID_NEW = 2048             		// 新規作成&lt;br /&gt;
// MEID_NEW_PASTE = 2049       		// 新規作成して貼り付け&lt;br /&gt;
// MEID_NEW_PASTE_QUOTES = 2050		// 新規作成して引用つき貼り付け&lt;br /&gt;
// MEID_OPEN = 2051            		// 開く&lt;br /&gt;
// MEID_FIND_IN_FILES = 2052   		// ファイルから検索...&lt;br /&gt;
// MEID_SAVE_ALL = 2053        		// すべて保存&lt;br /&gt;
// MEID_SAVE_CLOSE_ALL = 2054  		// すべて保存して閉じる&lt;br /&gt;
// MEID_CLOSE_ALL = 2055       		// すべて閉じる&lt;br /&gt;
// MEID_CASCADE = 2056         		// 重ねて表示&lt;br /&gt;
// MEID_TILE_HORZ = 2057       		// 上下に並べて表示&lt;br /&gt;
// MEID_TILE_VERT = 2058       		// 左右に並べて表示&lt;br /&gt;
// MEID_MINIMIZE_ALL = 2059    		// すべて最小化&lt;br /&gt;
// MEID_CLOSE_TRAY_ICON = 2060 		// トレイアイコンを閉じる&lt;br /&gt;
&lt;br /&gt;
editor.ExecuteCommandByID( 2061 );	// MEID_FILE_NEW = 2061                       	&amp;quot;新規作成&amp;quot;&lt;br /&gt;
editor.ExecuteCommandByID( 2062 );	// MEID_FILE_OPEN = 2062                      	&amp;quot;開く&amp;quot;&lt;br /&gt;
editor.ExecuteCommandByID( 2063 );	// MEID_FILE_CLOSE_OPEN = 2063                	&amp;quot;閉じて開く&amp;quot;&lt;br /&gt;
editor.ExecuteCommandByID( 2064 );	// MEID_FILE_SAVE = 2064                      	&amp;quot;上書き保存&amp;quot;&lt;br /&gt;
editor.ExecuteCommandByID( 2065 );	// MEID_FILE_SAVE_AS = 2065                   	&amp;quot;名前を付けて保存&amp;quot;&lt;br /&gt;
editor.ExecuteCommandByID( 2066 );	// MEID_FILE_SAVE_ALL = 2066                  	&amp;quot;すべて保存&amp;quot;&lt;br /&gt;
editor.ExecuteCommandByID( 2067 );	// MEID_FILE_INSERT = 2067                    	&amp;quot;挿入&amp;quot;&lt;br /&gt;
editor.ExecuteCommandByID( 2068 );	// MEID_FILE_RELOAD_AUTO_SELECT = 2068        	&amp;quot;自動選択で読み直し&amp;quot;&lt;br /&gt;
editor.ExecuteCommandByID( 2069 );	// MEID_FILE_RELOAD_UTF16LE = 2069            	&amp;quot;UTF-16LE で読み直し&amp;quot;&lt;br /&gt;
editor.ExecuteCommandByID( 2070 );	// MEID_FILE_RELOAD_UTF16BE = 2070            	&amp;quot;UTF-16BE で読み直し&amp;quot;&lt;br /&gt;
editor.ExecuteCommandByID( 2071 );	// MEID_FILE_RELOAD_UTF8 = 2071               	&amp;quot;UTF-8 で読み直し&amp;quot;&lt;br /&gt;
editor.ExecuteCommandByID( 2072 );	// MEID_FILE_RELOAD_UTF7 = 2072               	&amp;quot;UTF-7 で読み直し&amp;quot;&lt;br /&gt;
editor.ExecuteCommandByID( 2073 );	// MEID_FILE_RELOAD_ARABIC = 2073             	&amp;quot;アラビア語で読み直し&amp;quot;&lt;br /&gt;
editor.ExecuteCommandByID( 2074 );	// MEID_FILE_RELOAD_BALTIC = 2074             	&amp;quot;バルト言語で読み直し&amp;quot;&lt;br /&gt;
editor.ExecuteCommandByID( 2075 );	// MEID_FILE_RELOAD_CENTRAL_EUROPEAN = 2075   	&amp;quot;中央ヨーロッパ言語で読み直し&amp;quot;&lt;br /&gt;
editor.ExecuteCommandByID( 2076 );	// MEID_FILE_RELOAD_CHINESE_SIMPLIFIED = 2076 	&amp;quot;簡体字中国語 (GB2312) で読み直し&amp;quot;&lt;br /&gt;
editor.ExecuteCommandByID( 2077 );	// MEID_FILE_RELOAD_CHINESE_TRADITIONAL = 2077	&amp;quot;繁体字中国語 (Big5) で読み直し&amp;quot;&lt;br /&gt;
editor.ExecuteCommandByID( 2078 );	// MEID_FILE_RELOAD_CYRILLIC = 2078           	&amp;quot;キリル言語で読み直し&amp;quot;&lt;br /&gt;
editor.ExecuteCommandByID( 2079 );	// MEID_FILE_RELOAD_GREEK = 2079              	&amp;quot;ギリシャ語で読み直し&amp;quot;&lt;br /&gt;
editor.ExecuteCommandByID( 2080 );	// MEID_FILE_RELOAD_HEBREW = 2080             	&amp;quot;ヘブライ語で読み直し&amp;quot;&lt;br /&gt;
editor.ExecuteCommandByID( 2081 );	// MEID_FILE_RELOAD_EUC = 2081                	&amp;quot;日本語 (EUC) で読み直し&amp;quot;&lt;br /&gt;
editor.ExecuteCommandByID( 2082 );	// MEID_FILE_RELOAD_JIS = 2082                	&amp;quot;日本語 (JIS) で読み直し&amp;quot;&lt;br /&gt;
editor.ExecuteCommandByID( 2083 );	// MEID_FILE_RELOAD_SHIFTJIS = 2083           	&amp;quot;日本語 (シフト JIS) で読み直し&amp;quot;&lt;br /&gt;
editor.ExecuteCommandByID( 2084 );	// MEID_FILE_RELOAD_KOREAN = 2084             	&amp;quot;韓国語で読み直し&amp;quot;&lt;br /&gt;
editor.ExecuteCommandByID( 2085 );	// MEID_FILE_RELOAD_THAI = 2085               	&amp;quot;タイ語で読み直し&amp;quot;&lt;br /&gt;
editor.ExecuteCommandByID( 2086 );	// MEID_FILE_RELOAD_TURKISH = 2086            	&amp;quot;トルコ語で読み直し&amp;quot;&lt;br /&gt;
editor.ExecuteCommandByID( 2087 );	// MEID_FILE_RELOAD_VIETNAMESE = 2087         	&amp;quot;ベトナム語で読み直し&amp;quot;&lt;br /&gt;
editor.ExecuteCommandByID( 2088 );	// MEID_FILE_RELOAD_WESTERN_EUROPEAN = 2088   	&amp;quot;西ヨーロッパ言語で読み直し&amp;quot;&lt;br /&gt;
editor.ExecuteCommandByID( 2089 );	// MEID_FILE_LINE_ENDING_CRLF = 2089          	&amp;quot;CR+LF (Windows) で改行&amp;quot;&lt;br /&gt;
editor.ExecuteCommandByID( 2090 );	// MEID_FILE_LINE_ENDING_CR = 2090            	&amp;quot;CR (Macintosh) で改行&amp;quot;&lt;br /&gt;
editor.ExecuteCommandByID( 2091 );	// MEID_FILE_LINE_ENDING_LF = 2091            	&amp;quot;LF (UNIX) で改行&amp;quot;&lt;br /&gt;
editor.ExecuteCommandByID( 2092 );	// MEID_FILE_PRINT = 2092                     	&amp;quot;印刷&amp;quot;&lt;br /&gt;
editor.ExecuteCommandByID( 2093 );	// MEID_FILE_PRINT_PREVIEW = 2093             	&amp;quot;印刷プレビュー&amp;quot;&lt;br /&gt;
editor.ExecuteCommandByID( 2094 );	// MEID_FILE_SAVE_CLOSE = 2094                	&amp;quot;保存して閉じる&amp;quot;&lt;br /&gt;
editor.ExecuteCommandByID( 2095 );	// MEID_FILE_CLOSE = 2095                     	&amp;quot;閉じる&amp;quot;&lt;br /&gt;
editor.ExecuteCommandByID( 2096 );	// MEID_FILE_SAVE_CLOSE_ALL = 2096            	&amp;quot;すべて保存して閉じる&amp;quot;&lt;br /&gt;
editor.ExecuteCommandByID( 2097 );	// MEID_FILE_CLOSE_ALL = 2097                 	&amp;quot;すべて閉じる&amp;quot;&lt;br /&gt;
editor.ExecuteCommandByID( 2098 );	// MEID_EDIT_UNDO = 2098                      	&amp;quot;元に戻す&amp;quot;&lt;br /&gt;
editor.ExecuteCommandByID( 2099 );	// MEID_EDIT_REDO = 2099                      	&amp;quot;やり直し&amp;quot;&lt;br /&gt;
editor.ExecuteCommandByID( 2100 );	// MEID_EDIT_CUT = 2100                       	&amp;quot;切り取り&amp;quot;&lt;br /&gt;
editor.ExecuteCommandByID( 2101 );	// MEID_EDIT_COPY = 2101                      	&amp;quot;コピー&amp;quot;&lt;br /&gt;
editor.ExecuteCommandByID( 2102 );	// MEID_EDIT_COPY_QUOTES = 2102               	&amp;quot;引用付きコピー&amp;quot;&lt;br /&gt;
editor.ExecuteCommandByID( 2103 );	// MEID_EDIT_PASTE = 2103                     	&amp;quot;貼り付け&amp;quot;&lt;br /&gt;
editor.ExecuteCommandByID( 2104 );	// MEID_EDIT_DELETE = 2104                    	&amp;quot;削除&amp;quot;&lt;br /&gt;
editor.ExecuteCommandByID( 2105 );	// MEID_EDIT_SELECT_ALL = 2105                	&amp;quot;すべて選択&amp;quot;&lt;br /&gt;
editor.ExecuteCommandByID( 2106 );	// MEID_EDIT_DATE_TIME = 2106                 	&amp;quot;日付と時刻&amp;quot;&lt;br /&gt;
editor.ExecuteCommandByID( 2107 );	// MEID_EDIT_GO_TO_LINE = 2107                	&amp;quot;行へ移動&amp;quot;&lt;br /&gt;
editor.ExecuteCommandByID( 2108 );	// MEID_EDIT_GO_TO_FILE = 2108                	&amp;quot;ファイルへ移動&amp;quot;&lt;br /&gt;
editor.ExecuteCommandByID( 2109 );	// MEID_EDIT_READ_ONLY = 2109                 	&amp;quot;書き換え禁止&amp;quot;&lt;br /&gt;
editor.ExecuteCommandByID( 2110 );	// MEID_EDIT_INSERT_NEW_LINES = 2110          	&amp;quot;改行を挿入&amp;quot;&lt;br /&gt;
editor.ExecuteCommandByID( 2111 );	// MEID_EDIT_REMOVE_NEW_LINES = 2111          	&amp;quot;改行を削除&amp;quot;&lt;br /&gt;
editor.ExecuteCommandByID( 2112 );	// MEID_EDIT_SPLIT_LINES = 2112               	&amp;quot;行の分割&amp;quot;&lt;br /&gt;
editor.ExecuteCommandByID( 2113 );	// MEID_EDIT_JOIN_LINES = 2113                	&amp;quot;行の結合&amp;quot;&lt;br /&gt;
editor.ExecuteCommandByID( 2114 );	// MEID_EDIT_UPPER_CASE = 2114                	&amp;quot;大文字に変換&amp;quot;&lt;br /&gt;
editor.ExecuteCommandByID( 2115 );	// MEID_EDIT_LOWER_CASE = 2115                	&amp;quot;小文字に変換&amp;quot;&lt;br /&gt;
editor.ExecuteCommandByID( 2116 );	// MEID_EDIT_CAPITALIZE = 2116                	&amp;quot;単語の最初の文字を大文字に変換&amp;quot;&lt;br /&gt;
editor.ExecuteCommandByID( 2117 );	// MEID_EDIT_HALF_WIDTH = 2117                	&amp;quot;半角に変換&amp;quot;&lt;br /&gt;
editor.ExecuteCommandByID( 2118 );	// MEID_EDIT_FULL_WIDTH = 2118                	&amp;quot;全角に変換&amp;quot;&lt;br /&gt;
editor.ExecuteCommandByID( 2119 );	// MEID_EDIT_TABIFY = 2119                    	&amp;quot;空白をタブに変換&amp;quot;&lt;br /&gt;
editor.ExecuteCommandByID( 2120 );	// MEID_EDIT_UNTABIFY = 2120                  	&amp;quot;タブを空白に変換&amp;quot;&lt;br /&gt;
editor.ExecuteCommandByID( 2121 );	// MEID_EDIT_INDENT = 2121                    	&amp;quot;インデント&amp;quot;&lt;br /&gt;
editor.ExecuteCommandByID( 2122 );	// MEID_EDIT_UNINDENT = 2122                  	&amp;quot;逆インデント&amp;quot;&lt;br /&gt;
editor.ExecuteCommandByID( 2124 );	// MEID_EDIT_BASE64_DECODE = 2124             	&amp;quot;Base64 デコード&amp;quot;&lt;br /&gt;
editor.ExecuteCommandByID( 2123 );	// MEID_EDIT_RECONVERT = 2123                 	&amp;quot;再変換&amp;quot;&lt;br /&gt;
editor.ExecuteCommandByID( 2125 );	// MEID_EDIT_INSERT = 2125                    	&amp;quot;挿入/上書の切り替え&amp;quot;&lt;br /&gt;
editor.ExecuteCommandByID( 2126 );	// MEID_EDIT_TOGGLE_BOOKMARK = 2126           	&amp;quot;ブックマークを設定/解除&amp;quot;&lt;br /&gt;
editor.ExecuteCommandByID( 2127 );	// MEID_EDIT_NEXT_BOOKMARK = 2127             	&amp;quot;次のブックマーク&amp;quot;&lt;br /&gt;
editor.ExecuteCommandByID( 2128 );	// MEID_EDIT_PREV_BOOKMARK = 2128             	&amp;quot;前のブックマーク&amp;quot;&lt;br /&gt;
editor.ExecuteCommandByID( 2129 );	// MEID_EDIT_CLEAR_BOOKMARK = 2129            	&amp;quot;ブックマークをクリア&amp;quot;&lt;br /&gt;
editor.ExecuteCommandByID( 2130 );	// MEID_EDIT_TOGGLE_SPELL = 2130              	&amp;quot;スペルチェック&amp;quot;&lt;br /&gt;
editor.ExecuteCommandByID( 2131 );	// MEID_EDIT_NEXT_SPELL = 2131                	&amp;quot;次のスペルミス&amp;quot;&lt;br /&gt;
editor.ExecuteCommandByID( 2132 );	// MEID_EDIT_PREV_SPELL = 2132                	&amp;quot;前のスペルミス&amp;quot;&lt;br /&gt;
editor.ExecuteCommandByID( 2133 );	// MEID_SEARCH_FIND = 2133                    	&amp;quot;検索&amp;quot;&lt;br /&gt;
editor.ExecuteCommandByID( 2134 );	// MEID_SEARCH_NEXT = 2134                    	&amp;quot;次を検索&amp;quot;&lt;br /&gt;
editor.ExecuteCommandByID( 2135 );	// MEID_SEARCH_PREV = 2135                    	&amp;quot;前を検索&amp;quot;&lt;br /&gt;
editor.ExecuteCommandByID( 2136 );	// MEID_SEARCH_NEXT_WORD = 2136               	&amp;quot;次の文字列を検索&amp;quot;&lt;br /&gt;
editor.ExecuteCommandByID( 2137 );	// MEID_SEARCH_PREV_WORD = 2137               	&amp;quot;前の文字列を検索&amp;quot;&lt;br /&gt;
editor.ExecuteCommandByID( 2138 );	// MEID_SEARCH_REPLACE = 2138                 	&amp;quot;置換&amp;quot;&lt;br /&gt;
editor.ExecuteCommandByID( 2139 );	// MEID_SEARCH_ERASE_FIND_HIGHLIGHT = 2139    	&amp;quot;検索文字列の強調を解除&amp;quot;&lt;br /&gt;
editor.ExecuteCommandByID( 2140 );	// MEID_SEARCH_FIND_IN_FILES = 2140           	&amp;quot;ファイルから検索&amp;quot;&lt;br /&gt;
editor.ExecuteCommandByID( 2141 );	// MEID_SEARCH_REPLACE_IN_FILES = 2141        	&amp;quot;ファイルから置換&amp;quot;&lt;br /&gt;
editor.ExecuteCommandByID( 2142 );	// MEID_SEARCH_GOOGLE = 2142                  	&amp;quot;Google で検索&amp;quot;&lt;br /&gt;
editor.ExecuteCommandByID( 2143 );	// MEID_SEARCH_WIKIPEDIA = 2143               	&amp;quot;Wikipedia で検索&amp;quot;&lt;br /&gt;
editor.ExecuteCommandByID( 2144 );	// MEID_VIEW_MODE_CUSTOMIZE = 2144            	&amp;quot;編集モードの設定&amp;quot;&lt;br /&gt;
editor.ExecuteCommandByID( 2145 );	// MEID_VIEW_INVERT_COLOR = 2145              	&amp;quot;色の反転&amp;quot;&lt;br /&gt;
editor.ExecuteCommandByID( 2146 );	// MEID_VIEW_WRAP_NONE = 2146                 	&amp;quot;折り返さない&amp;quot;&lt;br /&gt;
editor.ExecuteCommandByID( 2147 );	// MEID_VIEW_WRAP_BY_CHAR = 2147              	&amp;quot;指定文字数で折り返し&amp;quot;&lt;br /&gt;
editor.ExecuteCommandByID( 2148 );	// MEID_VIEW_WRAP_BY_WINDOW = 2148            	&amp;quot;ウィンドウの右端で折り返し&amp;quot;&lt;br /&gt;
editor.ExecuteCommandByID( 2149 );	// MEID_VIEW_SHOW_LINE_NUMBERS = 2149         	&amp;quot;行番号&amp;quot;&lt;br /&gt;
editor.ExecuteCommandByID( 2150 );	// MEID_VIEW_SHOW_RULER = 2150                	&amp;quot;ルーラー&amp;quot;&lt;br /&gt;
editor.ExecuteCommandByID( 2151 );	// MEID_VIEW_SHOW_CRLF = 2151                 	&amp;quot;改行&amp;quot;&lt;br /&gt;
editor.ExecuteCommandByID( 2152 );	// MEID_VIEW_SHOW_WRAP = 2152                 	&amp;quot;折り返し&amp;quot;&lt;br /&gt;
editor.ExecuteCommandByID( 2153 );	// MEID_VIEW_SHOW_EOF = 2153                  	&amp;quot;EOF&amp;quot;&lt;br /&gt;
editor.ExecuteCommandByID( 2154 );	// MEID_VIEW_SHOW_TABS = 2154                 	&amp;quot;タブ&amp;quot;&lt;br /&gt;
editor.ExecuteCommandByID( 2155 );	// MEID_VIEW_SHOW_SB_SPACES = 2155            	&amp;quot;半角空白&amp;quot;&lt;br /&gt;
editor.ExecuteCommandByID( 2156 );	// MEID_VIEW_SHOW_DB_SPACES = 2156            	&amp;quot;全角空白&amp;quot;&lt;br /&gt;
editor.ExecuteCommandByID( 2157 );	// MEID_VIEW_CRLF_DIFFERENT = 2157            	&amp;quot;CR と LF を区別して表示&amp;quot;&lt;br /&gt;
editor.ExecuteCommandByID( 2158 );	// MEID_VIEW_STANDARD_BAR = 2158              	&amp;quot;標準 バー&amp;quot;&lt;br /&gt;
editor.ExecuteCommandByID( 2159 );	// MEID_VIEW_MACROS_BAR = 2159                	&amp;quot;マクロ バー&amp;quot;&lt;br /&gt;
editor.ExecuteCommandByID( 2160 );	// MEID_VIEW_PLUGINS_BAR = 2160               	&amp;quot;プラグイン バー&amp;quot;&lt;br /&gt;
editor.ExecuteCommandByID( 2161 );	// MEID_VIEW_TOOLS_BAR = 2161                 	&amp;quot;外部ツール バー&amp;quot;&lt;br /&gt;
editor.ExecuteCommandByID( 2162 );	// MEID_VIEW_TOOL_BAR_TITLES = 2162           	&amp;quot;ツール バーのタイトル&amp;quot;&lt;br /&gt;
editor.ExecuteCommandByID( 2163 );	// MEID_VIEW_LOCK_TOOL_BARS = 2163            	&amp;quot;ツール バーを固定する&amp;quot;&lt;br /&gt;
editor.ExecuteCommandByID( 2164 );	// MEID_VIEW_TOOL_BAR_CUSTOMIZE = 2164        	&amp;quot;ツール バーのカスタマイズ&amp;quot;&lt;br /&gt;
editor.ExecuteCommandByID( 2165 );	// MEID_VIEW_STATUS_BAR = 2165                	&amp;quot;ステータス バー&amp;quot;&lt;br /&gt;
editor.ExecuteCommandByID( 2166 );	// MEID_VIEW_OUTPUT_BAR = 2166                	&amp;quot;アウトプット バー&amp;quot;&lt;br /&gt;
editor.ExecuteCommandByID( 2167 );	// MEID_VIEW_INC_FONT_SIZE = 2167             	&amp;quot;大きいフォントサイズ&amp;quot;&lt;br /&gt;
editor.ExecuteCommandByID( 2168 );	// MEID_VIEW_DEC_FONT_SIZE = 2168             	&amp;quot;小さいフォントサイズ&amp;quot;&lt;br /&gt;
editor.ExecuteCommandByID( 2169 );	// MEID_VIEW_FONT_CUSTOMIZE = 2169            	&amp;quot;フォントの設定&amp;quot;&lt;br /&gt;
editor.ExecuteCommandByID( 2170 );	// MEID_MACROS_RECORD = 2170                  	&amp;quot;マクロの記録/停止&amp;quot;&lt;br /&gt;
editor.ExecuteCommandByID( 2171 );	// MEID_MACROS_RUN = 2171                     	&amp;quot;マクロの実行&amp;quot;&lt;br /&gt;
editor.ExecuteCommandByID( 2172 );	// MEID_MACROS_SAVE = 2172                    	&amp;quot;マクロを保存&amp;quot;&lt;br /&gt;
editor.ExecuteCommandByID( 2173 );	// MEID_MACROS_EDIT = 2173                    	&amp;quot;マクロを編集&amp;quot;&lt;br /&gt;
editor.ExecuteCommandByID( 2174 );	// MEID_MACROS_SELECT = 2174                  	&amp;quot;マクロを選択&amp;quot;&lt;br /&gt;
editor.ExecuteCommandByID( 2175 );	// MEID_MACROS_SELECT_THIS = 2175             	&amp;quot;このマクロを選択&amp;quot;&lt;br /&gt;
editor.ExecuteCommandByID( 2176 );	// MEID_MACROS_CUSTOMIZE = 2176               	&amp;quot;マクロのカスタマイズ&amp;quot;&lt;br /&gt;
editor.ExecuteCommandByID( 2177 );	// MEID_TOOLS_OPTIONS = 2177                  	&amp;quot;オプション&amp;quot;&lt;br /&gt;
editor.ExecuteCommandByID( 2178 );	// MEID_TOOLS_COMPLETION = 2178               	&amp;quot;単語補完&amp;quot;&lt;br /&gt;
editor.ExecuteCommandByID( 2179 );	// MEID_TOOLS_SQL_FORMAT = 2179               	&amp;quot;SQL 整形&amp;quot;&lt;br /&gt;
editor.ExecuteCommandByID( 2180 );	// MEID_TOOLS_XML_FORMAT = 2180               	&amp;quot;ドキュメントの整形&amp;quot;&lt;br /&gt;
editor.ExecuteCommandByID( 2181 );	// MEID_TOOLS_PLUGIN_CUSTOMIZE = 2181         	&amp;quot;プラグインの設定&amp;quot;&lt;br /&gt;
editor.ExecuteCommandByID( 2182 );	// MEID_TOOLS_TOOL_CUSTOMIZE = 2182           	&amp;quot;外部ツールの設定&amp;quot;&lt;br /&gt;
editor.ExecuteCommandByID( 2183 );	// MEID_TOOLS_TERMINATE_TOOL = 2183           	&amp;quot;ツール ジョブの中止&amp;quot;&lt;br /&gt;
editor.ExecuteCommandByID( 2184 );	// MEID_TOOLS_POPUP_MENU_CUSTOMIZE = 2184     	&amp;quot;ポップアップメニューの設定&amp;quot;&lt;br /&gt;
editor.ExecuteCommandByID( 2185 );	// MEID_WINDOW_ALWAYS_TOP = 2185              	&amp;quot;常に最上位&amp;quot;&lt;br /&gt;
editor.ExecuteCommandByID( 2186 );	// MEID_WINDOW_SPLIT_HORZ = 2186              	&amp;quot;上下に分割&amp;quot;&lt;br /&gt;
editor.ExecuteCommandByID( 2187 );	// MEID_WINDOW_NEXT_PANE = 2187               	&amp;quot;次のペイン&amp;quot;&lt;br /&gt;
editor.ExecuteCommandByID( 2188 );	// MEID_WINDOW_PREV_PANE = 2188               	&amp;quot;前のペイン&amp;quot;&lt;br /&gt;
editor.ExecuteCommandByID( 2189 );	// MEID_WINDOW_ACTIVE_PANE = 2189             	&amp;quot;アクティブなペイン&amp;quot;&lt;br /&gt;
editor.ExecuteCommandByID( 2190 );	// MEID_WINDOW_COMBINE = 2190                 	&amp;quot;タブを有効にする&amp;quot;&lt;br /&gt;
editor.ExecuteCommandByID( 2191 );	// MEID_WINDOW_CASCADE = 2191                 	&amp;quot;重ねて表示&amp;quot;&lt;br /&gt;
editor.ExecuteCommandByID( 2192 );	// MEID_WINDOW_TILE_HORZ = 2192               	&amp;quot;上下に並べて表示&amp;quot;&lt;br /&gt;
editor.ExecuteCommandByID( 2193 );	// MEID_WINDOW_TILE_VERT = 2193               	&amp;quot;左右に並べて表示&amp;quot;&lt;br /&gt;
editor.ExecuteCommandByID( 2194 );	// MEID_WINDOW_MINIMIZE_ALL = 2194            	&amp;quot;すべて最小化&amp;quot;&lt;br /&gt;
editor.ExecuteCommandByID( 2195 );	// MEID_WINDOW_NEXT = 2195                    	&amp;quot;次の文書&amp;quot;&lt;br /&gt;
editor.ExecuteCommandByID( 2196 );	// MEID_WINDOW_PREV = 2196                    	&amp;quot;前の文書&amp;quot;&lt;br /&gt;
editor.ExecuteCommandByID( 2197 );	// MEID_HELP_ONLINE = 2197                    	&amp;quot;オンラインヘルプ&amp;quot;&lt;br /&gt;
editor.ExecuteCommandByID( 2198 );	// MEID_HELP_KEYBOARD_MAP = 2198              	&amp;quot;キーボードマップ&amp;quot;&lt;br /&gt;
editor.ExecuteCommandByID( 2199 );	// MEID_HELP_ABOUT = 2199                     	&amp;quot;バージョン情報&amp;quot;&lt;br /&gt;
editor.ExecuteCommandByID( 2200 );	// MEID_EDIT_PASTE_QUOTES = 2200              	&amp;quot;引用付き貼り付け &amp;quot;                         （2.2.5 ～）&lt;br /&gt;
editor.ExecuteCommandByID( 2201 );	// MEID_EDIT_COPY_LINK = 2201                 	&amp;quot;リンクをコピー&amp;quot;                            （2.2.5 ～）&lt;br /&gt;
editor.ExecuteCommandByID( 2202 );	// MEID_EDIT_OPEN_LINK = 2202                 	&amp;quot;リンクを開く&amp;quot;                              （2.2.5 ～）&lt;br /&gt;
editor.ExecuteCommandByID( 2203 );	// MEID_VIEW_FULL_SCREEN = 2203               	&amp;quot;全画面表示&amp;quot;                                （2.4.0 ～）&lt;br /&gt;
editor.ExecuteCommandByID( 2204 );	// MEID_MACROS_RUN_OPTIONS = 2204             	&amp;quot;一時オプションを設定してマクロを実行&amp;quot;      （2.4.0 ～）&lt;br /&gt;
editor.ExecuteCommandByID( 2205 );	// MEID_VIEW_RESET_FONT_SIZE = 2205           	&amp;quot;フォントサイズをリセット&amp;quot;                  （2.4.1 ～）&lt;br /&gt;
editor.ExecuteCommandByID( 2206 );	// MEID_VIEW_SET_DEFAULT_FONT_SIZE = 2206     	&amp;quot;現在のフォントサイズを既定に設定&amp;quot;          （2.4.1 ～）&lt;br /&gt;
editor.ExecuteCommandByID( 2207 );	// MEID_EDIT_SPELL_ALL = 2207                 	&amp;quot;すべてのスペルチェック&amp;quot;                    （2.4.3 ～）&lt;br /&gt;
editor.ExecuteCommandByID( 2208 );	// MEID_EDIT_SPELL_SINGLE_QUOTES = 2208       	&amp;quot;1 重引用符で囲まれた文字列のスペルチェック&amp;quot;（2.4.3 ～）&lt;br /&gt;
editor.ExecuteCommandByID( 2209 );	// MEID_EDIT_SPELL_DOUBLE_QUOTES = 2209       	&amp;quot;2 重引用符で囲まれた文字列のスペルチェック&amp;quot;（2.4.3 ～）&lt;br /&gt;
editor.ExecuteCommandByID( 2210 );	// MEID_EDIT_SPELL_COMMENTS = 2210            	&amp;quot;コメントのスペルチェック&amp;quot;                  （2.4.3 ～）&lt;br /&gt;
editor.ExecuteCommandByID( 2211 );	// MEID_EDIT_SPELL_SCRIPT = 2211              	&amp;quot;スクリプトのスペルチェック&amp;quot;                （2.4.3 ～）&lt;br /&gt;
editor.ExecuteCommandByID( 2212 );	// MEID_EDIT_SPELL_TAGS = 2212                	&amp;quot;タグのスペルチェック&amp;quot;                      （2.4.3 ～）&lt;br /&gt;
editor.ExecuteCommandByID( 2213 );	// MEID_EDIT_SPELL_HIGHLIGHT = 2213           	&amp;quot;強調文字列のスペルチェック&amp;quot;                （2.4.3 ～）&lt;br /&gt;
editor.ExecuteCommandByID( 2214 );	// MEID_EDIT_SPELL_HYPERLINK = 2214           	&amp;quot;ハイパーリンクのスペルチェック&amp;quot;            （2.4.3 ～）&lt;br /&gt;
editor.ExecuteCommandByID( 2215 );	// MEID_EDIT_SPELL_OTHER = 2215               	&amp;quot;その他のスペルチェック&amp;quot;                    （2.4.3 ～）&lt;br /&gt;
// editor.QueryStatusByID( 2216 );	// MEID_REPLACE_IN_FILES = 2216               	&amp;quot;× ファイルから置換 &amp;quot;                      （2.4.8 ～）&lt;br /&gt;
editor.ExecuteCommandByID( 2217 );	// MEID_EDIT_CUT_LINE = 2217                  	&amp;quot;行切り取り&amp;quot;                                （2.5.0 ～）&lt;br /&gt;
editor.ExecuteCommandByID( 2218 );	// MEID_EDIT_COPY_LINE = 2218                 	&amp;quot;行コピー&amp;quot;                                  （2.5.0 ～）&lt;br /&gt;
editor.ExecuteCommandByID( 2219 );	// MEID_EDIT_DELETE_LINE = 2219               	&amp;quot;行削除&amp;quot;                                    （2.5.0 ～）&lt;br /&gt;
editor.ExecuteCommandByID( 2220 );	// MEID_EDIT_DELETE_RIGHT_LINE = 2220         	&amp;quot;行右削除&amp;quot;                                  （2.5.0 ～）&lt;br /&gt;
editor.ExecuteCommandByID( 2221 );	// MEID_EDIT_DELETE_LEFT_LINE = 2221          	&amp;quot;行左削除&amp;quot;                                  （2.5.0 ～）&lt;br /&gt;
editor.ExecuteCommandByID( 2222 );	// MEID_EDIT_DELETE_WORD = 2222               	&amp;quot;単語の削除&amp;quot;                                （2.5.0 ～）&lt;br /&gt;
editor.ExecuteCommandByID( 2223 );	// MEID_EDIT_DELETE_RIGHT_WORD = 2223         	&amp;quot;単語右削除&amp;quot;                                （2.5.0 ～）&lt;br /&gt;
editor.ExecuteCommandByID( 2224 );	// MEID_EDIT_DELETE_LEFT_WORD = 2224          	&amp;quot;単語左削除&amp;quot;                                （2.5.0 ～）&lt;br /&gt;
editor.ExecuteCommandByID( 2225 );	// MEID_TOOLS_HTML_CHECK_ERRORS = 2225        	&amp;quot;ドキュメントのエラーをチェック&amp;quot;            （2.5.0 ～）&lt;br /&gt;
editor.ExecuteCommandByID( 2226 );	// MEID_WINDOW_SPLIT_VERT = 2226              	&amp;quot;左右に分割&amp;quot;                                （2.5.0 ～）&lt;br /&gt;
editor.ExecuteCommandByID( 2227 );	// MEID_VIEW_MARKERS_BAR = 2227               	&amp;quot;マーカー バー&amp;quot;                             （2.6.1 ～）&lt;br /&gt;
editor.ExecuteCommandByID( 2228 );	// MEID_VIEW_SMALL_ICONS = 2228               	&amp;quot;小アイコン&amp;quot;                                （2.6.1 ～）&lt;br /&gt;
editor.ExecuteCommandByID( 2229 );	// MEID_VIEW_MEDIUM_ICONS = 2229              	&amp;quot;中アイコン&amp;quot;                                （2.6.1 ～）&lt;br /&gt;
editor.ExecuteCommandByID( 2230 );	// MEID_VIEW_LARGE_ICONS = 2230               	&amp;quot;大アイコン&amp;quot;                                （2.6.1 ～）&lt;br /&gt;
editor.ExecuteCommandByID( 2231 );	// MEID_VIEW_EXTRA_LARGE_ICONS = 2231         	&amp;quot;特大アイコン&amp;quot;                              （2.6.1 ～）&lt;br /&gt;
editor.ExecuteCommandByID( 2232 );	// MEID_VIEW_ADD_REMOVE_MARKER = 2232         	&amp;quot;マーカーに追加/削除&amp;quot;                       （2.6.1 ～）&lt;br /&gt;
editor.ExecuteCommandByID( 2233 );	// MEID_VIEW_MARKER_ENABLE_ALL = 2233         	&amp;quot;すべてのマーカーを有効にする&amp;quot;              （2.6.1 ～）&lt;br /&gt;
editor.ExecuteCommandByID( 2234 );	// MEID_VIEW_MARKER_DISABLE_ALL = 2234        	&amp;quot;すべてのマーカーを無効にする&amp;quot;              （2.6.1 ～）&lt;br /&gt;
editor.ExecuteCommandByID( 2235 );	// MEID_VIEW_MARKER_DELETE_ALL = 2235         	&amp;quot;すべてのマーカーを削除する&amp;quot;                （2.6.1 ～）&lt;br /&gt;
editor.ExecuteCommandByID( 2236 );	// MEID_VIEW_TOGGLE_AUTO_MARKER = 2236        	&amp;quot;自動マーカー&amp;quot;                              （2.6.1 ～）&lt;br /&gt;
editor.ExecuteCommandByID( 2237 );	// MEID_VIEW_MARKER_CUSTOMIZE = 2237          	&amp;quot;マーカーの設定&amp;quot;                            （2.6.1 ～）&lt;br /&gt;
editor.ExecuteCommandByID( 2238 );	// MEID_VIEW_VERTICAL = 2238                  	&amp;quot;縦書き&amp;quot;                                    （2.6.5 ～）&lt;br /&gt;
editor.ExecuteCommandByID( 2239 );	// MEID_EDIT_BASE64_ENCODE = 2239             	&amp;quot;Base64 エンコード&amp;quot;                         （2.6.6 ～）&lt;br /&gt;
editor.ExecuteCommandByID( 2240 );	// MEID_FILE_AUTO_SAVE = 2240                 	&amp;quot;自動保存&amp;quot;                                  （2.6.9 ～）&lt;br /&gt;
editor.ExecuteCommandByID( 2241 );	// MEID_EDIT_GO_TO_CHANGED = 2241             	&amp;quot;最後に編集した位置へ移動&amp;quot;                  （2.6.9 ～）&lt;br /&gt;
editor.ExecuteCommandByID( 2242 );	// MEID_VIEW_SHOW_CHANGED = 2242              	&amp;quot;変更行を強調表&amp;quot;                            （2.6.9 ～）&lt;br /&gt;
editor.ExecuteCommandByID( 2243 );	// MEID_EDIT_NEXT_CHANGED = 2243              	&amp;quot;次の変更行&amp;quot;                                （2.6.12 ～）&lt;br /&gt;
editor.ExecuteCommandByID( 2244 );	// MEID_EDIT_PREV_CHANGED = 2244              	&amp;quot;前の変更行&amp;quot;                                （2.6.12 ～）&lt;br /&gt;
editor.ExecuteCommandByID( 2245 );	// MEID_EDIT_TOGGLE_CHARACTER_CODE = 2245     	&amp;quot;文字コードの切り替え&amp;quot;                      （2.6.13 ～）&lt;br /&gt;
editor.ExecuteCommandByID( 2246 );	// MEID_VIEW_ZEN_MODE = 2246                  	&amp;quot;Zen モード&amp;quot;                                （2.6.15 ～）&lt;br /&gt;
editor.ExecuteCommandByID( 2247 );	// MEID_VIEW_TYPEWRITER_SCROLL = 2247         	&amp;quot;タイプライタースクロール&amp;quot;                  （2.6.15 ～）&lt;br /&gt;
editor.ExecuteCommandByID( 2248 );	// MEID_WINDOW_SHOW_MARKERS = 2248            	&amp;quot;マーカーを表示&amp;quot; （スクロールバー）         （2.7.0 ～）&lt;br /&gt;
editor.ExecuteCommandByID( 2249 );	// _file_close_others = 2249                  	&amp;quot;他のタブをすべて閉じる&amp;quot;                    （2.7.5 ～）&lt;br /&gt;
editor.ExecuteCommandByID( 2250 );	// _file_close_left = 2250                    	&amp;quot;左のタブをすべて閉じる&amp;quot;                    （2.7.5 ～）&lt;br /&gt;
editor.ExecuteCommandByID( 2251 );	// _file_close_right = 2251                   	&amp;quot;右のタブをすべて閉じる&amp;quot;                    （2.7.5 ～）&lt;br /&gt;
editor.ExecuteCommandByID( 2252 );	// _view_macros_bar_labels = 2252             	&amp;quot;マクロ バーのラベルを表示&amp;quot;                 （2.8.0 ～）&lt;br /&gt;
editor.ExecuteCommandByID( 2253 );	// _file_new_group = 2253                     	&amp;quot;新しいウィンドウに移動&amp;quot;                    （2.8.7 ～）&lt;br /&gt;
editor.ExecuteCommandByID( 2254 );	// _edit_split_sel_into_lines = 2254          	&amp;quot;選択範囲を行に分ける&amp;quot;                      （3.0.0 ～）&lt;br /&gt;
editor.ExecuteCommandByID( 2255 );	// _edit_add_cursor_to_next_line = 2255       	&amp;quot;次の行にカーソルを追加&amp;quot;                    （3.0.0 ～）&lt;br /&gt;
editor.ExecuteCommandByID( 2256 );	// _edit_add_cursor_to_prev_line = 2256       	&amp;quot;前の行にカーソルを追加&amp;quot;                    （3.0.0 ～）&lt;br /&gt;
editor.ExecuteCommandByID( 2257 );	// _search_find_all_and_select = 2257         	&amp;quot;すべて検索して選択&amp;quot;                        （3.0.0 ～）&lt;br /&gt;
editor.ExecuteCommandByID( 2258 );	// _search_add_next_match = 2258              	&amp;quot;選択範囲に次の候補を追加&amp;quot;                  （3.0.0 ～）&lt;br /&gt;
editor.ExecuteCommandByID( 2259 );	// _search_skip_current_match = 2259          	&amp;quot;スキップして次の候補を追加&amp;quot;                （3.0.0 ～）&lt;br /&gt;
editor.ExecuteCommandByID( 2260 );	// _search_undo_selection = 2260              	&amp;quot;選択範囲を元に戻す&amp;quot;                        （3.0.0 ～）&lt;br /&gt;
editor.ExecuteCommandByID( 2261 );	// _search_redo_selection = 2261              	&amp;quot;選択範囲をやり直し&amp;quot;                        （3.0.0 ～）&lt;br /&gt;
editor.ExecuteCommandByID( 2262 );	// _window_right_action = 2262                	&amp;quot;右の文書&amp;quot;                                  （3.1.0 ～）&lt;br /&gt;
editor.ExecuteCommandByID( 2263 );	// _window_left_action = 2263                 	&amp;quot;左の文書&amp;quot;                                  （3.1.0 ～）&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
// 辞書、編集モード、マクロ、プラグイン、外部ツール&lt;br /&gt;
editor.ExecuteCommandByID( 4096 );	// MEID_DICTS = 4096  	辞書:       ※ 以降、登録順に ID の数値をインクリメント&lt;br /&gt;
editor.ExecuteCommandByID( 5120 );	// MEID_MODES = 5120  	編集モード: ※ 以降、登録順に ID の数値をインクリメント&lt;br /&gt;
editor.ExecuteCommandByID( 6144 );	// MEID_MACROS = 6144 	マクロ:     ※ 以降、登録順に ID の数値をインクリメント&lt;br /&gt;
editor.ExecuteCommandByID( 7168 );	// MEID_PLUGINS = 7168	プラグイン: ※ 以降、登録順に ID の数値をインクリメント&lt;br /&gt;
editor.ExecuteCommandByID( 8192 );	// MEID_TOOLS = 8192  	外部ツール: ※ 以降、登録順に ID の数値をインクリメント&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;
『[[マクロリファレンス]]』と『[[マクロリファレンス:3]]』に掲載されている定数 &#039;&#039;&#039;&#039;&#039;&amp;lt;code&amp;gt;flags&amp;lt;/code&amp;gt;&#039;&#039;&#039;&#039;&#039; の一覧&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
/**&lt;br /&gt;
 * マクロ用定数： flags&lt;br /&gt;
 * &lt;br /&gt;
 * 『マクロリファレンス』にあるマクロ用定数（リテラル値 ／ 数値）&lt;br /&gt;
 * ※ 16進表記の定数は加算可&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
document.selection.EndOfLine( [bool [, flags]] )&lt;br /&gt;
document.selection.StartOfLine( [bool [, flags]] )&lt;br /&gt;
document.selection.GetActivePointX( flags [, sel] ) ／ GetActivePointY( flags [, sel] )&lt;br /&gt;
document.selection.GetAnchorPointX( flags [, sel] ) ／ GetAnchorPointY( flags [, sel] )&lt;br /&gt;
document.selection.GetBottomPointX( flags [, sel] ) ／ GetBottomPointY( flags [, sel] )&lt;br /&gt;
document.selection.GetTopPointX( flags [, sel] )    ／ GetTopPointY( flags [, sel] )&lt;br /&gt;
document.selection.SetActivePoint( flags, x, y [, bool] )&lt;br /&gt;
document.selection.SetAnchorPoint( flags, x, y )&lt;br /&gt;
&lt;br /&gt;
	mePosView           = 1     // 表示座標で指定します。（※ 省略可能なばあいの規定値）&lt;br /&gt;
	mePosLogical        = 2     // 論理座標で指定します。&lt;br /&gt;
	// ※ 省略可能な引数 sel は Mery ver 3.0.1 以降でのみ利用可（マルチカーソル用）&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
document.selection.ChangeCase( flags )&lt;br /&gt;
&lt;br /&gt;
	meCaseUpperCase     = 1     // 大文字に変換します。&lt;br /&gt;
	meCaseLowerCase     = 2     // 小文字に変換します。&lt;br /&gt;
	meCaseCapitalize    = 3     // 単語の最初の文字を大文字に変換します。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
document.selection.ChangeWidth( flags )&lt;br /&gt;
&lt;br /&gt;
	meWidthHalfWidth    = 1     // 半角に変換します。&lt;br /&gt;
	meWidthFullWidth    = 2     // 全角に変換します。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
document.selection.Collapse( [flags] )&lt;br /&gt;
&lt;br /&gt;
	meCollapseStart     = 1     // 開始位置に向かって選択範囲を解除します。（※ 規定値）&lt;br /&gt;
	meCollapseEnd       = 2     // 終了位置に向かって選択範囲を解除します。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
document.selection.Copy( [flags] )&lt;br /&gt;
document.selection.Paste( [flags] )&lt;br /&gt;
&lt;br /&gt;
	// ME_COPYUNICODE   = 1     // ※ マクロでは利用できない&lt;br /&gt;
	meCopyQuotes        = 2     // 引用マークを付けてコピー／貼り付けします。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
document.selection.Format( flags )&lt;br /&gt;
&lt;br /&gt;
	meFormatInsertNL    = 1     // 折り返し位置に改行を挿入します。&lt;br /&gt;
	meFormatDeleteNL    = 2     // 折り返し位置の改行を削除します。&lt;br /&gt;
	meFormatSplitLines  = 3     // 折り返し位置に改行を挿入して終端の空白を削除します。&lt;br /&gt;
	meFormatJoinLines   = 4     // 折り返し位置の改行を削除して終端に空白を挿入します。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
document.selection.InsertDate( flags )&lt;br /&gt;
&lt;br /&gt;
	meDateTimeDate      = 1     // 時刻、日付の順に挿入します。&lt;br /&gt;
	meDateDateTime      = 2     // 日付、時刻の順に挿入します。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
document.selection.Find( str, flags )&lt;br /&gt;
&lt;br /&gt;
	meFindPrevious          = 0x0000 (0)        // 前を検索します。&lt;br /&gt;
	meFindNext              = 0x0001 (1)        // 次を検索します。&lt;br /&gt;
	meFindAround            = 0x0008 (8)        // 文末まで検索したら文頭に移動します。&lt;br /&gt;
&lt;br /&gt;
	// ※Mery ver 2.8.3 以降&lt;br /&gt;
	meFindMigemo            = 0x0400 (1024)     // Migemo を使用します。&lt;br /&gt;
	// ※Mery ver 3.0.1 以降&lt;br /&gt;
	meFindAll               = 0x0800 (2048)     // すべて検索します。&lt;br /&gt;
&lt;br /&gt;
document.selection.Find( str, flags )&lt;br /&gt;
document.selection.Replace( strFind, strReplace, flags )&lt;br /&gt;
editor.FindInFiles( strFind, strPath, flags )&lt;br /&gt;
editor.ReplaceInFiles( strFind, strReplace, strPath, flags )&lt;br /&gt;
&lt;br /&gt;
	meFindReplaceCase       = 0x0002 (2)        // 大文字と小文字を区別します。&lt;br /&gt;
	meFindReplaceOnlyWord   = 0x0004 (4)        // 単語のみ検索します。&lt;br /&gt;
	meFindReplaceRegExp     = 0x0010 (16)       // 正規表現を使用します。&lt;br /&gt;
&lt;br /&gt;
	// ※Mery ver 3.0.1 以降&lt;br /&gt;
	meFindNotBOL            = 0x1000 (4096)     // 選択範囲の先頭を行頭とみなさず検索／置換します。（※ 置換でのみ？）&lt;br /&gt;
	meFindNotEOL            = 0x2000 (8192)     // 選択範囲の終端を行頭とみなさず検索／置換します。（※ 置換でのみ？）&lt;br /&gt;
	meFindKeepOptions       = 0x4000 (16384)    // 検索／置換ダイアログのオプションを維持します。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
document.selection.Replace( strFind, strReplace, flags )&lt;br /&gt;
&lt;br /&gt;
	meReplaceSelOnly        = 0x0020 (32)       // 選択した範囲のみ置換します。&lt;br /&gt;
	meReplaceAll            = 0x0040 (64)       // すべて置換します。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
editor.FindInFiles( strFind, strPath, flags )&lt;br /&gt;
editor.ReplaceInFiles( strFind, strReplace, strPath, flags )&lt;br /&gt;
&lt;br /&gt;
	meFindRecursive         = 0x0080 (128)      // サブフォルダーも検索します。&lt;br /&gt;
	meFindFileNamesOnly     = 0x0100 (256)      // ファイル名のみ表示します。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
editor.ReplaceInFiles( strFind, strReplace, strPath, flags )&lt;br /&gt;
&lt;br /&gt;
	meReplaceBackup         = 0x0200 (512)      // バックアップを保存します。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
document.selection.FindRepeat( flags )&lt;br /&gt;
&lt;br /&gt;
	meFindPrevious          = 0x00 (0)          // 前を検索します。 meFindRepeatPrevious&lt;br /&gt;
	meFindNext              = 0x01 (1)          // 次を検索します。 meFindRepeatNext&lt;br /&gt;
	meFindRepeatWord        = 0x02 (2)          // 選択範囲が空の場合はカーソル位置の単語を検索します。&lt;br /&gt;
	// ※ meFindPrevious と meFindNext は Mery ver 3.x 以降？&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
document.selection.Mode プロパティ  // ※Mery ver 3.0.1 以降&lt;br /&gt;
&lt;br /&gt;
	meModeStream        = 1     // 通常選択 (ストリーム選択)&lt;br /&gt;
	meModeBox           = 2     // 矩形選択&lt;br /&gt;
	meModeMulti         = 3     // 複数選択 &lt;br /&gt;
	// ※Mery ver 3.0.0 以前では document.selection.Mode = undefined が規定値となる&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
document.GetLine( y [, flags] )&lt;br /&gt;
&lt;br /&gt;
	meGetLineWithNewLines   = 0x01 (1)  // 表示座標で指定します。（※ 規定値）&lt;br /&gt;
	meGetLineView           = 0x02 (2)  // テキストに改行コードを追加します。&lt;br /&gt;
                      // ※ flags = 0 （数値）で論理座標&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
document.GetLines( [flags] )&lt;br /&gt;
&lt;br /&gt;
	meGetLineView           = 0x02 (2)  // テキストに改行コードを追加します。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
CreatePopupMenu.Add( strText, id [, flags] )&lt;br /&gt;
&lt;br /&gt;
	meMenuChecked       = 0x01 (1)      // チェック&lt;br /&gt;
	meMenuGrayed        = 0x02 (2)      // 無効（グレーアウト）&lt;br /&gt;
	meMenuSeparator     = 0x04 (4)      // 区切り&lt;br /&gt;
	               // ※ flags = 0 を指定した場合は通常表示&lt;br /&gt;
	               // ※ flags = 3 を指定した場合は「チェック」＋「無効」&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
CreatePopupMenu.Track( flags )&lt;br /&gt;
&lt;br /&gt;
	mePosMouse          = 1         // マウスポインターの位置にポップアップメニューを表示します。&lt;br /&gt;
	        // ※ flags = 0 や flags = false 指定でキャレット位置にポップアップメニューを表示&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
editor.OpenFile( fileName [, encoding, flags] )&lt;br /&gt;
&lt;br /&gt;
	meOpenAllowNewWindow    = 1     // 現在の文書が変更されている場合に新しいタブまたはウィンドウで開きます。&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;
&amp;lt;code&amp;gt;editor.OpenFile( fileName [, encoding, flags] )&amp;lt;/code&amp;gt;メソッドと&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;code&amp;gt;document.selection.InsertFromFile( fileName, encoding )&amp;lt;/code&amp;gt;メソッド&amp;lt;br&amp;gt;&lt;br /&gt;
で利用できるエンコード定数 &#039;&#039;&#039;&#039;&#039;&amp;lt;code&amp;gt;encoding&amp;lt;/code&amp;gt;&#039;&#039;&#039;&#039;&#039; の一覧&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
/**&lt;br /&gt;
 * エンコード定数（文字コード： encoding）&lt;br /&gt;
 * &lt;br /&gt;
 * ※ FileSystemObject.OpenTextFile( filename [, iomode [, create [, format]]] )&lt;br /&gt;
 *    の format では&lt;br /&gt;
 *      TristateFalse           = 0         // ASCII（Shift-JIS）&lt;br /&gt;
 *      TristateTrue            = -1        // Unicode（UTF-16）&lt;br /&gt;
 *      TristateUseDefault      = -2        // システムの規定値&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
editor.OpenFile( fileName [, encoding, flags] )&lt;br /&gt;
document.selection.InsertFromFile( fileName, encoding )&lt;br /&gt;
&lt;br /&gt;
// Mery 定数（リテラル値）      Mery 定数（数値）                   ADODB.Charset プロパティ（※ システム環境依存）&lt;br /&gt;
meEncodingNone                  = 0         // 自動選択&lt;br /&gt;
meEncodingUTF16LE               = 65537     // UTF-16LE                 &amp;quot;utf-16&amp;quot;&lt;br /&gt;
meEncodingUTF16LEBOM            = 655371    // UTF-16LE (BOMつき)       &amp;quot;utf-16&amp;quot;&lt;br /&gt;
meEncodingUTF16LENoBOM          = 655370    // UTF-16LE (BOMなし)       &amp;quot;utf-16&amp;quot;&lt;br /&gt;
meEncodingUTF16BE               = 65538     // UTF-16BE                 &amp;quot;utf-16&amp;quot;&lt;br /&gt;
meEncodingUTF16BEBOM            = 655381    // UTF-16BE (BOMつき)       &amp;quot;utf-16&amp;quot;&lt;br /&gt;
meEncodingUTF16BENoBOM          = 655380    // UTF-16BE (BOMなし)       &amp;quot;utf-16&amp;quot;&lt;br /&gt;
meEncodingUTF8                  = 65001     // UTF-8                    &amp;quot;utf-8&amp;quot;&lt;br /&gt;
meEncodingUTF8BOM               = 650011    // UTF-8 (BOMつき)          &amp;quot;utf-8&amp;quot;&lt;br /&gt;
meEncodingUTF8NoBOM             = 650010    // UTF-8 (BOMなし)          &amp;quot;utf-8&amp;quot;&lt;br /&gt;
meEncodingUTF7                  = 65000     // UTF-7                    &amp;quot;utf-7&amp;quot;&lt;br /&gt;
meEncodingArabic                = 1256      // アラビア語               &amp;quot;windows-1256&amp;quot;&lt;br /&gt;
meEncodingBaltic                = 1257      // バルト言語               &amp;quot;windows-1257&amp;quot;&lt;br /&gt;
meEncodingCentralEuropean       = 1250      // 中央ヨーロッパ言語       &amp;quot;windows-1250&amp;quot;&lt;br /&gt;
meEncodingChineseSimplified     = 936       // 簡体字中国語 (GB2312)    &amp;quot;gb2312&amp;quot;&lt;br /&gt;
meEncodingChineseTraditional    = 950       // 繁体字中国語 (Big5)      &amp;quot;big5&amp;quot;&lt;br /&gt;
meEncodingCyrillic              = 1251      // キリル言語               &amp;quot;windows-1251&amp;quot;&lt;br /&gt;
meEncodingGreek                 = 1253      // ギリシャ語               &amp;quot;windows-1253&amp;quot;&lt;br /&gt;
meEncodingHebrew                = 1255      // ヘブライ語               &amp;quot;windows-1255&amp;quot;&lt;br /&gt;
meEncodingEUC                   = 51932     // 日本語 (EUC)             &amp;quot;euc-jp&amp;quot;&lt;br /&gt;
meEncodingJIS                   = 50222     // 日本語 (JIS)             &amp;quot;iso-2022-jp&amp;quot;&lt;br /&gt;
meEncodingShiftJIS              = 932       // 日本語 (シフト JIS)      &amp;quot;shift_jis&amp;quot;&lt;br /&gt;
meEncodingKorean                = 949       // 韓国語                   &amp;quot;euc-kr&amp;quot;,  &amp;quot;ks_c_5601-1987&amp;quot;？&lt;br /&gt;
meEncodingThai                  = 874       // タイ語                   &amp;quot;windows-874&amp;quot;&lt;br /&gt;
meEncodingTurkish               = 1254      // トルコ語                 &amp;quot;windows-1254&amp;quot;,  &amp;quot;iso-8859-9&amp;quot;？&lt;br /&gt;
meEncodingVietnamese            = 1258      // ベトナム語               &amp;quot;windows-1258&amp;quot;&lt;br /&gt;
meEncodingWesternEuropean       = 1252      // 西ヨーロッパ言語         &amp;quot;windows-1252&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sukemaru</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=5509</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=5509"/>
		<updated>2021-01-22T11:07:49Z</updated>

		<summary type="html">&lt;p&gt;Sukemaru: /* その他 */ 「マクロ用 定数一覧」を追加&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 2020/05/22&lt;br /&gt;
*[[行頭か行末 または 選択範囲の始点か終点]] (sukemaru) last update 2020/06/26&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&lt;br /&gt;
*[[行を複製 (複数行可)]] (sukemaru) last update 2020/06/26&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 2020/06/29&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) 2020/09/04 update&lt;br /&gt;
*[[Markdown 向け、リスト記号 (*) のトグル]] (yuko) 2019/04/29&lt;br /&gt;
*[[Markdown 向け、タスクリスト (* ［］) のチェック状態をトグル]] (yuko) 2020/09/04&lt;br /&gt;
*[[引用符／コメント]] ※ポップアップメニュー (sukemaru) last update 2020/06/23&lt;br /&gt;
*[[カッコで囲う]] ※ポップアップメニュー (sukemaru) last update 2020/06/23 &amp;lt;br&amp;gt; [[カッコで囲う#カッコで囲う (ポップアップメニューなし)|カッコで囲う (簡易版)]] ＆ [[カッコで囲う#引用符を追加／削除|引用符を追加／削除]] &amp;lt;br&amp;gt; [[カッコで囲う#カッコで囲う２（各行ごとにカッコで囲う／Mery ver 3 用）|カッコで囲う２]] ※ポップアップメニュー &lt;br /&gt;
*[[カッコをはずす]] ＆ [[カッコをはずす#カッコを追加／削除|カッコを追加／削除]] (sukemaru) last update 2020/06/28&lt;br /&gt;
*[[定型文を挿入]]マクロ集 (sukemaru) 2018/12/03&lt;br /&gt;
*[[何年生で習う漢字？]] (シリル) 2019/03/10&lt;br /&gt;
*[[上に行挿入]] (yuko) 2019/05/11&lt;br /&gt;
*[[位置情報を保存してから「すべて選択／選択解除」(非スクロール)]] (sukemaru) update 2020/11/01 &amp;lt;br&amp;gt; [[位置情報を保存してから「すべて選択／選択解除」(非スクロール)#【include 版】位置を復帰／保存|位置を復帰／保存]]&lt;br /&gt;
*[[選択範囲を広げる]] (yuko) 2020/03/22&lt;br /&gt;
*[[拡張自動選択]] (sukemaru) update 2020/07/01&lt;br /&gt;
*[[追加コピー・追加切り取り]] (sukemaru) 2020/06/05&lt;br /&gt;
*[[新規行番号入力]] (Takuma 他) 2020/06/17 - 2020/06/26&lt;br /&gt;
*[[「クリップボード履歴」メニューのマクロ化]] ＋ [[プラグイン:スニペットプラグイン|スニペット機能]]　(sukemaru) last update 2020/06/27&lt;br /&gt;
*[[論理行を選択 (改行を含まない)]] (sukemaru) 2021/01/20&lt;br /&gt;
*[[選択範囲を行に分ける・改]] (sukemaru) 2021/01/20&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&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) last update 2020/06/24&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&lt;br /&gt;
*[[文書が変更されていなければ変更マークを消す]] (Noah)&lt;br /&gt;
*[[変更なしのタブをすべて閉じる]] (Noah)&lt;br /&gt;
*[[ファイルを読み直す・開きなおす]] ※ポップアップメニュー (sukemaru) last update 2019/11/30&lt;br /&gt;
*[[さいごに閉じたファイルを開く]] ※ポップアップメニュー (sukemaru) 2019/11/30&lt;br /&gt;
*[[タブを複製する]] (sukemaru) update 2020/10/30&lt;br /&gt;
*[[強制的に上書き保存]] (sukemaru) 2020/06/01&lt;br /&gt;
*[[すべて戻す]] (sukemaru) 2020/06/01&lt;br /&gt;
*[[作業フォルダの変更]] (sukemaru) 2020/06/03&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&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_を切り替える]]（&amp;lt;span style=&amp;quot;color:#0000c0;&amp;quot;&amp;gt;YES&amp;lt;/span&amp;gt;／&amp;lt;span style=&amp;quot;color:#c00;&amp;quot;&amp;gt;NO&amp;lt;/span&amp;gt;マクロ） (sukemaru) last update 2020/07/01&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&lt;br /&gt;
*[[全角／半角 トグル変換]] (sukemaru) last update 2020/07/03&lt;br /&gt;
*[[大文字／小文字／頭文字 トグル変換]] (sukemaru) last update 2020/07/03&lt;br /&gt;
*[[ひらがな／カタカナ変換]] (sukemaru) last update 2020/07/08&lt;br /&gt;
*[[TAB／半角空白 トグル変換]] (sukemaru) last update 2020/07/02&lt;br /&gt;
*[[文字列の順番を逆に書き出す]] (sukemaru) update 2020/01/03&lt;br /&gt;
*[[マルチカーソル選択範囲の並べ替え]] (sukemaru) last update 2020/07/06&lt;br /&gt;
*[[マルチカーソル用:「昇順／降順」または「逆順」で並べ替え]] (sukemaru) 2020/07/08&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 2020/06/25&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&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 2021/01/20&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 2020/06/28&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文書のコンパイル]] (手石, isari) update 2020/10/16&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) 2020/12/12更新&lt;br /&gt;
*[[JSON整形]](Ovis) Create 2019/03/25&lt;br /&gt;
*[[JS フォーマット]]（JavaScript整形） (sukemaru) 2020/05/03&lt;br /&gt;
*[[ScriptRun]]（Scriptコードの実行）（fuka）2020/08/02&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;
:[[実験的マクロ・練習マクロなど|&amp;gt;&amp;gt;　別ページ]]&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/10/30&lt;br /&gt;
*[[ファイルロック (排他制御) 的なもの]] (PebblePot)&lt;br /&gt;
*[[Mery.iniのオプション値を取得]] ※組み込み関数 (sukemaru) last update 2020/05/14&lt;br /&gt;
*[[Mery本体のバージョンチェック]] ※組み込み関数 (sukemaru) 2019/04/17&lt;br /&gt;
*[[IO.Serialize() の JSON を参照する]] ※組み込み関数 (sukemaru) 2019/04/17&lt;br /&gt;
*[[ポップアップメニューを「n*十件ずつ」のサブメニューに自動分割する]] ※組み込み関数 (sukemaru) update 2020/05/28&lt;br /&gt;
*[[アクティブなタブのマクロを実行する]] (sukemaru) last update 2020/04/30&lt;br /&gt;
*[[コンパクトメニュー]] (sukemaru) last update 2020/03/29&lt;br /&gt;
*[[マクロメニュー]] (sukemaru) last update 2020/06/03&lt;br /&gt;
*[[Mery.his の履歴を整理]] (sukemaru) 2021/01/20&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
*[[キーアサイン集]] (ks, masme, sukemaru, 有志) last update 2020/05/22&lt;br /&gt;
*[[マテリアルデザインっぽいアイコンと『小マクロ集』]](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;br /&gt;
*[[マクロ用 定数一覧]] (sukemaru) 2021/01/22&lt;/div&gt;</summary>
		<author><name>Sukemaru</name></author>
	</entry>
	<entry>
		<id>https://www.haijin-boys.com/wiki/index.php?title=%E3%83%9E%E3%82%AF%E3%83%AD%E7%94%A8_%E5%AE%9A%E6%95%B0%E4%B8%80%E8%A6%A7&amp;diff=5508</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%E7%94%A8_%E5%AE%9A%E6%95%B0%E4%B8%80%E8%A6%A7&amp;diff=5508"/>
		<updated>2021-01-22T10:27:05Z</updated>

		<summary type="html">&lt;p&gt;Sukemaru: ページを新規作成&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
～ Mery ver 3.1.0 （2021年1月の ver 3.2.5 まで変更なし）&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
/**&lt;br /&gt;
 * ExecuteCommandByID() メソッド用 定数一覧&lt;br /&gt;
 * https://www.haijin-boys.com/wiki/%E3%83%9E%E3%82%AF%E3%83%AD%E7%94%A8_%E5%AE%9A%E6%95%B0%E4%B8%80%E8%A6%A7&lt;br /&gt;
 * https://github.com/haijinboys/mery-plugin-sdk/blob/master/SDK/C/Basic/plugin.h&lt;br /&gt;
 * &lt;br /&gt;
 * ※ 引数内のリテラル MEID_*** はプラグイン用で、マクロから定数リテラル値として単独で利用することはできない。&lt;br /&gt;
 *    editor.ExecuteCommandByID( 2061 ) のように数値だけを引数として渡せばよいのだが&lt;br /&gt;
 *    可読性を考慮して editor.ExecuteCommandByID( MEID_*** = #### ) としてある。&lt;br /&gt;
 *   「Pulguin.h」で定数名が定義されていない（MEID_*** がない）ものについては&lt;br /&gt;
 *   「Mery.ini」内でのコマンド名を入れておいた。&lt;br /&gt;
 * &lt;br /&gt;
 * ※ コマンド名の記述は「キーボードマップ」に依拠した。&lt;br /&gt;
 * ※ [マクロ] メニュー内の一部のコマンドは、マクロから利用できない。&lt;br /&gt;
 * ※ じっさいにマクロから実行したときに&lt;br /&gt;
 *   「SQL整形」の MEID_TOOLS_SQL_FORMAT = 2179 と&lt;br /&gt;
 *   「ドキュメントの整形」の MEID_TOOLS_XML_FORMAT = 2180 とが逆になる。&lt;br /&gt;
 *   「plugin.h」の記述ミスによるものとおもわれるが&lt;br /&gt;
 *    このドキュメントでは「plugin.h」に記載されているまま収録してある。&lt;br /&gt;
 * &lt;br /&gt;
 * ※ Mery ver 3.1.0 以降では editor.QueryStatusByID( id ) メソッドで&lt;br /&gt;
 *    メニュー項目の ✔ チェック状態も取得できるが、無効（グレーアウト）状態の判別はできない。&lt;br /&gt;
 *    また、戻り値の 0 ～ 3 は PopupMenu.Add() メソッドのフラグの値とは一致しない。&lt;br /&gt;
 *    戻り値 = 0	： 利用できない（Mery 本体のバージョンが古い）&lt;br /&gt;
 *    戻り値 = 1	： 実行できる（通常表示）または 無効（グレーアウト表示）&lt;br /&gt;
 *    戻り値 = 2	： ✔ チェックつき + 無効（グレーアウト表示）&lt;br /&gt;
 *    戻り値 = 3	： ✔ チェックつき&lt;br /&gt;
 * &lt;br /&gt;
 * ※「ファイルから置換」の ID は 2241 と 2216 とのふたつがあるが&lt;br /&gt;
 *    マクロからは MEID_SEARCH_REPLACE_IN_FILES = 2141 のみが利用できる。&lt;br /&gt;
 *    MEID_REPLACE_IN_FILES = 2216 （ver 2.4.8 ～）はマクロから利用できない。&lt;br /&gt;
 * ※ MEID# 2048 ～ 2060 は、トレイアイコンのポップアップメニュー内のコマンドで&lt;br /&gt;
 *    マクロの ExecuteCommandByID() からは利用できない。&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
MEID_NEW = 2048                 // 新規作成&lt;br /&gt;
MEID_NEW_PASTE = 2049           // 新規作成して貼り付け&lt;br /&gt;
MEID_NEW_PASTE_QUOTES = 2050    // 新規作成して引用つき貼り付け&lt;br /&gt;
MEID_OPEN = 2051                // 開く&lt;br /&gt;
MEID_FIND_IN_FILES = 2052       // ファイルから検索...&lt;br /&gt;
MEID_SAVE_ALL = 2053            // すべて保存&lt;br /&gt;
MEID_SAVE_CLOSE_ALL = 2054      // すべて保存して閉じる&lt;br /&gt;
MEID_CLOSE_ALL = 2055           // すべて閉じる&lt;br /&gt;
MEID_CASCADE = 2056             // 重ねて表示&lt;br /&gt;
MEID_TILE_HORZ = 2057           // 上下に並べて表示&lt;br /&gt;
MEID_TILE_VERT = 2058           // 左右に並べて表示&lt;br /&gt;
MEID_MINIMIZE_ALL = 2059        // すべて最小化&lt;br /&gt;
MEID_CLOSE_TRAY_ICON = 2060     // トレイアイコンを閉じる&lt;br /&gt;
&lt;br /&gt;
editor.ExecuteCommandByID( MEID_FILE_NEW = 2061 );                          // 新規作成&lt;br /&gt;
editor.ExecuteCommandByID( MEID_FILE_OPEN = 2062 );                         // 開く&lt;br /&gt;
editor.ExecuteCommandByID( MEID_FILE_CLOSE_OPEN = 2063 );                   // 閉じて開く&lt;br /&gt;
editor.ExecuteCommandByID( MEID_FILE_SAVE = 2064 );                         // 上書き保存&lt;br /&gt;
editor.ExecuteCommandByID( MEID_FILE_SAVE_AS = 2065 );                      // 名前を付けて保存&lt;br /&gt;
editor.ExecuteCommandByID( MEID_FILE_SAVE_ALL = 2066 );                     // すべて保存&lt;br /&gt;
editor.ExecuteCommandByID( MEID_FILE_INSERT = 2067 );                       // 挿入&lt;br /&gt;
editor.ExecuteCommandByID( MEID_FILE_RELOAD_AUTO_SELECT = 2068 );           // 自動選択で読み直し&lt;br /&gt;
editor.ExecuteCommandByID( MEID_FILE_RELOAD_UTF16LE = 2069 );               // UTF-16LE で読み直し&lt;br /&gt;
editor.ExecuteCommandByID( MEID_FILE_RELOAD_UTF16BE = 2070 );               // UTF-16BE で読み直し&lt;br /&gt;
editor.ExecuteCommandByID( MEID_FILE_RELOAD_UTF8 = 2071 );                  // UTF-8 で読み直し&lt;br /&gt;
editor.ExecuteCommandByID( MEID_FILE_RELOAD_UTF7 = 2072 );                  // UTF-7 で読み直し&lt;br /&gt;
editor.ExecuteCommandByID( MEID_FILE_RELOAD_ARABIC = 2073 );                // アラビア語で読み直し&lt;br /&gt;
editor.ExecuteCommandByID( MEID_FILE_RELOAD_BALTIC = 2074 );                // バルト言語で読み直し&lt;br /&gt;
editor.ExecuteCommandByID( MEID_FILE_RELOAD_CENTRAL_EUROPEAN = 2075 );      // 中央ヨーロッパ言語で読み直し&lt;br /&gt;
editor.ExecuteCommandByID( MEID_FILE_RELOAD_CHINESE_SIMPLIFIED = 2076 );    // 簡体字中国語 (GB2312) で読み直し&lt;br /&gt;
editor.ExecuteCommandByID( MEID_FILE_RELOAD_CHINESE_TRADITIONAL = 2077 );   // 繁体字中国語 (Big5) で読み直し&lt;br /&gt;
editor.ExecuteCommandByID( MEID_FILE_RELOAD_CYRILLIC = 2078 );              // キリル言語で読み直し&lt;br /&gt;
editor.ExecuteCommandByID( MEID_FILE_RELOAD_GREEK = 2079 );                 // ギリシャ語で読み直し&lt;br /&gt;
editor.ExecuteCommandByID( MEID_FILE_RELOAD_HEBREW = 2080 );                // ヘブライ語で読み直し&lt;br /&gt;
editor.ExecuteCommandByID( MEID_FILE_RELOAD_EUC = 2081 );                   // 日本語 (EUC) で読み直し&lt;br /&gt;
editor.ExecuteCommandByID( MEID_FILE_RELOAD_JIS = 2082 );                   // 日本語 (JIS) で読み直し&lt;br /&gt;
editor.ExecuteCommandByID( MEID_FILE_RELOAD_SHIFTJIS = 2083 );              // 日本語 (シフト JIS) で読み直し&lt;br /&gt;
editor.ExecuteCommandByID( MEID_FILE_RELOAD_KOREAN = 2084 );                // 韓国語で読み直し&lt;br /&gt;
editor.ExecuteCommandByID( MEID_FILE_RELOAD_THAI = 2085 );                  // タイ語で読み直し&lt;br /&gt;
editor.ExecuteCommandByID( MEID_FILE_RELOAD_TURKISH = 2086 );               // トルコ語で読み直し&lt;br /&gt;
editor.ExecuteCommandByID( MEID_FILE_RELOAD_VIETNAMESE = 2087 );            // ベトナム語で読み直し&lt;br /&gt;
editor.ExecuteCommandByID( MEID_FILE_RELOAD_WESTERN_EUROPEAN = 2088 );      // 西ヨーロッパ言語で読み直し&lt;br /&gt;
editor.ExecuteCommandByID( MEID_FILE_LINE_ENDING_CRLF = 2089 );             // CR+LF (Windows) で改行&lt;br /&gt;
editor.ExecuteCommandByID( MEID_FILE_LINE_ENDING_CR = 2090 );               // CR (Macintosh) で改行&lt;br /&gt;
editor.ExecuteCommandByID( MEID_FILE_LINE_ENDING_LF = 2091 );               // LF (UNIX) で改行&lt;br /&gt;
editor.ExecuteCommandByID( MEID_FILE_PRINT = 2092 );                        // 印刷&lt;br /&gt;
editor.ExecuteCommandByID( MEID_FILE_PRINT_PREVIEW = 2093 );                // 印刷プレビュー&lt;br /&gt;
editor.ExecuteCommandByID( MEID_FILE_SAVE_CLOSE = 2094 );                   // 保存して閉じる&lt;br /&gt;
editor.ExecuteCommandByID( MEID_FILE_CLOSE = 2095 );                        // 閉じる&lt;br /&gt;
editor.ExecuteCommandByID( MEID_FILE_SAVE_CLOSE_ALL = 2096 );               // すべて保存して閉じる&lt;br /&gt;
editor.ExecuteCommandByID( MEID_FILE_CLOSE_ALL = 2097 );                    // すべて閉じる&lt;br /&gt;
editor.ExecuteCommandByID( MEID_EDIT_UNDO = 2098 );                         // 元に戻す&lt;br /&gt;
editor.ExecuteCommandByID( MEID_EDIT_REDO = 2099 );                         // やり直し&lt;br /&gt;
editor.ExecuteCommandByID( MEID_EDIT_CUT = 2100 );                          // 切り取り&lt;br /&gt;
editor.ExecuteCommandByID( MEID_EDIT_COPY = 2101 );                         // コピー&lt;br /&gt;
editor.ExecuteCommandByID( MEID_EDIT_COPY_QUOTES = 2102 );                  // 引用付きコピー&lt;br /&gt;
editor.ExecuteCommandByID( MEID_EDIT_PASTE = 2103 );                        // 貼り付け&lt;br /&gt;
editor.ExecuteCommandByID( MEID_EDIT_DELETE = 2104 );                       // 削除&lt;br /&gt;
editor.ExecuteCommandByID( MEID_EDIT_SELECT_ALL = 2105 );                   // すべて選択&lt;br /&gt;
editor.ExecuteCommandByID( MEID_EDIT_DATE_TIME = 2106 );                    // 日付と時刻&lt;br /&gt;
editor.ExecuteCommandByID( MEID_EDIT_GO_TO_LINE = 2107 );                   // 行へ移動&lt;br /&gt;
editor.ExecuteCommandByID( MEID_EDIT_GO_TO_FILE = 2108 );                   // ファイルへ移動&lt;br /&gt;
editor.ExecuteCommandByID( MEID_EDIT_READ_ONLY = 2109 );                    // 書き換え禁止&lt;br /&gt;
editor.ExecuteCommandByID( MEID_EDIT_INSERT_NEW_LINES = 2110 );             // 改行を挿入&lt;br /&gt;
editor.ExecuteCommandByID( MEID_EDIT_REMOVE_NEW_LINES = 2111 );             // 改行を削除&lt;br /&gt;
editor.ExecuteCommandByID( MEID_EDIT_SPLIT_LINES = 2112 );                  // 行の分割&lt;br /&gt;
editor.ExecuteCommandByID( MEID_EDIT_JOIN_LINES = 2113 );                   // 行の結合&lt;br /&gt;
editor.ExecuteCommandByID( MEID_EDIT_UPPER_CASE = 2114 );                   // 大文字に変換&lt;br /&gt;
editor.ExecuteCommandByID( MEID_EDIT_LOWER_CASE = 2115 );                   // 小文字に変換&lt;br /&gt;
editor.ExecuteCommandByID( MEID_EDIT_CAPITALIZE = 2116 );                   // 単語の最初の文字を大文字に変換&lt;br /&gt;
editor.ExecuteCommandByID( MEID_EDIT_HALF_WIDTH = 2117 );                   // 半角に変換&lt;br /&gt;
editor.ExecuteCommandByID( MEID_EDIT_FULL_WIDTH = 2118 );                   // 全角に変換&lt;br /&gt;
editor.ExecuteCommandByID( MEID_EDIT_TABIFY = 2119 );                       // 空白をタブに変換&lt;br /&gt;
editor.ExecuteCommandByID( MEID_EDIT_UNTABIFY = 2120 );                     // タブを空白に変換&lt;br /&gt;
editor.ExecuteCommandByID( MEID_EDIT_INDENT = 2121 );                       // インデント&lt;br /&gt;
editor.ExecuteCommandByID( MEID_EDIT_UNINDENT = 2122 );                     // 逆インデント&lt;br /&gt;
editor.ExecuteCommandByID( MEID_EDIT_BASE64_DECODE = 2124 );                // Base64 デコード&lt;br /&gt;
editor.ExecuteCommandByID( MEID_EDIT_RECONVERT = 2123 );                    // 再変換&lt;br /&gt;
editor.ExecuteCommandByID( MEID_EDIT_INSERT = 2125 );                       // 挿入/上書の切り替え&lt;br /&gt;
editor.ExecuteCommandByID( MEID_EDIT_TOGGLE_BOOKMARK = 2126 );              // ブックマークを設定/解除&lt;br /&gt;
editor.ExecuteCommandByID( MEID_EDIT_NEXT_BOOKMARK = 2127 );                // 次のブックマーク&lt;br /&gt;
editor.ExecuteCommandByID( MEID_EDIT_PREV_BOOKMARK = 2128 );                // 前のブックマーク&lt;br /&gt;
editor.ExecuteCommandByID( MEID_EDIT_CLEAR_BOOKMARK = 2129 );               // ブックマークをクリア&lt;br /&gt;
editor.ExecuteCommandByID( MEID_EDIT_TOGGLE_SPELL = 2130 );                 // スペルチェック&lt;br /&gt;
editor.ExecuteCommandByID( MEID_EDIT_NEXT_SPELL = 2131 );                   // 次のスペルミス&lt;br /&gt;
editor.ExecuteCommandByID( MEID_EDIT_PREV_SPELL = 2132 );                   // 前のスペルミス&lt;br /&gt;
editor.ExecuteCommandByID( MEID_SEARCH_FIND = 2133 );                       // 検索&lt;br /&gt;
editor.ExecuteCommandByID( MEID_SEARCH_NEXT = 2134 );                       // 次を検索&lt;br /&gt;
editor.ExecuteCommandByID( MEID_SEARCH_PREV = 2135 );                       // 前を検索&lt;br /&gt;
editor.ExecuteCommandByID( MEID_SEARCH_NEXT_WORD = 2136 );                  // 次の文字列を検索&lt;br /&gt;
editor.ExecuteCommandByID( MEID_SEARCH_PREV_WORD = 2137 );                  // 前の文字列を検索&lt;br /&gt;
editor.ExecuteCommandByID( MEID_SEARCH_REPLACE = 2138 );                    // 置換&lt;br /&gt;
editor.ExecuteCommandByID( MEID_SEARCH_ERASE_FIND_HIGHLIGHT = 2139 );       // 検索文字列の強調を解除&lt;br /&gt;
editor.ExecuteCommandByID( MEID_SEARCH_FIND_IN_FILES = 2140 );              // ファイルから検索&lt;br /&gt;
editor.ExecuteCommandByID( MEID_SEARCH_REPLACE_IN_FILES = 2141 );           // ファイルから置換&lt;br /&gt;
editor.ExecuteCommandByID( MEID_SEARCH_GOOGLE = 2142 );                     // Google で検索&lt;br /&gt;
editor.ExecuteCommandByID( MEID_SEARCH_WIKIPEDIA = 2143 );                  // Wikipedia で検索&lt;br /&gt;
editor.ExecuteCommandByID( MEID_VIEW_MODE_CUSTOMIZE = 2144 );               // 編集モードの設定&lt;br /&gt;
editor.ExecuteCommandByID( MEID_VIEW_INVERT_COLOR = 2145 );                 // 色の反転&lt;br /&gt;
editor.ExecuteCommandByID( MEID_VIEW_WRAP_NONE = 2146 );                    // 折り返さない&lt;br /&gt;
editor.ExecuteCommandByID( MEID_VIEW_WRAP_BY_CHAR = 2147 );                 // 指定文字数で折り返し&lt;br /&gt;
editor.ExecuteCommandByID( MEID_VIEW_WRAP_BY_WINDOW = 2148 );               // ウィンドウの右端で折り返し&lt;br /&gt;
editor.ExecuteCommandByID( MEID_VIEW_SHOW_LINE_NUMBERS = 2149 );            // 行番号&lt;br /&gt;
editor.ExecuteCommandByID( MEID_VIEW_SHOW_RULER = 2150 );                   // ルーラー&lt;br /&gt;
editor.ExecuteCommandByID( MEID_VIEW_SHOW_CRLF = 2151 );                    // 改行&lt;br /&gt;
editor.ExecuteCommandByID( MEID_VIEW_SHOW_WRAP = 2152 );                    // 折り返し&lt;br /&gt;
editor.ExecuteCommandByID( MEID_VIEW_SHOW_EOF = 2153 );                     // EOF&lt;br /&gt;
editor.ExecuteCommandByID( MEID_VIEW_SHOW_TABS = 2154 );                    // タブ&lt;br /&gt;
editor.ExecuteCommandByID( MEID_VIEW_SHOW_SB_SPACES = 2155 );               // 半角空白&lt;br /&gt;
editor.ExecuteCommandByID( MEID_VIEW_SHOW_DB_SPACES = 2156 );               // 全角空白&lt;br /&gt;
editor.ExecuteCommandByID( MEID_VIEW_CRLF_DIFFERENT = 2157 );               // CR と LF を区別して表示&lt;br /&gt;
editor.ExecuteCommandByID( MEID_VIEW_STANDARD_BAR = 2158 );                 // 標準 バー&lt;br /&gt;
editor.ExecuteCommandByID( MEID_VIEW_MACROS_BAR = 2159 );                   // マクロ バー&lt;br /&gt;
editor.ExecuteCommandByID( MEID_VIEW_PLUGINS_BAR = 2160 );                  // プラグイン バー&lt;br /&gt;
editor.ExecuteCommandByID( MEID_VIEW_TOOLS_BAR = 2161 );                    // 外部ツール バー&lt;br /&gt;
editor.ExecuteCommandByID( MEID_VIEW_TOOL_BAR_TITLES = 2162 );              // ツール バーのタイトル&lt;br /&gt;
editor.ExecuteCommandByID( MEID_VIEW_LOCK_TOOL_BARS = 2163 );               // ツール バーを固定する&lt;br /&gt;
editor.ExecuteCommandByID( MEID_VIEW_TOOL_BAR_CUSTOMIZE = 2164 );           // ツール バーのカスタマイズ&lt;br /&gt;
editor.ExecuteCommandByID( MEID_VIEW_STATUS_BAR = 2165 );                   // ステータス バー&lt;br /&gt;
editor.ExecuteCommandByID( MEID_VIEW_OUTPUT_BAR = 2166 );                   // アウトプット バー&lt;br /&gt;
editor.ExecuteCommandByID( MEID_VIEW_INC_FONT_SIZE = 2167 );                // 大きいフォントサイズ&lt;br /&gt;
editor.ExecuteCommandByID( MEID_VIEW_DEC_FONT_SIZE = 2168 );                // 小さいフォントサイズ&lt;br /&gt;
editor.ExecuteCommandByID( MEID_VIEW_FONT_CUSTOMIZE = 2169 );               // フォントの設定&lt;br /&gt;
editor.ExecuteCommandByID( MEID_MACROS_RECORD = 2170 );                     // マクロの記録/停止&lt;br /&gt;
editor.ExecuteCommandByID( MEID_MACROS_RUN = 2171 );                        // マクロの実行&lt;br /&gt;
editor.ExecuteCommandByID( MEID_MACROS_SAVE = 2172 );                       // マクロを保存&lt;br /&gt;
editor.ExecuteCommandByID( MEID_MACROS_EDIT = 2173 );                       // マクロを編集&lt;br /&gt;
editor.ExecuteCommandByID( MEID_MACROS_SELECT = 2174 );                     // マクロを選択&lt;br /&gt;
editor.ExecuteCommandByID( MEID_MACROS_SELECT_THIS = 2175 );                // このマクロを選択&lt;br /&gt;
editor.ExecuteCommandByID( MEID_MACROS_CUSTOMIZE = 2176 );                  // マクロのカスタマイズ&lt;br /&gt;
editor.ExecuteCommandByID( MEID_TOOLS_OPTIONS = 2177 );                     // オプション&lt;br /&gt;
editor.ExecuteCommandByID( MEID_TOOLS_COMPLETION = 2178 );                  // 単語補完&lt;br /&gt;
editor.ExecuteCommandByID( MEID_TOOLS_SQL_FORMAT = 2179 );                  // SQL 整形&lt;br /&gt;
editor.ExecuteCommandByID( MEID_TOOLS_XML_FORMAT = 2180 );                  // ドキュメントの整形&lt;br /&gt;
editor.ExecuteCommandByID( MEID_TOOLS_PLUGIN_CUSTOMIZE = 2181 );            // プラグインの設定&lt;br /&gt;
editor.ExecuteCommandByID( MEID_TOOLS_TOOL_CUSTOMIZE = 2182 );              // 外部ツールの設定&lt;br /&gt;
editor.ExecuteCommandByID( MEID_TOOLS_TERMINATE_TOOL = 2183 );              // ツール ジョブの中止&lt;br /&gt;
editor.ExecuteCommandByID( MEID_TOOLS_POPUP_MENU_CUSTOMIZE = 2184 );        // ポップアップメニューの設定&lt;br /&gt;
editor.ExecuteCommandByID( MEID_WINDOW_ALWAYS_TOP = 2185 );                 // 常に最上位&lt;br /&gt;
editor.ExecuteCommandByID( MEID_WINDOW_SPLIT_HORZ = 2186 );                 // 上下に分割&lt;br /&gt;
editor.ExecuteCommandByID( MEID_WINDOW_NEXT_PANE = 2187 );                  // 次のペイン&lt;br /&gt;
editor.ExecuteCommandByID( MEID_WINDOW_PREV_PANE = 2188 );                  // 前のペイン&lt;br /&gt;
editor.ExecuteCommandByID( MEID_WINDOW_ACTIVE_PANE = 2189 );                // アクティブなペイン&lt;br /&gt;
editor.ExecuteCommandByID( MEID_WINDOW_COMBINE = 2190 );                    // タブを有効にする&lt;br /&gt;
editor.ExecuteCommandByID( MEID_WINDOW_CASCADE = 2191 );                    // 重ねて表示&lt;br /&gt;
editor.ExecuteCommandByID( MEID_WINDOW_TILE_HORZ = 2192 );                  // 上下に並べて表示&lt;br /&gt;
editor.ExecuteCommandByID( MEID_WINDOW_TILE_VERT = 2193 );                  // 左右に並べて表示&lt;br /&gt;
editor.ExecuteCommandByID( MEID_WINDOW_MINIMIZE_ALL = 2194 );               // すべて最小化&lt;br /&gt;
editor.ExecuteCommandByID( MEID_WINDOW_NEXT = 2195 );                       // 次の文書&lt;br /&gt;
editor.ExecuteCommandByID( MEID_WINDOW_PREV = 2196 );                       // 前の文書&lt;br /&gt;
editor.ExecuteCommandByID( MEID_HELP_ONLINE = 2197 );                       // オンラインヘルプ&lt;br /&gt;
editor.ExecuteCommandByID( MEID_HELP_KEYBOARD_MAP = 2198 );                 // キーボードマップ&lt;br /&gt;
editor.ExecuteCommandByID( MEID_HELP_ABOUT = 2199 );                        // バージョン情報&lt;br /&gt;
editor.ExecuteCommandByID( MEID_EDIT_PASTE_QUOTES = 2200 );                 // 引用付き貼り付け（2.2.5 ～）&lt;br /&gt;
editor.ExecuteCommandByID( MEID_EDIT_COPY_LINK = 2201 );                    // リンクをコピー（2.2.5 ～）&lt;br /&gt;
editor.ExecuteCommandByID( MEID_EDIT_OPEN_LINK = 2202 );                    // リンクを開く（2.2.5 ～）&lt;br /&gt;
editor.ExecuteCommandByID( MEID_VIEW_FULL_SCREEN = 2203 );                  // 全画面表示（2.4.0 ～）&lt;br /&gt;
editor.ExecuteCommandByID( MEID_MACROS_RUN_OPTIONS = 2204 );                // 一時オプションを設定してマクロを実行（2.4.0 ～）&lt;br /&gt;
editor.ExecuteCommandByID( MEID_VIEW_RESET_FONT_SIZE = 2205 );              // フォントサイズをリセット（2.4.1 ～）&lt;br /&gt;
editor.ExecuteCommandByID( MEID_VIEW_SET_DEFAULT_FONT_SIZE = 2206 );        // 現在のフォントサイズを既定に設定（2.4.1 ～）&lt;br /&gt;
editor.ExecuteCommandByID( MEID_EDIT_SPELL_ALL = 2207 );                    // すべてのスペルチェック（2.4.3 ～）&lt;br /&gt;
editor.ExecuteCommandByID( MEID_EDIT_SPELL_SINGLE_QUOTES = 2208 );          // 1 重引用符で囲まれた文字列のスペルチェック（2.4.3 ～）&lt;br /&gt;
editor.ExecuteCommandByID( MEID_EDIT_SPELL_DOUBLE_QUOTES = 2209 );          // 2 重引用符で囲まれた文字列のスペルチェック（2.4.3 ～）&lt;br /&gt;
editor.ExecuteCommandByID( MEID_EDIT_SPELL_COMMENTS = 2210 );               // コメントのスペルチェック（2.4.3 ～）&lt;br /&gt;
editor.ExecuteCommandByID( MEID_EDIT_SPELL_SCRIPT = 2211 );                 // スクリプトのスペルチェック（2.4.3 ～）&lt;br /&gt;
editor.ExecuteCommandByID( MEID_EDIT_SPELL_TAGS = 2212 );                   // タグのスペルチェック（2.4.3 ～）&lt;br /&gt;
editor.ExecuteCommandByID( MEID_EDIT_SPELL_HIGHLIGHT = 2213 );              // 強調文字列のスペルチェック（2.4.3 ～）&lt;br /&gt;
editor.ExecuteCommandByID( MEID_EDIT_SPELL_HYPERLINK = 2214 );              // ハイパーリンクのスペルチェック（2.4.3 ～）&lt;br /&gt;
editor.ExecuteCommandByID( MEID_EDIT_SPELL_OTHER = 2215 );                  // その他のスペルチェック（2.4.3 ～）&lt;br /&gt;
// editor.QueryStatusByID( MEID_REPLACE_IN_FILES = 2216 );                  // × ファイルから置換 （2.4.8 ～）&lt;br /&gt;
editor.ExecuteCommandByID( MEID_EDIT_CUT_LINE = 2217 );                     // 行切り取り（2.5.0 ～）&lt;br /&gt;
editor.ExecuteCommandByID( MEID_EDIT_COPY_LINE = 2218 );                    // 行コピー（2.5.0 ～）&lt;br /&gt;
editor.ExecuteCommandByID( MEID_EDIT_DELETE_LINE = 2219 );                  // 行削除（2.5.0 ～）&lt;br /&gt;
editor.ExecuteCommandByID( MEID_EDIT_DELETE_RIGHT_LINE = 2220 );            // 行右削除（2.5.0 ～）&lt;br /&gt;
editor.ExecuteCommandByID( MEID_EDIT_DELETE_LEFT_LINE = 2221 );             // 行左削除（2.5.0 ～）&lt;br /&gt;
editor.ExecuteCommandByID( MEID_EDIT_DELETE_WORD = 2222 );                  // 単語の削除（2.5.0 ～）&lt;br /&gt;
editor.ExecuteCommandByID( MEID_EDIT_DELETE_RIGHT_WORD = 2223 );            // 単語右削除（2.5.0 ～）&lt;br /&gt;
editor.ExecuteCommandByID( MEID_EDIT_DELETE_LEFT_WORD = 2224 );             // 単語左削除（2.5.0 ～）&lt;br /&gt;
editor.ExecuteCommandByID( MEID_TOOLS_HTML_CHECK_ERRORS = 2225 );           // ドキュメントのエラーをチェック（2.5.0 ～）&lt;br /&gt;
editor.ExecuteCommandByID( MEID_WINDOW_SPLIT_VERT = 2226 );                 // 左右に分割（2.5.0 ～）&lt;br /&gt;
editor.ExecuteCommandByID( MEID_VIEW_MARKERS_BAR = 2227 );                  // マーカー バー（2.6.1 ～）&lt;br /&gt;
editor.ExecuteCommandByID( MEID_VIEW_SMALL_ICONS = 2228 );                  // 小アイコン（2.6.1 ～）&lt;br /&gt;
editor.ExecuteCommandByID( MEID_VIEW_MEDIUM_ICONS = 2229 );                 // 中アイコン（2.6.1 ～）&lt;br /&gt;
editor.ExecuteCommandByID( MEID_VIEW_LARGE_ICONS = 2230 );                  // 大アイコン（2.6.1 ～）&lt;br /&gt;
editor.ExecuteCommandByID( MEID_VIEW_EXTRA_LARGE_ICONS = 2231 );            // 特大アイコン（2.6.1 ～）&lt;br /&gt;
editor.ExecuteCommandByID( MEID_VIEW_ADD_REMOVE_MARKER = 2232 );            // マーカーに追加/削除（2.6.1 ～）&lt;br /&gt;
editor.ExecuteCommandByID( MEID_VIEW_MARKER_ENABLE_ALL = 2233 );            // すべてのマーカーを有効にする（2.6.1 ～）&lt;br /&gt;
editor.ExecuteCommandByID( MEID_VIEW_MARKER_DISABLE_ALL = 2234 );           // すべてのマーカーを無効にする（2.6.1 ～）&lt;br /&gt;
editor.ExecuteCommandByID( MEID_VIEW_MARKER_DELETE_ALL = 2235 );            // すべてのマーカーを削除する（2.6.1 ～）&lt;br /&gt;
editor.ExecuteCommandByID( MEID_VIEW_TOGGLE_AUTO_MARKER = 2236 );           // 自動マーカー（2.6.1 ～）&lt;br /&gt;
editor.ExecuteCommandByID( MEID_VIEW_MARKER_CUSTOMIZE = 2237 );             // マーカーの設定（2.6.1 ～）&lt;br /&gt;
editor.ExecuteCommandByID( MEID_VIEW_VERTICAL = 2238 );                     // 縦書き（2.6.5 ～）&lt;br /&gt;
editor.ExecuteCommandByID( MEID_EDIT_BASE64_ENCODE = 2239 );                // Base64 エンコード（2.6.6 ～）&lt;br /&gt;
editor.ExecuteCommandByID( MEID_FILE_AUTO_SAVE = 2240 );                    // 自動保存（2.6.9 ～）&lt;br /&gt;
editor.ExecuteCommandByID( MEID_EDIT_GO_TO_CHANGED = 2241 );                // 最後に編集した位置へ移動（2.6.9 ～）&lt;br /&gt;
editor.ExecuteCommandByID( MEID_VIEW_SHOW_CHANGED = 2242 );                 // 変更行を強調表（2.6.9 ～）&lt;br /&gt;
editor.ExecuteCommandByID( MEID_EDIT_NEXT_CHANGED = 2243 );                 // 次の変更行（2.6.12 ～）&lt;br /&gt;
editor.ExecuteCommandByID( MEID_EDIT_PREV_CHANGED = 2244 );                 // 前の変更行（2.6.12 ～）&lt;br /&gt;
editor.ExecuteCommandByID( MEID_EDIT_TOGGLE_CHARACTER_CODE = 2245 );        // 文字コードの切り替え（2.6.13 ～）&lt;br /&gt;
editor.ExecuteCommandByID( MEID_VIEW_ZEN_MODE = 2246 );                     // Zen モード（2.6.15 ～）&lt;br /&gt;
editor.ExecuteCommandByID( MEID_VIEW_TYPEWRITER_SCROLL = 2247 );            // タイプライタースクロール（2.6.15 ～）&lt;br /&gt;
editor.ExecuteCommandByID( MEID_WINDOW_SHOW_MARKERS = 2248 );               // マーカーを表示（スクロールバー）（2.7.0 ～）&lt;br /&gt;
editor.ExecuteCommandByID( FileCloseOthers = 2249 );                        // 他のタブをすべて閉じる（2.7.5 ～）&lt;br /&gt;
editor.ExecuteCommandByID( FileCloseLeft = 2250 );                          // 左のタブをすべて閉じる（2.7.5 ～）&lt;br /&gt;
editor.ExecuteCommandByID( FileCloseRight = 2251 );                         // 右のタブをすべて閉じる（2.7.5 ～）&lt;br /&gt;
editor.ExecuteCommandByID( ViewMacrosBarLabels = 2252 );                    // マクロ バーのラベルを表示（2.8.0 ～）&lt;br /&gt;
editor.ExecuteCommandByID( FileNewGroup = 2253 );                           // 新しいウィンドウに移動（2.8.7 ～）&lt;br /&gt;
editor.ExecuteCommandByID( EditSplitSelIntoLines = 2254 );                  // 選択範囲を行に分ける（3.0.0 ～）&lt;br /&gt;
editor.ExecuteCommandByID( EditAddCursorToNextLine = 2255 );                // 次の行にカーソルを追加（3.0.0 ～）&lt;br /&gt;
editor.ExecuteCommandByID( EditAddCursorToPrevLine = 2256 );                // 前の行にカーソルを追加（3.0.0 ～）&lt;br /&gt;
editor.ExecuteCommandByID( SearchFindAllAndSelect = 2257 );                 // すべて検索して選択（3.0.0 ～）&lt;br /&gt;
editor.ExecuteCommandByID( SearchAddNextMatch = 2258 );                     // 選択範囲に次の候補を追加（3.0.0 ～）&lt;br /&gt;
editor.ExecuteCommandByID( SearchSkipCurrentMatch = 2259 );                 // スキップして次の候補を追加（3.0.0 ～）&lt;br /&gt;
editor.ExecuteCommandByID( SearchUndoSelection = 2260 );                    // 選択範囲を元に戻す（3.0.0 ～）&lt;br /&gt;
editor.ExecuteCommandByID( SearchRedoSelection = 2261 );                    // 選択範囲をやり直し（3.0.0 ～）&lt;br /&gt;
editor.ExecuteCommandByID( WindowRightAction = 2262 );                      // 右の文書（3.1.0 ～）&lt;br /&gt;
editor.ExecuteCommandByID( WindowLeftAction = 2263 );                       // 左の文書（3.1.0 ～）&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
// 辞書、編集モード、マクロ、プラグイン、外部ツール&lt;br /&gt;
editor.ExecuteCommandByID( MEID_DICTS = 4096 );     // 以降、登録順に ID の数値をインクリメント&lt;br /&gt;
editor.ExecuteCommandByID( MEID_MODES = 5120 );     // 以降、登録順に ID の数値をインクリメント&lt;br /&gt;
editor.ExecuteCommandByID( MEID_MACROS = 6144 );    // 以降、登録順に ID の数値をインクリメント&lt;br /&gt;
editor.ExecuteCommandByID( MEID_PLUGINS = 7168 );   // 以降、登録順に ID の数値をインクリメント&lt;br /&gt;
editor.ExecuteCommandByID( MEID_TOOLS = 8192 );     // 以降、登録順に ID の数値をインクリメント&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * マクロ用 定数一覧： flags&lt;br /&gt;
 * &lt;br /&gt;
 * 『マクロリファレンス』にあるマクロ用定数（リテラル値 ／ 数値）&lt;br /&gt;
 * ※ 16進表記の定数は加算可&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
Document.Selection.EndOfLine( [bool [, flags]] )&lt;br /&gt;
Document.Selection.StartOfLine( [bool [, flags]] )&lt;br /&gt;
Document.Selection.GetActivePointX( flags [, sel] ) ／ GetActivePointY( flags [, sel] )&lt;br /&gt;
Document.Selection.GetAnchorPointX( flags [, sel] ) ／ GetAnchorPointY( flags [, sel] )&lt;br /&gt;
Document.Selection.GetBottomPointX( flags [, sel] ) ／ GetBottomPointY( flags [, sel] )&lt;br /&gt;
Document.Selection.GetTopPointX( flags [, sel] )    ／ GetTopPointY( flags [, sel] )&lt;br /&gt;
Document.Selection.SetActivePoint( flags, x, y [, bool] )&lt;br /&gt;
Document.Selection.SetAnchorPoint( flags, x, y )&lt;br /&gt;
&lt;br /&gt;
mePosView           = 1     // 表示座標で指定します。（※ 省略可能なばあいの規定値）&lt;br /&gt;
mePosLogical        = 2     // 論理座標で指定します。&lt;br /&gt;
// ※ 省略可能な引数 sel は Mery ver 3.0.1 以降でのみ利用可（マルチカーソル用）&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Document.Selection.ChangeCase( flags )&lt;br /&gt;
&lt;br /&gt;
meCaseUpperCase     = 1     // 大文字に変換します。&lt;br /&gt;
meCaseLowerCase     = 2     // 小文字に変換します。&lt;br /&gt;
meCaseCapitalize    = 3     // 単語の最初の文字を大文字に変換します。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Document.Selection.ChangeWidth( flags )&lt;br /&gt;
&lt;br /&gt;
meWidthHalfWidth    = 1     // 半角に変換します。&lt;br /&gt;
meWidthFullWidth    = 2     // 全角に変換します。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Document.Selection.Collapse( [flags] )&lt;br /&gt;
&lt;br /&gt;
meCollapseStart     = 1     // 開始位置に向かって選択範囲を解除します。（※ 規定値）&lt;br /&gt;
meCollapseEnd       = 2     // 終了位置に向かって選択範囲を解除します。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Document.Selection.Copy( [flags] )&lt;br /&gt;
Document.Selection.Paste( [flags] )&lt;br /&gt;
&lt;br /&gt;
// ME_COPYUNICODE   = 1     // ※ マクロでは利用できない&lt;br /&gt;
meCopyQuotes        = 2     // 引用マークを付けてコピー／貼り付けします。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Document.Selection.Format( flags )&lt;br /&gt;
&lt;br /&gt;
meFormatInsertNL    = 1     // 折り返し位置に改行を挿入します。&lt;br /&gt;
meFormatDeleteNL    = 2     // 折り返し位置の改行を削除します。&lt;br /&gt;
meFormatSplitLines  = 3     // 折り返し位置に改行を挿入して終端の空白を削除します。&lt;br /&gt;
meFormatJoinLines   = 4     // 折り返し位置の改行を削除して終端に空白を挿入します。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Document.Selection.InsertDate( flags )&lt;br /&gt;
&lt;br /&gt;
meDateTimeDate      = 1     // 時刻、日付の順に挿入します。&lt;br /&gt;
meDateDateTime      = 2     // 日付、時刻の順に挿入します。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Document.Selection.Find( str, flags )&lt;br /&gt;
&lt;br /&gt;
meFindPrevious          = 0x0000 (0)        // 前を検索します。&lt;br /&gt;
meFindNext              = 0x0001 (1)        // 次を検索します。&lt;br /&gt;
meFindAround            = 0x0008 (8)        // 文末まで検索したら文頭に移動します。&lt;br /&gt;
&lt;br /&gt;
    // ※Mery ver 2.8.3 以降&lt;br /&gt;
    meFindMigemo        = 0x0400 (1024)     // Migemo を使用します。&lt;br /&gt;
    // ※Mery ver 3.0.1 以降&lt;br /&gt;
    meFindAll           = 0x0800 (2048)     // すべて検索します。&lt;br /&gt;
&lt;br /&gt;
Document.Selection.Find( str, flags )&lt;br /&gt;
Document.Selection.Replace( strFind, strReplace, flags )&lt;br /&gt;
Editor.FindInFiles( strFind, strPath, flags )&lt;br /&gt;
Editor.ReplaceInFiles( strFind, strReplace, strPath, flags )&lt;br /&gt;
&lt;br /&gt;
meFindReplaceCase       = 0x0002 (2)        // 大文字と小文字を区別します。&lt;br /&gt;
meFindReplaceOnlyWord   = 0x0004 (4)        // 単語のみ検索します。&lt;br /&gt;
meFindReplaceRegExp     = 0x0010 (16)       // 正規表現を使用します。&lt;br /&gt;
&lt;br /&gt;
    // ※Mery ver 3.0.1 以降&lt;br /&gt;
    meFindNotBOL        = 0x1000 (4096)     // 選択範囲の先頭を行頭とみなさず検索／置換します。（※ 置換でのみ？）&lt;br /&gt;
    meFindNotEOL        = 0x2000 (8192)     // 選択範囲の終端を行頭とみなさず検索／置換します。（※ 置換でのみ？）&lt;br /&gt;
    meFindKeepOptions   = 0x4000 (16384)    // 検索／置換ダイアログのオプションを維持します。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Document.Selection.Replace( strFind, strReplace, flags )&lt;br /&gt;
&lt;br /&gt;
meReplaceSelOnly        = 0x0020 (32)       // 選択した範囲のみ置換します。&lt;br /&gt;
meReplaceAll            = 0x0040 (64)       // すべて置換します。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Editor.FindInFiles( strFind, strPath, flags )&lt;br /&gt;
Editor.ReplaceInFiles( strFind, strReplace, strPath, flags )&lt;br /&gt;
&lt;br /&gt;
meFindRecursive         = 0x0080 (128)      // サブフォルダーも検索します。&lt;br /&gt;
meFindFileNamesOnly     = 0x0100 (256)      // ファイル名のみ表示します。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Editor.ReplaceInFiles( strFind, strReplace, strPath, flags )&lt;br /&gt;
&lt;br /&gt;
meReplaceBackup         = 0x0200 (512)      // バックアップを保存します。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Document.Selection.FindRepeat( flags )&lt;br /&gt;
&lt;br /&gt;
meFindPrevious          = 0x00 (0)          // 前を検索します。 meFindRepeatPrevious&lt;br /&gt;
meFindNext              = 0x01 (1)          // 次を検索します。 meFindRepeatNext&lt;br /&gt;
meFindRepeatWord        = 0x02 (2)          // 選択範囲が空の場合はカーソル位置の単語を検索します。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
// ※Mery ver 3.0.1 以降&lt;br /&gt;
Document.Selection.Mode プロパティ&lt;br /&gt;
&lt;br /&gt;
meModeStream        = 1     // 通常選択 (ストリーム選択)&lt;br /&gt;
meModeBox           = 2     // 矩形選択&lt;br /&gt;
meModeMulti         = 3     // 複数選択 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Document.GetLine( y [, flags] )&lt;br /&gt;
&lt;br /&gt;
meGetLineWithNewLines   = 0x01 (1)  // 表示座標で指定します。（※ 規定値）&lt;br /&gt;
                                    // ※ 0 指定で論理行&lt;br /&gt;
Document.GetLine( y [, flags] )&lt;br /&gt;
Document.GetLines( [flags] )&lt;br /&gt;
&lt;br /&gt;
meGetLineView           = 0x02 (2)  // テキストに改行コードを追加します。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
CreatePopupMenu.Add( strText, id [, flags] )&lt;br /&gt;
&lt;br /&gt;
meMenuChecked       = 0x01 (1)      // チェック&lt;br /&gt;
meMenuGrayed        = 0x02 (2)      // 無効&lt;br /&gt;
meMenuSeparator     = 0x04 (4)      // 区切り&lt;br /&gt;
// ※ 0 指定した場合は通常表示&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
CreatePopupMenu.Track( flags )&lt;br /&gt;
&lt;br /&gt;
mePosMouse          = 1         // マウスポインターの位置にポップアップメニューを表示します。&lt;br /&gt;
                                // ※ 0 指定でキャレット位置にポップアップ&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Editor.OpenFile( fileName [, encoding, flags] )&lt;br /&gt;
&lt;br /&gt;
meOpenAllowNewWindow    = 1     // 現在の文書が変更されている場合に新しいタブまたはウィンドウで開きます。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * エンコード定数（文字コード： encoding）&lt;br /&gt;
 * &lt;br /&gt;
 * ※ FileSystemObject.OpenTextFile( filename [, iomode [, create [, format]]] )&lt;br /&gt;
 *    の format では&lt;br /&gt;
 *      TristateFalse           = 0         // ASCII（Shift-JIS）&lt;br /&gt;
 *      TristateTrue            = -1        // Unicode（UTF-16）&lt;br /&gt;
 *      TristateUseDefault      = -2        // システムの規定値&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
Editor.OpenFile( fileName [, encoding, flags] )&lt;br /&gt;
Document.Selection.InsertFromFile( fileName, encoding )&lt;br /&gt;
&lt;br /&gt;
// Mery 定数（リテラル値）      Mery 定数（数値）                   ADODB.Charset プロパティ（※ システム環境依存）&lt;br /&gt;
meEncodingNone                  = 0         // 自動選択&lt;br /&gt;
meEncodingUTF16LE               = 65537     // UTF-16LE                 &amp;quot;utf-16&amp;quot;&lt;br /&gt;
meEncodingUTF16LEBOM            = 655371    // UTF-16LE (BOMつき)       &amp;quot;utf-16&amp;quot;&lt;br /&gt;
meEncodingUTF16LENoBOM          = 655370    // UTF-16LE (BOMなし)       &amp;quot;utf-16&amp;quot;&lt;br /&gt;
meEncodingUTF16BE               = 65538     // UTF-16BE                 &amp;quot;utf-16&amp;quot;&lt;br /&gt;
meEncodingUTF16BEBOM            = 655381    // UTF-16BE (BOMつき)       &amp;quot;utf-16&amp;quot;&lt;br /&gt;
meEncodingUTF16BENoBOM          = 655380    // UTF-16BE (BOMなし)       &amp;quot;utf-16&amp;quot;&lt;br /&gt;
meEncodingUTF8                  = 65001     // UTF-8                    &amp;quot;utf-8&amp;quot;&lt;br /&gt;
meEncodingUTF8BOM               = 650011    // UTF-8 (BOMつき)          &amp;quot;utf-8&amp;quot;&lt;br /&gt;
meEncodingUTF8NoBOM             = 650010    // UTF-8 (BOMなし)          &amp;quot;utf-8&amp;quot;&lt;br /&gt;
meEncodingUTF7                  = 65000     // UTF-7                    &amp;quot;utf-7&amp;quot;&lt;br /&gt;
meEncodingArabic                = 1256      // アラビア語               &amp;quot;windows-1256&amp;quot;&lt;br /&gt;
meEncodingBaltic                = 1257      // バルト言語               &amp;quot;windows-1257&amp;quot;&lt;br /&gt;
meEncodingCentralEuropean       = 1250      // 中央ヨーロッパ言語       &amp;quot;windows-1250&amp;quot;&lt;br /&gt;
meEncodingChineseSimplified     = 936       // 簡体字中国語 (GB2312)    &amp;quot;gb2312&amp;quot;&lt;br /&gt;
meEncodingChineseTraditional    = 950       // 繁体字中国語 (Big5)      &amp;quot;big5&amp;quot;&lt;br /&gt;
meEncodingCyrillic              = 1251      // キリル言語               &amp;quot;windows-1251&amp;quot;&lt;br /&gt;
meEncodingGreek                 = 1253      // ギリシャ語               &amp;quot;windows-1253&amp;quot;&lt;br /&gt;
meEncodingHebrew                = 1255      // ヘブライ語               &amp;quot;windows-1255&amp;quot;&lt;br /&gt;
meEncodingEUC                   = 51932     // 日本語 (EUC)             &amp;quot;euc-jp&amp;quot;&lt;br /&gt;
meEncodingJIS                   = 50222     // 日本語 (JIS)             &amp;quot;iso-2022-jp&amp;quot;&lt;br /&gt;
meEncodingShiftJIS              = 932       // 日本語 (シフト JIS)      &amp;quot;shift_jis&amp;quot;&lt;br /&gt;
meEncodingKorean                = 949       // 韓国語                   &amp;quot;euc-kr&amp;quot;,  &amp;quot;ks_c_5601-1987&amp;quot;？&lt;br /&gt;
meEncodingThai                  = 874       // タイ語                   &amp;quot;windows-874&amp;quot;&lt;br /&gt;
meEncodingTurkish               = 1254      // トルコ語                 &amp;quot;windows-1254&amp;quot;,  &amp;quot;iso-8859-9&amp;quot;？&lt;br /&gt;
meEncodingVietnamese            = 1258      // ベトナム語               &amp;quot;windows-1258&amp;quot;&lt;br /&gt;
meEncodingWesternEuropean       = 1252      // 西ヨーロッパ言語         &amp;quot;windows-1252&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sukemaru</name></author>
	</entry>
	<entry>
		<id>https://www.haijin-boys.com/wiki/index.php?title=Mery.ini%E3%81%AE%E3%82%AA%E3%83%97%E3%82%B7%E3%83%A7%E3%83%B3%E5%80%A4%E3%82%92%E5%8F%96%E5%BE%97&amp;diff=5507</id>
		<title>Mery.iniのオプション値を取得</title>
		<link rel="alternate" type="text/html" href="https://www.haijin-boys.com/wiki/index.php?title=Mery.ini%E3%81%AE%E3%82%AA%E3%83%97%E3%82%B7%E3%83%A7%E3%83%B3%E5%80%A4%E3%82%92%E5%8F%96%E5%BE%97&amp;diff=5507"/>
		<updated>2021-01-20T23:34:24Z</updated>

		<summary type="html">&lt;p&gt;Sukemaru: 説明文を修正・更新&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;
テキストエディタ Mery の設定ファイル &#039;&#039;&#039;Mery.ini&#039;&#039;&#039; を参照して任意の項目の設定値を取得するための &#039;&#039;&#039;マクロ用組み込みコード&#039;&#039;&#039; です。&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
複数の項目を配列にして関数に渡す仕様につき Mery.ini へのアクセス（&#039;&#039;&#039;読みこみ&#039;&#039;&#039;）が１回で済むため、多様性に富んだ参照を高速に処理できます。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
※ &amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;このページのマクロ関数は Mery.ini の内容を編集（書き換え）するものではありません。&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
※ 標準ツールバーのメニューや右クリックメニューのコマンド、ツールバーアイコン、ショートカットキー、他のマクロなどから変更された設定内容（おもにエディタの表示設定）は直ちに Mery.ini に反映されるわけではないので、この組み込み用コードにより取得されたオプション値がエディタの状態どおりではない場合があります。&amp;lt;br&amp;gt;&lt;br /&gt;
⇒　[[#QueryStatusByID|Mery ver 3.1.0 以降ではメニュー項目の &#039;&#039;&#039;✔&#039;&#039;&#039;チェックの ON／OFF 状態もマクロから取得できるようになったようです。]]&lt;br /&gt;
&amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== GetIniOption() 関数 ==&lt;br /&gt;
&lt;br /&gt;
Mery.ini ファイル内の各行 &amp;lt;br&amp;gt;&lt;br /&gt;
 &#039;&#039;&#039;KeyName&#039;&#039;&#039;=&#039;&#039;&#039;value&#039;&#039;&#039;&lt;br /&gt;
の「項目名 &amp;lt;code&amp;gt;KeyName&amp;lt;/code&amp;gt;」の文字列を指定して「値 &amp;lt;code&amp;gt;value&amp;lt;/code&amp;gt;」を取得するための &#039;&#039;&#039;組み込み用関数&#039;&#039;&#039; です。&amp;lt;br&amp;gt;&lt;br /&gt;
Mery.ini の任意の項目名（左辺） &amp;lt;code&amp;gt;KeyName&amp;lt;/code&amp;gt; で検索をかけて、生の値（右辺）&amp;lt;code&amp;gt;value&amp;lt;/code&amp;gt; をそのまま取得します。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [[#関数1|組み込み関数本体]] を任意のマクロのソースコード内にペーストして使用します。&lt;br /&gt;
: ペーストする位置は呼び出し元のコードから参照できるスコープ内であれば、ソースコードの末尾でも問題ありません。&lt;br /&gt;
: 使い方は [[#使い方|使用例]] を参考にしてください。&lt;br /&gt;
&lt;br /&gt;
* INI 内に &#039;&#039;&#039;同名の「項目名」&#039;&#039;&#039; がある場合は、さいしょにヒットした項目の「値」のみを返します。これは、引数の配列の要素（項目名）と戻り値の配列の要素（値）を 1 対 1 で対照させるための仕様です。&amp;lt;br&amp;gt; → 重複する「項目名」のある項目を参照する場合は [[#GetIniOption2() 関数|GetIniOption2() 関数]] か [[#GetIniOption3() 関数|GetIniOption3() 関数]] を使用してください（2019/05/21, 2020/05/14 追加）。&lt;br /&gt;
&lt;br /&gt;
* 引数の配列で「オプション項目名 &amp;lt;code&amp;gt;KeyName&amp;lt;/code&amp;gt;」の記述を間違えると、 警告ダイアログを表示し、誤った項目名を指摘します。&amp;lt;br&amp;gt; ※ 呼び出し元のコードの処理は継続されます。&lt;br /&gt;
&lt;br /&gt;
* 「Mery.exe」自体のファイル名をリネームしている場合も、Mery の実行ファイルのベース名を取得して、適切な INI ファイルを読みこみます。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;このマクロ関数は Mery.ini の内容を編集（書き換え）するものではありません。 &amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* 基本的に Mery.ini は [[ヘルプ:ツール#オプション|オプション]] などの設定ダイアログを閉じたときと Mery を終了したときにしか更新されず、標準メニューバー、ツールバーアイコン、右クリックメニュー、ショートカットキー、マクロ等でエディタの設定状態を変更しているばあい、INI の内容が最新の状態とはなりません。 &amp;lt;br&amp;gt; よって、かならずしもエディタの表示状態（折り返しや色の反転、記号の表示設定など）どおりの値を取得できるわけではありません。&amp;lt;br&amp;gt; ･･･ MeryInfo.js にはない項目として「行の表示方法」の取得ぐらいしか使い道がない？&lt;br /&gt;
:* Mery.ini の直接編集でオプションパネルから設定変更できない「&#039;&#039;&#039;隠し機能&#039;&#039;&#039;」項目をカスタマイズしている人なら、現在の設定値の確認などにも使えるかも？&lt;br /&gt;
:* [[#メモ|メモ]] に挙げた導入事例のマクロのように、関数コードを改造することで Mery.ini のマクロへの活用法の幅がひろがりますが…。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== ソースコード ===&lt;br /&gt;
 // #title=&amp;quot;Mery.ini のオプション値を取得&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 /**&lt;br /&gt;
  * 組み込み関数 &#039;&#039;&#039;GetIniOption( keyArray )&#039;&#039;&#039;&lt;br /&gt;
  * 引数で指定した &#039;&#039;&#039;任意の&#039;&#039;&#039; INI オプション項目の「値」を返す&lt;br /&gt;
  *&lt;br /&gt;
  * &#039;&#039;&#039;引数:&#039;&#039;&#039; INI オプション項目名を列挙した配列&lt;br /&gt;
  * ※ 記述形式は &#039;&#039;&#039;&#039;&#039;[ &amp;quot;KeyName1&amp;quot;, &amp;quot;KeyName2&amp;quot;, &amp;quot;KeyName3&amp;quot; ]&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
  * &lt;br /&gt;
  * &#039;&#039;&#039;戻り値:&#039;&#039;&#039; INI オプション項目の「値」を並べた &#039;&#039;&#039;配列&#039;&#039;&#039;。&lt;br /&gt;
  * ※ 配列の形式は &#039;&#039;&#039;&#039;&#039;[ &amp;quot;value1&amp;quot;, &amp;quot;value2&amp;quot;, &amp;quot;value3&amp;quot; ]&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
  *    各要素 value は &#039;&#039;&#039;数値型&#039;&#039;&#039;（Number） または &#039;&#039;&#039;文字列型&#039;&#039;&#039;（String）&lt;br /&gt;
  */&lt;br /&gt;
&amp;lt;div id=&amp;quot;関数1&amp;quot;&amp;gt; &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
// ---------- ▼ 組み込み関数 ココから ▼ ----------&lt;br /&gt;
&lt;br /&gt;
function GetIniOption( keyArray ) {&lt;br /&gt;
  // Mery.ini を探す&lt;br /&gt;
  var iniPath = editor.FullName.replace( /\.exe$/i, &amp;quot;.ini&amp;quot; );&lt;br /&gt;
  var Fso = new ActiveXObject( &amp;quot;Scripting.FileSystemObject&amp;quot; );&lt;br /&gt;
  if ( ! Fso.FileExists( iniPath ) ) {&lt;br /&gt;
    var iniName = /\\([^\\]+)\.exe$/.exec( editor.FullName )[1];&lt;br /&gt;
    var WshShell = new ActiveXObject( &amp;quot;WScript.Shell&amp;quot; );&lt;br /&gt;
    iniPath = WshShell.SpecialFolders( &amp;quot;APPDATA&amp;quot; )&lt;br /&gt;
            + &amp;quot;\\Mery\\&amp;quot; + iniName + &amp;quot;.ini&amp;quot;;&lt;br /&gt;
  }&lt;br /&gt;
  // Mery.ini を読みこむ&lt;br /&gt;
  var Adodb = new ActiveXObject( &amp;quot;ADODB.Stream&amp;quot; );&lt;br /&gt;
  var adTypeText = 2,  adReadAll = -1;&lt;br /&gt;
  Adodb.Type = adTypeText, Adodb.Charset = &amp;quot;UTF-8&amp;quot;;&lt;br /&gt;
  Adodb.Open();&lt;br /&gt;
  Adodb.LoadFromFile( iniPath );&lt;br /&gt;
  var iniText = Adodb.ReadText( adReadAll );&lt;br /&gt;
  Adodb.Close();&lt;br /&gt;
&lt;br /&gt;
  /* includeライブラリの IO.js, MeryInfo.js を #include しているマクロに組み込むなら&lt;br /&gt;
     var iniPath  から  Adodb.Close()  までは以下の一行だけでもよい */&lt;br /&gt;
  // var iniText = IO.LoadFromFile( MeryInfo.GetIniPath(), &amp;quot;utf-8&amp;quot; );&lt;br /&gt;
&lt;br /&gt;
  // 引数の配列をループ処理して ini からオプションの値を取得する&lt;br /&gt;
  var reg, value, iniOptionArray = [];&lt;br /&gt;
  for ( var i = 0, len = keyArray.length; i &amp;lt; len; i ++ ) {&lt;br /&gt;
    reg = new RegExp( &amp;quot;^&amp;quot; + keyArray[i] + &amp;quot;=[^\\r\\n]*$&amp;quot;, &amp;quot;gm&amp;quot; );&lt;br /&gt;
    try {&lt;br /&gt;
      // 項目名の記述ミスがあるとこの行でエラーが発生する&lt;br /&gt;
      value = iniText.match( reg )[0]&lt;br /&gt;
                     .substr( keyArray[i].length + 1 );&lt;br /&gt;
      // 10進数なら Number 型で返す&lt;br /&gt;
      if ( /^-?[1-9][0-9]*$/.test( value ) ) {&lt;br /&gt;
        value = Number( value );&lt;br /&gt;
      }&lt;br /&gt;
    } catch( e ) {&lt;br /&gt;
      Alert( keyArray[i] + &amp;quot; という項目はありません。&amp;quot; );&lt;br /&gt;
      value = undefined;&lt;br /&gt;
    }&lt;br /&gt;
    iniOptionArray.push( value );&lt;br /&gt;
  }&lt;br /&gt;
  return iniOptionArray;&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;
  * GetIniOptions() 関数の使用を１回で済ませないと&lt;br /&gt;
  * その都度 &#039;&#039;&#039;INI ファイルの読み込み&#039;&#039;&#039; が発生してマクロの処理速度が落ちるので&lt;br /&gt;
  * 取得したい項目すべてをひとつの配列にまとめること&lt;br /&gt;
  * &lt;br /&gt;
  * ※ 取得したいオプション項目がひとつだけの場合でも引数は&lt;br /&gt;
  *    配列 &#039;&#039;&#039;&#039;&#039;[&amp;quot;KeyName&amp;quot;]&#039;&#039;&#039;&#039;&#039; のかたちで記述すること&lt;br /&gt;
  * &lt;br /&gt;
  *   &#039;&#039;&#039;&#039;&#039;&amp;lt;code&amp;gt;GetIniOption( [ &amp;quot;KeyName&amp;quot; ] )&amp;lt;/code&amp;gt;&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
  *&lt;br /&gt;
  * ※ INI のオプション項目名の記述を間違えても警告ダイアログを表示して&lt;br /&gt;
  *    組み込み関数および呼び出し元のコードを続行する&lt;br /&gt;
  *   → 誤ったキーの戻り値は &#039;&#039;&#039;&#039;&#039;&amp;lt;source lang=&amp;quot;javascript&amp;quot; inline&amp;gt;undefined&amp;lt;/source&amp;gt;&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
  */&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
// ➀ 取得したい INI オプション項目を配列 [&amp;quot;KeyName1&amp;quot;, &amp;quot;KeyName2&amp;quot; ...] に列挙する&lt;br /&gt;
&lt;br /&gt;
var iniItem = [ &amp;quot;LineColumnView&amp;quot;, &amp;quot;WrapMode&amp;quot;, &amp;quot;QuoteCharacter&amp;quot;, &amp;quot;TabColumns&amp;quot;, &amp;quot;AutoIndent&amp;quot; ];&lt;br /&gt;
&lt;br /&gt;
// または&lt;br /&gt;
var iniItem = new Array( &amp;quot;LineColumnView&amp;quot;, &amp;quot;WrapMode&amp;quot;, &amp;quot;QuoteCharacter&amp;quot;, &amp;quot;TabColumns&amp;quot;, &amp;quot;AutoIndent&amp;quot; );&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
// ➁ GetIniOption() の引数に配列を指定して変数に代入する&lt;br /&gt;
&lt;br /&gt;
var iniValue = GetIniOption( iniItem );	// ※戻り値も配列&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
// ➂-1.（例１）取得したオプションをダイアログで順々に表示する&lt;br /&gt;
&lt;br /&gt;
for ( var i = 0, type; i &amp;lt; iniItem.length; i ++ ) {&lt;br /&gt;
  type = Object.prototype.toString.call( iniValue[i] ).slice( 8, -1 );&lt;br /&gt;
  Alert( iniItem[i] + &amp;quot; = &amp;quot; + iniValue[i] + &amp;quot;\nobject type: &amp;quot; + type );&lt;br /&gt;
}	// &amp;quot;LineColumnView = 1 ↲ object type: number&amp;quot; ...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
// ➂-2.（例２）個々の「値」の参照には、戻り値の配列の [index] で要素を指定する&lt;br /&gt;
&lt;br /&gt;
var settings = {&lt;br /&gt;
  lineColumnView:	iniValue[0],	// 「行の表示方法」&lt;br /&gt;
  wrapMode:			iniValue[1],	// 「折り返し方法」&lt;br /&gt;
  quoteCharacter:	iniValue[2],	// 「引用マーク」&lt;br /&gt;
  tabColumns:		iniValue[3],	// 「タブの桁数」&lt;br /&gt;
  autoIndent:		iniValue[4]		// 「自動インデントを有効にする」&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
Alert( &amp;quot;行の表示方法： &amp;quot;&lt;br /&gt;
     + ( settings.lineColumnView == 1 ? &amp;quot;表示行&amp;quot; : &amp;quot;論理行&amp;quot; )&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
// ➂-3.（注）取得したいオプション項目がひとつの場合も、配列型 [&amp;quot;keyName&amp;quot;] で記述すること&lt;br /&gt;
&lt;br /&gt;
Alert( GetIniOption( [&amp;quot;LineColumnView&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;
== GetIniOption2() 関数 ==&lt;br /&gt;
&lt;br /&gt;
Mery.ini ファイル内の各項目 &amp;lt;br&amp;gt;&lt;br /&gt;
 &#039;&#039;&#039;[SectionName]&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;KeyName1&#039;&#039;&#039;=&#039;&#039;&#039;value1&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;KeyName2&#039;&#039;&#039;=&#039;&#039;&#039;value2&#039;&#039;&#039;&lt;br /&gt;
の「段落名・セクション &amp;lt;code&amp;gt;[SectionName]&amp;lt;/code&amp;gt;」と「項目名・キー &amp;lt;code&amp;gt;KeyName&amp;lt;/code&amp;gt;」の文字列を指定して「値 &amp;lt;code&amp;gt;value&amp;lt;/code&amp;gt;」を取得するための &#039;&#039;&#039;組み込み用関数&#039;&#039;&#039; です。&amp;lt;br&amp;gt; &amp;lt;span style=&amp;quot;color:#0000c0;&amp;quot;&amp;gt;ことなるセクションに同じキー名の項目が重複して存在することを考慮してありますので、&amp;lt;u&amp;gt;Mery.ini のすべての項目の参照が可能になります&amp;lt;/u&amp;gt;。&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [[#関数2|組み込み関数本体]] を任意のマクロのソースコード内にペーストして使用します。&lt;br /&gt;
: 使い方は [[#使い方_2|使用例]] を参考にしてください。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;このマクロ関数は Mery.ini の内容を編集（書き換え）するものではありません。 &amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== ソースコード ===&lt;br /&gt;
 // #title=&amp;quot;Mery.ini のオプション値を取得&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 /**&lt;br /&gt;
  * 組み込み関数 &#039;&#039;&#039;GetIniOption2( keyArray )&#039;&#039;&#039;&lt;br /&gt;
  *&lt;br /&gt;
  * 引数で指定した &#039;&#039;&#039;任意の&#039;&#039;&#039; INI オプション項目の配列に&lt;br /&gt;
  * &#039;&#039;&#039;「値」をくわえた配列&#039;&#039;&#039; で返す&lt;br /&gt;
  *&lt;br /&gt;
  * &#039;&#039;&#039;引数:&#039;&#039;&#039; INI オプション項目（セクション名とキー名）を指定する配列&lt;br /&gt;
  * ※ 記述形式は &#039;&#039;&#039;&#039;&#039;[ [section1, key1], [section2, key2] ... ] &#039;&#039;&#039;&#039;&#039;（※入れ子にする）&lt;br /&gt;
  *&lt;br /&gt;
  * &#039;&#039;&#039;戻り値:&#039;&#039;&#039; INI オプション項目の「値」を追加した &#039;&#039;&#039;配列&#039;&#039;&#039;&lt;br /&gt;
  * ※ 配列の形式は &#039;&#039;&#039;&#039;&#039;[ [section1, key1, value1], [section2, key2, value2] ... ]&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
  * &lt;br /&gt;
  * ※ value はすべて &#039;&#039;&#039;文字列型&#039;&#039;&#039; （String）で返す&lt;br /&gt;
  *  （数字の場合も &#039;&#039;&#039;&amp;lt;source lang=&amp;quot;javascript&amp;quot; inline&amp;gt;&amp;quot;1&amp;quot;&amp;lt;/source&amp;gt;&#039;&#039;&#039; として返す   &amp;lt;span style=&amp;quot;color:#c00;&amp;quot;&amp;gt;&amp;quot;1&amp;quot; !== 1&amp;lt;/span&amp;gt; ）&lt;br /&gt;
  */&lt;br /&gt;
&amp;lt;div id=&amp;quot;関数2&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
// ---------- ▼ 組み込み関数 ココから ▼ ----------&lt;br /&gt;
&lt;br /&gt;
function GetIniOption2( keyArray ) {&lt;br /&gt;
  // Mery.ini を探す&lt;br /&gt;
  var iniPath = editor.FullName.replace( /\.exe$/i, &amp;quot;.ini&amp;quot; );&lt;br /&gt;
  var Fso = new ActiveXObject( &amp;quot;Scripting.FileSystemObject&amp;quot; );&lt;br /&gt;
  if ( ! Fso.FileExists( iniPath ) ) {&lt;br /&gt;
    var iniName = /\\([^\\]+)\.exe$/.exec( editor.FullName )[1];&lt;br /&gt;
    var WshShell = new ActiveXObject( &amp;quot;WScript.Shell&amp;quot; );&lt;br /&gt;
    iniPath = WshShell.SpecialFolders( &amp;quot;APPDATA&amp;quot; )&lt;br /&gt;
            + &amp;quot;\\Mery\\&amp;quot; + iniName + &amp;quot;.ini&amp;quot;;&lt;br /&gt;
  }&lt;br /&gt;
  // Mery.ini を読みこむ&lt;br /&gt;
  var Adodb = new ActiveXObject( &amp;quot;ADODB.Stream&amp;quot; );&lt;br /&gt;
  var adTypeText = 2,  adReadAll = -1;&lt;br /&gt;
  Adodb.Type = adTypeText, Adodb.Charset = &amp;quot;UTF-8&amp;quot;;&lt;br /&gt;
  Adodb.Open();&lt;br /&gt;
  Adodb.LoadFromFile( iniPath );&lt;br /&gt;
  var iniText = Adodb.ReadText( adReadAll );&lt;br /&gt;
  Adodb.Close();&lt;br /&gt;
&lt;br /&gt;
/* includeライブラリの IO.js と MeryInfo.js を #include しているマクロに組み込むなら&lt;br /&gt;
   var iniPath  から  Adodb.Close()  までは以下の一行だけでもよい */&lt;br /&gt;
  // var iniText = IO.LoadFromFile( MeryInfo.GetIniPath(), &amp;quot;utf-8&amp;quot; );&lt;br /&gt;
&lt;br /&gt;
  // 引数の配列をループ処理して ini からオプションの値を取得する&lt;br /&gt;
  var section, key, value, iniOptionArray = [];&lt;br /&gt;
  var reg, id1, id2, id3, id4;&lt;br /&gt;
  var iniLength = iniText.length;&lt;br /&gt;
  var Quote = function( str ) { return str.replace( /\W/g, &amp;quot;\\$&amp;amp;&amp;quot; ) };&lt;br /&gt;
  for ( var i = 0, len = keyArray.length; i &amp;lt; len; i ++ ) {&lt;br /&gt;
    section = keyArray[i][0];&lt;br /&gt;
    key     = keyArray[i][1];&lt;br /&gt;
    reg = new RegExp( &amp;quot;^\\[&amp;quot; + Quote( section ) + &amp;quot;\\]$&amp;quot;, &amp;quot;m&amp;quot; );&lt;br /&gt;
    id1 = iniText.search( reg );				// セクションの開始位置&lt;br /&gt;
    if ( id1 != -1 ) {							// セクション名が正しいか？&lt;br /&gt;
      id2 = iniText.indexOf( &amp;quot;\r\n[&amp;quot;, id1 + 1 );// 次のセクションの開始位置&lt;br /&gt;
      id2 = ( id2 &amp;gt; id1 ) ? id2 : iniLength;&lt;br /&gt;
      id3 = iniText.indexOf( &amp;quot;\n&amp;quot; + key + &amp;quot;=&amp;quot;, id1 );	// キーの開始位置&lt;br /&gt;
      if ( id3 != -1 &amp;amp;&amp;amp; id2 &amp;gt; id3 ) {			// セクション内にキーがあるか？&lt;br /&gt;
        id4 = iniText.indexOf( &amp;quot;\r\n&amp;quot;, id3 );	// 検索項目の行末位置&lt;br /&gt;
        value = iniText.slice( id3 + key.length + 2, id4 );&lt;br /&gt;
        iniOptionArray.push( [ section, key, value ] );&lt;br /&gt;
      }&lt;br /&gt;
      else {	// キーの指定ミスがあった場合&lt;br /&gt;
        Alert( &amp;quot;\&amp;quot;&amp;quot; + key + &amp;quot;\&amp;quot; key is NOT found in [&amp;quot; + section + &amp;quot;] section.&amp;quot; );&lt;br /&gt;
        iniOptionArray.push( [ section, undefined, null ] );&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
    else {	// セクションの指定ミスがあった場合&lt;br /&gt;
      Alert( &amp;quot;[&amp;quot; + section + &amp;quot;] section is NOT found in \&amp;quot;Mery.ini\&amp;quot; file.&amp;quot; );&lt;br /&gt;
      iniOptionArray.push( [ undefined, key, null ] );&lt;br /&gt;
    }&lt;br /&gt;
    id1 = 0;&lt;br /&gt;
  }&lt;br /&gt;
  return iniOptionArray;&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;
  * GetIniOptions2() 関数の使用を１回で済ませないと&lt;br /&gt;
  * その都度 &#039;&#039;&#039;INI ファイルの読み込み&#039;&#039;&#039; が発生してマクロの処理速度が落ちるので&lt;br /&gt;
  * 取得したい項目すべてをひとつの配列にまとめること&lt;br /&gt;
  * &lt;br /&gt;
  * ※ 取得したいオプション項目がひとつだけの場合でも引数の配列は &#039;&#039;&#039;入れ子&#039;&#039;&#039; にすること&lt;br /&gt;
  * &lt;br /&gt;
  *   &#039;&#039;&#039;&#039;&#039;&amp;lt;code&amp;gt;GetIniOption2( [ [ &amp;quot;SectionName&amp;quot;, &amp;quot;KeyName&amp;quot; ] ] )&amp;lt;/code&amp;gt;&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
  *&lt;br /&gt;
  * ※ INI のオプション項目名の記述を間違えても警告ダイアログを表示して続行する&lt;br /&gt;
  *    記述ミスをした項目は &#039;&#039;&#039;&#039;&#039;&amp;lt;source lang=&amp;quot;javascript&amp;quot; inline&amp;gt;undefined&amp;lt;/source&amp;gt;&#039;&#039;&#039;&#039;&#039; に置き換え、要求された値は &#039;&#039;&#039;&#039;&#039;&amp;lt;source lang=&amp;quot;javascript&amp;quot; inline&amp;gt;null&amp;lt;/source&amp;gt;&#039;&#039;&#039;&#039;&#039; で返す&lt;br /&gt;
  * ※ オプションの値が空 &#039;&#039;&amp;lt;code&amp;gt;KeyName=&amp;lt;/code&amp;gt;&#039;&#039; の場合は、空文字列 &#039;&#039;&#039;&#039;&#039;&amp;lt;source lang=&amp;quot;javascript&amp;quot; inline&amp;gt;&amp;quot;&amp;quot;&amp;lt;/source&amp;gt;&#039;&#039;&#039;&#039;&#039; を返す&lt;br /&gt;
  *&lt;br /&gt;
  * ※ 値はすべて &#039;&#039;&#039;&amp;quot;文字列型&amp;quot;&#039;&#039;&#039;（String）で返されるので、&lt;br /&gt;
  *    必要に応じて &#039;&#039;&amp;lt;code&amp;gt;Number( value )&amp;lt;/code&amp;gt;&#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;
// [ [section1, key1], [section2, key2] ... ]&lt;br /&gt;
// セクション名にバックスラッシュ･¥ 記号「\」がある場合は、ふたつ重ね「\\」で記述すること&lt;br /&gt;
&lt;br /&gt;
var keyArray = new Array(				// ▼ 戻り値 ▼&lt;br /&gt;
  [ &amp;quot;General&amp;quot;, &amp;quot;LineColumnView&amp;quot; ], 		// 0 or 1&lt;br /&gt;
  [ &amp;quot;General&amp;quot;, &amp;quot;FileFilter&amp;quot; ], 			// &amp;quot;*.txt;*ini;*.htm; …&amp;quot;&lt;br /&gt;
  [ &amp;quot;General&amp;quot;, &amp;quot;Untitled&amp;quot; ], 			// 「無題」の代替文字列 or &amp;quot;&amp;quot;&lt;br /&gt;
  [ &amp;quot;View&amp;quot;, &amp;quot;FontName0&amp;quot; ], 				// フォント名（履歴） or &amp;quot;&amp;quot;&lt;br /&gt;
  [ &amp;quot;Macros\\Macro1&amp;quot;, &amp;quot;FileName&amp;quot; ], 	// Macros\マクロ名.js or &amp;quot;&amp;quot;&lt;br /&gt;
  [ &amp;quot;Outline\\JavaScript&amp;quot;, &amp;quot;Match1&amp;quot; ],	// 文字列値 or 正規表現 or &amp;quot;...&amp;quot;&lt;br /&gt;
  [ &amp;quot;Themes\\Theme29&amp;quot;, &amp;quot;Caption&amp;quot; ], 	// テーマ名 or &amp;quot;&amp;quot;&lt;br /&gt;
  [ &amp;quot;Display&amp;quot;, &amp;quot;FallbackFonts&amp;quot; ], 		// フォント名 or &amp;quot;&amp;quot;&lt;br /&gt;
// ※ ～ ver 2.7.4 では FallbackFonts キーがないので [Display] undefined = null&lt;br /&gt;
&lt;br /&gt;
  // ※ 無効な セクション名 や キー名 を指定した場合&lt;br /&gt;
  [ &amp;quot;HOGE&amp;quot;, &amp;quot;FUGA&amp;quot; ],  				// [undefined]	FUGA  =  null&lt;br /&gt;
  [ &amp;quot;Themes&amp;quot;, &amp;quot;PIYO&amp;quot; ]				// [Themes]		undefined  =  null&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
// ➁ 関数の引数に配列をあたえて、変数 iniOption に代入する&lt;br /&gt;
//    関数の戻り値も入れ子状の配列&lt;br /&gt;
//    [ [section1, key1, value1], [section2, key2, value2] ... ]&lt;br /&gt;
// ※ value は文字列値（String）で返される（数字の場合も &amp;quot;1&amp;quot;    ※ &amp;quot;1&amp;quot; !== 1 ）&lt;br /&gt;
&lt;br /&gt;
var iniOption = GetIniOption2( keyArray );&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
// ➂ 戻り値で取得した配列の内容をアウトプットバーに出力する&lt;br /&gt;
&lt;br /&gt;
OutputBar.Writeln( &amp;quot;\nRun &amp;gt; &amp;quot; + ScriptName + &amp;quot; : function GetIniOption2()&amp;quot; );&lt;br /&gt;
var section, key, value;&lt;br /&gt;
for ( var i = 0; i &amp;lt; iniOption.length; i ++ ) {&lt;br /&gt;
&lt;br /&gt;
  section = iniOption[i][0];	// セクション名に記述ミスがあると undefined&lt;br /&gt;
  key     = iniOption[i][1];	// キー名に記述ミスがあると undefined&lt;br /&gt;
&lt;br /&gt;
  // 上の二つのいずれかにミスがあると値は null、値が空のときは &amp;quot;&amp;quot;&lt;br /&gt;
  value   = iniOption[i][2];&lt;br /&gt;
&lt;br /&gt;
  OutputBar.Writeln( &amp;quot;\n[&amp;quot; + section + &amp;quot;]\n&amp;quot;&lt;br /&gt;
                   + key + &amp;quot;  =  &amp;quot; + value );&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== GetIniOption3() 関数 ==&lt;br /&gt;
&lt;br /&gt;
[[#GetIniOption2() 関数|GetIniOption2() 関数]] とおなじく、Mery.ini ファイル内の各項目 &amp;lt;br&amp;gt;&lt;br /&gt;
 &#039;&#039;&#039;[SectionName]&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;KeyName1&#039;&#039;&#039;=&#039;&#039;&#039;value1&#039;&#039;&#039;&lt;br /&gt;
 &#039;&#039;&#039;KeyName2&#039;&#039;&#039;=&#039;&#039;&#039;value2&#039;&#039;&#039;&lt;br /&gt;
の「段落名・セクション &amp;lt;code&amp;gt;[SectionName]&amp;lt;/code&amp;gt;」と「項目名・キー &amp;lt;code&amp;gt;KeyName&amp;lt;/code&amp;gt;」の文字列を指定して「値 &amp;lt;code&amp;gt;value&amp;lt;/code&amp;gt;」を取得するための &#039;&#039;&#039;組み込み用関数&#039;&#039;&#039; です。&amp;lt;br&amp;gt; &amp;lt;span style=&amp;quot;color:#0000c0;&amp;quot;&amp;gt;ことなるセクションに同じキー名の項目が重複して存在することを考慮してありますので、&amp;lt;u&amp;gt;Mery.ini のすべての項目の参照が可能です&amp;lt;/u&amp;gt;。&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* GetIniOption2() 関数では戻り値も &#039;&#039;&#039;入れ子状の配列&#039;&#039;&#039; だったため、任意のキーの「値」を参照するには &amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
var iniOption = GetIniOption2([[section1, key1], [section2, key2]]);&lt;br /&gt;
&lt;br /&gt;
// 配列の index をふたつずつ指定して「値」を参照&lt;br /&gt;
var value1 = iniOption[0][2];&lt;br /&gt;
var value2 = iniOption[1][2];&lt;br /&gt;
&amp;lt;/source&amp;gt; のように記述しなければならず、コードの可読性にやや難ありでした。&amp;lt;br&amp;gt;&amp;lt;br&amp;gt; GetIniOption3() 関数では戻り値を &#039;&#039;&#039;オブジェクト型（連想配列）&#039;&#039;&#039; にしてあります。&lt;br /&gt;
 {section1 : {key1 : value1}, section2 : {key2 : value2} ... }&lt;br /&gt;
 &lt;br /&gt;
 ⇒　　 &#039;&#039;value1 = objOptions[section1][key1]&#039;&#039;&lt;br /&gt;
 または &#039;&#039;value2 = objOptions.section2.key2&#039;&#039;&lt;br /&gt;
: &amp;lt;span style=&amp;quot;color:#0000c0;&amp;quot;&amp;gt;セクション名とキー名がそのままプロパティ名になる&amp;lt;/span&amp;gt;ので、INI から取得する「値」が複数のときに任意の「値」の参照がしやすくなるかとおもいます。&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
var keyArray = [[&amp;quot;General&amp;quot;, &amp;quot;LineColumnView&amp;quot;], [&amp;quot;View&amp;quot;, &amp;quot;FontName0&amp;quot;]];&lt;br /&gt;
var iniOption = GetIniOption3(keyArray);&lt;br /&gt;
&lt;br /&gt;
// プロパティをセクション名とキー名の文字列で記述して「値」を参照&lt;br /&gt;
var value1 = iniOption.General.LineColumnView;	// ドット記法&lt;br /&gt;
var value2 = iniOption[&amp;quot;View&amp;quot;][&amp;quot;FontName0&amp;quot;];	// ブラケット記法&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* 戻り値の「値」の部分 &amp;lt;code&amp;gt;value&amp;lt;/code&amp;gt; は &#039;&#039;&#039;文字列型&#039;&#039;&#039;（String）です。&lt;br /&gt;
: ※ GetIniOption2() 関数ではセクション名やキー名の指定が正しくなかったときに記述ミスした項目名を &amp;lt;span style=&amp;quot;color:#c00;&amp;quot;&amp;gt;&amp;lt;source lang=&amp;quot;javascript&amp;quot; inline&amp;gt;undefined&amp;lt;/source&amp;gt;&amp;lt;/span&amp;gt; にして「値」を &amp;lt;span style=&amp;quot;color:#c00;&amp;quot;&amp;gt;&amp;lt;source lang=&amp;quot;javascript&amp;quot; inline&amp;gt;null&amp;lt;/source&amp;gt;&amp;lt;/span&amp;gt; で返しましたが、&amp;lt;span style=&amp;quot;color:#c00;&amp;quot;&amp;gt;GetIniOption3() 関数では間違えたままの項目名の「プロパティ」に &#039;&#039;&#039;&amp;lt;source lang=&amp;quot;javascript&amp;quot; inline&amp;gt;undefined&amp;lt;/source&amp;gt;&#039;&#039;&#039; を「値」としてあたえて返します。&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt; &#039;&#039;e.g.&#039;&#039;　&amp;lt;source lang=&amp;quot;javascript&amp;quot; inline&amp;gt;objOptions.General.HOGE = undefined&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* GetIniOption() 関数と GetIniOption2() 関数ではセクション名やキー名の指定が正しくなかったとき、つねに警告ダイアログを表示させる仕様にしてありましたが、GetIniOption3() 関数では第2引数（Bool）に &amp;lt;source lang=&amp;quot;javascript&amp;quot; inline&amp;gt;true&amp;lt;/source&amp;gt; をあたえなかった場合は警告なしで処理を続行します。&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;span style=&amp;quot;color:#c00;&amp;quot;&amp;gt;※ セクション名に「&#039;&#039;&#039;&amp;lt;code&amp;gt;\&amp;lt;/code&amp;gt;&#039;&#039;&#039;(バックスラッシュ、¥ マーク)」をふくむ項目を指定したときは、戻り値のプロパティ名は &#039;&#039;&#039;ブラケット記法&#039;&#039;&#039; で記述してください。&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
: &#039;&#039;e.g.&#039;&#039; &amp;lt;source lang=&amp;quot;javascript&amp;quot; inline&amp;gt;[ [&amp;quot;Macros\\Macro0&amp;quot;, &amp;quot;FileName&amp;quot;], [&amp;quot;Mode\\Text&amp;quot;, &amp;quot;Count&amp;quot;] ]&amp;lt;/source&amp;gt;&amp;lt;br&amp;gt;⇒　&amp;lt;source lang=&amp;quot;javascript&amp;quot; inline&amp;gt;objOptions[&amp;quot;Macros\\Macro0&amp;quot;][&amp;quot;FileName&amp;quot;]&amp;lt;/source&amp;gt;&amp;lt;br&amp;gt;　　&amp;lt;source lang=&amp;quot;javascript&amp;quot; inline&amp;gt;objOptions[&amp;quot;Mode\\Text&amp;quot;][&amp;quot;Count&amp;quot;]&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [[#関数3|組み込み関数本体]] を任意のマクロのソースコード内にペーストして使用します。&lt;br /&gt;
: 使い方は [[#使い方_3|使用例]] を参考にしてください。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;このマクロ関数は Mery.ini の内容を編集（書き換え）するものではありません。 &amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== ソースコード ===&lt;br /&gt;
 // #title=&amp;quot;Mery.ini のオプション値を取得&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 /**&lt;br /&gt;
  * 組み込み関数 &#039;&#039;&#039;GetIniOption3( keyArray, boolAlertEnable )&#039;&#039;&#039;&lt;br /&gt;
  * &lt;br /&gt;
  * 引数で指定した &#039;&#039;&#039;任意の&#039;&#039;&#039; INI オプション項目名と「値」をプロパティ値として持つ&lt;br /&gt;
  * &#039;&#039;&#039;&#039;&#039;入れ子型のオブジェクト&#039;&#039;&#039;&#039;&#039; を返す&lt;br /&gt;
  * &lt;br /&gt;
  * &#039;&#039;&#039;第1引数:&#039;&#039;&#039; INI オプション項目（セクション名とキー名）を指定する入れ子型の配列&lt;br /&gt;
  * ※ 配列の記述形式は &#039;&#039;&#039;&#039;&#039;[ [ section1, key2 ], [ section2, key2 ] ... ]&#039;&#039;&#039;&#039;&#039; （※入れ子にする）&lt;br /&gt;
  * &lt;br /&gt;
  * &#039;&#039;&#039;第2引数:&#039;&#039;&#039; INI オプション項目（セクション名とキー名）の指定ミスがあったときに&lt;br /&gt;
  *          警告ダイアログを表示する／しない を &amp;lt;source lang=&amp;quot;javascript&amp;quot; inline&amp;gt;true&amp;lt;/source&amp;gt; か &amp;lt;source lang=&amp;quot;javascript&amp;quot; inline&amp;gt;false&amp;lt;/source&amp;gt; で指定する（省略可）&lt;br /&gt;
  * &lt;br /&gt;
  * &#039;&#039;&#039;戻り値:&#039;&#039;&#039; INI オプション項目の「値」を String 型のプロパティ値として持つ &#039;&#039;&#039;&#039;&#039;オブジェクト&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
  * ※ 戻り値の形式は &#039;&#039;&#039;&#039;&#039;{ section1: { key1: value1 }, section2: { key2: value2 } ... }&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
  * ⇒ &#039;&#039;&#039;&#039;&#039;&amp;lt;source lang=&amp;quot;javascript&amp;quot; inline&amp;gt;objOptions[ section ][ key ] = value&amp;lt;/source&amp;gt;&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
  * &lt;br /&gt;
  * ※ 有効な value はすべて &#039;&#039;&#039;文字列型&#039;&#039;&#039; （String）で返す&lt;br /&gt;
  *  （数字の場合も &#039;&#039;&#039;&amp;lt;source lang=&amp;quot;javascript&amp;quot; inline&amp;gt;&amp;quot;1&amp;quot;&amp;lt;/source&amp;gt;&#039;&#039;&#039; として返す    &amp;lt;span style=&amp;quot;color:#c00;&amp;quot;&amp;gt;&amp;quot;1&amp;quot; !== 1&amp;lt;/span&amp;gt; ）&lt;br /&gt;
  * ※ 無効な section, key が指定されたものにたいしては &#039;&#039;&amp;lt;source lang=&amp;quot;javascript&amp;quot; inline&amp;gt;value = undefined&amp;lt;/source&amp;gt;&#039;&#039; で返す&lt;br /&gt;
  * &lt;br /&gt;
  * ※ 各「値」への参照方法は&lt;br /&gt;
  *   &amp;lt;source lang=&amp;quot;javascript&amp;quot; inline&amp;gt;var iniOptions = GetIniOption3( keyArray );&amp;lt;/source&amp;gt;&lt;br /&gt;
  *   &amp;lt;source lang=&amp;quot;javascript&amp;quot; inline&amp;gt;var value1 = iniOptions[ &amp;quot;section1&amp;quot; ][ &amp;quot;key1&amp;quot; ];	// ブラケット記法&amp;lt;/source&amp;gt;&lt;br /&gt;
  *   &amp;lt;source lang=&amp;quot;javascript&amp;quot; inline&amp;gt;var value2 = iniOptions.section2.key2;		// ドット記法&amp;lt;/source&amp;gt;&lt;br /&gt;
  */&lt;br /&gt;
&amp;lt;div id=&amp;quot;関数3&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
// ---------- ▼ 組み込み関数 ココから ▼ ----------&lt;br /&gt;
&lt;br /&gt;
function GetIniOption3( keyArray, alertEnable ) {&lt;br /&gt;
  var Fso = new ActiveXObject( &amp;quot;Scripting.FileSystemObject&amp;quot; );&lt;br /&gt;
  // Mery.ini を探す&lt;br /&gt;
  var iniPath = editor.FullName.replace( /\.exe$/i, &amp;quot;.ini&amp;quot; );&lt;br /&gt;
  if ( ! Fso.FileExists( iniPath ) ) {&lt;br /&gt;
    var iniName = /\\([^\\]+)\.exe$/.exec( editor.FullName )[1];&lt;br /&gt;
    var WshShell = new ActiveXObject( &amp;quot;WScript.Shell&amp;quot; );&lt;br /&gt;
    iniPath = WshShell.SpecialFolders( &amp;quot;APPDATA&amp;quot; )&lt;br /&gt;
            + &amp;quot;\\Mery\\&amp;quot; + iniName + &amp;quot;.ini&amp;quot;;&lt;br /&gt;
  }&lt;br /&gt;
  // Mery.ini を読みこむ&lt;br /&gt;
  var Adodb = new ActiveXObject( &amp;quot;ADODB.Stream&amp;quot; );&lt;br /&gt;
  var adTypeText = 2,  adReadAll = -1;&lt;br /&gt;
  Adodb.Type = adTypeText, Adodb.Charset = &amp;quot;UTF-8&amp;quot;;&lt;br /&gt;
  Adodb.Open();&lt;br /&gt;
  Adodb.LoadFromFile( iniPath );&lt;br /&gt;
  var iniText = Adodb.ReadText( adReadAll );&lt;br /&gt;
  Adodb.Close();&lt;br /&gt;
&lt;br /&gt;
  // 引数の配列をループ処理して ini からオプションの値を取得する&lt;br /&gt;
  var options = {};&lt;br /&gt;
  var section, key, value, reg, id1, id2, id3, id4;&lt;br /&gt;
  var iniLength = iniText.length;&lt;br /&gt;
  for ( var i = 0, len = keyArray.length; i &amp;lt; len; id1 = 0, i ++ ) {&lt;br /&gt;
    section = keyArray[i][0];&lt;br /&gt;
    key     = keyArray[i][1];&lt;br /&gt;
    options[ section ] = options[ section ] || {};&lt;br /&gt;
    // セクション名を検索&lt;br /&gt;
    reg = new RegExp( &amp;quot;^\\[&amp;quot; + section.replace( /\W/g, &amp;quot;\\$&amp;amp;&amp;quot; ) + &amp;quot;\\]$&amp;quot;, &amp;quot;m&amp;quot; );&lt;br /&gt;
    id1 = iniText.search( reg );					// セクションの開始位置&lt;br /&gt;
    if ( id1 != -1 ) {								// セクション名が正しいか？&lt;br /&gt;
      id2 = iniText.indexOf( &amp;quot;\r\n[&amp;quot;, id1 + 1 );	// 次のセクションの開始位置&lt;br /&gt;
      id2 = ( id2 &amp;gt; id1 ) ? id2 : iniLength;&lt;br /&gt;
      // キー名を検索&lt;br /&gt;
      id3 = iniText.indexOf( &amp;quot;\n&amp;quot; + key + &amp;quot;=&amp;quot;, id1 );	// キーの開始位置&lt;br /&gt;
      if ( id3 != -1 &amp;amp;&amp;amp; id2 &amp;gt; id3 ) {				// セクション内にキーがあるか？&lt;br /&gt;
        id4 = iniText.indexOf( &amp;quot;\r\n&amp;quot;, id3 );		// 検索項目の行末位置&lt;br /&gt;
        value = iniText.slice( id3 + key.length + 2, id4 );	// (&amp;quot;\n&amp;quot;+&amp;quot;=&amp;quot;).length = 2&lt;br /&gt;
        options[ section ][ key ] = value;&lt;br /&gt;
      }&lt;br /&gt;
      else {	// キー名の指定ミス&lt;br /&gt;
        options[ section ][ key ] = undefined;&lt;br /&gt;
        if ( alertEnable ) {&lt;br /&gt;
          Alert( &amp;quot;\&amp;quot;&amp;quot; + key + &amp;quot;\&amp;quot; key is NOT found in [&amp;quot; + section + &amp;quot;] section.\n\n&amp;quot;&lt;br /&gt;
               + &amp;quot;The function will return ... \n&amp;quot;&lt;br /&gt;
               + &amp;quot;{ \&amp;quot;&amp;quot; + section + &amp;quot;\&amp;quot; : { \&amp;quot;&amp;quot; + key + &amp;quot;\&amp;quot; : undefined } }&amp;quot; );&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
    else {		// セクション名の指定ミス&lt;br /&gt;
      options[ section ][ key ] = undefined;&lt;br /&gt;
      if ( alertEnable ) {&lt;br /&gt;
        Alert( &amp;quot;[&amp;quot; + section + &amp;quot;] section is NOT found in \&amp;quot;Mery.ini\&amp;quot; file.\n\n&amp;quot;&lt;br /&gt;
             + &amp;quot;The function will return ... \n&amp;quot;&lt;br /&gt;
             + &amp;quot;{ \&amp;quot;&amp;quot; + section + &amp;quot;\&amp;quot; : { \&amp;quot;&amp;quot; + key + &amp;quot;\&amp;quot; : undefined } }&amp;quot; );&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  return options;&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;
  * GetIniOption3() 関数の使用は１回で済ませないと&lt;br /&gt;
  * その都度 &#039;&#039;&#039;INI ファイルの読み込み&#039;&#039;&#039; が発生してマクロの処理速度が落ちるので&lt;br /&gt;
  * 取得したい項目すべてをひとつの配列にまとめること&lt;br /&gt;
  *&lt;br /&gt;
  * ※ 要求する項目が１セットの場合も配列を &#039;&#039;&#039;入れ子&#039;&#039;&#039; にすること&lt;br /&gt;
  *   &#039;&#039;&#039;&#039;&#039;&amp;lt;code&amp;gt;GetIniOption3( [ [ &amp;quot;SectionName&amp;quot;, &amp;quot;KeyName&amp;quot; ] ] );&amp;lt;/code&amp;gt;&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
  *&lt;br /&gt;
  * ※ INI のオプション項目名の記述を間違えても警告ダイアログを表示して続行する&lt;br /&gt;
  *    記述ミスをした項目の値 &#039;&#039;value &#039;&#039;は &#039;&#039;&#039;&#039;&#039;&amp;lt;source lang=&amp;quot;javascript&amp;quot; inline&amp;gt;undefined&amp;lt;/source&amp;gt;&#039;&#039;&#039;&#039;&#039; で返される&lt;br /&gt;
  * ※ INI 内でオプションの値が空 &#039;&#039;&amp;lt;code&amp;gt;KeyName=&amp;lt;/code&amp;gt;&#039;&#039; の場合は、空文字列 &#039;&#039;&#039;&amp;lt;source lang=&amp;quot;javascript&amp;quot; inline&amp;gt;&amp;quot;&amp;quot;&amp;lt;/source&amp;gt;&#039;&#039;&#039; を返す&lt;br /&gt;
  *&lt;br /&gt;
  * ※ 値はすべて &#039;&#039;&#039;&amp;quot;文字列型&amp;quot;&#039;&#039;&#039;（String）で返されるので、&lt;br /&gt;
  *    必要に応じて &#039;&#039;&amp;lt;code&amp;gt;Number( value )&amp;lt;/code&amp;gt;&#039;&#039; などのかたちで利用すること&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;span style=&amp;quot;color:#c00;&amp;quot;&amp;gt;※ セクション名にバックスラッシュ「&#039;&#039;&#039;&amp;lt;code&amp;gt;\&amp;lt;/code&amp;gt;&#039;&#039;&#039;」が含まれる場合、&amp;lt;/span&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;
  * &lt;br /&gt;
  *  e.g. &#039;&#039;&amp;lt;source lang=&amp;quot;javascript&amp;quot; inline&amp;gt;[ &amp;quot;Themes\\Theme0&amp;quot;, &amp;quot;Caption&amp;quot; ]&amp;lt;/source&amp;gt;&#039;&#039;&lt;br /&gt;
  *   ⇒  &#039;&#039;&amp;lt;source lang=&amp;quot;javascript&amp;quot; inline&amp;gt;objOptions[&amp;quot;Themes\\Theme0&amp;quot;][&amp;quot;Caption&amp;quot;]&amp;lt;/source&amp;gt;&#039;&#039;&lt;br /&gt;
  *  （ドット記法で &#039;&#039;&amp;lt;source lang=&amp;quot;javascript&amp;quot; inline&amp;gt;objOptions.Themes\\Theme0.Caption&amp;lt;/source&amp;gt;&#039;&#039; とすると &amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;エラー&amp;lt;/b&amp;gt; になる）&lt;br /&gt;
  */&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
// ➀ セクション名とキー名をセットにした配列 [ [section1, key2], [section2, key2] ... ]&lt;br /&gt;
//    セクション名に「\」がある場合は、ふたつ重ね「\\」で記述すること&lt;br /&gt;
var keyArray = new Array(				// ▼ 戻り値 ▼&lt;br /&gt;
  [ &amp;quot;General&amp;quot;, &amp;quot;LineColumnView&amp;quot; ], 		// 0 or 1&lt;br /&gt;
  [ &amp;quot;General&amp;quot;, &amp;quot;FileFilter&amp;quot; ], 			// &amp;quot;*.txt;*ini;*.htm; …&amp;quot;&lt;br /&gt;
  [ &amp;quot;General&amp;quot;, &amp;quot;Untitled&amp;quot; ], 			// 「無題」の代替値 or &amp;quot;&amp;quot;&lt;br /&gt;
  [ &amp;quot;Display&amp;quot;, &amp;quot;FallbackFonts&amp;quot; ], 		// フォント名 or &amp;quot;&amp;quot;&lt;br /&gt;
  										// → （～ ver 2.7.4 では undefined）&lt;br /&gt;
  [ &amp;quot;View&amp;quot;, &amp;quot;FontName0&amp;quot; ], 				// フォント名（履歴） or &amp;quot;&amp;quot;&lt;br /&gt;
  [ &amp;quot;Macros\\Macro1&amp;quot;, &amp;quot;FileName&amp;quot; ], 	// Macros\マクロ名.js or &amp;quot;&amp;quot;&lt;br /&gt;
  [ &amp;quot;Outline\\JavaScript&amp;quot;, &amp;quot;Match1&amp;quot; ],	// 文字列値 or 正規表現 or &amp;quot;...&amp;quot;&lt;br /&gt;
  [ &amp;quot;Themes\\Theme29&amp;quot;, &amp;quot;Caption&amp;quot; ], 	// テーマ名 or &amp;quot;&amp;quot;&lt;br /&gt;
  [ &amp;quot;Themes&amp;quot;, &amp;quot;HOGE&amp;quot; ],				 	// [Themes] HOGE  =  null&lt;br /&gt;
  [ &amp;quot;FUGA&amp;quot;, &amp;quot;PIYO&amp;quot; ] 					// [FUGA] PIYO = null&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
// ➁ 関数の引数に配列をあたえて、変数 iniOption に代入する&lt;br /&gt;
//    関数の戻り値は入れ子状のオブジェクト&lt;br /&gt;
//    { section1 : { key1 : value1 }, section2 : { key2 : value2 } ... }&lt;br /&gt;
// ※ value は文字列値（String）で返される（数字の場合も &amp;quot;1&amp;quot;  ※ &amp;quot;1&amp;quot; !== 1 ）&lt;br /&gt;
&lt;br /&gt;
var iniOptions = GetIniOption3( keyArray, true );	// 戻り値は Object 型&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
// ➂-1.（例１）戻り値で取得した内容をアウトプットバーに出力する&lt;br /&gt;
&lt;br /&gt;
OutputBar.Writeln( &amp;quot;\nRun &amp;gt; &amp;quot; + ScriptName + &amp;quot; : function GetIniOption3()&amp;quot; );&lt;br /&gt;
var section, key;&lt;br /&gt;
for ( var i = 0; i &amp;lt; keyArray.length; i ++ ) {&lt;br /&gt;
  section = keyArray[i][0],  key = keyArray[i][1];&lt;br /&gt;
  OutputBar.Writeln( &amp;quot;[&amp;quot; + section + &amp;quot;]\t&amp;quot; + key&lt;br /&gt;
                   + &amp;quot;=&amp;quot; + iniOptions[ section ][ key ] );	// ブラケット記法&lt;br /&gt;
  // セクション名に「\」をふくむ項目があるのでブラケット記法を使用&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
// ➂-2.（例２）特定の key の値を参照して変数に格納する場合&lt;br /&gt;
&lt;br /&gt;
var ff = iniOptions.General.FileFilter;			// ドット記法&lt;br /&gt;
var fn = iniOptions[ &amp;quot;View&amp;quot; ][ &amp;quot;FontName0&amp;quot; ];	// ブラケット記法&lt;br /&gt;
Alert( &amp;quot;[General]\nFileFilter=&amp;quot; + ff + &amp;quot;\n&amp;quot;&lt;br /&gt;
     + &amp;quot;[View]\nFontName0=&amp;quot; + fn );&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 更新履歴 ==&lt;br /&gt;
&lt;br /&gt;
* 2019/03/10 (sukemaru)&lt;br /&gt;
: [[#GetIniOption() 関数|GetIniOption() 関数]] の初版&lt;br /&gt;
* 2019/04/28 (sukemaru)&lt;br /&gt;
: 「文字列値」が２バイト文字を含むときに正常に読みこめなかったので、&#039;&#039;&#039;&amp;quot;ADODB.Stream&amp;quot; / UTF-8&#039;&#039;&#039; での読みこみに変更した。&lt;br /&gt;
* 2019/04/29 (sukemaru)&lt;br /&gt;
: 値がハイフン-マイナス「&#039;&#039;&#039;&amp;lt;code&amp;gt;-&amp;lt;/code&amp;gt;&#039;&#039;&#039;」１文字のときに戻り値が &#039;&#039;&#039;&amp;lt;source lang=&amp;quot;javascript&amp;quot; inline&amp;gt;NaN&amp;lt;/source&amp;gt;&#039;&#039;&#039; になっていたのを文字列 &#039;&#039;&#039;&amp;lt;source lang=&amp;quot;javascript&amp;quot; inline&amp;gt;&amp;quot;-&amp;quot;&amp;lt;/source&amp;gt;&#039;&#039;&#039; で返すように修正（値が空のときは長さ ０ の文字列 &#039;&#039;&#039;&amp;lt;source lang=&amp;quot;javascript&amp;quot; inline&amp;gt;&amp;quot;&amp;quot;&amp;lt;/source&amp;gt;&#039;&#039;&#039; のまま）。&lt;br /&gt;
* 2019/05/21 (sukemaru)&lt;br /&gt;
: セクション指定可能な [[#GetIniOption2() 関数|GetIniOption2() 関数]] を追加し、Mery.ini の完全な参照ができるようにした。&lt;br /&gt;
: 従来の GetIniOption() 関数も簡易版として残し、誤った参照キー名に対するエラー処理を変更しておいた。&lt;br /&gt;
* 2019/06/02 (sukemaru)&lt;br /&gt;
: GetIniOption2() 関数内の変数 &#039;&#039;&#039;id2&#039;&#039;&#039; 周りのコードで、引数のキー名にエラーがあった場合の処理が正しく行われなかった不具合を修正。&lt;br /&gt;
* 2019/08/27 (sukemaru)&lt;br /&gt;
: GetIniOption2() 関数内の変数 &#039;&#039;&#039;id2&#039;&#039;&#039; 周りのコードで、同一セクション内で &#039;&#039;&#039;値&#039;&#039;&#039; に角カッコ「&#039;&#039;&#039;&amp;lt;code&amp;gt;[&amp;lt;/code&amp;gt;&#039;&#039;&#039;」を含む キー が上にあると次の セクション の開始位置を正しく取得できなかった不具合を修正。&lt;br /&gt;
* 2019/11/15 (sukemaru)&lt;br /&gt;
: 関数コードの軽微な修正。&lt;br /&gt;
: 説明などの文面を変更。&lt;br /&gt;
* 2020/05/14 (sukemaru)&lt;br /&gt;
: セクション指定可能で、戻り値をオブジェクト型にした [[#GetIniOption3() 関数|GetIniOption3() 関数]] を追加。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== メモ ==&lt;br /&gt;
&lt;br /&gt;
* 2019/03/10 ～ (sukemaru)&lt;br /&gt;
:* 将来的に INI を最新の状態に強制更新したり INI の設定項目を取得できる専用メソッドが実装されるかもしれませんし、現状でも [[includeライブラリ]]（[[includeライブラリ#MeryInfo.js|MeryInfo.js]]）によりある程度 INI へのアクセスはできますが…。&lt;br /&gt;
:* 一応、includeライブラリ（IO.js）の使用のみでエディタの表示状態を変更するマクロの例として「[[折り返しトグル切り替え]]」などもあります。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
:* &amp;lt;div id=&amp;quot;QueryStatusByID&amp;quot;&amp;gt;［表示］ メニュー内などの各項目の &#039;&#039;&#039;✔&#039;&#039;&#039;チェックの ON／OFF 状態は Mery.ini から正しく取得できないことがありますが、[https://www.haijin-boys.com/software/mery/mery-3-1-0#10|Mery ver 3.1.0] 以降では &#039;&#039;&#039;[[マクロリファレンス:3:Editor_オブジェクト#QueryStatusByID_メソッド|QueryStatusByID メソッド]] &amp;lt;code&amp;gt;editor.QueryStatusByID(id);&amp;lt;/code&amp;gt;&#039;&#039;&#039; を利用することで取得できるようになりました。&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
: ※ &#039;&#039;&#039;INI アクセスのための専用メソッド&#039;&#039;&#039; については [https://www.haijin-boys.com/discussions 公式フォーラム] 内のトピック『[https://www.haijin-boys.com/discussions/4081 マクロコマンドから「表示」の「色の反転」を取得したい]』で検討・議論されていますので、ご参考までに（セキュリティ上の &#039;&#039;&#039;懸念&#039;&#039;&#039; により実装は見送りとなっています）。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;導入事例&#039;&#039;&#039;&lt;br /&gt;
:*｢[[ポップアップメニューで検索先にジャンプ#sukemaru 版|検索ジャンプ]]｣｢[[ブックマーク一覧ジャンプ#sukemaru 版|ブックマークジャンプ]]｣ マクロでは ｢行の表示方法｣(論理座標／表示座標) の取得に GetIniOption() 関数を利用しています。&lt;br /&gt;
:*｢[[ファイルを読み直す・開きなおす|読みなおし]]｣ マクロでは、GetIniOption() 関数を大幅に魔改造して ｢自動保存｣｢バックアップ｣ 関連の設定内容とすべての ｢編集モード名｣ を取得しています。&lt;br /&gt;
:*｢[[コンパクトメニュー]]｣ マクロでは GetIniOption() 関数をさらに魔改造して、｢最近のファイルの表示数｣ ｢無題タブ用のラベル｣ などの値や、｢編集モード名｣ ｢マクロ名｣ ｢プラグイン名｣ ｢外部ツール名｣ の一覧などを取得しています。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* 参照したい値が「数値」や「Ascii文字だけの文字列」であれば、記述が煩雑になる ADODB.Stream や拙作の関数を使わずに、FileSystemObject の &amp;lt;code&amp;gt;OpenTextFile()&amp;lt;/code&amp;gt; と &amp;lt;code&amp;gt;ReadAll()&amp;lt;/code&amp;gt; メソッドでも問題ありません（値が２バイト文字の場合、文字化けするので FileSystemObject は不適）。&lt;br /&gt;
: なお、Mery.ini の改行コードは CR+LF なので、検索で改行位置を利用する場合は &amp;lt;code&amp;gt;&amp;quot;\r\n&amp;quot;&amp;lt;/code&amp;gt; を用います。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* 基本的に、｢編集モード｣ ｢マクロ｣ ｢プラグイン｣ ｢外部ツール｣ のショートカットキーは取得できません （キー名が32桁の16進数に符号化されていて「マクロ名」などで検索できないため）。&lt;/div&gt;</summary>
		<author><name>Sukemaru</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=5506</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=5506"/>
		<updated>2021-01-20T12:18:01Z</updated>

		<summary type="html">&lt;p&gt;Sukemaru: 追加・更新&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 2020/05/22&lt;br /&gt;
*[[行頭か行末 または 選択範囲の始点か終点]] (sukemaru) last update 2020/06/26&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&lt;br /&gt;
*[[行を複製 (複数行可)]] (sukemaru) last update 2020/06/26&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 2020/06/29&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) 2020/09/04 update&lt;br /&gt;
*[[Markdown 向け、リスト記号 (*) のトグル]] (yuko) 2019/04/29&lt;br /&gt;
*[[Markdown 向け、タスクリスト (* ［］) のチェック状態をトグル]] (yuko) 2020/09/04&lt;br /&gt;
*[[引用符／コメント]] ※ポップアップメニュー (sukemaru) last update 2020/06/23&lt;br /&gt;
*[[カッコで囲う]] ※ポップアップメニュー (sukemaru) last update 2020/06/23 &amp;lt;br&amp;gt; [[カッコで囲う#カッコで囲う (ポップアップメニューなし)|カッコで囲う (簡易版)]] ＆ [[カッコで囲う#引用符を追加／削除|引用符を追加／削除]] &amp;lt;br&amp;gt; [[カッコで囲う#カッコで囲う２（各行ごとにカッコで囲う／Mery ver 3 用）|カッコで囲う２]] ※ポップアップメニュー &lt;br /&gt;
*[[カッコをはずす]] ＆ [[カッコをはずす#カッコを追加／削除|カッコを追加／削除]] (sukemaru) last update 2020/06/28&lt;br /&gt;
*[[定型文を挿入]]マクロ集 (sukemaru) 2018/12/03&lt;br /&gt;
*[[何年生で習う漢字？]] (シリル) 2019/03/10&lt;br /&gt;
*[[上に行挿入]] (yuko) 2019/05/11&lt;br /&gt;
*[[位置情報を保存してから「すべて選択／選択解除」(非スクロール)]] (sukemaru) update 2020/11/01 &amp;lt;br&amp;gt; [[位置情報を保存してから「すべて選択／選択解除」(非スクロール)#【include 版】位置を復帰／保存|位置を復帰／保存]]&lt;br /&gt;
*[[選択範囲を広げる]] (yuko) 2020/03/22&lt;br /&gt;
*[[拡張自動選択]] (sukemaru) update 2020/07/01&lt;br /&gt;
*[[追加コピー・追加切り取り]] (sukemaru) 2020/06/05&lt;br /&gt;
*[[新規行番号入力]] (Takuma 他) 2020/06/17 - 2020/06/26&lt;br /&gt;
*[[「クリップボード履歴」メニューのマクロ化]] ＋ [[プラグイン:スニペットプラグイン|スニペット機能]]　(sukemaru) last update 2020/06/27&lt;br /&gt;
*[[論理行を選択 (改行を含まない)]] (sukemaru) 2021/01/20&lt;br /&gt;
*[[選択範囲を行に分ける・改]] (sukemaru) 2021/01/20&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&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) last update 2020/06/24&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&lt;br /&gt;
*[[文書が変更されていなければ変更マークを消す]] (Noah)&lt;br /&gt;
*[[変更なしのタブをすべて閉じる]] (Noah)&lt;br /&gt;
*[[ファイルを読み直す・開きなおす]] ※ポップアップメニュー (sukemaru) last update 2019/11/30&lt;br /&gt;
*[[さいごに閉じたファイルを開く]] ※ポップアップメニュー (sukemaru) 2019/11/30&lt;br /&gt;
*[[タブを複製する]] (sukemaru) update 2020/10/30&lt;br /&gt;
*[[強制的に上書き保存]] (sukemaru) 2020/06/01&lt;br /&gt;
*[[すべて戻す]] (sukemaru) 2020/06/01&lt;br /&gt;
*[[作業フォルダの変更]] (sukemaru) 2020/06/03&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&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_を切り替える]]（&amp;lt;span style=&amp;quot;color:#0000c0;&amp;quot;&amp;gt;YES&amp;lt;/span&amp;gt;／&amp;lt;span style=&amp;quot;color:#c00;&amp;quot;&amp;gt;NO&amp;lt;/span&amp;gt;マクロ） (sukemaru) last update 2020/07/01&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&lt;br /&gt;
*[[全角／半角 トグル変換]] (sukemaru) last update 2020/07/03&lt;br /&gt;
*[[大文字／小文字／頭文字 トグル変換]] (sukemaru) last update 2020/07/03&lt;br /&gt;
*[[ひらがな／カタカナ変換]] (sukemaru) last update 2020/07/08&lt;br /&gt;
*[[TAB／半角空白 トグル変換]] (sukemaru) last update 2020/07/02&lt;br /&gt;
*[[文字列の順番を逆に書き出す]] (sukemaru) update 2020/01/03&lt;br /&gt;
*[[マルチカーソル選択範囲の並べ替え]] (sukemaru) last update 2020/07/06&lt;br /&gt;
*[[マルチカーソル用:「昇順／降順」または「逆順」で並べ替え]] (sukemaru) 2020/07/08&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 2020/06/25&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&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 2021/01/20&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 2020/06/28&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文書のコンパイル]] (手石, isari) update 2020/10/16&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) 2020/12/12更新&lt;br /&gt;
*[[JSON整形]](Ovis) Create 2019/03/25&lt;br /&gt;
*[[JS フォーマット]]（JavaScript整形） (sukemaru) 2020/05/03&lt;br /&gt;
*[[ScriptRun]]（Scriptコードの実行）（fuka）2020/08/02&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;
:[[実験的マクロ・練習マクロなど|&amp;gt;&amp;gt;　別ページ]]&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/10/30&lt;br /&gt;
*[[ファイルロック (排他制御) 的なもの]] (PebblePot)&lt;br /&gt;
*[[Mery.iniのオプション値を取得]] ※組み込み関数 (sukemaru) last update 2020/05/14&lt;br /&gt;
*[[Mery本体のバージョンチェック]] ※組み込み関数 (sukemaru) 2019/04/17&lt;br /&gt;
*[[IO.Serialize() の JSON を参照する]] ※組み込み関数 (sukemaru) 2019/04/17&lt;br /&gt;
*[[ポップアップメニューを「n*十件ずつ」のサブメニューに自動分割する]] ※組み込み関数 (sukemaru) update 2020/05/28&lt;br /&gt;
*[[アクティブなタブのマクロを実行する]] (sukemaru) last update 2020/04/30&lt;br /&gt;
*[[コンパクトメニュー]] (sukemaru) last update 2020/03/29&lt;br /&gt;
*[[マクロメニュー]] (sukemaru) last update 2020/06/03&lt;br /&gt;
*[[Mery.his の履歴を整理]] (sukemaru) 2021/01/20&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
*[[キーアサイン集]] (ks, masme, sukemaru, 有志) last update 2020/05/22&lt;br /&gt;
*[[マテリアルデザインっぽいアイコンと『小マクロ集』]](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>Sukemaru</name></author>
	</entry>
	<entry>
		<id>https://www.haijin-boys.com/wiki/index.php?title=%E3%81%99%E3%81%B9%E3%81%A6%E6%88%BB%E3%81%99&amp;diff=5505</id>
		<title>すべて戻す</title>
		<link rel="alternate" type="text/html" href="https://www.haijin-boys.com/wiki/index.php?title=%E3%81%99%E3%81%B9%E3%81%A6%E6%88%BB%E3%81%99&amp;diff=5505"/>
		<updated>2021-01-20T12:08:58Z</updated>

		<summary type="html">&lt;p&gt;Sukemaru: 修正版。ZIP書庫を追加。&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__toc__&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
以下のマクロは、いずれもループ処理で Undo 操作を連続実行させるものなので、「無限ループ」防止のために「３秒」の初期値で制限時間を設定してあります。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
※ 完全に元に戻りきらなかった場合は、念のためもう一度実行してみてください。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;warningbox&amp;quot;&amp;gt;&lt;br /&gt;
Mery で開いたまま他のエディタなどで編集・上書き保存してから Mery 側での「&#039;&#039;&#039;読み直しますか？&#039;&#039;&#039;」の確認ダイアログで「はい」を選んで読み直ししてしまった場合には元に戻すことができません。&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ダウンロード ==&lt;br /&gt;
ダウンロード　&amp;gt;&amp;gt;　「[[ファイル:すべて戻す.zip]]」（アイコン入り）&lt;br /&gt;
:* すべて戻す.js&lt;br /&gt;
:* もっとたくさん元に戻す.js&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== すべて戻す ==&lt;br /&gt;
&lt;br /&gt;
最後に保存したときの状態まで「元に戻す (Undo)」を連続試行します。&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[ファイル］ メニュー　&amp;gt;&amp;gt;　［読み直し］　&amp;gt;&amp;gt;　［自動選択］　するのと同じ結果になるとおもいますが、このマクロで元に戻した内容は「やり直し (Redo)」可能です。&amp;lt;br&amp;gt;&lt;br /&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;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;
// #icon = &amp;quot;undo_more.ico&amp;quot;&lt;br /&gt;
&lt;br /&gt;
// ---------- ▼ 設定項目 ▼ ----------&lt;br /&gt;
&lt;br /&gt;
// ■ 「無限ループ」防止のため制限時間&lt;br /&gt;
var limit = 3000;	// 単位: ミリ秒&lt;br /&gt;
&lt;br /&gt;
// ---------- ▲ 設定項目 ▲ ----------&lt;br /&gt;
&lt;br /&gt;
var d = editor.ActiveDocument;&lt;br /&gt;
var undoCount = 0,  restart = new Date(),  elpased;&lt;br /&gt;
limit = ( limit &amp;gt; 0 ) ? limit : 3000;&lt;br /&gt;
&lt;br /&gt;
do {&lt;br /&gt;
  d.Undo();  undoCount ++;&lt;br /&gt;
  elpased = new Date() - restart;	// 経過時間（ミリ秒）&lt;br /&gt;
} while ( ! d.Saved &amp;amp;&amp;amp; elpased &amp;lt; limit );&lt;br /&gt;
&lt;br /&gt;
Status = &amp;quot;　... &amp;quot; + undoCount + &amp;quot; 回 UNDO しました。　　[ &amp;quot;&lt;br /&gt;
+ ( elpased / 1000 ).toFixed( 3 ).replace( /\./, &amp;quot;. &amp;quot; ) + &amp;quot; 秒 ]&amp;quot;;&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;
「最後に保存したときの状態」よりも前の「Mery で開いたときの状態」まで元に戻したい場合は、こちらのマクロをご利用ください。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&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;
#title = &amp;quot;もっとたくさん元に戻す&amp;quot;&lt;br /&gt;
#tooltip = &amp;quot;Mery で開いたときの状態まで元に戻す&amp;quot;&lt;br /&gt;
// #icon = &amp;quot;restore[5].ico&amp;quot;&lt;br /&gt;
&lt;br /&gt;
// ---------- ▼ 設定項目 ▼ ----------&lt;br /&gt;
&lt;br /&gt;
// ■ 「無限ループ」防止のため制限時間&lt;br /&gt;
var limit = 3000;	// 単位: ミリ秒&lt;br /&gt;
&lt;br /&gt;
// ---------- ▲ 設定項目 ▲ ----------&lt;br /&gt;
&lt;br /&gt;
var d = editor.ActiveDocument;&lt;br /&gt;
var undoCount = 0,  restart = new Date(),  elpased;&lt;br /&gt;
limit = ( limit &amp;gt; 0 ) ? limit : 3000;&lt;br /&gt;
&lt;br /&gt;
d.Saved = false;&lt;br /&gt;
do {&lt;br /&gt;
  d.Undo();  undoCount ++;&lt;br /&gt;
  elpased = new Date() - restart;	// 経過時間（ミリ秒）&lt;br /&gt;
} while ( elpased &amp;lt; limit );&lt;br /&gt;
&lt;br /&gt;
Status = &amp;quot;　... &amp;quot; + undoCount + &amp;quot; 回 UNDO しました。　　[ &amp;quot;&lt;br /&gt;
+ ( elpased / 1000 ).toFixed( 3 ).replace( /\./, &amp;quot;. &amp;quot; ) + &amp;quot; 秒 ]&amp;quot;;&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;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
-----&lt;br /&gt;
*2021/01/20&lt;br /&gt;
:制限時間の設定値が反映されず３秒固定になってしまっていたミスを修正。&lt;/div&gt;</summary>
		<author><name>Sukemaru</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%81%99%E3%81%B9%E3%81%A6%E6%88%BB%E3%81%99.zip&amp;diff=5504</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%81%99%E3%81%B9%E3%81%A6%E6%88%BB%E3%81%99.zip&amp;diff=5504"/>
		<updated>2021-01-20T11:59:33Z</updated>

		<summary type="html">&lt;p&gt;Sukemaru: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Sukemaru</name></author>
	</entry>
	<entry>
		<id>https://www.haijin-boys.com/wiki/index.php?title=%E9%81%B8%E6%8A%9E%E7%AF%84%E5%9B%B2%E3%82%92%E8%A1%8C%E3%81%AB%E5%88%86%E3%81%91%E3%82%8B%E3%83%BB%E6%94%B9&amp;diff=5503</id>
		<title>選択範囲を行に分ける・改</title>
		<link rel="alternate" type="text/html" href="https://www.haijin-boys.com/wiki/index.php?title=%E9%81%B8%E6%8A%9E%E7%AF%84%E5%9B%B2%E3%82%92%E8%A1%8C%E3%81%AB%E5%88%86%E3%81%91%E3%82%8B%E3%83%BB%E6%94%B9&amp;diff=5503"/>
		<updated>2021-01-20T11:47:22Z</updated>

		<summary type="html">&lt;p&gt;Sukemaru: ページを新規作成&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;複数行にわたる選択範囲を、論理行区切りで &#039;&#039;&#039;マルチカーソル・複数選択範囲&#039;&#039;&#039; に分けます。&lt;br /&gt;
: ※［ポップアップメニューの設定］ の ［編集］ カテゴリにある ［選択範囲を行に分ける］ コマンドをマクロ化し、ツールバーアイコンから実行できるようになります&lt;br /&gt;
: ※ 間違えて実行してしまった場合に &#039;&#039;&#039;Undo&#039;&#039;&#039; できます （設定項目&amp;lt;code&amp;gt;undoEnable&amp;lt;/code&amp;gt;）&lt;br /&gt;
: ※ 矩形選択状態から実行した場合の分割方式をカスタマイズできます （設定項目&amp;lt;code&amp;gt;box2multiByLogical&amp;lt;/code&amp;gt;）&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;warningbox&amp;quot;&amp;gt;&lt;br /&gt;
; 動作要件： Mery ver 3.0.1 以上&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== ソースコード ==&lt;br /&gt;
&lt;br /&gt;
; ダウンロード　&amp;gt;&amp;gt;　「[[ファイル:選択範囲を行に分ける・改.zip]]」（アイコン入り）&lt;br /&gt;
&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;
// #icon = &amp;quot;split_selections[2].ico&amp;quot;&lt;br /&gt;
// #icon = &amp;quot;Mery用 マテリアルデザインっぽいアイコン.icl&amp;quot;,364&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * ---------------------------------------------------------&lt;br /&gt;
 * 「選択範囲を行に分ける・改」マクロ&lt;br /&gt;
 * sukemaru, 2021/01/20&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;
 * ・動作要件： Mery ver 3.0.1 以上 で&lt;br /&gt;
 *              複数行選択または矩形選択していること&lt;br /&gt;
 *            「マルチカーソルを有効にする」が ON であること&lt;br /&gt;
 * ・このマクロは、元の各選択範囲末尾の調整（末尾改行を除外）をしません&lt;br /&gt;
 * ・矩形選択以外の選択範囲では、&lt;br /&gt;
 *   表示行単位で（折り返しごとに）行に分けて複数選択範囲にすることはできません&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
// ---------- ▼ 設定項目 ▼ ---------- //&lt;br /&gt;
&lt;br /&gt;
// ■ UNDO 操作で元の範囲選択状態に戻せるようにする&lt;br /&gt;
var undoEnable = false;             // true: する ／ false: しない&lt;br /&gt;
&lt;br /&gt;
// ■ 矩形選択範囲の分割方法&lt;br /&gt;
var box2multiByLogical = false;     // true: 論理行 ／ false: 表示行&lt;br /&gt;
  /**&lt;br /&gt;
   * true なら、折り返しより後ろ（改行まで）の文字列は選択範囲から除外する&lt;br /&gt;
   *   ※ 空行や行末以降の無文字部分では、各行末にキャレットを置く&lt;br /&gt;
   * false なら、実行前に範囲選択（反転表示）されている文字列すべてが選択範囲になる&lt;br /&gt;
   *   ※ 空行や行末以降の無文字部分は選択範囲から除外される&lt;br /&gt;
   */&lt;br /&gt;
&lt;br /&gt;
// ---------- ▲ 設定項目 ▲ ---------- //&lt;br /&gt;
&lt;br /&gt;
var s = editor.ActiveDocument.selection;&lt;br /&gt;
&lt;br /&gt;
if ( editor.QueryStatusByID( EditSplitSelIntoLines = 2254 )&lt;br /&gt;
&amp;amp;&amp;amp; s.Text.indexOf( &amp;quot;\n&amp;quot; ) &amp;gt; -1 ) {&lt;br /&gt;
&lt;br /&gt;
  if ( &amp;quot;AddUndo&amp;quot; in window &amp;amp;&amp;amp; undoEnable ) {&lt;br /&gt;
    BeginUndoGroup();  AddUndo();&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  // 矩形選択を論理行で分ける&lt;br /&gt;
  if ( s.Mode == meModeBox &amp;amp;&amp;amp; box2multiByLogical ) {&lt;br /&gt;
    s.Mode = meModeMulti;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  // 選択範囲を行に分ける&lt;br /&gt;
  editor.ExecuteCommandByID( EditSplitSelIntoLines = 2254 );&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sukemaru</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%81%B8%E6%8A%9E%E7%AF%84%E5%9B%B2%E3%82%92%E8%A1%8C%E3%81%AB%E5%88%86%E3%81%91%E3%82%8B%E3%83%BB%E6%94%B9.zip&amp;diff=5502</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%81%B8%E6%8A%9E%E7%AF%84%E5%9B%B2%E3%82%92%E8%A1%8C%E3%81%AB%E5%88%86%E3%81%91%E3%82%8B%E3%83%BB%E6%94%B9.zip&amp;diff=5502"/>
		<updated>2021-01-20T11:45:11Z</updated>

		<summary type="html">&lt;p&gt;Sukemaru: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Sukemaru</name></author>
	</entry>
	<entry>
		<id>https://www.haijin-boys.com/wiki/index.php?title=%E8%AB%96%E7%90%86%E8%A1%8C%E3%82%92%E9%81%B8%E6%8A%9E_(%E6%94%B9%E8%A1%8C%E3%82%92%E5%90%AB%E3%81%BE%E3%81%AA%E3%81%84)&amp;diff=5501</id>
		<title>論理行を選択 (改行を含まない)</title>
		<link rel="alternate" type="text/html" href="https://www.haijin-boys.com/wiki/index.php?title=%E8%AB%96%E7%90%86%E8%A1%8C%E3%82%92%E9%81%B8%E6%8A%9E_(%E6%94%B9%E8%A1%8C%E3%82%92%E5%90%AB%E3%81%BE%E3%81%AA%E3%81%84)&amp;diff=5501"/>
		<updated>2021-01-20T11:32:33Z</updated>

		<summary type="html">&lt;p&gt;Sukemaru: ページを新規作成&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= 論理行を選択 (改行を含まない) =&lt;br /&gt;
&lt;br /&gt;
行末改行を含めずに &#039;&#039;&#039;論理行単位の選択範囲&#039;&#039;&#039; にします。&lt;br /&gt;
: ・複数行可&lt;br /&gt;
: ・スクロールなし&lt;br /&gt;
: ・マルチカーソルに対応 （Mery ver 3.x）&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;
: &#039;&#039;&#039;実行前&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
: [[ファイル:Mery_論理行を選択_(改行を含まない)_0.png|link=]]&lt;br /&gt;
: &amp;lt;span id=&amp;quot;act1&amp;quot;&amp;gt;➀ &#039;&#039;&#039;論理行を選択（末尾改行を含めない）&#039;&#039;&#039;　※ キャレットは行頭&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
: [[ファイル:Mery_論理行を選択_(改行を含まない)_1.png|link=]]&lt;br /&gt;
: ➁ &#039;&#039;&#039;論理行を選択（末尾改行を含めず、前の行の末尾改行を含める）&#039;&#039;&#039;　※ キャレットは先頭&amp;lt;br&amp;gt;&lt;br /&gt;
: [[ファイル:Mery_論理行を選択_(改行を含まない)_2.png|link=]]&lt;br /&gt;
: ➂ &#039;&#039;&#039;論理行を選択（末尾改行を含める）&#039;&#039;&#039;　※ キャレットは末尾&amp;lt;br&amp;gt;&lt;br /&gt;
: [[ファイル:Mery_論理行を選択_(改行を含まない)_3.png|link=]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
: ※ &#039;&#039;&#039;選択範囲がない&#039;&#039;&#039; ときも同様&amp;lt;br&amp;gt;&lt;br /&gt;
: ※ Mery ver 2.x で &#039;&#039;&#039;矩形選択範囲&#039;&#039;&#039; のときも同様&amp;lt;br&amp;gt;&lt;br /&gt;
: ※ 選択範囲の先頭行や末尾行に空行がある場合、連続実行すると空行を含まない選択範囲に&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;
Mery ver 3.x でマルチカーソル有効のとき&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;矩形選択&#039;&#039;&#039; のときは　➃-1. 選択範囲を行に分ける　→　➃-2. 論理行を選択&lt;br /&gt;
: &#039;&#039;&#039;実行前&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
: [[ファイル:Mery_論理行を選択_(改行を含まない)_4.png|link=]]&lt;br /&gt;
: ➃-１. &#039;&#039;&#039;選択範囲を行に分ける&#039;&#039;&#039;　※ キャレットは末尾&amp;lt;br&amp;gt;&lt;br /&gt;
: [[ファイル:Mery_論理行を選択_(改行を含まない)_5.png|link=]]&lt;br /&gt;
: ➃-２. &#039;&#039;&#039;論理行を選択（末尾改行を含めない）&#039;&#039;&#039;　※ キャレットは行頭&amp;lt;br&amp;gt;&lt;br /&gt;
: [[ファイル:Mery_論理行を選択_(改行を含まない)_6.png|link=]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
: ※ 矩形選択範囲が &#039;&#039;&#039;行の折り返し&#039;&#039;&#039; にまたがっているときの分割方法は、設定項目&amp;lt;code&amp;gt;box2multiByLogical&amp;lt;/code&amp;gt;で決定&amp;lt;br&amp;gt;&lt;br /&gt;
: ※ ➃-１. の操作は &#039;&#039;&#039;Undo&#039;&#039;&#039; 可&lt;br /&gt;
: ※ さらに再実行した場合は、&#039;&#039;&#039;マルチカーソル・複数選択のとき&#039;&#039;&#039; の動作に移行&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;マルチカーソル・複数選択&#039;&#039;&#039; のときは　➄-1.　→　➄-2.　→　➄-1.　→　➄-2. …　の動作をトグル&lt;br /&gt;
: &#039;&#039;&#039;実行前&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
: [[ファイル:Mery_論理行を選択_(改行を含まない)_7.png|link=]]&lt;br /&gt;
: ➄-１. &#039;&#039;&#039;論理行を選択（末尾改行を含めない）&#039;&#039;&#039;　※ キャレットは行頭&amp;lt;br&amp;gt;&lt;br /&gt;
: [[ファイル:Mery_論理行を選択_(改行を含まない)_8.png|link=]]&lt;br /&gt;
: ➄-２. &#039;&#039;&#039;論理行を選択（末尾改行を含める）&#039;&#039;&#039;　※ キャレットは末尾&amp;lt;br&amp;gt;&lt;br /&gt;
: [[ファイル:Mery_論理行を選択_(改行を含まない)_9.png|link=]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ダウンロード ==&lt;br /&gt;
ダウンロード　&amp;gt;&amp;gt;　「[[ファイル:論理行を選択_(改行を含まない).zip]]」（アイコン入り）&amp;lt;br&amp;gt;&lt;br /&gt;
* 2021/01/20： 新規アップロード&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&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;select_line_as_logical.ico&amp;quot;&lt;br /&gt;
// #icon = &amp;quot;Mery用 マテリアルデザインっぽいアイコン.icl&amp;quot;,134&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * ---------------------------------------------------------&lt;br /&gt;
 * 論理行を選択（末尾改行を含まない）&lt;br /&gt;
 * ※ 複数行可／スクロールなし&lt;br /&gt;
 * ※ マルチカーソルに対応&lt;br /&gt;
 * sukemaru, 2018/08/08 - 2021/01/20&lt;br /&gt;
 * ---------------------------------------------------------&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
// ---------- ▼ 設定項目 ▼ ---------- //&lt;br /&gt;
&lt;br /&gt;
// ■ 矩形選択範囲の分割方法（ ➃ ）&lt;br /&gt;
var box2multiByLogical = false;		// true: 論理行 ／ false: 表示行&lt;br /&gt;
  /**&lt;br /&gt;
   * true なら、折り返しより後ろ（改行まで）の文字列は選択範囲から除外する&lt;br /&gt;
   *   ※ 空行や行末以降の無文字部分では、各行末にキャレットを置く&lt;br /&gt;
   * false なら、実行前に範囲選択（反転表示）されている文字列すべてが選択範囲になる&lt;br /&gt;
   *   ※ 空行や行末以降の無文字部分は選択範囲から除外される&lt;br /&gt;
   *   ※ マクロを再実行すると論理行ごとに統合した選択範囲になる&lt;br /&gt;
   */&lt;br /&gt;
&lt;br /&gt;
// ---------- ▲ 設定項目 ▲ ---------- //&lt;br /&gt;
&lt;br /&gt;
// ---------- ▼ Main ▼ ---------- //&lt;br /&gt;
&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;
var st = s.Text;&lt;br /&gt;
&lt;br /&gt;
// 選択範囲が１つで矩形選択ではないとき&lt;br /&gt;
if ( ! s.Mode || s.Mode == meModeStream&lt;br /&gt;
// マルチカーソル無効（または Mery ver 2.X）で矩形選択状態のとき&lt;br /&gt;
|| ( ! editor.QueryStatusByID( 2254 ) &amp;amp;&amp;amp; s.Mode == meModeBox ) ) {&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;
  var anc = s.GetAnchorPos();&lt;br /&gt;
  var act = s.GetActivePos();&lt;br /&gt;
  var tp  = Math.min( anc, act );&lt;br /&gt;
  var bp  = Math.max( anc, act );&lt;br /&gt;
  var bll = d.GetLine( by, 0 ).length;	// Bottom Line Length&lt;br /&gt;
&lt;br /&gt;
  // 空行で実行したときはなにもしない&lt;br /&gt;
  if ( s.IsEmpty &amp;amp;&amp;amp; bll === 0 ) { Status = &amp;quot;　空行&amp;quot;; }&lt;br /&gt;
&lt;br /&gt;
  // 文書の先頭から始まり末尾改行を含まない論理行選択状態から実行したとき&lt;br /&gt;
  else if ( ty === 1 &amp;amp;&amp;amp; tx === 1&lt;br /&gt;
  &amp;amp;&amp;amp; bll &amp;amp;&amp;amp; bx === bll + 1 ) {&lt;br /&gt;
    // ➂ 論理行を選択（複数行可。末尾改行を含める）&lt;br /&gt;
    s.SetActivePos( bp + 1 );&lt;br /&gt;
    s.SetAnchorPos( tp );&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  // ➁ の範囲選択状態から実行したとき&lt;br /&gt;
  else if ( s.Text.charAt( 0 ) === &amp;quot;\n&amp;quot;&lt;br /&gt;
  &amp;amp;&amp;amp; bll &amp;amp;&amp;amp; bx === bll + 1 ) {&lt;br /&gt;
    // ➂ 選択範囲全体を１文字ぶん後ろにシフトする（末尾改行を含める）&lt;br /&gt;
    s.SetActivePos( bp + 1 );&lt;br /&gt;
    s.SetAnchorPos( tp + 1 );&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  // ➀ の末尾改行を含まない論理行選択状態から実行したとき&lt;br /&gt;
  else if ( tx === 1 &amp;amp;&amp;amp; bll &amp;amp;&amp;amp; bx === bll + 1 ) {&lt;br /&gt;
    // ➁ 選択範囲の先頭位置を１文字ぶん前にシフトする（前の行の末尾改行を含める）&lt;br /&gt;
    s.SetActivePos( tp - 1 );&lt;br /&gt;
    s.SetAnchorPos( bp );&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  // 範囲選択なしの状態 または 1行内におさまる範囲選択状態から実行したとき&lt;br /&gt;
  else {&lt;br /&gt;
    // ➀ 論理行を選択（複数行可。末尾改行を含めない）&lt;br /&gt;
    SelectLines();&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// ➃ マルチカーソル有効で矩形選択状態のときは行に分けて終了&lt;br /&gt;
else if ( s.Mode == meModeBox ) {&lt;br /&gt;
  // Undo ポイントを追加&lt;br /&gt;
  if ( &amp;quot;AddUndo&amp;quot; in window ) { AddUndo(); }&lt;br /&gt;
&lt;br /&gt;
  if ( box2multiByLogical ) {&lt;br /&gt;
    // ◆ 論理行単位で「選択範囲を行に分ける」&lt;br /&gt;
    s.Mode = meModeMulti;&lt;br /&gt;
  }&lt;br /&gt;
  else {&lt;br /&gt;
    // ◆ 表示行単位で「選択範囲を行に分ける」&lt;br /&gt;
    editor.ExecuteCommandByID( EditSplitSelIntoLines = 2254 );&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// ➄ 複数行選択 または 複数選択の状態のとき&lt;br /&gt;
else {&lt;br /&gt;
  // ５-➀ 論理行を選択（複数行可。末尾改行を含めない）&lt;br /&gt;
  MultiFunction( SelectLines );&lt;br /&gt;
&lt;br /&gt;
  // ５-➀ の末尾改行を含まない論理行選択状態から実行したとき&lt;br /&gt;
  if ( s.Text === st ) {&lt;br /&gt;
    // ５-➂ 論理行を選択（複数行可。末尾改行を含める）&lt;br /&gt;
    MultiFunction( function( bool ) { s.SelectLine( bool ); return; }, bool = true );&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
ScrollX = sx;  ScrollY = sy;&lt;br /&gt;
&lt;br /&gt;
// ---------- ▲ Main ▲ ---------- //&lt;br /&gt;
&lt;br /&gt;
// ---------- ▼ 関数 ▼ ---------- //&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * 関数 SelectLines()&lt;br /&gt;
 * 論理行を選択（複数行可。末尾改行を含めない）&lt;br /&gt;
 * https://www.haijin-boys.com/discussions/4431&lt;br /&gt;
 */ &lt;br /&gt;
function SelectLines() { &lt;br /&gt;
  var d = editor.ActiveDocument;&lt;br /&gt;
  var s = d.selection;&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;
  if ( bx === 1 &amp;amp;&amp;amp; ty &amp;lt; by ) { by --; }&lt;br /&gt;
  s.SetActivePoint( mePosLogical, 1, ty );&lt;br /&gt;
  s.SetAnchorPoint( mePosLogical, d.GetLine( by, 0 ).length + 1, by );&lt;br /&gt;
  return;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * 関数 MultiFunction( Fn, arg1 )&lt;br /&gt;
 * マルチカーソル（複数選択範囲）に対応させる&lt;br /&gt;
 * 第１引数: Function; 選択範囲ごとに適用する処理の関数&lt;br /&gt;
 * 第２引数以降: Function に渡す引数をまとめた配列&lt;br /&gt;
 */&lt;br /&gt;
function MultiFunction( Fn, arg ) {&lt;br /&gt;
  var d = editor.ActiveDocument;&lt;br /&gt;
  var s = d.selection;&lt;br /&gt;
&lt;br /&gt;
  // // 矩形選択範囲は行に分ける&lt;br /&gt;
  // s.Mode = meModeMulti;&lt;br /&gt;
&lt;br /&gt;
  // 選択範囲の座標を取得&lt;br /&gt;
  var sCount = s.Count;&lt;br /&gt;
  var Sel = [];&lt;br /&gt;
  for ( var i = 0; i &amp;lt; sCount; i ++ ) {&lt;br /&gt;
    Sel[i] = {&lt;br /&gt;
      act: s.GetActivePos( i ),&lt;br /&gt;
      anc: s.GetAnchorPos( i )&lt;br /&gt;
    };&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  // 各選択範囲を処理&lt;br /&gt;
  for ( var i = 0, diff = 0, dl = d.TextLength;&lt;br /&gt;
  i &amp;lt; sCount; i ++ ) {&lt;br /&gt;
    s.SetActivePos( Sel[i].act + diff );&lt;br /&gt;
    s.SetAnchorPos( Sel[i].anc + diff );&lt;br /&gt;
&lt;br /&gt;
    Fn( arg );	// SelectLines() 関数&lt;br /&gt;
&lt;br /&gt;
    // Fn() の残した選択範囲（またはキャレット位置）を回収&lt;br /&gt;
    Sel[i].act = s.GetActivePos();&lt;br /&gt;
    Sel[i].anc = s.GetAnchorPos();&lt;br /&gt;
    // diff += - dl + ( dl = d.TextLength );	// 文字数の増減量（累積）&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  // マルチカーソル（複数選択範囲）を復帰&lt;br /&gt;
  for ( var i = 0; i &amp;lt; sCount; i ++ ) {&lt;br /&gt;
    s.AddPos( Sel[i].anc, Sel[i].act );&lt;br /&gt;
  }&lt;br /&gt;
  return;&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;br&amp;gt;&lt;br /&gt;
「論理行を選択 (末尾改行を含めない)」だけでトグル動作なしなら&amp;lt;br&amp;gt;&lt;br /&gt;
⇒　別ページの「[[マテリアルデザインっぽいアイコンと『小マクロ集』#論理行を選択する_(改行を含まない)_※複数行可|論理行を選択する_(改行を含まない)_※複数行可]]」マクロ （※ キャレットは行末）&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;
行末改行を含めた論理行選択（キャレットは次行の行頭に移動。マルチカーソル対応）は、&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;
&lt;br /&gt;
Document.Selection.SelectLine( true );&lt;br /&gt;
&amp;lt;/source&amp;gt;&amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sukemaru</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:Mery_%E8%AB%96%E7%90%86%E8%A1%8C%E3%82%92%E9%81%B8%E6%8A%9E_(%E6%94%B9%E8%A1%8C%E3%82%92%E5%90%AB%E3%81%BE%E3%81%AA%E3%81%84)_9.png&amp;diff=5500</id>
		<title>ファイル:Mery 論理行を選択 (改行を含まない) 9.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:Mery_%E8%AB%96%E7%90%86%E8%A1%8C%E3%82%92%E9%81%B8%E6%8A%9E_(%E6%94%B9%E8%A1%8C%E3%82%92%E5%90%AB%E3%81%BE%E3%81%AA%E3%81%84)_9.png&amp;diff=5500"/>
		<updated>2021-01-20T11:19:01Z</updated>

		<summary type="html">&lt;p&gt;Sukemaru: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Sukemaru</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:Mery_%E8%AB%96%E7%90%86%E8%A1%8C%E3%82%92%E9%81%B8%E6%8A%9E_(%E6%94%B9%E8%A1%8C%E3%82%92%E5%90%AB%E3%81%BE%E3%81%AA%E3%81%84)_8.png&amp;diff=5499</id>
		<title>ファイル:Mery 論理行を選択 (改行を含まない) 8.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:Mery_%E8%AB%96%E7%90%86%E8%A1%8C%E3%82%92%E9%81%B8%E6%8A%9E_(%E6%94%B9%E8%A1%8C%E3%82%92%E5%90%AB%E3%81%BE%E3%81%AA%E3%81%84)_8.png&amp;diff=5499"/>
		<updated>2021-01-20T11:17:33Z</updated>

		<summary type="html">&lt;p&gt;Sukemaru: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Sukemaru</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:Mery_%E8%AB%96%E7%90%86%E8%A1%8C%E3%82%92%E9%81%B8%E6%8A%9E_(%E6%94%B9%E8%A1%8C%E3%82%92%E5%90%AB%E3%81%BE%E3%81%AA%E3%81%84)_7.png&amp;diff=5498</id>
		<title>ファイル:Mery 論理行を選択 (改行を含まない) 7.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:Mery_%E8%AB%96%E7%90%86%E8%A1%8C%E3%82%92%E9%81%B8%E6%8A%9E_(%E6%94%B9%E8%A1%8C%E3%82%92%E5%90%AB%E3%81%BE%E3%81%AA%E3%81%84)_7.png&amp;diff=5498"/>
		<updated>2021-01-20T11:16:32Z</updated>

		<summary type="html">&lt;p&gt;Sukemaru: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Sukemaru</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:Mery_%E8%AB%96%E7%90%86%E8%A1%8C%E3%82%92%E9%81%B8%E6%8A%9E_(%E6%94%B9%E8%A1%8C%E3%82%92%E5%90%AB%E3%81%BE%E3%81%AA%E3%81%84)_6.png&amp;diff=5497</id>
		<title>ファイル:Mery 論理行を選択 (改行を含まない) 6.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:Mery_%E8%AB%96%E7%90%86%E8%A1%8C%E3%82%92%E9%81%B8%E6%8A%9E_(%E6%94%B9%E8%A1%8C%E3%82%92%E5%90%AB%E3%81%BE%E3%81%AA%E3%81%84)_6.png&amp;diff=5497"/>
		<updated>2021-01-20T11:15:28Z</updated>

		<summary type="html">&lt;p&gt;Sukemaru: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Sukemaru</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:Mery_%E8%AB%96%E7%90%86%E8%A1%8C%E3%82%92%E9%81%B8%E6%8A%9E_(%E6%94%B9%E8%A1%8C%E3%82%92%E5%90%AB%E3%81%BE%E3%81%AA%E3%81%84)_5.png&amp;diff=5496</id>
		<title>ファイル:Mery 論理行を選択 (改行を含まない) 5.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:Mery_%E8%AB%96%E7%90%86%E8%A1%8C%E3%82%92%E9%81%B8%E6%8A%9E_(%E6%94%B9%E8%A1%8C%E3%82%92%E5%90%AB%E3%81%BE%E3%81%AA%E3%81%84)_5.png&amp;diff=5496"/>
		<updated>2021-01-20T11:13:05Z</updated>

		<summary type="html">&lt;p&gt;Sukemaru: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Sukemaru</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:Mery_%E8%AB%96%E7%90%86%E8%A1%8C%E3%82%92%E9%81%B8%E6%8A%9E_(%E6%94%B9%E8%A1%8C%E3%82%92%E5%90%AB%E3%81%BE%E3%81%AA%E3%81%84)_4.png&amp;diff=5495</id>
		<title>ファイル:Mery 論理行を選択 (改行を含まない) 4.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:Mery_%E8%AB%96%E7%90%86%E8%A1%8C%E3%82%92%E9%81%B8%E6%8A%9E_(%E6%94%B9%E8%A1%8C%E3%82%92%E5%90%AB%E3%81%BE%E3%81%AA%E3%81%84)_4.png&amp;diff=5495"/>
		<updated>2021-01-20T11:11:38Z</updated>

		<summary type="html">&lt;p&gt;Sukemaru: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Sukemaru</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:Mery_%E8%AB%96%E7%90%86%E8%A1%8C%E3%82%92%E9%81%B8%E6%8A%9E_(%E6%94%B9%E8%A1%8C%E3%82%92%E5%90%AB%E3%81%BE%E3%81%AA%E3%81%84)_3.png&amp;diff=5494</id>
		<title>ファイル:Mery 論理行を選択 (改行を含まない) 3.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:Mery_%E8%AB%96%E7%90%86%E8%A1%8C%E3%82%92%E9%81%B8%E6%8A%9E_(%E6%94%B9%E8%A1%8C%E3%82%92%E5%90%AB%E3%81%BE%E3%81%AA%E3%81%84)_3.png&amp;diff=5494"/>
		<updated>2021-01-20T11:04:01Z</updated>

		<summary type="html">&lt;p&gt;Sukemaru: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Sukemaru</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:Mery_%E8%AB%96%E7%90%86%E8%A1%8C%E3%82%92%E9%81%B8%E6%8A%9E_(%E6%94%B9%E8%A1%8C%E3%82%92%E5%90%AB%E3%81%BE%E3%81%AA%E3%81%84)_2.png&amp;diff=5493</id>
		<title>ファイル:Mery 論理行を選択 (改行を含まない) 2.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:Mery_%E8%AB%96%E7%90%86%E8%A1%8C%E3%82%92%E9%81%B8%E6%8A%9E_(%E6%94%B9%E8%A1%8C%E3%82%92%E5%90%AB%E3%81%BE%E3%81%AA%E3%81%84)_2.png&amp;diff=5493"/>
		<updated>2021-01-20T11:02:49Z</updated>

		<summary type="html">&lt;p&gt;Sukemaru: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Sukemaru</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:Mery_%E8%AB%96%E7%90%86%E8%A1%8C%E3%82%92%E9%81%B8%E6%8A%9E_(%E6%94%B9%E8%A1%8C%E3%82%92%E5%90%AB%E3%81%BE%E3%81%AA%E3%81%84)_1.png&amp;diff=5492</id>
		<title>ファイル:Mery 論理行を選択 (改行を含まない) 1.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:Mery_%E8%AB%96%E7%90%86%E8%A1%8C%E3%82%92%E9%81%B8%E6%8A%9E_(%E6%94%B9%E8%A1%8C%E3%82%92%E5%90%AB%E3%81%BE%E3%81%AA%E3%81%84)_1.png&amp;diff=5492"/>
		<updated>2021-01-20T10:59:26Z</updated>

		<summary type="html">&lt;p&gt;Sukemaru: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Sukemaru</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:Mery_%E8%AB%96%E7%90%86%E8%A1%8C%E3%82%92%E9%81%B8%E6%8A%9E_(%E6%94%B9%E8%A1%8C%E3%82%92%E5%90%AB%E3%81%BE%E3%81%AA%E3%81%84)_0.png&amp;diff=5491</id>
		<title>ファイル:Mery 論理行を選択 (改行を含まない) 0.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:Mery_%E8%AB%96%E7%90%86%E8%A1%8C%E3%82%92%E9%81%B8%E6%8A%9E_(%E6%94%B9%E8%A1%8C%E3%82%92%E5%90%AB%E3%81%BE%E3%81%AA%E3%81%84)_0.png&amp;diff=5491"/>
		<updated>2021-01-20T10:57:00Z</updated>

		<summary type="html">&lt;p&gt;Sukemaru: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Sukemaru</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%AB%96%E7%90%86%E8%A1%8C%E3%82%92%E9%81%B8%E6%8A%9E_(%E6%94%B9%E8%A1%8C%E3%82%92%E5%90%AB%E3%81%BE%E3%81%AA%E3%81%84).zip&amp;diff=5490</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%AB%96%E7%90%86%E8%A1%8C%E3%82%92%E9%81%B8%E6%8A%9E_(%E6%94%B9%E8%A1%8C%E3%82%92%E5%90%AB%E3%81%BE%E3%81%AA%E3%81%84).zip&amp;diff=5490"/>
		<updated>2021-01-20T10:54:04Z</updated>

		<summary type="html">&lt;p&gt;Sukemaru: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Sukemaru</name></author>
	</entry>
	<entry>
		<id>https://www.haijin-boys.com/wiki/index.php?title=Mery.his_%E3%81%AE%E5%B1%A5%E6%AD%B4%E3%82%92%E6%95%B4%E7%90%86&amp;diff=5489</id>
		<title>Mery.his の履歴を整理</title>
		<link rel="alternate" type="text/html" href="https://www.haijin-boys.com/wiki/index.php?title=Mery.his_%E3%81%AE%E5%B1%A5%E6%AD%B4%E3%82%92%E6%95%B4%E7%90%86&amp;diff=5489"/>
		<updated>2021-01-20T10:43:42Z</updated>

		<summary type="html">&lt;p&gt;Sukemaru: ページを新規作成&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Mery.his の履歴を整理 =&lt;br /&gt;
&lt;br /&gt;
履歴ファイル &#039;&#039;Mery.his&#039;&#039; の内容を整理します。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 機能 ==&lt;br /&gt;
&lt;br /&gt;
Mery.his には、過去に開いたファイルごとの &amp;lt;br&amp;gt;　・カーソル位置&amp;lt;br&amp;gt;　・縦書き表示 ON/OFF の状態&amp;lt;br&amp;gt;　・ブックマーク行の論理行番号 &amp;lt;br&amp;gt; が記録されていますが、移動・削除・リネームなどにより実体ファイルがなくなったファイルの記録も残りつづけ、Mery.his は肥大化していきます。&lt;br /&gt;
&lt;br /&gt;
［オプション］ 設定ダイアログの ［履歴］ カテゴリ(タブ) から ［カーソル位置とブックマーク］ の ［履歴を消去］ すると Mery.his ファイルをクリアできますが、ブックマーク機能を利用しているユーザーにおいては ［履歴を消去］ するわけにいきません。&lt;br /&gt;
&lt;br /&gt;
このマクロは、実体ファイルがなくなったファイルについての情報を削除した &#039;&#039;Mery.his.his&#039;&#039; ファイルを作成します。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;warningbox&amp;quot;&amp;gt;&lt;br /&gt;
このページのマクロは、「[[includeライブラリ]]」を利用して、履歴ファイル（Mery.his）の読み込みと、整理済みの履歴ファイル（Mery.his.his）の保存をおこないます。&amp;lt;br&amp;gt; あらかじめ「includeライブラリ」を Macros フォルダに配置してください。&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 設定項目 ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;整理済みの履歴ファイルに付加する拡張子の指定： &amp;lt;code&amp;gt;ext&amp;lt;/code&amp;gt;&#039;&#039;&#039;　（初期値：&amp;lt;source lang=&amp;quot;javascript&amp;quot; inline&amp;gt;&amp;quot;his&amp;quot;&amp;lt;/source&amp;gt;）&lt;br /&gt;
: &amp;quot;mery.his&amp;quot; のうしろに二重拡張子として追加する拡張子を指定します。&amp;lt;br&amp;gt;半角英数字の文字列で指定してください（ファイルシステムのダメ文字は無視されます）。&amp;lt;br&amp;gt;※ 未指定の場合は&amp;lt;code&amp;gt;&amp;quot;his&amp;quot;&amp;lt;/code&amp;gt;が適用されます。&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;カーソル位置だけの履歴データも削除 する／しない：&amp;lt;code&amp;gt;ignorePos&amp;lt;/code&amp;gt;&#039;&#039;&#039;　（初期値：&amp;lt;source lang=&amp;quot;javascript&amp;quot; inline&amp;gt;false&amp;lt;/source&amp;gt;）&lt;br /&gt;
: &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt;にすると、実体ファイルはあっても、保存されている履歴情報が「カーソル位置」だけのファイルの履歴データも削除できるようになります。&amp;lt;br&amp;gt;※「ブックマーク」や「縦書き表示」の設定が保存されている履歴データは削除しません。&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;整理対象から除外するドライブレターの指定：&amp;lt;code&amp;gt;excludeDrives&amp;lt;/code&amp;gt;&#039;&#039;&#039;　（初期値：&amp;lt;source lang=&amp;quot;javascript&amp;quot; inline&amp;gt;&amp;quot;&amp;quot;&amp;lt;/source&amp;gt;）&lt;br /&gt;
: リムーバルドライブが接続されていないためにファイルの実体確認ができないようなファイルがある場合、ドライブレターを指定して「履歴の整理」から除外します。&amp;lt;br&amp;gt;※ 例: &amp;lt;code&amp;gt;&amp;quot;E,F,Z&amp;quot;&amp;lt;/code&amp;gt; ← カンマで区切って指定する&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;アウトプットバーにログを出力 する／しない：&amp;lt;code&amp;gt;outputEnable&amp;lt;/code&amp;gt;&#039;&#039;&#039;　（初期値：&amp;lt;source lang=&amp;quot;javascript&amp;quot; inline&amp;gt;true&amp;lt;/source&amp;gt;）&lt;br /&gt;
: 対象の履歴データの件数や、削除対象の履歴データの行数・ファイルパスなどのログをアウトプットバーに出力 する／しない の設定です。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 使い方 ==&lt;br /&gt;
&lt;br /&gt;
マクロから &#039;&#039;Mery.his&#039;&#039; ファイルの内容を変更することはできませんので、手動でのファイルの削除やリネーム操作が必要になります。&lt;br /&gt;
&lt;br /&gt;
# このマクロのソースコードファイル「Mery.his の履歴を整理.js」を開き、冒頭の説明文をよく読んだうえで、動作設定 &amp;lt;code&amp;gt;ext&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;ignorePos&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;excludeDrives&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;outputEnable&amp;lt;/code&amp;gt; の各項目をカスタマイズしてください。&lt;br /&gt;
# このマクロを実行する前に、編集中のすべての文書を &#039;&#039;&#039;保存済み&#039;&#039;&#039; にしてください。&amp;lt;br&amp;gt;※ 開いているすべてのタブ上で文書の編集操作をしておらず、カーソル位置の変更やブックマークの追加・削除だけをおこなっている場合は、Mery を再起動してください （Mery.his を最新の状態に更新する必要があるため）。&lt;br /&gt;
# このマクロを実行すると「履歴の整理」の開始前に確認ダイアログが表示されます。&amp;lt;br&amp;gt;[[ファイル:Mery.his の履歴を整理_1.png|link=]]&lt;br /&gt;
# ［OK］ をクリックすると「履歴の整理」を実行して、「保存の確認」ダイアログが表示されます。&amp;lt;br&amp;gt;[[ファイル:Mery.his の履歴を整理_2.png|link=]]&lt;br /&gt;
# ［はい］ をクリックすると、&#039;&#039;Mery.his&#039;&#039; があるフォルダ内に整理済みの履歴ファイル &#039;&#039;Mery.his.his&#039;&#039; を生成し、エクスプローラでフォルダを開きます。&amp;lt;br&amp;gt; ※［キャンセル］ した場合は、&#039;&#039;Mery.his.his&#039;&#039; の保存をせずに終了します。&lt;br /&gt;
# Mery のすべてのウインドウとシステムトレイの常駐アイコンを閉じて、既存の &#039;&#039;Mery.his&#039;&#039; ファイルを削除（またはリネームしてバックアップ）してから、&#039;&#039;Mery.his.his&#039;&#039; のファイル名を &#039;&#039;Mery.his&#039;&#039; にリネームしてください。&lt;br /&gt;
# 以上で「Mery.his の履歴を整理」が完了します。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== ソースコード ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ダウンロード&#039;&#039;&#039;　&amp;gt;&amp;gt;　「[[ファイル:Mery.his の履歴を整理.zip]]」&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot; style=&amp;quot;height:120em; overflow:auto;&amp;quot;&amp;gt;&lt;br /&gt;
#title   = &amp;quot;Mery.his の履歴を整理&amp;quot;&lt;br /&gt;
#tooltip = &amp;quot;実在しないファイルの履歴データを削除して Mery.his.his として保存する&amp;quot;&lt;br /&gt;
#include &amp;quot;include/IO.js&amp;quot;&lt;br /&gt;
// #icon = &amp;quot;restore.ico&amp;quot;&lt;br /&gt;
// #icon = &amp;quot;Mery用 マテリアルデザインっぽいアイコン.icl&amp;quot;,34&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * ---------------------------------------------------------&lt;br /&gt;
 * 「Mery.his の履歴を整理」マクロ&lt;br /&gt;
 * sukemaru, 2021/01/20&lt;br /&gt;
 * ---------------------------------------------------------&lt;br /&gt;
 * ▼ 機能 ▼&lt;br /&gt;
 * &amp;quot;Mery.his&amp;quot; からすべての履歴情報を読みこみ&lt;br /&gt;
 * ファイルの実在確認ができない履歴データを除去して&lt;br /&gt;
 * &amp;quot;Mery.his.his&amp;quot; (二重拡張子) として別名保存する。&lt;br /&gt;
 * ※ 既存の &amp;quot;Mery.his&amp;quot; ファイルと中身のデータは保持する。&lt;br /&gt;
 * &lt;br /&gt;
 * ▼ 注意事項（仕様上の制限） ▼&lt;br /&gt;
 * ・要：「includeライブラリ」&lt;br /&gt;
 * https://www.haijin-boys.com/wiki/include%E3%83%A9%E3%82%A4%E3%83%96%E3%83%A9%E3%83%AA&lt;br /&gt;
 * &lt;br /&gt;
 * ・マクロからは &amp;quot;Mery.his&amp;quot; ファイルを直接上書きすることはできないので、&lt;br /&gt;
 *   整理した履歴データは別名ファイル &amp;quot;Mery.his.his&amp;quot; (二重拡張子) として保存する。&lt;br /&gt;
 *   → このマクロの実行後に Mery のプロセスをすべて（タスクトレイの常駐も）終了してから、&lt;br /&gt;
 *      ユーザー自身が手動で既存の &amp;quot;Mery.his&amp;quot; を削除（またはバックアップ）し、&lt;br /&gt;
 *      &amp;quot;Mery.his.his&amp;quot; を &amp;quot;Mery.his&amp;quot; にリネームしなおす必要がある。&lt;br /&gt;
 * ※ 実行ファイル Mery.exe のベース名（&amp;quot;Mery&amp;quot; の部分）を変更している場合、&lt;br /&gt;
 *    履歴ファイルのベース名もそれに同期して生成されるので、&lt;br /&gt;
 *    整理済みの履歴用のファイル名もそれに従う&lt;br /&gt;
 *    (e.g. &amp;quot;MyMery.exe&amp;quot; なら &amp;quot;MyMery.his&amp;quot; → &amp;quot;MyMery.his.his&amp;quot;)。&lt;br /&gt;
 * ※ 二重拡張子の部分（元の拡張子の後ろに追加）は、設定項目から変更可。&lt;br /&gt;
 * &lt;br /&gt;
 * ・&amp;quot;Mery.his&amp;quot; の履歴データの更新のタイミングはファイルの保存時か&lt;br /&gt;
 *   タブを閉じたとき、または Mery の終了時なので、&lt;br /&gt;
 *   マクロ実行前に未保存のタブがあると &amp;quot;Mery.his.his&amp;quot; に反映されない場合がある&lt;br /&gt;
 *   (マクロ実行後に変更したカーソル位置やブックマークの情報は保存されない)。&lt;br /&gt;
 * ※ Mery を一度再起動してからすぐにこのマクロを実行し、&lt;br /&gt;
 *    開いているタブの状態を変更せずに Mery を完全に（タスクトレイの常駐も）終了して、&lt;br /&gt;
 *   &amp;quot;Mery.his.his&amp;quot; を &amp;quot;Mery.his&amp;quot; にリネームしなおすのが好ましい。&lt;br /&gt;
 * &lt;br /&gt;
 * ・ファイルパスがフルパス（絶対参照）で記録されていない履歴データは削除対象とする&lt;br /&gt;
 *   (マクロの document.Save( fileName ) で保存されたためにフォルダパスがないものなど)。&lt;br /&gt;
 * ※ Mery の再起動後に開きなおしてもブックマークなどが正常に読みこまれないので不要。&lt;br /&gt;
 * &lt;br /&gt;
 * ・カーソル位置だけの履歴データも削除可&lt;br /&gt;
 *   (ブックマーク設定か縦書き設定がある履歴データは残す)。&lt;br /&gt;
 * ※ 設定項目の初期値: ignorePos = false （カーソル位置だけの履歴データを残す）&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;quot;Mery.his&amp;quot; 内の各ファイルごとの履歴データが空行で区切られている状態でないと&lt;br /&gt;
 *   すべての履歴データを正常に取得し、整理することができない&lt;br /&gt;
 *   (空行区切りの各ブロックごとに１件のデータとして処理する)。&lt;br /&gt;
 * ※ &amp;quot;Mery.his&amp;quot; の読みこみ／&amp;quot;Mery.his.his&amp;quot; の保存形式は UTF-8 (BOMつき)、CR+LF。&lt;br /&gt;
 * &lt;br /&gt;
 * ▼ &amp;quot;Mery.his&amp;quot; に保存されている「各ファイルごとの履歴データ」の記述形式 ▼&lt;br /&gt;
 *   [pathStrings]↲	: ファイルのフルパス&lt;br /&gt;
 *   Pos=###↲		: カーソル位置&lt;br /&gt;
 *   Vertical=#↲	: 縦書き表示 ON/OFF の状態&lt;br /&gt;
 *   Mark#=###↲		: ブックマーク行の論理行番号（Mery ver 2.7.0 ～ ）&lt;br /&gt;
 *   ##=###↲		（ ～ Mery ver 2.6.x では、通し番号とブックマーク行の行頭インデックス）&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;quot;mery.his&amp;quot; のうしろに二重拡張子として追加）&lt;br /&gt;
var ext = &amp;quot;his&amp;quot;;	// 初期値: &amp;quot;his&amp;quot;  →  新しいファイル名は &amp;quot;Mery.his.his&amp;quot;&lt;br /&gt;
&lt;br /&gt;
// ■ カーソル位置だけの履歴データも削除する ※ 任意 ※&lt;br /&gt;
// true なら、「ブックマーク」や「縦書き表示」の設定がない履歴データは削除&lt;br /&gt;
var ignorePos = true;	// 初期値: false&lt;br /&gt;
&lt;br /&gt;
// ■ 整理対象から除外するドライブレター ※ 任意 ※&lt;br /&gt;
// ※ 実在確認できなくても削除しないが、ignorePos (←優先) の削除対象には含める&lt;br /&gt;
var excludeDrives = &amp;quot;&amp;quot;;	// 例: &amp;quot;E,F,Z&amp;quot; ← カンマで区切って指定する&lt;br /&gt;
&lt;br /&gt;
// ■ アウトプットバーにログを出力する ※ 任意 ※&lt;br /&gt;
// 整理実行の前／後の履歴データの総数、削除したデータの件数、&lt;br /&gt;
// 削除した各データブロックごとの行数や先頭行の文字列など&lt;br /&gt;
var outputEnable = true;&lt;br /&gt;
&lt;br /&gt;
// ---------- ▲ 設定項目 ▲ ---------- //&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Main: {&lt;br /&gt;
  // ext に指定した文字列が不適切な文字を含むなら除去、または &amp;quot;.his&amp;quot; に変更&lt;br /&gt;
  var appendExt  = ( ext &amp;amp;&amp;amp; /\w/.test( String( ext ) ) )&lt;br /&gt;
                 ? &#039;.&#039; + ext.toString().replace( /[\s.\/&amp;quot;*:&amp;lt;&amp;gt;?\\|]/g, &#039;&#039; ) : &#039;.his&#039;;&lt;br /&gt;
  var ruleOutDrv = String( excludeDrives || &#039;&#039; );&lt;br /&gt;
  var strong     = Boolean( ignorePos || false );&lt;br /&gt;
&lt;br /&gt;
  var Fso        = new ActiveXObject( &#039;Scripting.FileSystemObject&#039; );&lt;br /&gt;
  var WshShell   = new ActiveXObject( &#039;WScript.Shell&#039; );&lt;br /&gt;
  var meryPath   = editor.FullName;&lt;br /&gt;
  var meryName   = Fso.GetBaseName( meryPath );&lt;br /&gt;
  var meryDir    = Fso.GetParentFolderName( meryPath ) + &#039;\\&#039;;&lt;br /&gt;
  var dataDir    = Fso.FileExists( meryDir + meryName + &#039;.ini&#039; )&lt;br /&gt;
                 ? meryDir&lt;br /&gt;
                 : WshShell.SpecialFolders( &#039;APPDATA&#039; ) + &#039;\\Mery\\&#039;;&lt;br /&gt;
  var iniPath    = dataDir + meryName + &#039;.ini&#039;;&lt;br /&gt;
  var hisName    = meryName + &#039;.his&#039;;&lt;br /&gt;
  var hisPath    = dataDir + hisName;&lt;br /&gt;
  var hishisName = hisName + appendExt;&lt;br /&gt;
  var hishisPath = hisPath + appendExt;&lt;br /&gt;
  var hisText,  iniText,  msgStr,  strTitle,  r;&lt;br /&gt;
  var trayIcon = true;&lt;br /&gt;
  var $status  = Status;&lt;br /&gt;
  Status = &#039;　「Mery.his の履歴を整理」マクロ： &#039; + hisPath;&lt;br /&gt;
&lt;br /&gt;
  // mery.his ファイルがなければ終了&lt;br /&gt;
  if ( ! Fso.FileExists( hisPath ) ) {&lt;br /&gt;
    Alert ( &#039;&amp;quot;&#039; + hisName + &#039;&amp;quot; ファイルがありません。　&#039; );&lt;br /&gt;
    break Main;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  // タスクトレイ常駐の有無を確認（mery.ini から取得）&lt;br /&gt;
  try {&lt;br /&gt;
    iniText  = IO.LoadFromFile( iniPath, &amp;quot;utf-8&amp;quot; ) || &#039;&#039;;&lt;br /&gt;
    trayIcon = ( iniText.indexOf( &amp;quot;TrayIcon=0\n&amp;quot; ) === -1 );&lt;br /&gt;
  } catch( e ) { ; }&lt;br /&gt;
&lt;br /&gt;
  // 「履歴の整理」の実行前に確認ダイアログを表示&lt;br /&gt;
  strTitle = &#039;Mery: 「Mery.his の履歴を整理」マクロ&#039;;&lt;br /&gt;
  msgStr = &#039;&amp;quot;&#039; + hisName + &#039;&amp;quot; ファイルから非実在ファイルの履歴データを消去したものを　　\n&#039;&lt;br /&gt;
  + &#039;&amp;quot;&#039; + hishisName + &#039;&amp;quot; ファイルとして保存します。\n\n&#039;&lt;br /&gt;
  + &#039;履歴の整理を実行しますか？\n\n&#039;&lt;br /&gt;
  + &#039;※ &amp;quot;&#039; + hisName + &#039;&amp;quot; ファイル自体の内容は変更しません。\n&#039;&lt;br /&gt;
  + &#039;※ 編集中 (未保存) のタブがある場合は、実行前に保存しておくことをお勧めします。　　\n&#039;&lt;br /&gt;
  + ( trayIcon ? &#039;\nタスクトレイに &#039; + meryName + &#039; が常駐している場合は、\n&#039;&lt;br /&gt;
  + &#039;トレイアイコンの右クリックメニューからトレイアイコンを閉じてください。　　\n&#039; : &#039;&#039;);&lt;br /&gt;
  // ボタン 1:[OK][キャンセル], アイコン 32:[？]&lt;br /&gt;
  var msgBox = WshShell.Popup( msgStr, nSecondsToWait = 0, strTitle, nType = 1 + 32 );&lt;br /&gt;
&lt;br /&gt;
  // キャンセル（終了）&lt;br /&gt;
  if ( msgBox === 2 ) {	// [OK] = 1 ／ [キャンセル] = 2&lt;br /&gt;
    Status = $status;&lt;br /&gt;
    break Main;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  // mery.his ファイルを読みこむ&lt;br /&gt;
  hisText = IO.LoadFromFile( hisPath, &#039;utf-8&#039; );&lt;br /&gt;
&lt;br /&gt;
  // mery.his の読みこみに失敗したら終了&lt;br /&gt;
  if ( hisText === null ) {&lt;br /&gt;
    Alert ( &#039;&amp;quot;&#039; + hisName + &#039;&amp;quot; ファイルを読みこめませんでした。　&#039; );&lt;br /&gt;
    WshShell.Run( Fso.FileExists( hisPath )&lt;br /&gt;
    ? &#039;explorer /select,&amp;quot;&#039; + hisPath + &#039;&amp;quot;&#039; : &#039;&amp;quot;&#039; + dataDir + &#039;&amp;quot;&#039; );&lt;br /&gt;
    break Main;&lt;br /&gt;
  }&lt;br /&gt;
  // mery.his にデータがなければ終了&lt;br /&gt;
  else if ( ! /\S/g.test( hisText ) ) {&lt;br /&gt;
    Alert ( &#039;&amp;quot;&#039; + hisName + &#039;&amp;quot; ファイルに履歴データがありませんでした。　&#039; );&lt;br /&gt;
    Status = $status;&lt;br /&gt;
    break Main;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  // mery.his の履歴データを整理&lt;br /&gt;
  r = MeryHisCleaner( hisText, hisPath, hisName, appendExt, strong, ruleOutDrv, outputEnable );&lt;br /&gt;
&lt;br /&gt;
  // 履歴データの件数に変更がなければ終了&lt;br /&gt;
  if ( ! r.del ) {&lt;br /&gt;
    Status = $status;&lt;br /&gt;
    Alert( &#039;削除する必要のある履歴データはありませんでした。　\n\n&#039;&lt;br /&gt;
    + &#039;履歴データの件数： &#039; + r.result + &#039; 件\n&#039; );&lt;br /&gt;
    break Main;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  // &amp;quot;mery.his.his&amp;quot; を保存して Mery フォルダを開くための確認ダイアログを表示&lt;br /&gt;
  Status = &#039;　保存先： &#039; + hishisPath;&lt;br /&gt;
  strTitle = &#039;Mery: 「Mery.his の履歴を整理」マクロ - 保存の確認&#039;;&lt;br /&gt;
  msgStr = &#039;削除する履歴データの件数： &#039; + r.del + &#039; 件\n&#039;&lt;br /&gt;
  + &#039;保存する履歴データの件数： &#039; + r.result + &#039; 件\n\n\n&#039;&lt;br /&gt;
  + &#039;&amp;quot;&#039; + hishisPath + &#039;&amp;quot; に保存して　　\n&#039;&lt;br /&gt;
  + &#039; &#039; + meryName + &#039; のデータフォルダを開きますか？　\n\n\n&#039;&lt;br /&gt;
  + &#039;※ 元の &amp;quot;&#039; + hisName + &#039;&amp;quot; ファイル自体の内容は変更しません。　\n&#039;&lt;br /&gt;
  + &#039;※ 既存の &amp;quot;&#039; + hishisName + &#039;&amp;quot; ファイルがあれば上書きします。　\n\n&#039;&lt;br /&gt;
  + &#039;手動操作で &#039; + meryName + &#039;.exe のプロセスを完全に終了してから　\n&#039;&lt;br /&gt;
  + &#039;&amp;quot;&#039; + hisName + &#039;&amp;quot; ファイルを削除 (またはバックアップ) して、　\n&#039;&lt;br /&gt;
  + &#039;&amp;quot;&#039; + hishisName + &#039;&amp;quot; ファイルを &amp;quot;&#039; + hisName + &#039;&amp;quot; にリネームしてください。　　\n&#039;&lt;br /&gt;
  + ( trayIcon ? &#039;\nタスクトレイに &#039; + meryName + &#039; が常駐している場合は、\n&#039;&lt;br /&gt;
  + &#039;トレイアイコンの右クリックメニューから「終了」してください。　\n&#039; : &#039;&#039;);&lt;br /&gt;
  // ボタン 4:[はい][いいえ], アイコン 32:[？], 既定 256:[第２ボタン]&lt;br /&gt;
  msgBox = WshShell.Popup( msgStr, 0, strTitle, 4 + 32 );	// + 256&lt;br /&gt;
&lt;br /&gt;
  // キャンセル（終了）&lt;br /&gt;
  if ( msgBox === 7 ) {	// [はい] = 6 ／ [いいえ] = 7&lt;br /&gt;
    Status = $status;&lt;br /&gt;
    Output( &#039;＊保存しないで終了\n&#039;, outputEnable );&lt;br /&gt;
    break Main;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  // &amp;quot;mery.his.his&amp;quot; ファイルを保存して Mery のデータフォルダを開く&lt;br /&gt;
  try {&lt;br /&gt;
    // Mery.his.his の保存形式は UTF-8 (BOMつき) ／ CR+LF&lt;br /&gt;
    IO.SaveToFile( path = hishisPath, text = r.hishis&lt;br /&gt;
    , charset = &#039;utf-8&#039;, hasBOM = true, newline = &#039;\r\n&#039; );&lt;br /&gt;
    Output( &#039;＊&amp;quot;&#039;+ hishisPath + &#039;&amp;quot; に保存\n&#039;, outputEnable );&lt;br /&gt;
    WshShell.Run( &#039;explorer /select,&amp;quot;&#039; + hisPath + &#039;&amp;quot;&#039; );&lt;br /&gt;
  }&lt;br /&gt;
  // &amp;quot;mery.his.his&amp;quot; を保存できなかったとき&lt;br /&gt;
  catch( e ) {&lt;br /&gt;
    Status = &#039;　データフォルダ： &#039; + dataDir;&lt;br /&gt;
    Output( &#039;＊&amp;quot;&#039;+ hishisPath + &#039;&amp;quot; の保存に失敗\n&#039; + e + &#039;\n&#039;, outputEnable );&lt;br /&gt;
    Alert( e + &#039;　\n\n&amp;quot;&#039; + hishisPath + &#039;&amp;quot; に保存できませんでした。　&#039; );&lt;br /&gt;
    WshShell.Run( Fso.FileExists( hishisPath )&lt;br /&gt;
    ? &#039;explorer /select,&amp;quot;&#039; + hishisPath + &#039;&amp;quot;&#039; : &#039;&amp;quot;&#039; + dataDir + &#039;&amp;quot;&#039; );&lt;br /&gt;
  }&lt;br /&gt;
}	// Main: {}&lt;br /&gt;
iniText = hisText = r = Fso = WshShell = null;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * 関数 Output( str, outputEnable )&lt;br /&gt;
 * ログのアウトプット用&lt;br /&gt;
 */&lt;br /&gt;
function Output( str, outputEnable ) {&lt;br /&gt;
  if ( outputEnable ) { OutputBar.Writeln( str ); }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * 関数 MeryHisCleaner( hisText, hisPath, hisName, ext, ignorePos, excludeDrives, outputEnable )&lt;br /&gt;
 * Mery.his を読みこみ、実在確認できないファイルの履歴データや無効な行の有無をチェックする。&lt;br /&gt;
 */&lt;br /&gt;
function MeryHisCleaner( hisText, hisPath, hisName, ext, ignorePos, excludeDrives, outputEnable ) {&lt;br /&gt;
  // 除外するドライブレター、パス&lt;br /&gt;
  var dLetters = excludeDrives.split( &#039;,&#039; );&lt;br /&gt;
  var dCount   = dLetters.length;&lt;br /&gt;
&lt;br /&gt;
  // 履歴データを配列化;&lt;br /&gt;
  var hisArray = hisText.split( /\n\n+/ );	// 空行ごとに区切って取得&lt;br /&gt;
  var len      = hisArray.length;&lt;br /&gt;
  Output( &#039;｢Mery.his の履歴を整理｣ マクロ - MeryHisCleaner\n・&amp;quot;&#039;&lt;br /&gt;
  + hisName + &#039;&amp;quot; 内の履歴データの件数： &#039; + len + &#039; 件&#039;&lt;br /&gt;
  , outputEnable );&lt;br /&gt;
&lt;br /&gt;
  var filePathReg   = /^\[(.+)\]$/m;            // 各ブロックの先頭行&lt;br /&gt;
  var newLinesReg   = /\n/g;                    // 各ブロックの行数（ログ用）&lt;br /&gt;
  var dataLinesReg  = /\n[\s\S]*/;              // ２行目以降（ログ用）&lt;br /&gt;
  var dLetterReg    = /[a-z]:[\/\\]/i;          // ドライブレター&lt;br /&gt;
  var bookmarkReg   = /^(?:Mark)?\d+=\d+$/m;    // ブックマーク設定&lt;br /&gt;
  var verticalReg   = /^Vertical=1$/m;          // 縦書き表示の設定&lt;br /&gt;
  var cursorPos0Reg = /^Pos=0$/m;               // カーソル位置の設定&lt;br /&gt;
&lt;br /&gt;
  // 不要な履歴データを削除したテキストを作成する&lt;br /&gt;
  var newStr = &#039;&#039;;&lt;br /&gt;
  var del    = 0;&lt;br /&gt;
  var fso    = new ActiveXObject( &#039;Scripting.FileSystemObject&#039; );&lt;br /&gt;
  OuterLoop:&lt;br /&gt;
  for ( var i = 0, hisItem, filePath, outputStr; i &amp;lt; len; i ++ ) {&lt;br /&gt;
    hisItem   = hisArray[i] || &#039;&#039;;&lt;br /&gt;
    filePath  = filePathReg.exec( hisItem );&lt;br /&gt;
    outputStr = ( hisItem.match( newLinesReg ) || &#039;&#039; ).length + &#039;行：&#039;&lt;br /&gt;
              + hisItem.replace( dataLinesReg, &#039;&#039; ) + &#039; ...&#039;;&lt;br /&gt;
&lt;br /&gt;
    // 無効なデータ（１行目が [pathStrings] ではない）&lt;br /&gt;
    if ( ! filePath ) {&lt;br /&gt;
      del ++;&lt;br /&gt;
      Output( &#039;‐削除対象（無効なデータ）&#039; + outputStr, outputEnable );&lt;br /&gt;
    }&lt;br /&gt;
    // 絶対参照でないファイルパス（ドライブ名がない）&lt;br /&gt;
    else if ( ! dLetterReg.test( filePath[1] ) ) {&lt;br /&gt;
      del ++;&lt;br /&gt;
      Output( &#039;‐削除対象（不完全なパス）&#039; + outputStr, outputEnable );&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    // ブックマークと縦書き表示の設定がない履歴データ&lt;br /&gt;
    else if ( ! bookmarkReg.test( hisItem ) &amp;amp;&amp;amp; ! verticalReg.test( hisItem )&lt;br /&gt;
    // カーソル位置が文頭 または カーソル位置を無視&lt;br /&gt;
    &amp;amp;&amp;amp; ( cursorPos0Reg.test( hisItem ) || ignorePos ) ) {&lt;br /&gt;
      del ++;&lt;br /&gt;
      Output( &#039;‐削除対象（不要な履歴）&#039; + outputStr, outputEnable );&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    // ファイルの実在確認ができない履歴データ&lt;br /&gt;
    else if ( ! fso.FileExists( filePath[1] ) ) {&lt;br /&gt;
      // 除外対象ドライブのチェック&lt;br /&gt;
      for ( var j = 0, exclude = false, roleOutReg; j &amp;lt; dCount; j ++ ) {&lt;br /&gt;
        roleOutReg = RegExp( &#039;^&#039; + dLetters[j] + &#039;:[\\/\\\\]&#039;, &#039;i&#039; );&lt;br /&gt;
        // 実在確認できなくても残す&lt;br /&gt;
        if ( roleOutReg.test( filePath[1] ) ) {&lt;br /&gt;
          exclude = true;&lt;br /&gt;
          newStr += hisItem + &#039;\n\n&#039;;&lt;br /&gt;
          Output( &#039;※ 除外対象 (&#039; + dLetters[j] + &#039;:) &#039; + outputStr, outputEnable );&lt;br /&gt;
          continue OuterLoop;&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
      // 削除する&lt;br /&gt;
      if ( ! exclude ) {&lt;br /&gt;
        del ++;&lt;br /&gt;
        Output( &#039;‐削除対象（実体なし）&#039; + outputStr, outputEnable );&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    // 残す履歴データ&lt;br /&gt;
    else { newStr += hisItem + &#039;\n\n&#039;; }&lt;br /&gt;
  }	// OuterLoop:&lt;br /&gt;
&lt;br /&gt;
  // 戻り値用のオブジェクト&lt;br /&gt;
  var r = {&lt;br /&gt;
    del    : del,&lt;br /&gt;
    result : len - del,&lt;br /&gt;
    hishis : newStr&lt;br /&gt;
  };&lt;br /&gt;
&lt;br /&gt;
  // 削除対象のデータあり&lt;br /&gt;
  if ( del ) {&lt;br /&gt;
    Output( &#039;・削除する履歴データの件数： &#039; + del + &#039; 件\n&#039;&lt;br /&gt;
    + &#039;・&amp;quot;&#039;+ hisName + ext + &#039;&amp;quot; に残す履歴データの件数： &#039; + r.result + &#039; 件&#039;&lt;br /&gt;
    , outputEnable );&lt;br /&gt;
  }&lt;br /&gt;
  // 履歴データの変更なし&lt;br /&gt;
  else {&lt;br /&gt;
    Output( &#039;＊履歴データの件数に変更なし\n&#039;, outputEnable );&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  hisText = hisArray = newStr = fso = null;&lt;br /&gt;
  return r;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sukemaru</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:Mery.his_%E3%81%AE%E5%B1%A5%E6%AD%B4%E3%82%92%E6%95%B4%E7%90%86.zip&amp;diff=5488</id>
		<title>ファイル:Mery.his の履歴を整理.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:Mery.his_%E3%81%AE%E5%B1%A5%E6%AD%B4%E3%82%92%E6%95%B4%E7%90%86.zip&amp;diff=5488"/>
		<updated>2021-01-20T10:41:02Z</updated>

		<summary type="html">&lt;p&gt;Sukemaru: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Sukemaru</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:Mery.his_%E3%81%AE%E5%B1%A5%E6%AD%B4%E3%82%92%E6%95%B4%E7%90%86_2.png&amp;diff=5487</id>
		<title>ファイル:Mery.his の履歴を整理 2.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:Mery.his_%E3%81%AE%E5%B1%A5%E6%AD%B4%E3%82%92%E6%95%B4%E7%90%86_2.png&amp;diff=5487"/>
		<updated>2021-01-20T10:34:49Z</updated>

		<summary type="html">&lt;p&gt;Sukemaru: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Sukemaru</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:Mery.his_%E3%81%AE%E5%B1%A5%E6%AD%B4%E3%82%92%E6%95%B4%E7%90%86_1.png&amp;diff=5486</id>
		<title>ファイル:Mery.his の履歴を整理 1.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:Mery.his_%E3%81%AE%E5%B1%A5%E6%AD%B4%E3%82%92%E6%95%B4%E7%90%86_1.png&amp;diff=5486"/>
		<updated>2021-01-20T10:32:32Z</updated>

		<summary type="html">&lt;p&gt;Sukemaru: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Sukemaru</name></author>
	</entry>
	<entry>
		<id>https://www.haijin-boys.com/wiki/index.php?title=%E6%AC%A1%EF%BC%8F%E5%89%8D%E3%81%AE%E6%96%87%E5%AD%97%E5%88%97%E3%82%92%E6%A4%9C%E7%B4%A2%E3%83%BB%E6%94%B9&amp;diff=5485</id>
		<title>次／前の文字列を検索・改</title>
		<link rel="alternate" type="text/html" href="https://www.haijin-boys.com/wiki/index.php?title=%E6%AC%A1%EF%BC%8F%E5%89%8D%E3%81%AE%E6%96%87%E5%AD%97%E5%88%97%E3%82%92%E6%A4%9C%E7%B4%A2%E3%83%BB%E6%94%B9&amp;diff=5485"/>
		<updated>2021-01-20T10:19:39Z</updated>

		<summary type="html">&lt;p&gt;Sukemaru: 「次／前の文字列を検索・改 ２」の節を追加&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__toc__&lt;br /&gt;
= 次／前の文字列を検索・改 =&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
; ダウンロード　&amp;gt;&amp;gt;　「[[メディア:次／前の文字列を検索・改.zip|次／前の文字列を検索・改.zip]]」（アイコン入り）&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== 機能 ==&lt;br /&gt;
&lt;br /&gt;
[https://www.haijin-boys.com/software/mery/mery-tips#2 ショートカットキー [ Ctrl＋Shift＋ ↓ または ↑ &amp;amp;#93;] の「[[ヘルプ:検索#次の文字列を検索|次／前の文字列を検索]]」コマンドの機能をカスタマイズしたマクロです。&lt;br /&gt;
&lt;br /&gt;
*「次／前の文字列を検索」コマンドでは、「検索／置換」ダイアログ内のオプションの ☑ 状態を適用したくない （&#039;&#039;&#039;適用したいオプション項目が決まっている&#039;&#039;&#039;）&lt;br /&gt;
*&#039;&#039;&#039;選択範囲が改行をふくむ複数行&#039;&#039;&#039;（論理行）のばあいでも「次／前の文字列を検索」と同様のジャンプ機能がほしい&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;
&lt;br /&gt;
このマクロの特色（上記の &amp;lt;q&amp;gt;目論見&amp;lt;/q&amp;gt;）を有効にするなら&lt;br /&gt;
* &#039;&#039;&#039;&#039;&#039;optionEnable&#039;&#039;&#039; = &amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;false&amp;lt;/b&amp;gt;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;&#039;&#039;multiLinesEnable&#039;&#039;&#039; = &amp;lt;b style=&amp;quot;color:#0000c0;&amp;quot;&amp;gt;true&amp;lt;/b&amp;gt;&#039;&#039;&lt;br /&gt;
での運用をお勧めします（その他の設定項目はお好みで）。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&#039;&#039;&#039;▼ 優先オプション ▼&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
==== 設定項目： &#039;&#039;findNext&#039;&#039; ====&lt;br /&gt;
* &amp;lt;b style=&amp;quot;color:#0000c0;&amp;quot;&amp;gt;&amp;quot;Next&amp;quot;&amp;lt;/b&amp;gt; なら「次（下）の文字列を検索」&lt;br /&gt;
* &amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;&amp;quot;Prev&amp;quot;&amp;lt;/b&amp;gt; なら「前（上）の文字列を検索」&lt;br /&gt;
: ※ 実際のところ &amp;quot;Next&amp;quot;、&amp;quot;Down&amp;quot;、true、1 のいずれかなら「次」、それ以外の値なら「前」になるようにしてあります。&lt;br /&gt;
: ※ ZIP 書庫を [[#ダウンロード|ダウンロード]] した場合、あらかじめ「次」と「前」ふたつの JS ファイルを用意してあります。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 設定項目： &#039;&#039;optionEnable&#039;&#039; ====&lt;br /&gt;
「検索」ダイアログのオプションフラグを使用するかしないかを指定します。&lt;br /&gt;
&amp;lt;div class=&amp;quot;warningbox&amp;quot;&amp;gt; &lt;br /&gt;
※ &#039;&#039;&#039;[https://www.haijin-boys.com/software/mery/mery-3-0-0#13 Mery ver 3.0.1]&#039;&#039;&#039; 以降で &#039;&#039;&#039;複数選択&#039;&#039;&#039; や &#039;&#039;&#039;矩形選択&#039;&#039;&#039; している状態からこのマクロを実行したときは、強制的に &#039;&#039;&#039;&#039;&#039;optionEnable&#039;&#039;&#039; = &amp;lt;b style=&amp;quot;color:#0000c0;&amp;quot;&amp;gt;true&amp;lt;/b&amp;gt;&#039;&#039; での動作になります。&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
* &amp;lt;b style=&amp;quot;color:#0000c0;&amp;quot;&amp;gt;true&amp;lt;/b&amp;gt; なら、カスタマイズなしで、ショートカットキー [ Ctrl＋Shift＋ ↓ / ↑ ] の機能そのままに「次／前の文字列を検索」のジャンプを実行します。&lt;br /&gt;
: &amp;lt;u&amp;gt;[ Ctrl＋Shift＋ ↓ / ↑ ] の機能そのままでツールバーにマクロの &#039;&#039;&#039;アイコン&#039;&#039;&#039; を登録したいだけの場合は、&amp;lt;b style=&amp;quot;color:#0000c0;&amp;quot;&amp;gt;true&amp;lt;/b&amp;gt; にしてください。&amp;lt;/u&amp;gt;&lt;br /&gt;
: ※「検索」ダイアログのオプションフラグ「大文字と小文字を区別する」や「文末まで検索したら文頭に移動する」が適用されます。&lt;br /&gt;
: ※ ジャンプした後も、「検索」ダイアログに検索文字列の履歴が残ります。&lt;br /&gt;
: ※ このマクロからは「検索」ダイアログのオプションフラグを取得できないので、設定項目 &#039;&#039;&#039;&#039;&#039;[[#設定項目： hitCountEnable|hitCountEnable]]&#039;&#039;&#039; = &amp;lt;b style=&amp;quot;color:#0000c0;&amp;quot;&amp;gt;true&amp;lt;/b&amp;gt;&#039;&#039; にする場合、ヒット件数は &#039;&#039;&#039;&#039;&#039;matchCaseEnable&#039;&#039;&#039;&#039;&#039; と &#039;&#039;&#039;&#039;&#039;onlyWordEnable&#039;&#039;&#039;&#039;&#039; の設定状態にしたがってカウントします。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;div id=&amp;quot;false&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;false&amp;lt;/b&amp;gt; なら、「検索」ダイアログのオプションフラグを一度リセットしてから「次／前の文字列を検索」と同様のジャンプを実行します。&lt;br /&gt;
: ※ リセット（解除）されるオプションフラグは、以下の４項目です。&lt;br /&gt;
:* 「大文字と小文字を区別する」&lt;br /&gt;
:* 「正規表現を使用する」&lt;br /&gt;
:* 「単語のみを検索する」&lt;br /&gt;
:* 「文末まで検索したら文頭に移動する」&lt;br /&gt;
: ※ [https://www.haijin-boys.com/software/mery/mery-3-0-0#13 Mery ベータ版 ver 3.0.1] 以降では「migemo を使用する」[https://www.haijin-boys.com/software/mery/mery-2-8-3#13] も解除されます。&lt;br /&gt;
&lt;br /&gt;
: ※「大文字と小文字を区別する」「単語のみを検索する」「文末まで検索したら文頭に移動する」については、個別の変数をもうけて再設定可能にしてあります。&lt;br /&gt;
: ※「終了したら閉じる」と、[https://www.haijin-boys.com/software/mery/mery-2-6-10#1 ベータ版 2.6.10] で追加された「インクリメンタルサーチ」のオプションフラグは解除されません。&lt;br /&gt;
: &amp;lt;span style=&amp;quot;color:#c00;&amp;quot;&amp;gt;※ 「検索」ダイアログのオプションフラグは、ジャンプの後も、マクロ実行前の状態に復旧されません。&amp;lt;/span&amp;gt; このマクロの [[#false2|設定項目で指定した各オプションフラグ]] の ON／OFF 状態になります。&lt;br /&gt;
: ※ ジャンプの後、「検索」ダイアログに検索文字列の履歴を残しません。&lt;br /&gt;
: ※ &amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;false&amp;lt;/b&amp;gt; にすると「検索」ダイアログに検索文字列の最新の履歴は空になるので、つづけて &amp;lt;span style=&amp;quot;color:#c00;&amp;quot;&amp;gt;ショートカットキー操作での「次を検索 (F3)」と「前を検索 (Shift+F3)」のジャンプはできません&amp;lt;/span&amp;gt;（検索ダイアログが開きます）。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 設定項目： &#039;&#039;highlightEnable&#039;&#039; ====&lt;br /&gt;
ジャンプした後に「&#039;&#039;&#039;検索文字列の強調表示&#039;&#039;&#039;」を残すかどうかを指定します。&lt;br /&gt;
* &amp;lt;b style=&amp;quot;color:#0000c0;&amp;quot;&amp;gt;true&amp;lt;/b&amp;gt; なら、検索した文字列はハイライト状態のまま残ります。&lt;br /&gt;
: ※「検索文字列の強調を解除」のショートカットキーは [Alt＋F3] ですので、任意のタイミングで手動で解除してください。&lt;br /&gt;
: ※&#039;&#039;&#039;&#039;&#039;multiLinesEnable&#039;&#039;&#039; = &amp;lt;b style=&amp;quot;color:#0000c0;&amp;quot;&amp;gt;true&amp;lt;/b&amp;gt;&#039;&#039; での複数行検索では、検索文字列はハイライトされません（Mery の仕様）。&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;false&amp;lt;/b&amp;gt; なら、検索した文字列のハイライトを残しません。&lt;br /&gt;
: ※「検索文字列の強調表示」を手動で解除するのが面倒な人は &amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;false&amp;lt;/b&amp;gt; にしてください。&lt;br /&gt;
: ※「自動マーカー」が有効なら自動マーカーによる強調表示は残ります。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 設定項目： &#039;&#039;hitCountEnable&#039;&#039; ====&lt;br /&gt;
検索文字列の出現回数をステータスバーに表示させるかを指定します。&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;ref.　&#039;&#039;「[[検索ヒット数表示（選択文字列）]]」マクロ&lt;br /&gt;
* &amp;lt;b style=&amp;quot;color:#0000c0;&amp;quot;&amp;gt;true&amp;lt;/b&amp;gt; なら、検索ヒット数を表示します。&lt;br /&gt;
: ※ ヒット数のカウント方式は、基本的に Mery 標準の検索メソッドにあわせてありますが、検索ダイアログのオプションフラグに連動させることができないため &#039;&#039;&#039;&#039;&#039;optionEnable&#039;&#039;&#039; = &amp;lt;b style=&amp;quot;color:#0000c0;&amp;quot;&amp;gt;true&amp;lt;/b&amp;gt;&#039;&#039; の場合も &#039;&#039;&#039;&#039;&#039;matchCaseEnable&#039;&#039;&#039;&#039;&#039; と &#039;&#039;&#039;&#039;&#039;onlyWordEnable&#039;&#039;&#039;&#039;&#039; の設定でヒット数をカウントします。&lt;br /&gt;
: ※ &#039;&#039;&#039;&#039;&#039;onlyWordEnable&#039;&#039;&#039;&#039;&#039; (単語のみ検索) オプションが有効のときの正確度には問題があるかもしれません。&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;false&amp;lt;/b&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;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;▼ &#039;&#039;optionEnable = &amp;lt;span id=&amp;quot;false2&amp;quot; style=&amp;quot;color:#c00;&amp;quot;&amp;gt;false&amp;lt;/span&amp;gt;&#039;&#039; のとき ▼&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 設定項目： &#039;&#039;findAroundEnable&#039;&#039; ====&lt;br /&gt;
* &amp;lt;b style=&amp;quot;color:#0000c0;&amp;quot;&amp;gt;true&amp;lt;/b&amp;gt; なら、「&#039;&#039;&#039;文末まで検索したら文頭に移動する&#039;&#039;&#039;」オプションを適用して、「次／前の文字列を検索」と同様のジャンプ機能を実行します。&lt;br /&gt;
: ※ 「検索／置換」ダイアログ内の「文末まで検索したら文頭に移動する」オプションは、ジャンプ後も有効化されたままになります。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 設定項目： &#039;&#039;matchCaseEnable&#039;&#039; ====&lt;br /&gt;
* &amp;lt;b style=&amp;quot;color:#0000c0;&amp;quot;&amp;gt;true&amp;lt;/b&amp;gt; なら、「&#039;&#039;&#039;大文字と小文字を区別する&#039;&#039;&#039;」オプションを適用して「次／前の文字列を検索」と同様のジャンプ機能を実行します。&lt;br /&gt;
: ※ 「検索／置換」ダイアログ内の「大文字と小文字を区別する」オプションは、ジャンプ後も有効化されたままになります。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 設定項目： &#039;&#039;onlyWordEnable&#039;&#039; ====&lt;br /&gt;
* &amp;lt;b style=&amp;quot;color:#0000c0;&amp;quot;&amp;gt;true&amp;lt;/b&amp;gt; なら、「&#039;&#039;&#039;単語のみ検索する&#039;&#039;&#039;」オプションを適用して「次／前の文字列を検索」と同様のジャンプ機能を実行します。&lt;br /&gt;
: ※ 「検索／置換」ダイアログ内の「単語のみ検索する」オプションは、ジャンプ後も有効化されたままになります。&lt;br /&gt;
: &amp;lt;span style=&amp;quot;color:#0000c0;&amp;quot;&amp;gt;※ 実質的に「単語のみ検索」オプションが有効になるのは、検索文字列が「&#039;&#039;&#039;英単語のみ&#039;&#039;&#039; (半角アルファベットと半角数字のみ)」のときだけです。&amp;lt;/span&amp;gt; 検索文字列にアンダーバー　&amp;lt;q&amp;gt;_&amp;lt;/q&amp;gt;　以外の記号や空白文字、 ascii 外の文字がふくまれるばあいは、&#039;&#039;&#039;&#039;&#039;onlyWordEnable&#039;&#039;&#039; = &amp;lt;b style=&amp;quot;color:#0000c0;&amp;quot;&amp;gt;true&amp;lt;/b&amp;gt;&#039;&#039; であっても「単語のみ」オプションの ON／OFF 状態は無視されます（Mery 本体の仕様と同様）。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== 設定項目： &#039;&#039;multiLinesEnable&#039;&#039; ====&lt;br /&gt;
&#039;&#039;&#039;選択範囲が改行をふくむ複数行のばあい&#039;&#039;&#039;でも「次／前の文字列を検索」と同様のジャンプを可能にするための独自オプションです （Mery 本体の機能として用意されている &amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot; inline style=&amp;quot;white-space:nowrap&amp;quot;&amp;gt;Document.Selection.Find( str, meFindReplaceRegExp )&amp;lt;/syntaxhighlight&amp;gt; メソッドを活用しているだけですが）。&lt;br /&gt;
&amp;lt;div class=&amp;quot;warningbox&amp;quot;&amp;gt; &lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;multiLinesEnable&#039;&#039;&#039; = &amp;lt;b style=&amp;quot;color:#0000c0;&amp;quot;&amp;gt;true&amp;lt;/b&amp;gt;&#039;&#039; でも選択範囲が改行をふくまない１行内（論理行）であれば、&#039;&#039;&#039;&#039;&#039;optionEnable&#039;&#039;&#039; = &amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;false&amp;lt;/b&amp;gt;&#039;&#039; の [[#false|説明内容]] でジャンプを実行します。&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
* &amp;lt;b style=&amp;quot;color:#0000c0;&amp;quot;&amp;gt;true&amp;lt;/b&amp;gt; なら、選択範囲が複数行でも「次／前の文字列を検索」と同様のジャンプができます。&lt;br /&gt;
: ※ 選択範囲が改行記号をふくむ複数行の状態からジャンプしたばあいは、&#039;&#039;&#039;&#039;&#039;highlightEnable&#039;&#039;&#039; = &amp;lt;b style=&amp;quot;color:#0000c0;&amp;quot;&amp;gt;true&amp;lt;/b&amp;gt;&#039;&#039; であっても「検索文字列の強調表示」はされません（Mery 本体の仕様）。 また、Mery 本体の「自動マーカー」機能による強調表示もされません。&lt;br /&gt;
: ※ 選択範囲が改行記号をふくむ複数行の状態からジャンプしたばあいは、ジャンプ後に「検索」ダイアログ内のオプションフラグの設定状態をリセットします　（Mery ベータ版 ver 3.0.1 以降の場合はオプションフラグをクリアしません ／ 2020/05/11: 第４版）。&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b style=&amp;quot;color:#c00;&amp;quot;&amp;gt;false&amp;lt;/b&amp;gt; で選択範囲が複数行だったばあいは、選択範囲をいったん解除してから、あらためてキャレット付近の &#039;&#039;&#039;単語&#039;&#039;&#039; を自動選択して「次／前の文字列を検索」と同様のジャンプをします。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;▲ &#039;&#039;optionEnable = &amp;lt;span style=&amp;quot;color:#c00;&amp;quot;&amp;gt;false&amp;lt;/span&amp;gt;&#039;&#039; のとき ▲&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ダウンロード ==&lt;br /&gt;
&lt;br /&gt;
ダウンロード　&amp;gt;&amp;gt;　「[[ファイル:次／前の文字列を検索・改.zip]]」&lt;br /&gt;
* マクロ「次の文字列を検索・改.js」&lt;br /&gt;
* マクロ「前の文字列を検索・改.js」&lt;br /&gt;
* 専用アイコン（マテリアルデザインっぽいアイコン）&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; 更新履歴&lt;br /&gt;
* 2019/09/07（第１版）&lt;br /&gt;
* 2019/09/09（第２版）&lt;br /&gt;
: 検索方向「次／前」を変数で指定&lt;br /&gt;
: 検索ヒット数のステータス表示機能を追加&lt;br /&gt;
: ソースコードが長くなったので、ZIP 書庫をアップロード&lt;br /&gt;
* 2019/12/01 - 2019/12/03（第３版）&lt;br /&gt;
: 「単語のみ検索する」にも対応させた&lt;br /&gt;
* 2020/05/11 - 2020/05/12（第４版）&lt;br /&gt;
: &#039;&#039;&#039;[https://www.haijin-boys.com/software/mery/mery-3-0-0#13 Mery ver 3.0.1]&#039;&#039;&#039; で追加されたマルチカーソル機能（と矩形選択）への 対応・回避処理 を追加&lt;br /&gt;
: ※ Mery ver 2.x 上で実行したときの動作は 2019/12/03 版とおなじまま&lt;br /&gt;
: &amp;lt;span style=&amp;quot;color:#c00;&amp;quot;&amp;gt;※ 2020/05/12: コード修正&amp;lt;/span&amp;gt; &lt;br /&gt;
&amp;lt;br&amp;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: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;select_next.ico&amp;quot;&lt;br /&gt;
// #icon = &amp;quot;Mery用 マテリアルデザインっぽいアイコン.icl&amp;quot;,124&lt;br /&gt;
&lt;br /&gt;
// #title   = &amp;quot;前の文字列を検索&amp;quot;&lt;br /&gt;
// #tooltip = &amp;quot;前の文字列を検索・改&amp;quot;&lt;br /&gt;
// #icon    = &amp;quot;select_previous.ico&amp;quot;&lt;br /&gt;
// #icon    = &amp;quot;Mery用 マテリアルデザインっぽいアイコン.icl&amp;quot;,125&lt;br /&gt;
&lt;br /&gt;
// ▲ 「次／前」の部分を直してからマクロを登録すること ▲&lt;br /&gt;
// 「マテリアルデザインっぽいアイコン」のインデックスは、次 = 124 ／ 前 = 125&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * ----------------------------------------------&lt;br /&gt;
 * 「次／前の文字列を検索・改」&lt;br /&gt;
 * sukemaru, (2018/07/19 - 2020/05/12)&lt;br /&gt;
 * https://www.haijin-boys.com/wiki/次／前の文字列を検索・改&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;
 * → 推奨： ショートカット [ Shift＋Ctrl＋ ↓ / ↑ ] に登録して置きかえる&lt;br /&gt;
 * &lt;br /&gt;
 * ※ 複数行選択でジャンプした場合は、強制的に「検索強調なし」「検索履歴なし」&lt;br /&gt;
 * ※「検索履歴なし」では、最新の履歴が &amp;quot;空&amp;quot; になる&lt;br /&gt;
 * ※ 実行後は「検索／置換」ダイアログ内の「正規表現」オプションは OFF になる&lt;br /&gt;
 * &lt;br /&gt;
 * 2020/05/11:&lt;br /&gt;
 * ※ Mery ver 3.0.x への対応（Mery ver 3.0.1 以上）&lt;br /&gt;
 * ・矩形選択・複数選択で optionEnable=true を強制適用&lt;br /&gt;
 * ・複数行検索で検索オプションを維持（定数 meFindKeepOptions を適用）&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
var start = new Date();&lt;br /&gt;
&lt;br /&gt;
// ---------- ▼ 設定項目 ▼ ----------&lt;br /&gt;
&lt;br /&gt;
// ■ 検索する方向 ( 次: &amp;quot;Next&amp;quot; ／ 前: &amp;quot;Prev&amp;quot; )&lt;br /&gt;
var findNext = &amp;quot;Prev&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
/* optionEnable, highlightEnable 両方を false にすると、検索履歴に残さない */&lt;br /&gt;
&lt;br /&gt;
var optionEnable = false;		// 推奨: false&lt;br /&gt;
  // true  なら、検索ダイアログの「正規表現」以外のオプションが適用される&lt;br /&gt;
  // false なら、検索オプションをリセットする&lt;br /&gt;
  // ※「終了したら閉じる」と、ベータ版 2.6.10 で追加された「インクリメンタルサーチ」のオプションフラグは解除されない&lt;br /&gt;
  // ※Mery 3.0.1 以降で矩形選択や複数選択の状態からこのマクロを実行したときは、強制的に true を適用&lt;br /&gt;
&lt;br /&gt;
var highlightEnable = false;&lt;br /&gt;
  // true  なら、検索文字列の強調を残す&lt;br /&gt;
  // false なら、検索文字列の強調を解除する&lt;br /&gt;
&lt;br /&gt;
var hitCountEnable = true;&lt;br /&gt;
  // true  なら、検索文字列の出現回数をステータスバーに表示する&lt;br /&gt;
  // false なら、検索ヒット数をステータスバーに表示しない&lt;br /&gt;
  // ※ 検索ダイアログのオプションフラグの状態を取得できないので、&lt;br /&gt;
  //    optionEnable = true のばあいでも、&lt;br /&gt;
  //    matchCaseEnable と onlyWordEnable のフラグを利用する&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
/* ▼ optionEnable = false のとき ▼ */&lt;br /&gt;
&lt;br /&gt;
  var findAroundEnable = true;&lt;br /&gt;
    // true  なら、文末まで検索したら文頭に移動する&lt;br /&gt;
    // false なら、文末まで検索したらストップ&lt;br /&gt;
    // ※ true の場合、ジャンプ後も検索ダイアログの「文末まで検索したら文頭に移動する」は ON のままにする&lt;br /&gt;
&lt;br /&gt;
  var matchCaseEnable = false;&lt;br /&gt;
    // true  なら、大文字と小文字を区別する&lt;br /&gt;
    // false なら、大文字と小文字を区別しない&lt;br /&gt;
    // ※ true の場合、ジャンプ後も検索ダイアログの「大文字と小文字を区別する」は ON のままにする&lt;br /&gt;
&lt;br /&gt;
  var onlyWordEnable = false;&lt;br /&gt;
    // true  なら、選択範囲の文字列と一致する単語を検索する（半角英数のみのとき）&lt;br /&gt;
    // false なら、選択範囲の文字列を部分的にふくむ単語も検索対象にする&lt;br /&gt;
    // ※ true の場合、ジャンプ後も検索ダイアログの「単語のみ検索する」は ON のままにする&lt;br /&gt;
    // ※ 検索文字列に半角英数字以外の文字が含まれているときは、自動的に無効&lt;br /&gt;
    //   i.e. 非単語構成文字 /\W/ を含むなら無効（ /^[A-Za-z0-9_]+$/ でのみ有効）&lt;br /&gt;
&lt;br /&gt;
  var multiLinesEnable = true;		// 推奨: true&lt;br /&gt;
    // true  なら、複数行選択から検索（検索強調なし、履歴なし）できる&lt;br /&gt;
    // false なら、複数行選択から検索しない&lt;br /&gt;
    // ※ true でも、選択範囲が１行内なら highlightEnable = true/false を適用&lt;br /&gt;
    // ※ false で複数行選択のときは、キャレット位置の単語を自動選択して検索&lt;br /&gt;
&lt;br /&gt;
// ---------- ▲ 設定項目 ▲ ----------&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Redraw = false,  Status = &amp;quot;&amp;quot;;&lt;br /&gt;
var d  = editor.ActiveDocument,  s = d.selection;&lt;br /&gt;
var st = s.Text;&lt;br /&gt;
var sy = ScrollY;&lt;br /&gt;
&lt;br /&gt;
var meModeStream, meModeBox, meModeMulti, meFindKeepOptions;&lt;br /&gt;
var isSingleStream = ( ! meModeStream || s.Mode == meModeStream );&lt;br /&gt;
&lt;br /&gt;
var direction  = /^(?:next|down|true|1)$/i.test( String( findNext ) )&lt;br /&gt;
               ? meFindNext : meFindPrevious;&lt;br /&gt;
var findAround = findAroundEnable ? meFindAround : 0;&lt;br /&gt;
var matchCase  = matchCaseEnable  ? meFindReplaceCase : 0;&lt;br /&gt;
var onlyWord   = onlyWordEnable   ? meFindReplaceOnlyWord : 0;&lt;br /&gt;
var multiLines = ( multiLinesEnable &amp;amp;&amp;amp; st.indexOf( &amp;quot;\n&amp;quot; ) &amp;gt; -1 );&lt;br /&gt;
var keepOptions = ( multiLines &amp;amp;&amp;amp; meFindKeepOptions )&lt;br /&gt;
                ? meFindKeepOptions : 0;&lt;br /&gt;
&lt;br /&gt;
// ※ ただし、複数行選択のときは強制オフ&lt;br /&gt;
onlyWord = ( multiLines || /\W/.test( st ) )&lt;br /&gt;
         ? 0 : onlyWord;&lt;br /&gt;
&lt;br /&gt;
// 検索オプションを適用して検索する場合	※「次／前の文字列を検索」コマンド&lt;br /&gt;
if ( optionEnable || ! isSingleStream ) {&lt;br /&gt;
  editor.ExecuteCommandByID( 2137 - direction );	// 次: 2136 ／ 前: 2137&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// 検索オプションをリセットして検索する場合&lt;br /&gt;
else {&lt;br /&gt;
  var flags = direction + findAround + matchCase + onlyWord;&lt;br /&gt;
&lt;br /&gt;
  // 複数行選択では正規表現で検索（検索オプションを維持）&lt;br /&gt;
  if ( multiLines ) {&lt;br /&gt;
    s.Find( st.replace( /[.*+?^=!:${}()|[\]\/\\]/g, &amp;quot;\\$&amp;amp;&amp;quot; ),&lt;br /&gt;
            flags + meFindReplaceRegExp + keepOptions );&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  // １行内の範囲選択または単語自動選択からの検索&lt;br /&gt;
  else {&lt;br /&gt;
    // 検索オプションをリセットして「次／前の文字列を検索」&lt;br /&gt;
    s.Find( &amp;quot;&amp;quot;, flags );&lt;br /&gt;
    s.FindRepeat( direction + meFindRepeatWord );	// + meFindKeepOptions &lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  // 検索文字列を検索履歴から消す	// multiLines || ! highlightEnable&lt;br /&gt;
  if ( ! highlightEnable &amp;amp;&amp;amp; ! keepOptions ) {&lt;br /&gt;
    s.Find( &amp;quot;&amp;quot;, flags );&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// 検索強調表示の有無&lt;br /&gt;
d.HighlightFind = highlightEnable;&lt;br /&gt;
&lt;br /&gt;
// スクロール位置を調整&lt;br /&gt;
ScrollY = ( ScrollY == sy ) ? sy : s.GetActivePointY( mePosView );&lt;br /&gt;
&lt;br /&gt;
// 検索ヒット数をステータス表示&lt;br /&gt;
st = s.Text;&lt;br /&gt;
var hitStatus = ( st &amp;amp;&amp;amp; hitCountEnable )&lt;br /&gt;
              ? ( onlyWord )&lt;br /&gt;
                ? WordHitStatus( st, d.Text, matchCase ) + &amp;quot; reg &amp;quot;&lt;br /&gt;
                : HitStatus( st, d.Text, matchCase, countMinimum = false )&lt;br /&gt;
              : &amp;quot; &amp;quot;;&lt;br /&gt;
Status = hitStatus&lt;br /&gt;
       + ( Status ? &amp;quot; &amp;quot; + Status + &amp;quot; &amp;quot; : &amp;quot;&amp;quot; )&lt;br /&gt;
       + TimerStatus( new Date, start );&lt;br /&gt;
&lt;br /&gt;
// 選択範囲変更イベントを発生させる&lt;br /&gt;
if ( isSingleStream &amp;amp;&amp;amp; Status.indexOf( &amp;quot;すべての文章に&amp;quot; ) == -1 ) {&lt;br /&gt;
  var anc = s.GetAnchorPos(),  act = s.GetActivePos();&lt;br /&gt;
  s.SetActivePos( anc ),  s.SetActivePos( act, true );&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
Redraw = true;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
// ---------- ▼ 関数 ▼ ---------- //&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * 関数 TimerStatus( end, start )&lt;br /&gt;
 * start からの経過時間を [ s.sss 秒 ] で返す&lt;br /&gt;
 */&lt;br /&gt;
function TimerStatus( end, start ) {&lt;br /&gt;
  var elapsed = end - start;&lt;br /&gt;
  // start からの経過時間を [ s.sss 秒 ] で返す&lt;br /&gt;
  return &amp;quot; [ &amp;quot;&lt;br /&gt;
         + ( elapsed / 1000 ).toFixed( 3 ).replace( /\./, &amp;quot;. &amp;quot; )&lt;br /&gt;
         + &amp;quot; sec. ]&amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * 関数 HitStatus( strSelection, strDocuText, matchCase, countMinimum )&lt;br /&gt;
 * 選択文字列の出現回数を返す&lt;br /&gt;
 * https://www.haijin-boys.com/wiki/検索ヒット数表示（選択文字列）#機能強化バージョン&lt;br /&gt;
 */&lt;br /&gt;
function HitStatus( word, docu, matchCase, countMinimum ) {&lt;br /&gt;
  word     = matchCase ? word : word.toLowerCase();&lt;br /&gt;
  docu     = matchCase ? docu : docu.toLowerCase();&lt;br /&gt;
  var s    = editor.ActiveDocument.selection;&lt;br /&gt;
  var tPos = Math.min( s.GetActivePos(), s.GetAnchorPos() );&lt;br /&gt;
  var count = 0,  hit = 0;&lt;br /&gt;
  var offset = countMinimum ? word.length : 1;&lt;br /&gt;
  var pos = docu.indexOf( word );&lt;br /&gt;
  while ( pos &amp;gt;= 0 ) {&lt;br /&gt;
    count ++;&lt;br /&gt;
    if ( pos == tPos ) { hit = count; }&lt;br /&gt;
    pos = docu.indexOf( word, pos + offset );&lt;br /&gt;
  }&lt;br /&gt;
  word = docu = &amp;quot;&amp;quot;;&lt;br /&gt;
  return count ? ( &amp;quot;  ヒット数：&amp;quot; + count + &amp;quot; 件&amp;quot;&lt;br /&gt;
                   + &amp;quot; ( &amp;quot; + hit + &amp;quot; 件目 ) &amp;quot; &lt;br /&gt;
                 ).replace( /(\d)(?=(?:\d{3})+(?!\d))/g, &amp;quot;$1,&amp;quot; )&lt;br /&gt;
               : &amp;quot; &amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * 関数 WordHitStatus( strSelection, strDocuText, matchCase )&lt;br /&gt;
 * 選択文字列の出現回数を返す（※単語のみ検索）&lt;br /&gt;
 * https://www.haijin-boys.com/wiki/検索ヒット数表示（選択文字列）#機能強化バージョン&lt;br /&gt;
 */&lt;br /&gt;
function WordHitStatus( word, docu, matchCase ) {&lt;br /&gt;
  word      = word.replace( /[.*+?^=!:${}()|[\]\/\\]/g, &amp;quot;\\$&amp;amp;&amp;quot; );&lt;br /&gt;
  var s     = editor.ActiveDocument.selection;&lt;br /&gt;
  var bPos  = Math.max( s.GetActivePos(), s.GetAnchorPos() );&lt;br /&gt;
  var reg   = RegExp( &amp;quot;\\b&amp;quot; + word + &amp;quot;\\b&amp;quot;, matchCase ? &amp;quot;g&amp;quot; : &amp;quot;gi&amp;quot; );&lt;br /&gt;
  var count = ( docu.match( reg ) || [] ).length;&lt;br /&gt;
  var hit   = ( docu.slice( 0, bPos ).match( reg ) || [] ).length;&lt;br /&gt;
  word = docu = &amp;quot;&amp;quot;;&lt;br /&gt;
  return count ? ( &amp;quot;  ヒット数：&amp;quot; + count + &amp;quot; 件&amp;quot;&lt;br /&gt;
                   + &amp;quot; ( &amp;quot; + hit + &amp;quot; 件目 ) &amp;quot;&lt;br /&gt;
                 ).replace( /(\d)(?=(?:\d{3})+(?!\d))/g, &amp;quot;$1,&amp;quot; )&lt;br /&gt;
               : &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;
= 次／前の文字列を検索・改 ２ =&lt;br /&gt;
2021/01/20 追加&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
== 改２の機能 ==&lt;br /&gt;
&lt;br /&gt;
Mery 標準機能の「検索」「次／前の文字列を検索」コマンドとは完全に切りはなし、「検索／置換」ダイアログの &#039;&#039;&#039;オプション設定&#039;&#039;&#039; や &#039;&#039;&#039;検索履歴&#039;&#039;&#039;、&#039;&#039;&#039;検索文字列の強調表示&#039;&#039;&#039; の状態などを変更せずに検索・ジャンプできるようにしました。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Mery 標準機能の &#039;&#039;&#039;検索文字列の強調表示&#039;&#039;&#039; の状態（ハイライトされた文字列）を変更せずに検索・ジャンプしたい方は、こちらの「次／前の文字列を検索・改 ２」マクロをお試しください。&lt;br /&gt;
&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;につき、マルチカーソル・複数選択範囲の状態から実行した場合は Mery 標準機能の「次／前の文字列を検索」コマンドを試行します （検索履歴やハイライト状態が変更されます）。&lt;br /&gt;
: ※ Javascript／JScript の機能で検索・ジャンプをおこなうため、&amp;lt;span style=&amp;quot;color:#c00;&amp;quot;&amp;gt;古い OS&amp;lt;/span&amp;gt; や &amp;lt;span style=&amp;quot;color:#c00;&amp;quot;&amp;gt;低スペックの PC&amp;lt;/span&amp;gt; 環境、かつ、&amp;lt;span style=&amp;quot;color:#c00;&amp;quot;&amp;gt;長大な文書（ドキュメント）&amp;lt;/span&amp;gt;では動作がやや遅い場合があります。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
「[[#次／前の文字列を検索・改|次／前の文字列を検索・改]]」マクロの [[設定項目]] のうち、４項目&lt;br /&gt;
 var [[#設定項目： optionEnable|optionEnable]] = false;&lt;br /&gt;
 var [[#設定項目： historyEnable|historyEnable]] = false;&lt;br /&gt;
 var [[#設定項目： highlightEnable|highlightEnable]] = 0;&lt;br /&gt;
 var [[#設定項目： multiLinesEnable|multiLinesEnable]] = true;&lt;br /&gt;
は固定状態での動作になります。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
検索ダイアログのオプション項目「文末まで検索したら文頭に移動する」「大文字と小文字を区別する」「単語のみ検索する」にあたる &amp;lt;b&amp;gt;&amp;lt;code&amp;gt;findAroundEnable&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;matchCaseEnable&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;onlyWordEnable&amp;lt;/code&amp;gt;&amp;lt;/b&amp;gt; と検索文字列の出現回数のステータス表示設定 &amp;lt;b&amp;gt;&amp;lt;code&amp;gt;hitCountEnable&amp;lt;/code&amp;gt;&amp;lt;/b&amp;gt; の &amp;lt;source lang=&amp;quot;javascript&amp;quot; inline&amp;gt;true&amp;lt;/source&amp;gt;/&amp;lt;source lang=&amp;quot;javascript&amp;quot; inline&amp;gt;false&amp;lt;/source&amp;gt; 、長大な文書で動作が遅くなる場合の回避設定 &amp;lt;b&amp;gt;&amp;lt;code&amp;gt;maxLength&amp;lt;/code&amp;gt;&amp;lt;/b&amp;gt; の数値を任意にカスタマイズしてご利用ください。&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 改２のダウンロード ==&lt;br /&gt;
&lt;br /&gt;
ダウンロード　&amp;gt;&amp;gt;　「[[ファイル:次／前の文字列を検索・改_２.zip]]」&lt;br /&gt;
* マクロ「次の文字列を検索・改２.js」&lt;br /&gt;
* マクロ「前の文字列を検索・改２.js」&lt;br /&gt;
* 専用アイコン（マテリアルデザインっぽいアイコン）&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; 更新履歴&lt;br /&gt;
* 2021/01/20（改２ 第１版）&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&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;select_next.ico&amp;quot;&lt;br /&gt;
// #icon = &amp;quot;Mery用 マテリアルデザインっぽいアイコン.icl&amp;quot;,124&lt;br /&gt;
&lt;br /&gt;
// #title   = &amp;quot;前の文字列を検索&amp;quot;&lt;br /&gt;
// #tooltip = &amp;quot;前の文字列を検索・改 ２&amp;quot;&lt;br /&gt;
// #icon    = &amp;quot;select_previous.ico&amp;quot;&lt;br /&gt;
// #icon    = &amp;quot;Mery用 マテリアルデザインっぽいアイコン.icl&amp;quot;,125&lt;br /&gt;
&lt;br /&gt;
// ▲ 「次／前」の部分を直してからマクロを登録すること ▲&lt;br /&gt;
// 「マテリアルデザインっぽいアイコン」のインデックスは、次 = 124 ／ 前 = 125&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * ----------------------------------------------&lt;br /&gt;
 * 「次／前の文字列を検索・改 ２」&lt;br /&gt;
 * sukemaru, 2021/01/20&lt;br /&gt;
 * https://www.haijin-boys.com/wiki/次／前の文字列を検索・改#次／前の文字列を検索・改_２&lt;br /&gt;
 * ----------------------------------------------&lt;br /&gt;
 * 「次／前の文字列を検索」の機能をカスタマイズした検索ジャンプ。&lt;br /&gt;
 * &lt;br /&gt;
 * ※ Mery 標準機能の「検索／置換」ダイアログ内のオプション設定を変更しない&lt;br /&gt;
 *  （Mery の検索機能を利用せず Javascript で検索・ジャンプを実行する）&lt;br /&gt;
 * &lt;br /&gt;
 * ・検索履歴に残さない&lt;br /&gt;
 * ・実行前にあった検索ハイライトを維持する&lt;br /&gt;
 * （このマクロで検索した文字列をハイライト表示しない）&lt;br /&gt;
 * ・複数行選択からの検索ジャンプ可&lt;br /&gt;
 * ・検索ヒット数をステータス表示可&lt;br /&gt;
 * &lt;br /&gt;
 * ※ Mery ver 3.0 以降のマルチカーソル・複数選択範囲から実行した場合は、&lt;br /&gt;
 *   Mery 標準機能の「次／前の文字列を検索」コマンドでのジャンプを試行する&lt;br /&gt;
 * （検索ダイアログのオプションを適用し、検索履歴に残る）&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
var start = new Date();&lt;br /&gt;
&lt;br /&gt;
// ---------- ▼ 「改２」版 設定項目 ▼ ----------&lt;br /&gt;
&lt;br /&gt;
// ■ 検索する方向 ( 次: &amp;quot;Next&amp;quot; ／ 前: &amp;quot;Prev&amp;quot; )&lt;br /&gt;
var findNext = &amp;quot;Next&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
// ■ 検索ダイアログの「文末まで検索したら文頭に移動する」オプションに相当&lt;br /&gt;
var findAroundEnable = true;&lt;br /&gt;
  // true  なら、文末まで検索したら文頭に移動する&lt;br /&gt;
  // false なら、文末まで検索したらストップ&lt;br /&gt;
  // ※ 前を検索のときは、&amp;quot;文頭まで検索したら文末に移動する／しない&amp;quot;&lt;br /&gt;
&lt;br /&gt;
// ■ 検索ダイアログの「大文字と小文字を区別する」オプションに相当&lt;br /&gt;
var matchCaseEnable = false;&lt;br /&gt;
  // true  なら、大文字と小文字を区別する&lt;br /&gt;
  // false なら、大文字と小文字を区別しない&lt;br /&gt;
&lt;br /&gt;
// ■ 検索ダイアログの「単語のみ検索する」オプションに相当&lt;br /&gt;
var onlyWordEnable = false;&lt;br /&gt;
  // true  なら、選択範囲の文字列と一致する単語を検索する（半角英数字のみのとき）&lt;br /&gt;
  // false なら、選択範囲の文字列を部分的にふくむ単語も検索対象にする&lt;br /&gt;
  // ※ 検索文字列に半角英数字以外の文字が含まれている場合は、強制的に無効（false）&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
// ■ 検索文字列の出現回数をステータスバーに表示&lt;br /&gt;
var hitCountEnable = true;&lt;br /&gt;
  // true  なら、検索ヒット数をステータスバーに表示する&lt;br /&gt;
  // false なら、検索ヒット数をステータスバーに表示しない&lt;br /&gt;
&lt;br /&gt;
// ■ 長大な文書で実行して動作が遅くなる場合の回避設定&lt;br /&gt;
var maxLength = 0;&lt;br /&gt;
  // 0 ～ 99999 なら制限しない ／ 100000 以上の数値を設定すると文字数制限&lt;br /&gt;
  // ※ 文字数が maxLength を超える文書では、強制的に&lt;br /&gt;
  //    Mery 標準機能の「次／前の文字列を検索」コマンドで検索ジャンプする&lt;br /&gt;
&lt;br /&gt;
// ---------- ▼ 「改」旧版 設定項目 ▼ ----------&lt;br /&gt;
&lt;br /&gt;
var optionEnable     = false;   // 「改２」版での初期値： false&lt;br /&gt;
var historyEnable    = false;   // 「改２」版での初期値： false&lt;br /&gt;
var highlightEnable  = 0;       // 「改２」版での初期値： 0&lt;br /&gt;
var multiLinesEnable = true;    // 「改２」版での初期値： true&lt;br /&gt;
&lt;br /&gt;
// ---------- ▲ 設定項目 ▲ ----------&lt;br /&gt;
&lt;br /&gt;
Status = &amp;quot;&amp;quot;;&lt;br /&gt;
var d  = editor.ActiveDocument,  s = d.selection;&lt;br /&gt;
var st = s.Text;&lt;br /&gt;
var sy = ScrollY;&lt;br /&gt;
&lt;br /&gt;
var isSingleStream = ( ! s.Mode || s.Mode == 1 );&lt;br /&gt;
var isMultiLines   = ( st.indexOf( &amp;quot;\n&amp;quot; ) &amp;gt; -1 );&lt;br /&gt;
var direction      = /^(?:next|down|true|1)$/i.test( String( findNext ) )&lt;br /&gt;
                   ? 1 : 0;     // meFindNext = 1 ／ meFindPrevious = 0&lt;br /&gt;
onlyWordEnable     = /\W/.test( st ) ? false : onlyWordEnable;&lt;br /&gt;
maxLength          = ( maxLength &amp;gt;= 100000 ) ? maxLength : 0;&lt;br /&gt;
historyEnable      = ( maxLength &amp;amp;&amp;amp; d.TextLength &amp;gt;= maxLength ) &lt;br /&gt;
                   ? true : historyEnable;&lt;br /&gt;
var keepOptions    = ! historyEnable&lt;br /&gt;
                   || multiLinesEnable &amp;amp;&amp;amp; isMultiLines;&lt;br /&gt;
&lt;br /&gt;
// ---------- ▼ Main ▼ ---------- //&lt;br /&gt;
&lt;br /&gt;
Main: {&lt;br /&gt;
  // 「検索オプションを適用」して検索する場合	※「次／前の文字列を検索」コマンド&lt;br /&gt;
  if ( optionEnable || ! isSingleStream ) {&lt;br /&gt;
    editor.ExecuteCommandByID( 2137 - direction );	// 次: 2136 ／ 前: 2137&lt;br /&gt;
    highlightEnable = Boolean( highlightEnable );&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  else if ( ! multiLinesEnable &amp;amp;&amp;amp; isMultiLines ) {&lt;br /&gt;
    Status = &amp;quot;無効な検索文字列（複数行）。 &amp;quot;;&lt;br /&gt;
    break Main;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  // 「次／前の文字列を検索・改 ２」マクロ&lt;br /&gt;
  // 検索履歴に残さないで検索場合（検索オプションをリセットしない）&lt;br /&gt;
  else if ( keepOptions ) {&lt;br /&gt;
    if ( ! st ) {&lt;br /&gt;
      s.SelectWord();&lt;br /&gt;
      st = s.Text;&lt;br /&gt;
      if ( ! st ) {&lt;br /&gt;
        Status = &amp;quot;検索文字列がありません。 &amp;quot;;&lt;br /&gt;
        break Main;&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
    var id,  dt = d.Text;&lt;br /&gt;
    // 「次の文字列を検索・改 ２」&lt;br /&gt;
    if ( direction ) {&lt;br /&gt;
      var tp = Math.min( s.GetActivePos(), s.GetAnchorPos() );&lt;br /&gt;
      id = SearchNext( st, onlyWordEnable, matchCaseEnable, dt, tp + 1 );&lt;br /&gt;
      if ( id === -1 ) {&lt;br /&gt;
        Status = &amp;quot;文末まで検索しました。&amp;quot;;&lt;br /&gt;
        if ( findAroundEnable ) {&lt;br /&gt;
          id = SearchNext( st, onlyWordEnable, matchCaseEnable, dt );&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
    // 「前の文字列を検索・改 ２」&lt;br /&gt;
    else {&lt;br /&gt;
      var bp = Math.max( s.GetActivePos(), s.GetAnchorPos() );&lt;br /&gt;
      id = SearchPrevious( st, onlyWordEnable, matchCaseEnable, dt, bp - 1 );&lt;br /&gt;
      if ( id === -1 ) {&lt;br /&gt;
        Status = &amp;quot;文頭まで検索しました。&amp;quot;;&lt;br /&gt;
        if ( findAroundEnable ) {&lt;br /&gt;
          id = SearchPrevious( st, onlyWordEnable, matchCaseEnable, dt );&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
    if ( id &amp;gt; -1 ) {&lt;br /&gt;
      s.SetActivePos( id );&lt;br /&gt;
      s.SetAnchorPos( id + st.length );&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  // 旧「次／前の文字列を検索・改」マクロ&lt;br /&gt;
  // 検索オプションをリセットして検索する場合（検索履歴に残す）&lt;br /&gt;
  else {&lt;br /&gt;
    var findAround = findAroundEnable ? meFindAround : 0;&lt;br /&gt;
    var matchCase  = matchCaseEnable  ? meFindReplaceCase : 0;&lt;br /&gt;
    var onlyWord   = onlyWordEnable &amp;amp;&amp;amp; ! /\W/.test( st )&lt;br /&gt;
                   ? meFindReplaceOnlyWord : 0;&lt;br /&gt;
    var flags = direction + findAround + matchCase + onlyWord;&lt;br /&gt;
    // 検索オプションをリセットして「次／前の文字列を検索」&lt;br /&gt;
    s.Find( &amp;quot;&amp;quot;, flags );&lt;br /&gt;
    s.FindRepeat( direction + meFindRepeatWord );&lt;br /&gt;
    if ( ! s.Text ) {&lt;br /&gt;
      Status = &amp;quot;検索文字列がありません。 &amp;quot;;&lt;br /&gt;
      break Main;&lt;br /&gt;
    }&lt;br /&gt;
    highlightEnable = Boolean( highlightEnable );&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  // 検索強調表示の有無&lt;br /&gt;
  if ( typeof highlightEnable === &amp;quot;boolean&amp;quot; ) {&lt;br /&gt;
    d.HighlightFind = highlightEnable;&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  // スクロール位置を調整&lt;br /&gt;
  ScrollY = ( ScrollY === sy ) &lt;br /&gt;
          ? sy : s.GetActivePointY( mePosView );&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// ---------- ▲ Main ▲ ---------- //&lt;br /&gt;
&lt;br /&gt;
// 検索ヒット数をステータス表示&lt;br /&gt;
st = s.Text;&lt;br /&gt;
var hitStatus = ( st &amp;amp;&amp;amp; hitCountEnable )&lt;br /&gt;
    ? ( onlyWordEnable )&lt;br /&gt;
      ? WordHitStatus( st, dt || d.Text, matchCaseEnable )&lt;br /&gt;
      : HitStatus( st, dt || d.Text, matchCaseEnable, countMinimum = false )&lt;br /&gt;
    : &amp;quot; &amp;quot;;&lt;br /&gt;
Status = hitStatus&lt;br /&gt;
       + ( Status ? &amp;quot; &amp;quot; + Status + &amp;quot; &amp;quot; : &amp;quot;&amp;quot; )&lt;br /&gt;
       + TimerStatus( new Date, start );&lt;br /&gt;
&lt;br /&gt;
// 選択範囲変更イベントを発生させる&lt;br /&gt;
if ( st &amp;amp;&amp;amp; isSingleStream&lt;br /&gt;
&amp;amp;&amp;amp; Status.indexOf( &amp;quot;すべての文章に&amp;quot; ) === -1 ) {&lt;br /&gt;
  var anc = s.GetAnchorPos();&lt;br /&gt;
  var act = s.GetActivePos();&lt;br /&gt;
  s.SetActivePos( anc );&lt;br /&gt;
  s.SetActivePos( act, true );&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
st = dt = null;&lt;br /&gt;
&lt;br /&gt;
// ---------- ▼ 関数 ▼ ---------- //&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * 関数 TimerStatus( end, start )&lt;br /&gt;
 * start からの経過時間を [ s. sss 秒 ] で返す&lt;br /&gt;
 */&lt;br /&gt;
function TimerStatus( end, start ) {&lt;br /&gt;
  var elapsed = end - start;&lt;br /&gt;
  return &amp;quot; [ &amp;quot;&lt;br /&gt;
         + ( elapsed / 1000 ).toFixed( 3 ).replace( /\./, &amp;quot;. &amp;quot; )&lt;br /&gt;
         + &amp;quot; sec. ]&amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * 関数 SearchNext( word, onlyWord, matchCase, txt [, offset] )&lt;br /&gt;
 * 「次の文字列を検索」し、ヒットした位置を返す&lt;br /&gt;
 * &lt;br /&gt;
 * ※「単語のみ検索」「大文字と小文字を区別」のフラグを指定（必須）&lt;br /&gt;
 * ※ 検索開始位置のオフセット指定可&lt;br /&gt;
 * ※ 戻り値は txt 全体におけるインデックス（pos &amp;gt;= 0）&lt;br /&gt;
 *            または -1（ほかにヒットしなかったとき）&lt;br /&gt;
 * ※ 長大な文書ではオプションに関係なく遅い...&lt;br /&gt;
 */&lt;br /&gt;
function SearchNext( word, onlyWord, matchCase, txt, offset ) {&lt;br /&gt;
  offset = offset || 0;&lt;br /&gt;
  var pos;&lt;br /&gt;
  if ( onlyWord ) {&lt;br /&gt;
    var searchReg = RegExp(&lt;br /&gt;
    &amp;quot;\\b&amp;quot; + word.replace( /[.*+?^=!:${}()|[\]\/\\]/g, &amp;quot;\\$&amp;amp;&amp;quot; ) + &amp;quot;\\b&amp;quot;&lt;br /&gt;
    , matchCase ? &amp;quot;&amp;quot; : &amp;quot;i&amp;quot; );&lt;br /&gt;
    pos = txt.slice( offset ).search( searchReg );&lt;br /&gt;
  }&lt;br /&gt;
  else {&lt;br /&gt;
    word = matchCase ? word : word.toLowerCase();&lt;br /&gt;
    txt  = matchCase ? txt  : txt.toLowerCase();&lt;br /&gt;
    pos  = txt.slice( offset ).indexOf( word );&lt;br /&gt;
  }&lt;br /&gt;
  word = txt = null;&lt;br /&gt;
  return ( pos &amp;gt; -1 ) ? pos + offset : -1;  // ヒットなしなら -1&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * 関数 SearchPrevious( word, onlyWord, matchCase, txt [, offset] )&lt;br /&gt;
 * 「前の文字列を検索」し、ヒットした位置を返す&lt;br /&gt;
 * &lt;br /&gt;
 * ※「単語のみ検索」「大文字と小文字を区別」のフラグを指定（必須）&lt;br /&gt;
 * ※ 検索開始位置のオフセット指定可&lt;br /&gt;
 * ※ 戻り値は txt 全体におけるインデックス（pos &amp;gt;= 0）&lt;br /&gt;
 *            または -1（ほかにヒットしなかったとき）&lt;br /&gt;
 * ※ 長大な文書ではオプションに関係なく遅い...&lt;br /&gt;
 */&lt;br /&gt;
function SearchPrevious( word, onlyWord, matchCase, txt, offset ) {&lt;br /&gt;
  txt     = offset ? txt.slice( 0, offset ) : txt;&lt;br /&gt;
  txt     = matchCase ? txt  : txt.toLowerCase();&lt;br /&gt;
  word    = matchCase ? word : word.toLowerCase();&lt;br /&gt;
  var pos = txt.lastIndexOf( word );&lt;br /&gt;
  if ( onlyWord &amp;amp;&amp;amp; pos &amp;gt; -1 ) {&lt;br /&gt;
    var searchReg = RegExp(&lt;br /&gt;
    &amp;quot;\\b&amp;quot; + word.replace( /[.*+?^=!:${}()|[\]\/\\]/g, &amp;quot;\\$&amp;amp;&amp;quot; ) + &amp;quot;\\b&amp;quot;&lt;br /&gt;
    ,  &amp;quot;&amp;quot; );&lt;br /&gt;
    // lastIndexOf() でヒットした word が「単語」かチェックする&lt;br /&gt;
    for ( var prev = Math.max( pos - 1, 0 ); prev &amp;gt; -1; prev -= 1 ) {&lt;br /&gt;
      pos = txt.slice( prev ).search( searchReg );&lt;br /&gt;
      if ( pos &amp;gt; -1 ) { return prev + pos; }&lt;br /&gt;
      prev = txt.slice( 0, prev ).lastIndexOf( word );&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  word = txt = null;&lt;br /&gt;
  return pos;   // ヒットなしなら -1&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * 関数 HitStatus( strSelection, strDocuText, matchCase, countMinimum )&lt;br /&gt;
 * 選択文字列の出現回数を返す&lt;br /&gt;
 * https://www.haijin-boys.com/wiki/検索ヒット数表示（選択文字列）#機能強化バージョン&lt;br /&gt;
 */&lt;br /&gt;
function HitStatus( word, txt, matchCase, countMinimum ) {&lt;br /&gt;
  word   = matchCase ? word : word.toLowerCase();&lt;br /&gt;
  txt    = matchCase ? txt  : txt.toLowerCase();&lt;br /&gt;
  var s  = editor.ActiveDocument.selection;&lt;br /&gt;
  var tp = Math.min( s.GetActivePos(), s.GetAnchorPos() );&lt;br /&gt;
  var count  = 0;&lt;br /&gt;
  var hit    = 0;&lt;br /&gt;
  var offset = countMinimum ?  word.length : 1;&lt;br /&gt;
  var pos    = txt.indexOf( word );&lt;br /&gt;
  while ( pos &amp;gt;= 0 ) {&lt;br /&gt;
    count ++;&lt;br /&gt;
    if ( pos === tp ) { hit = count; }&lt;br /&gt;
    pos = txt.indexOf( word, pos + offset );&lt;br /&gt;
  }&lt;br /&gt;
  word = txt = null;&lt;br /&gt;
  return ( count &amp;gt; 0 )&lt;br /&gt;
         ? ( &amp;quot;  ヒット数：&amp;quot; + count + &amp;quot; 件&amp;quot;&lt;br /&gt;
             + &amp;quot; ( &amp;quot; + hit + &amp;quot; 件目 ) &amp;quot; &lt;br /&gt;
           ).replace( /(\d)(?=(?:\d{3})+(?!\d))/g, &amp;quot;$1,&amp;quot; )&lt;br /&gt;
         : &amp;quot; &amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * 関数 WordHitStatus( strSelection, strDocuText, matchCase )&lt;br /&gt;
 * 選択文字列の出現回数を返す（※単語のみ検索）&lt;br /&gt;
 * https://www.haijin-boys.com/wiki/検索ヒット数表示（選択文字列）#機能強化バージョン&lt;br /&gt;
 */&lt;br /&gt;
function WordHitStatus( word, txt, matchCase ) {&lt;br /&gt;
  word      = word.replace( /[.*+?^=!:${}()|[\]\/\\]/g, &amp;quot;\\$&amp;amp;&amp;quot; );&lt;br /&gt;
  var s     = editor.ActiveDocument.selection;&lt;br /&gt;
  var bp    = Math.max( s.GetActivePos(), s.GetAnchorPos() );&lt;br /&gt;
  var reg   = RegExp( &amp;quot;\\b&amp;quot; + word + &amp;quot;\\b&amp;quot;, matchCase ? &amp;quot;g&amp;quot; : &amp;quot;gi&amp;quot; );&lt;br /&gt;
  var count = ( $count = docu.match( reg ) ) ? $count.length : 0;&lt;br /&gt;
  var hit   = ( txt.slice( 0, bp ).match( reg ) || [] ).length;&lt;br /&gt;
  word = txt = null;&lt;br /&gt;
  return ( count &amp;gt; 0 )&lt;br /&gt;
         ? ( &amp;quot;  ヒット数：&amp;quot; + count + &amp;quot; 件&amp;quot;&lt;br /&gt;
             + &amp;quot; ( &amp;quot; + hit + &amp;quot; 件目 ) &amp;quot;&lt;br /&gt;
           ).replace( /(\d)(?=(?:\d{3})+(?!\d))/g, &amp;quot;$1,&amp;quot; )&lt;br /&gt;
         : &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;
= メモ =&lt;br /&gt;
&lt;br /&gt;
Mery 標準機能の「次／前の文字列を検索」コマンドをそのままマクロ化（→ ツールバーアイコン化）する場合&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;
// #icon = &amp;quot;select_next.ico&amp;quot;&lt;br /&gt;
editor.ExecuteCommandByID( 2136 );&lt;br /&gt;
&amp;lt;/source&amp;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;
// #icon = &amp;quot;select_previous.ico&amp;quot;&lt;br /&gt;
editor.ExecuteCommandByID( 2137 );&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;
&amp;lt;br&amp;gt;&lt;br /&gt;
*個人的には、通常の「次／前の文字列を検索」コマンドのショートカットキー [ Ctrl＋Shift＋ ↓ または ↑ ] は変更せず、このマクロ（検索強調なし）はツールバーアイコンからの実行専用にして、検索強調の要否で使い分けています。(sukemaru)&lt;br /&gt;
&lt;br /&gt;
*[[利用者:Sukemaru#Find() メソッド と FindRepeat() メソッド の 定数|個人的な覚え書き]] のページに [[マクロリファレンス:Selection インターフェイス#FindRepeat メソッド|FindRepeat メソッド]] で「大文字と小文字を区別」や「末尾まで検索したら先頭から検索」オプションを使うために [[マクロリファレンス:Selection インターフェイス#Find メソッド|Find メソッド]] を併用する方法の説明を書いています。(sukemaru)&lt;br /&gt;
&lt;br /&gt;
*「単語のみ検索する」にあわせた検索ヒット数表示用の関数　&#039;&#039;WordHitStatus()&#039;&#039;　の正確度について、あまり自信がありません （ふだん「単語のみ検索」を利用していないため）。 なにがしかの問題または改善点を見つけた方は、[https://www.haijin-boys.com/discussions Mery 公式フォーラム] などからお知らせください。(sukemaru)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
*Mery ver 3 以降の [[マクロリファレンス:3:Selection オブジェクト#Find メソッド|Find メソッド]] の定数 &amp;lt;code&amp;gt;meFindKeepOptions&amp;lt;/code&amp;gt; を使用したマクロを実行した後の「検索文字列の強調表示 (ハイライト)」の状態が好ましくないため、Mery 標準機能の「検索」「次／前の文字列を検索」コマンドから完全に切りはなした「[[#次／前の文字列を検索・改 ２|次／前の文字列を検索・改 ２]]」マクロを制作しました。(sukemaru, 2021/01/20)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
----&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sukemaru</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%AC%A1%EF%BC%8F%E5%89%8D%E3%81%AE%E6%96%87%E5%AD%97%E5%88%97%E3%82%92%E6%A4%9C%E7%B4%A2%E3%83%BB%E6%94%B9_%EF%BC%92.zip&amp;diff=5484</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%AC%A1%EF%BC%8F%E5%89%8D%E3%81%AE%E6%96%87%E5%AD%97%E5%88%97%E3%82%92%E6%A4%9C%E7%B4%A2%E3%83%BB%E6%94%B9_%EF%BC%92.zip&amp;diff=5484"/>
		<updated>2021-01-20T10:00:06Z</updated>

		<summary type="html">&lt;p&gt;Sukemaru: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Sukemaru</name></author>
	</entry>
	<entry>
		<id>https://www.haijin-boys.com/wiki/index.php?title=%E3%83%91%E3%82%B9%E3%82%92%E8%B2%BC%E3%82%8A%E4%BB%98%E3%81%91%EF%BC%88%E3%83%9D%E3%83%83%E3%83%97%E3%82%A2%E3%83%83%E3%83%97%E3%83%A1%E3%83%8B%E3%83%A5%E3%83%BC%EF%BC%89&amp;diff=5482</id>
		<title>パスを貼り付け（ポップアップメニュー）</title>
		<link rel="alternate" type="text/html" href="https://www.haijin-boys.com/wiki/index.php?title=%E3%83%91%E3%82%B9%E3%82%92%E8%B2%BC%E3%82%8A%E4%BB%98%E3%81%91%EF%BC%88%E3%83%9D%E3%83%83%E3%83%97%E3%82%A2%E3%83%83%E3%83%97%E3%83%A1%E3%83%8B%E3%83%A5%E3%83%BC%EF%BC%89&amp;diff=5482"/>
		<updated>2020-12-30T02:29:20Z</updated>

		<summary type="html">&lt;p&gt;Sukemaru: /* 変換パターン */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- 「パスを貼り付け（ポップアップメニュー）」マクロ	2020/12/30 --&amp;gt;&lt;br /&gt;
__toc__ &amp;lt;br clear=all&amp;gt;&lt;br /&gt;
[[ファイル:パスを貼り付け（ポップアップメニュー）.png|link=]] &amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 概要 ==&lt;br /&gt;
&lt;br /&gt;
Mery ver 3.2.2α 以降（の隠し機能）で、エクスプローラ上で「コピー」したフォルダ・ファイルのパスを、ポップアップメニューから選択した形式に整形してペーストします。&amp;lt;br&amp;gt;&lt;br /&gt;
　→　&#039;&#039;ref.&#039;&#039;　 Mery 公式フォーラムのトピック [https://www.haijin-boys.com/discussions/5835#discussion-5868 「【要望】ファイルパスの貼付け機能」]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
クリップボードのデータが &amp;lt;br&amp;gt;&lt;br /&gt;
*「エクスプローラ上でコピーしたフォルダ・ファイル（リスト形式）」でない場合 &amp;lt;br&amp;gt;&lt;br /&gt;
*「フォルダ・ファイルの&#039;&#039;&#039;フルパス&#039;&#039;&#039;のリスト（テキスト形式）」でない場合 &amp;lt;br&amp;gt;&lt;br /&gt;
* Mery 本体のバージョンが動作要件を満たさない場合 &amp;lt;br&amp;gt;&lt;br /&gt;
は、ポップアップメニューを表示せずに通常の「貼り付け (Ctrl＋V)」をおこないます （設定項目&amp;lt;code&amp;gt;forcePaste&amp;lt;/code&amp;gt;： 初期値＝&amp;lt;source lang=&amp;quot;javascript&amp;quot; inline&amp;gt;true&amp;lt;/source&amp;gt;）。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
※ &amp;lt;span style=&amp;quot;color:#0000c0;&amp;quot;&amp;gt;動作要件：（Windows OS 上の） Mery ver 3.2.2α 以降&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;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 変換パターン ===&lt;br /&gt;
* &#039;&#039;&#039;二重引用符つき&#039;&#039;&#039;で &amp;quot;貼り付け&amp;quot;&lt;br /&gt;
* &amp;lt;code&amp;gt;¥&amp;lt;/code&amp;gt;（バックスラッシュ U+005C）を二重&#039;&#039;&#039;&amp;lt;code&amp;gt;¥¥&amp;lt;/code&amp;gt;&#039;&#039;&#039;にして貼り付け&lt;br /&gt;
* &amp;lt;code&amp;gt;¥&amp;lt;/code&amp;gt;（バックスラッシュ U+005C）を二重&#039;&#039;&#039;&amp;lt;code&amp;gt;¥¥&amp;lt;/code&amp;gt;&#039;&#039;&#039;にして &#039;&#039;&#039;二重引用符つき&#039;&#039;&#039; で &amp;quot;貼り付け&amp;quot;&lt;br /&gt;
* &#039;&#039;&#039;フォルダ名・ファイル名&#039;&#039;&#039; の部分のみにして貼り付け&lt;br /&gt;
* &#039;&#039;&#039;フォルダ名・ファイル名&#039;&#039;&#039; の部分のみを &#039;&#039;&#039;二重引用符つき&#039;&#039;&#039; で &amp;quot;貼り付け&amp;quot;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
「&amp;lt;code&amp;gt;¥&amp;lt;/code&amp;gt;を二重&#039;&#039;&#039;&amp;lt;code&amp;gt;¥¥&amp;lt;/code&amp;gt;&#039;&#039;&#039;にして [二重引用符つきで] 貼り付け」の変換パターンと下記のソートパターンを組み合わせた選択項目はありません。 &amp;lt;br&amp;gt;&lt;br /&gt;
: →　必要なら、&#039;&#039;&#039;ソートつきで貼り付けたあとに Undo (Ctrl＋Z) してから&#039;&#039;&#039;、このマクロを再実行して「&amp;lt;code&amp;gt;¥&amp;lt;/code&amp;gt;を二重&#039;&#039;&#039;&amp;lt;code&amp;gt;¥¥&amp;lt;/code&amp;gt;&#039;&#039;&#039;にして [二重引用符つきで] 貼り付け」しなおしてください （設定項目&amp;lt;source lang=&amp;quot;javascript&amp;quot; inline&amp;gt;sendToClipboard = true&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;gt; 文字列順&lt;br /&gt;
&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;&lt;br /&gt;
:: &#039;&#039;i.e.&#039;&#039; 　1 &amp;lt;　002　&amp;lt;　03　&amp;lt;　5　&amp;lt;　40&lt;br /&gt;
: ※ &amp;quot;0&amp;quot; から始まる「16進数」や「数字の羅列」などを含むパスでは、望ましくない並び順になる場合があります。&lt;br /&gt;
:: &#039;&#039;i.e.&#039;&#039; 　1a1a　&amp;lt;　02a0　&amp;lt;　0010&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#0000c0;&amp;quot;&amp;gt;アルファベットの 大文字／小文字 や、日本語の ひらがな／カタカナ などは区別せずに、「&#039;&#039;&#039;辞書順&#039;&#039;&#039; (OS のロケールに依存)」で評価します。&amp;lt;/span&amp;gt;&lt;br /&gt;
: ※「拡張子順*」では、拡張子の部分の数字のみ「文字列順」で評価します。&lt;br /&gt;
&amp;lt;!-- : ※ その他は「unicode (UTF-16) 昇順」で評価します。 --&amp;gt; &lt;br /&gt;
&amp;lt;br&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;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;code&amp;gt;sendToClipboard&amp;lt;/code&amp;gt;（初期値＝&amp;lt;source lang=&amp;quot;javascript&amp;quot; inline&amp;gt;false&amp;lt;/source&amp;gt;） &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot; inline&amp;gt;true&amp;lt;/source&amp;gt;にすると、整形して貼り付けたデータ（テキスト形式）をクリップボードに送信します。&lt;br /&gt;
: → Ctrl＋V で整形済みのデータを再貼り付けできるようになります （Mery の「クリップボード履歴」からも再貼り付けできるようになります）。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
: ※ 整形なしの「貼り付け」では、Mery の「クリップボード履歴」に残しません。&lt;br /&gt;
: ※ このマクロを再実行して別の形式を選択して貼り付けする場合、前回の整形済みデータから &#039;&#039;&#039;&amp;quot;&#039;&#039;&#039;二重引用符&#039;&#039;&#039;&amp;quot;&#039;&#039;&#039; と「ふたつ重ねにした&amp;lt;code&amp;gt;¥&amp;lt;/code&amp;gt;記号」を消した状態から、あらためて整形しなおします （整形なしの「貼り付け」では前回と同じ形式で貼り付け）。&lt;br /&gt;
: ※ 間違えて「フォルダ／ファイル名のみ ～」で貼り付けしてしまった場合、Undo してもクリップボードに送信したデータ形式を復旧できないので再度エクスプローラ上でフォルダ・ファイルを「コピー」し直さなければなりません （フルパス形式でなくなるため、マクロを再実行してもメニューを再表示できない）。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== ソースコード ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ダウンロード&#039;&#039;&#039;　&amp;gt;&amp;gt;　「[[ファイル:パスを貼り付け_(ポップアップメニュー).zip]]」(アイコン入り)&lt;br /&gt;
: 初版： 2020/12/30&lt;br /&gt;
&amp;lt;br&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;paste_path.ico&amp;quot;&lt;br /&gt;
// #icon = &amp;quot;Mery用 マテリアルデザインっぽいアイコン.icl&amp;quot;,313&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * ---------------------------------------------------------&lt;br /&gt;
 * 「パスを貼り付け（ポップアップメニュー）」マクロ&lt;br /&gt;
 * sukemaru, 2020/12/30&lt;br /&gt;
 * ---------------------------------------------------------&lt;br /&gt;
 * エクスプローラ上で「コピー」したフォルダ・ファイルのパスを&lt;br /&gt;
 * ポップアップメニューから選択した形式に整形してペーストする&lt;br /&gt;
 * &lt;br /&gt;
 * 動作要件：（Windows OS 上の） Mery ver 3.2.2α 以降&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
// ---------- ▼ 設定項目 ▼ ---------- //&lt;br /&gt;
&lt;br /&gt;
// ■「フルパスのリスト」以外のデータのとき、メニューを表示せずに「貼り付け」する？&lt;br /&gt;
var forcePaste = true;	// true: 貼り付けする ／ false: なにもしない&lt;br /&gt;
&lt;br /&gt;
// ■ 整形して貼り付けたデータをクリップボードに送信する？&lt;br /&gt;
var sendToClipboard = false;	// true: 送信する ／ false: 送信しない&lt;br /&gt;
&lt;br /&gt;
// ■ ポップアップメニューを表示する位置&lt;br /&gt;
var menuPosMouse = true;	// true: マウス位置 ／ false: キャレット位置&lt;br /&gt;
&lt;br /&gt;
// ---------- ▲ 設定項目 ▲ ---------- //&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
var d = editor.ActiveDocument,  s = d.selection;&lt;br /&gt;
var grayFlag = d.ReadOnly ? meMenuGrayed : 0;&lt;br /&gt;
var r;&lt;br /&gt;
&lt;br /&gt;
// Mery.exe のバージョンチェック&lt;br /&gt;
var meryVer = + ( editor.Version.replace( /\d+/g , function( dig ) {&lt;br /&gt;
                  return dig.length &amp;lt; 2 ? &amp;quot;0&amp;quot; + dig : dig&lt;br /&gt;
                } ).replace( /\./g, &amp;quot;&amp;quot; ).slice( 0, 6 ) );&lt;br /&gt;
&lt;br /&gt;
// クリップボードデータ&lt;br /&gt;
var cb = ClipboardData,  cbData = cb.GetData();&lt;br /&gt;
var cnd = ( meryVer &amp;gt;= 30202 &amp;amp;&amp;amp; cbData.length &amp;amp;&amp;amp; /:\\.*[\r\n]+$/.test( cbData )&lt;br /&gt;
&amp;amp;&amp;amp; ( cbData.match( /:\\/g ) || [] ).length === ( cbData.match( /[\r\n]+/g ) || [] ).length );&lt;br /&gt;
&lt;br /&gt;
// ステータスバーの表示&lt;br /&gt;
var $status = Status;&lt;br /&gt;
if ( grayFlag ) { Status = &amp;quot;　ドキュメントは書き換え禁止です。&amp;quot;; }&lt;br /&gt;
&lt;br /&gt;
// パスの整形・貼り付け用メニュー&lt;br /&gt;
if ( cnd ) {&lt;br /&gt;
  var cbPathMulti = /\n(?!$)/.test( cbData );&lt;br /&gt;
  var menu = CreatePopupMenu();&lt;br /&gt;
&lt;br /&gt;
  menu.Add( &amp;quot;貼り付け (&amp;amp;P)&amp;quot;, 19, grayFlag );&lt;br /&gt;
  menu.Add( &amp;quot;&amp;quot;, 0, meMenuSeparator );&lt;br /&gt;
&lt;br /&gt;
  if ( cbPathMulti ) {&lt;br /&gt;
    menu.Add( &amp;quot;\u00A5 を \u00A5\u00A5 に置換して貼り付け (&amp;amp;C)&amp;quot;, 20, grayFlag );	//「¥」(\u00A5)&lt;br /&gt;
    menu.Add( &amp;quot;パスを 文字列順(数値順) でソートして貼り付け (&amp;amp;S)&amp;quot;, 21, grayFlag );&lt;br /&gt;
    menu.Add( &amp;quot;パスを ファイル名順* でソートして貼り付け (&amp;amp;F)&amp;quot;, 22, grayFlag );&lt;br /&gt;
    menu.Add( &amp;quot;パスを 拡張子順* でソートして貼り付け (&amp;amp;E)&amp;quot;, 23, grayFlag );&lt;br /&gt;
    menu.Add( &amp;quot;&amp;quot;, 0, meMenuSeparator );&lt;br /&gt;
&lt;br /&gt;
    menu.AddPopup( &amp;quot;二重引用符つきで \&amp;quot;貼り付け\&amp;quot; (&amp;amp;W)&amp;quot;&lt;br /&gt;
                 , sm1 = CreatePopupMenu() );&lt;br /&gt;
    sm1.Add( &amp;quot;二重引用符つきで \&amp;quot;貼り付け\&amp;quot; (&amp;amp;W)&amp;quot;, 24, grayFlag );&lt;br /&gt;
    sm1.Add( &amp;quot;\u00A5 を \u00A5\u00A5 に置換して \&amp;quot;貼り付け\&amp;quot; (&amp;amp;C)&amp;quot;, 25, grayFlag );&lt;br /&gt;
    sm1.Add( &amp;quot;パスを 文字列順(数値順) でソートして \&amp;quot;貼り付け\&amp;quot; (&amp;amp;S)&amp;quot;, 26, grayFlag );&lt;br /&gt;
    sm1.Add( &amp;quot;パスを ファイル名順* でソートして \&amp;quot;貼り付け\&amp;quot; (&amp;amp;F)&amp;quot;, 27, grayFlag );&lt;br /&gt;
    sm1.Add( &amp;quot;パスを 拡張子順* でソートして \&amp;quot;貼り付け\&amp;quot; (&amp;amp;E)&amp;quot;, 28, grayFlag );&lt;br /&gt;
    menu.Add( &amp;quot;&amp;quot;, 0, meMenuSeparator );&lt;br /&gt;
&lt;br /&gt;
    menu.AddPopup( &amp;quot;フォルダ／ファイル名のみ 貼り付け (&amp;amp;N)&amp;quot;&lt;br /&gt;
                 , sm2 = CreatePopupMenu() );&lt;br /&gt;
    sm2.Add( &amp;quot;フォルダ／ファイル名 のみを貼り付け (&amp;amp;N)&amp;quot;, 29, grayFlag );&lt;br /&gt;
    sm2.Add( &amp;quot;フォルダ／ファイル名を 文字列順(数値順) でソートして貼り付け (&amp;amp;S)&amp;quot;, 30, grayFlag );&lt;br /&gt;
    sm2.Add( &amp;quot;フォルダ／ファイル名を ファイル名順* でソートして貼り付け (&amp;amp;F)&amp;quot;, 31, grayFlag );&lt;br /&gt;
    sm2.Add( &amp;quot;フォルダ／ファイル名を 拡張子順* でソートして貼り付け (&amp;amp;E)&amp;quot;, 32, grayFlag );&lt;br /&gt;
    menu.Add( &amp;quot;&amp;quot;, 0, meMenuSeparator );&lt;br /&gt;
&lt;br /&gt;
    menu.AddPopup( &amp;quot;フォルダ／ファイル名のみを 二重引用符つきで \&amp;quot;貼り付け\&amp;quot; (&amp;amp;Q)&amp;quot;&lt;br /&gt;
                 , sm3 = CreatePopupMenu() );&lt;br /&gt;
    sm3.Add( &amp;quot;フォルダ／ファイル名を 二重引用符つきで \&amp;quot;貼り付け\&amp;quot; (&amp;amp;Q)&amp;quot;, 33, grayFlag );&lt;br /&gt;
    sm3.Add( &amp;quot;フォルダ／ファイル名を 文字列順(数値順) でソートして \&amp;quot;貼り付け\&amp;quot; (&amp;amp;S)&amp;quot;, 34, grayFlag );&lt;br /&gt;
    sm3.Add( &amp;quot;フォルダ／ファイル名を ファイル名順* でソートして \&amp;quot;貼り付け\&amp;quot; (&amp;amp;F)&amp;quot;, 35, grayFlag );&lt;br /&gt;
    sm3.Add( &amp;quot;フォルダ／ファイル名を 拡張子順* でソートして \&amp;quot;貼り付け\&amp;quot; (&amp;amp;E)&amp;quot;, 36, grayFlag );&lt;br /&gt;
  }&lt;br /&gt;
  else {&lt;br /&gt;
    menu.Add( &amp;quot;二重引用符つきで \&amp;quot;貼り付け\&amp;quot; (&amp;amp;W)&amp;quot;, 24, grayFlag );&lt;br /&gt;
    menu.Add( &amp;quot;&amp;quot;, 0, meMenuSeparator );&lt;br /&gt;
    menu.Add( &amp;quot;\u00A5 を \u00A5\u00A5 に置換して貼り付け (&amp;amp;C)&amp;quot;, 20, grayFlag );	//「¥」(\u00A5)&lt;br /&gt;
    menu.Add( &amp;quot;\u00A5 を \u00A5\u00A5 に置換して 二重引用符つきで \&amp;quot;貼り付け\&amp;quot; (&amp;amp;C)&amp;quot;, 25, grayFlag );&lt;br /&gt;
    menu.Add( &amp;quot;&amp;quot;, 0, meMenuSeparator );&lt;br /&gt;
    menu.Add( &amp;quot;フォルダ／ファイル名 のみを貼り付け (&amp;amp;N)&amp;quot;, 29, grayFlag );&lt;br /&gt;
    menu.Add( &amp;quot;フォルダ／ファイル名を 二重引用符つきで \&amp;quot;貼り付け\&amp;quot; (&amp;amp;Q)&amp;quot;, 33, grayFlag );&lt;br /&gt;
  }&lt;br /&gt;
  menu.Add( &amp;quot;&amp;quot;, 0, meMenuSeparator );&lt;br /&gt;
&lt;br /&gt;
  menu.Add( &amp;quot;貼り付けしてからアイテムを削除 (&amp;amp;M)&amp;quot;, 37, grayFlag );&lt;br /&gt;
  menu.Add( &amp;quot;アイテムを削除 (&amp;amp;D)&amp;quot;, 38 );&lt;br /&gt;
  menu.Add( &amp;quot;&amp;quot;, 0, meMenuSeparator );&lt;br /&gt;
  menu.Add( &amp;quot;キャンセル	 &amp;amp; &amp;quot;, 0 );&lt;br /&gt;
&lt;br /&gt;
  // ポップアップメニューを表示&lt;br /&gt;
  r = menu.Track( + menuPosMouse );&lt;br /&gt;
}&lt;br /&gt;
// 「フルパスのリスト」以外のデータのとき&lt;br /&gt;
else if ( forcePaste &amp;amp;&amp;amp; cbData.length &amp;amp;&amp;amp; ! grayFlag ) {&lt;br /&gt;
  r = 19;	// 「貼り付け」&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// 選択したコマンドを実行&lt;br /&gt;
if ( ! r ) { Status = $status; }&lt;br /&gt;
else {&lt;br /&gt;
  editor.ExecuteCommandByID( MEID_WINDOW_ACTIVE_PANE = 2189 );&lt;br /&gt;
&lt;br /&gt;
  // 貼り付け&lt;br /&gt;
  if ( r === 19 ) { s.Paste(); }&lt;br /&gt;
&lt;br /&gt;
  else if ( r &amp;gt;= 20 &amp;amp;&amp;amp; r &amp;lt;= 36 ) {	// &amp;gt;&lt;br /&gt;
    // ¥¥ を ¥ に置換し、二重引用符の囲いをはずす&lt;br /&gt;
    cbData = cbData.replace( /\\\\/g, &amp;quot;\\&amp;quot; )&lt;br /&gt;
                   .replace( /^(\s*)&amp;quot;+/gm, &amp;quot;$1&amp;quot; ).replace( /&amp;quot;+(\s*)$/gm, &amp;quot;$1&amp;quot; );&lt;br /&gt;
&lt;br /&gt;
    var str =&lt;br /&gt;
      // ¥ を ¥¥ に置換して貼り付け&lt;br /&gt;
      ( r === 20 ) ? Escape( cbData )&lt;br /&gt;
      // パスを 文字列順(数値順) でソートして貼り付け&lt;br /&gt;
    : ( r === 21 ) ? SortPathByString( cbData )&lt;br /&gt;
      // パスを ファイル名順* でソートして貼り付け&lt;br /&gt;
    : ( r === 22 ) ? SortPathByFileName( cbData )&lt;br /&gt;
      // パスを 拡張子順* でソートして貼り付け&lt;br /&gt;
    : ( r === 23 ) ? SortPathByFileExt( cbData )&lt;br /&gt;
&lt;br /&gt;
      // 二重引用符つきで &amp;quot;貼り付け&amp;quot;&lt;br /&gt;
    : ( r === 24 ) ? DoubleQuote( cbData )&lt;br /&gt;
      // ¥ を ¥¥ に置換して &amp;quot;貼り付け&amp;quot;&lt;br /&gt;
    : ( r === 25 ) ? DoubleQuote( Escape( cbData ) )&lt;br /&gt;
      // パスを 文字列順(数値順) でソートして &amp;quot;貼り付け&amp;quot;&lt;br /&gt;
    : ( r === 26 ) ? DoubleQuote( SortPathByString( cbData ) )&lt;br /&gt;
      // パスを ファイル名順* でソートして &amp;quot;貼り付け&amp;quot;&lt;br /&gt;
    : ( r === 27 ) ? DoubleQuote( SortPathByFileName( cbData ) )&lt;br /&gt;
      // パスを 拡張子順* でソートして &amp;quot;貼り付け&amp;quot;&lt;br /&gt;
    : ( r === 28 ) ? DoubleQuote( SortPathByFileExt( cbData ) )&lt;br /&gt;
&lt;br /&gt;
      // フォルダ／ファイル名 のみを貼り付け&lt;br /&gt;
    : ( r === 29 ) ? Extract( cbData )&lt;br /&gt;
      // フォルダ／ファイル名を 文字列順(数値順) でソートして貼り付け&lt;br /&gt;
    : ( r === 30 ) ? Extract( SortPathByString( cbData ) )&lt;br /&gt;
      // フォルダ／ファイル名を ファイル名順* でソートして貼り付け&lt;br /&gt;
    : ( r === 31 ) ? Extract( SortPathByFileName( cbData ) )&lt;br /&gt;
      // フォルダ／ファイル名を 拡張子順* でソートして貼り付け&lt;br /&gt;
    : ( r === 32 ) ? Extract( SortPathByFileExt( cbData ) )&lt;br /&gt;
&lt;br /&gt;
      // フォルダ／ファイル名を 二重引用符つきで &amp;quot;貼り付け&amp;quot;&lt;br /&gt;
    : ( r === 33 ) ? DoubleQuote( Extract( cbData ) )&lt;br /&gt;
      // フォルダ／ファイル名を 文字列順(数値順) でソートして &amp;quot;貼り付け&amp;quot;&lt;br /&gt;
    : ( r === 34 ) ? DoubleQuote( Extract( SortPathByString( cbData ) ) )&lt;br /&gt;
      // フォルダ／ファイル名を ファイル名順* でソートして &amp;quot;貼り付け&amp;quot;&lt;br /&gt;
    : ( r === 35 ) ? DoubleQuote( Extract( SortPathByFileName( cbData ) ) )&lt;br /&gt;
      // フォルダ／ファイル名を 拡張子順* でソートして &amp;quot;貼り付け&amp;quot;&lt;br /&gt;
    : ( r === 36 ) ? DoubleQuote( Extract( SortPathByFileExt( cbData ) ) )&lt;br /&gt;
    : cbData;&lt;br /&gt;
&lt;br /&gt;
    s.Text = str;&lt;br /&gt;
    if ( sendToClipboard ) { cb.SetData( str );  cb.SetData( str, 0 ); }&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  // （貼り付けしてから）アイテムを削除&lt;br /&gt;
  else if ( r &amp;gt;= 37 ) { &lt;br /&gt;
    if ( r === 37 ) { s.Paste(); }&lt;br /&gt;
    cb.ClearData();&lt;br /&gt;
    if ( ! cb.GetData() ) {&lt;br /&gt;
      Status = &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;
 * 関数 DoubleQuote( str )&lt;br /&gt;
 * 各行ごとに &amp;quot;二重引用符&amp;quot; で囲う&lt;br /&gt;
 */&lt;br /&gt;
function DoubleQuote( str ) {&lt;br /&gt;
  return str.replace( /^./gm, &amp;quot;\&amp;quot;$&amp;amp;&amp;quot; ).replace( /(.)([\r\n]+)/g, &amp;quot;$1\&amp;quot;$2&amp;quot; );&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * 関数 Escape( str )&lt;br /&gt;
 * ¥ を ¥¥ に置換する&lt;br /&gt;
 */&lt;br /&gt;
function Escape( str ) {&lt;br /&gt;
  return str.replace( /\\/g, &amp;quot;\\$&amp;amp;&amp;quot; );&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * 関数 Extract( str )&lt;br /&gt;
 * パスをフォルダ／ファイル名 だけにする&lt;br /&gt;
 */&lt;br /&gt;
function Extract( str ) {&lt;br /&gt;
  return str.replace( /^.*\\/gm, &amp;quot;&amp;quot; );&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * 関数 DigitsAsNumber( str )&lt;br /&gt;
 * 数字を数値（十進数）として評価する&lt;br /&gt;
 * masme 氏の「行並べ替え」マクロの &amp;quot;数値順変換（opt.asNum）&amp;quot; のコードを借用&lt;br /&gt;
 * ref. https://www.haijin-boys.com/wiki/%E8%A1%8C%E4%B8%A6%E3%81%B9%E6%9B%BF%E3%81%88&lt;br /&gt;
 */&lt;br /&gt;
function DigitsAsNumber( str ) {&lt;br /&gt;
  return str.toLowerCase()&lt;br /&gt;
            .replace( /(0*)([0-9]+)/g, function( str, z, n ) {&lt;br /&gt;
    var k = 0xF + n.length;&lt;br /&gt;
    return ( k &amp;gt; 0xFFF0 )&lt;br /&gt;
           ? &amp;quot;0\r\uFFF1\r&amp;quot; + str&lt;br /&gt;
           : &amp;quot;0\r&amp;quot; + String.fromCharCode( k )+ n + z + &amp;quot;;\r&amp;quot;;&lt;br /&gt;
  } );&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * 関数 SortByString( a, b )&lt;br /&gt;
 * 数字を数値順で評価して並べ替える&lt;br /&gt;
 */&lt;br /&gt;
function SortByString( a, b ) {&lt;br /&gt;
  var aN = DigitsAsNumber( a ),  bN = DigitsAsNumber( b );&lt;br /&gt;
  return aN.localeCompare( bN ) || a.localeCompare( b );&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * 関数 SortByExt( a, b )&lt;br /&gt;
 * 拡張子順で評価して並べ替える&lt;br /&gt;
 * ・拡張子より前の部分の数字は数値順で評価&lt;br /&gt;
 */&lt;br /&gt;
function SortByExt( a, b ) {&lt;br /&gt;
  var Fso = new ActiveXObject( &amp;quot;Scripting.FileSystemObject&amp;quot; );&lt;br /&gt;
  var a1 = Fso.GetExtensionName( a );  a2 = a1.toLowerCase();&lt;br /&gt;
  var b1 = Fso.GetExtensionName( b );  b2 = b1.toLowerCase();&lt;br /&gt;
  var aN = DigitsAsNumber( a ),  bN = DigitsAsNumber( b );&lt;br /&gt;
  return ( a2 &amp;lt; b2 ) ? -1&lt;br /&gt;
       : ( a2 &amp;gt; b2 ) ? 1&lt;br /&gt;
       : ( a1 &amp;lt; b1 ) ? -1&lt;br /&gt;
       : ( a1 &amp;gt; b1 ) ? 1&lt;br /&gt;
       : aN.localeCompare( bN ) || a.localeCompare( b );&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * 関数 SortPathByString( pathData )&lt;br /&gt;
 * パスをファイル名順で並べ替える&lt;br /&gt;
 * ・数字を数値順で評価&lt;br /&gt;
 * ・フォルダを先頭に集めない&lt;br /&gt;
 */&lt;br /&gt;
function SortPathByString( path ) {&lt;br /&gt;
  var a = path.split( /[\r\n]+/ ),  crlf = RegExp[ &amp;quot;$&amp;amp;&amp;quot; ];&lt;br /&gt;
  return a.sort( SortByString ).join( crlf ) + crlf;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * 関数 SortPathByFileName( pathArray )&lt;br /&gt;
 * パスをファイル名順で並べ替える&lt;br /&gt;
 * ・数字を数値順で評価&lt;br /&gt;
 * ・フォルダを先頭に集める&lt;br /&gt;
 */&lt;br /&gt;
function SortPathByFileName( path ) {&lt;br /&gt;
  var Fso = new ActiveXObject( &amp;quot;Scripting.FileSystemObject&amp;quot; );&lt;br /&gt;
  var a = path.split( /[\r\n]+/ ),  crlf = RegExp[ &amp;quot;$&amp;amp;&amp;quot; ];&lt;br /&gt;
  var folders = [],  files = [];&lt;br /&gt;
  for ( var i = 0, len = a.length; i &amp;lt; len; i ++ ) {	// &amp;gt;&lt;br /&gt;
    if ( Fso.FolderExists( a[i] ) ) { folders.push( a[i] ) }; &lt;br /&gt;
    else { files.push( a[i] ) }; &lt;br /&gt;
  }&lt;br /&gt;
  folders.sort( SortByString );&lt;br /&gt;
  files.sort( SortByString );&lt;br /&gt;
  return folders.concat( files ).join( crlf ) + crlf;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * 関数 SortPathByFileExt( pathArray )&lt;br /&gt;
 * パスを拡張子順で並べ替える&lt;br /&gt;
 * ・数字を数値順で評価&lt;br /&gt;
 * ・フォルダを先頭に集める&lt;br /&gt;
 */&lt;br /&gt;
function SortPathByFileExt( path ) {&lt;br /&gt;
  var Fso = new ActiveXObject( &amp;quot;Scripting.FileSystemObject&amp;quot; );&lt;br /&gt;
  var a = path.split( /[\r\n]+/ ),  crlf = RegExp[ &amp;quot;$&amp;amp;&amp;quot; ];&lt;br /&gt;
  var folders = [],  files = [];&lt;br /&gt;
  for ( var i = 0, len = a.length; i &amp;lt; len; i ++ ) {	// &amp;gt;&lt;br /&gt;
    if ( Fso.FolderExists( a[i] ) ) { folders.push( a[i] ) }; &lt;br /&gt;
    else { files.push( a[i] ) }; &lt;br /&gt;
  }&lt;br /&gt;
  folders.sort( SortByString );&lt;br /&gt;
  files.sort( SortByExt );&lt;br /&gt;
  return folders.concat( files ).join( crlf ) + crlf;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== メモ ==&lt;br /&gt;
動作確認は Windows XP SP3 (32bit) 上の Mery ver 3.2.3 で行ったのみです。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sukemaru</name></author>
	</entry>
	<entry>
		<id>https://www.haijin-boys.com/wiki/index.php?title=%E3%83%91%E3%82%B9%E3%82%92%E8%B2%BC%E3%82%8A%E4%BB%98%E3%81%91%EF%BC%88%E3%83%9D%E3%83%83%E3%83%97%E3%82%A2%E3%83%83%E3%83%97%E3%83%A1%E3%83%8B%E3%83%A5%E3%83%BC%EF%BC%89&amp;diff=5481</id>
		<title>パスを貼り付け（ポップアップメニュー）</title>
		<link rel="alternate" type="text/html" href="https://www.haijin-boys.com/wiki/index.php?title=%E3%83%91%E3%82%B9%E3%82%92%E8%B2%BC%E3%82%8A%E4%BB%98%E3%81%91%EF%BC%88%E3%83%9D%E3%83%83%E3%83%97%E3%82%A2%E3%83%83%E3%83%97%E3%83%A1%E3%83%8B%E3%83%A5%E3%83%BC%EF%BC%89&amp;diff=5481"/>
		<updated>2020-12-30T02:26:46Z</updated>

		<summary type="html">&lt;p&gt;Sukemaru: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- 「パスを貼り付け（ポップアップメニュー）」マクロ	2020/12/30 --&amp;gt;&lt;br /&gt;
__toc__ &amp;lt;br clear=all&amp;gt;&lt;br /&gt;
[[ファイル:パスを貼り付け（ポップアップメニュー）.png|link=]] &amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 概要 ==&lt;br /&gt;
&lt;br /&gt;
Mery ver 3.2.2α 以降（の隠し機能）で、エクスプローラ上で「コピー」したフォルダ・ファイルのパスを、ポップアップメニューから選択した形式に整形してペーストします。&amp;lt;br&amp;gt;&lt;br /&gt;
　→　&#039;&#039;ref.&#039;&#039;　 Mery 公式フォーラムのトピック [https://www.haijin-boys.com/discussions/5835#discussion-5868 「【要望】ファイルパスの貼付け機能」]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
クリップボードのデータが &amp;lt;br&amp;gt;&lt;br /&gt;
*「エクスプローラ上でコピーしたフォルダ・ファイル（リスト形式）」でない場合 &amp;lt;br&amp;gt;&lt;br /&gt;
*「フォルダ・ファイルの&#039;&#039;&#039;フルパス&#039;&#039;&#039;のリスト（テキスト形式）」でない場合 &amp;lt;br&amp;gt;&lt;br /&gt;
* Mery 本体のバージョンが動作要件を満たさない場合 &amp;lt;br&amp;gt;&lt;br /&gt;
は、ポップアップメニューを表示せずに通常の「貼り付け (Ctrl＋V)」をおこないます （設定項目&amp;lt;code&amp;gt;forcePaste&amp;lt;/code&amp;gt;： 初期値＝&amp;lt;source lang=&amp;quot;javascript&amp;quot; inline&amp;gt;true&amp;lt;/source&amp;gt;）。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
※ &amp;lt;span style=&amp;quot;color:#0000c0;&amp;quot;&amp;gt;動作要件：（Windows OS 上の） Mery ver 3.2.2α 以降&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;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 変換パターン ===&lt;br /&gt;
* &#039;&#039;&#039;二重引用符つき&#039;&#039;&#039;で &amp;quot;貼り付け&amp;quot;&lt;br /&gt;
* &amp;lt;code&amp;gt;¥&amp;lt;/code&amp;gt;（バックスラッシュ U+005C）を二重&#039;&#039;&#039;&amp;lt;code&amp;gt;¥¥&amp;lt;/code&amp;gt;&#039;&#039;&#039;にして貼り付け&lt;br /&gt;
* &amp;lt;code&amp;gt;¥&amp;lt;/code&amp;gt;（バックスラッシュ U+005C）を二重&#039;&#039;&#039;&amp;lt;code&amp;gt;¥¥&amp;lt;/code&amp;gt;&#039;&#039;&#039;にして &#039;&#039;&#039;二重引用符つき&#039;&#039;&#039; で &amp;quot;貼り付け&amp;quot;&lt;br /&gt;
* &#039;&#039;&#039;フォルダ名・ファイル名&#039;&#039;&#039; の部分のみにして貼り付け&lt;br /&gt;
* &#039;&#039;&#039;フォルダ名・ファイル名&#039;&#039;&#039; の部分のみを &#039;&#039;&#039;二重引用符つき&#039;&#039;&#039; で &amp;quot;貼り付け&amp;quot;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
「&amp;lt;code&amp;gt;¥&amp;lt;/code&amp;gt;を二重&#039;&#039;&#039;&amp;lt;code&amp;gt;¥¥&amp;lt;/code&amp;gt;&#039;&#039;&#039;にして [二重引用符つきで] 貼り付け」の変換パターンと下記のソートパターンを組み合わせた選択項目はありません。 &amp;lt;br&amp;gt;&lt;br /&gt;
: →　必要なら、&#039;&#039;&#039;ソートつきで貼り付けたあとに Undo (Ctrl＋Z) してから&#039;&#039;&#039;、このマクロを再実行して「&amp;lt;code&amp;gt;¥&amp;lt;/code&amp;gt;を二重&#039;&#039;&#039;&amp;lt;code&amp;gt;¥¥&amp;lt;/code&amp;gt;&#039;&#039;&#039;にして [二重引用符つきで] 貼り付け」しなおしてください （設定項目&amp;lt;source lang=&amp;quot;javascript&amp;quot; inline&amp;gt;forcePaste = true&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;
* 拡張子順*&lt;br /&gt;
: フォルダを先頭にまとめて、拡張子順 &amp;gt; 文字列順&lt;br /&gt;
&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;&lt;br /&gt;
:: &#039;&#039;i.e.&#039;&#039; 　1 &amp;lt;　002　&amp;lt;　03　&amp;lt;　5　&amp;lt;　40&lt;br /&gt;
: ※ &amp;quot;0&amp;quot; から始まる「16進数」や「数字の羅列」などを含むパスでは、望ましくない並び順になる場合があります。&lt;br /&gt;
:: &#039;&#039;i.e.&#039;&#039; 　1a1a　&amp;lt;　02a0　&amp;lt;　0010&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:#0000c0;&amp;quot;&amp;gt;アルファベットの 大文字／小文字 や、日本語の ひらがな／カタカナ などは区別せずに、「&#039;&#039;&#039;辞書順&#039;&#039;&#039; (OS のロケールに依存)」で評価します。&amp;lt;/span&amp;gt;&lt;br /&gt;
: ※「拡張子順*」では、拡張子の部分の数字のみ「文字列順」で評価します。&lt;br /&gt;
&amp;lt;!-- : ※ その他は「unicode (UTF-16) 昇順」で評価します。 --&amp;gt; &lt;br /&gt;
&amp;lt;br&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;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;code&amp;gt;sendToClipboard&amp;lt;/code&amp;gt;（初期値＝&amp;lt;source lang=&amp;quot;javascript&amp;quot; inline&amp;gt;false&amp;lt;/source&amp;gt;） &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot; inline&amp;gt;true&amp;lt;/source&amp;gt;にすると、整形して貼り付けたデータ（テキスト形式）をクリップボードに送信します。&lt;br /&gt;
: → Ctrl＋V で整形済みのデータを再貼り付けできるようになります （Mery の「クリップボード履歴」からも再貼り付けできるようになります）。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
: ※ 整形なしの「貼り付け」では、Mery の「クリップボード履歴」に残しません。&lt;br /&gt;
: ※ このマクロを再実行して別の形式を選択して貼り付けする場合、前回の整形済みデータから &#039;&#039;&#039;&amp;quot;&#039;&#039;&#039;二重引用符&#039;&#039;&#039;&amp;quot;&#039;&#039;&#039; と「ふたつ重ねにした&amp;lt;code&amp;gt;¥&amp;lt;/code&amp;gt;記号」を消した状態から、あらためて整形しなおします （整形なしの「貼り付け」では前回と同じ形式で貼り付け）。&lt;br /&gt;
: ※ 間違えて「フォルダ／ファイル名のみ ～」で貼り付けしてしまった場合、Undo してもクリップボードに送信したデータ形式を復旧できないので再度エクスプローラ上でフォルダ・ファイルを「コピー」し直さなければなりません （フルパス形式でなくなるため、マクロを再実行してもメニューを再表示できない）。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== ソースコード ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ダウンロード&#039;&#039;&#039;　&amp;gt;&amp;gt;　「[[ファイル:パスを貼り付け_(ポップアップメニュー).zip]]」(アイコン入り)&lt;br /&gt;
: 初版： 2020/12/30&lt;br /&gt;
&amp;lt;br&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;paste_path.ico&amp;quot;&lt;br /&gt;
// #icon = &amp;quot;Mery用 マテリアルデザインっぽいアイコン.icl&amp;quot;,313&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * ---------------------------------------------------------&lt;br /&gt;
 * 「パスを貼り付け（ポップアップメニュー）」マクロ&lt;br /&gt;
 * sukemaru, 2020/12/30&lt;br /&gt;
 * ---------------------------------------------------------&lt;br /&gt;
 * エクスプローラ上で「コピー」したフォルダ・ファイルのパスを&lt;br /&gt;
 * ポップアップメニューから選択した形式に整形してペーストする&lt;br /&gt;
 * &lt;br /&gt;
 * 動作要件：（Windows OS 上の） Mery ver 3.2.2α 以降&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
// ---------- ▼ 設定項目 ▼ ---------- //&lt;br /&gt;
&lt;br /&gt;
// ■「フルパスのリスト」以外のデータのとき、メニューを表示せずに「貼り付け」する？&lt;br /&gt;
var forcePaste = true;	// true: 貼り付けする ／ false: なにもしない&lt;br /&gt;
&lt;br /&gt;
// ■ 整形して貼り付けたデータをクリップボードに送信する？&lt;br /&gt;
var sendToClipboard = false;	// true: 送信する ／ false: 送信しない&lt;br /&gt;
&lt;br /&gt;
// ■ ポップアップメニューを表示する位置&lt;br /&gt;
var menuPosMouse = true;	// true: マウス位置 ／ false: キャレット位置&lt;br /&gt;
&lt;br /&gt;
// ---------- ▲ 設定項目 ▲ ---------- //&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
var d = editor.ActiveDocument,  s = d.selection;&lt;br /&gt;
var grayFlag = d.ReadOnly ? meMenuGrayed : 0;&lt;br /&gt;
var r;&lt;br /&gt;
&lt;br /&gt;
// Mery.exe のバージョンチェック&lt;br /&gt;
var meryVer = + ( editor.Version.replace( /\d+/g , function( dig ) {&lt;br /&gt;
                  return dig.length &amp;lt; 2 ? &amp;quot;0&amp;quot; + dig : dig&lt;br /&gt;
                } ).replace( /\./g, &amp;quot;&amp;quot; ).slice( 0, 6 ) );&lt;br /&gt;
&lt;br /&gt;
// クリップボードデータ&lt;br /&gt;
var cb = ClipboardData,  cbData = cb.GetData();&lt;br /&gt;
var cnd = ( meryVer &amp;gt;= 30202 &amp;amp;&amp;amp; cbData.length &amp;amp;&amp;amp; /:\\.*[\r\n]+$/.test( cbData )&lt;br /&gt;
&amp;amp;&amp;amp; ( cbData.match( /:\\/g ) || [] ).length === ( cbData.match( /[\r\n]+/g ) || [] ).length );&lt;br /&gt;
&lt;br /&gt;
// ステータスバーの表示&lt;br /&gt;
var $status = Status;&lt;br /&gt;
if ( grayFlag ) { Status = &amp;quot;　ドキュメントは書き換え禁止です。&amp;quot;; }&lt;br /&gt;
&lt;br /&gt;
// パスの整形・貼り付け用メニュー&lt;br /&gt;
if ( cnd ) {&lt;br /&gt;
  var cbPathMulti = /\n(?!$)/.test( cbData );&lt;br /&gt;
  var menu = CreatePopupMenu();&lt;br /&gt;
&lt;br /&gt;
  menu.Add( &amp;quot;貼り付け (&amp;amp;P)&amp;quot;, 19, grayFlag );&lt;br /&gt;
  menu.Add( &amp;quot;&amp;quot;, 0, meMenuSeparator );&lt;br /&gt;
&lt;br /&gt;
  if ( cbPathMulti ) {&lt;br /&gt;
    menu.Add( &amp;quot;\u00A5 を \u00A5\u00A5 に置換して貼り付け (&amp;amp;C)&amp;quot;, 20, grayFlag );	//「¥」(\u00A5)&lt;br /&gt;
    menu.Add( &amp;quot;パスを 文字列順(数値順) でソートして貼り付け (&amp;amp;S)&amp;quot;, 21, grayFlag );&lt;br /&gt;
    menu.Add( &amp;quot;パスを ファイル名順* でソートして貼り付け (&amp;amp;F)&amp;quot;, 22, grayFlag );&lt;br /&gt;
    menu.Add( &amp;quot;パスを 拡張子順* でソートして貼り付け (&amp;amp;E)&amp;quot;, 23, grayFlag );&lt;br /&gt;
    menu.Add( &amp;quot;&amp;quot;, 0, meMenuSeparator );&lt;br /&gt;
&lt;br /&gt;
    menu.AddPopup( &amp;quot;二重引用符つきで \&amp;quot;貼り付け\&amp;quot; (&amp;amp;W)&amp;quot;&lt;br /&gt;
                 , sm1 = CreatePopupMenu() );&lt;br /&gt;
    sm1.Add( &amp;quot;二重引用符つきで \&amp;quot;貼り付け\&amp;quot; (&amp;amp;W)&amp;quot;, 24, grayFlag );&lt;br /&gt;
    sm1.Add( &amp;quot;\u00A5 を \u00A5\u00A5 に置換して \&amp;quot;貼り付け\&amp;quot; (&amp;amp;C)&amp;quot;, 25, grayFlag );&lt;br /&gt;
    sm1.Add( &amp;quot;パスを 文字列順(数値順) でソートして \&amp;quot;貼り付け\&amp;quot; (&amp;amp;S)&amp;quot;, 26, grayFlag );&lt;br /&gt;
    sm1.Add( &amp;quot;パスを ファイル名順* でソートして \&amp;quot;貼り付け\&amp;quot; (&amp;amp;F)&amp;quot;, 27, grayFlag );&lt;br /&gt;
    sm1.Add( &amp;quot;パスを 拡張子順* でソートして \&amp;quot;貼り付け\&amp;quot; (&amp;amp;E)&amp;quot;, 28, grayFlag );&lt;br /&gt;
    menu.Add( &amp;quot;&amp;quot;, 0, meMenuSeparator );&lt;br /&gt;
&lt;br /&gt;
    menu.AddPopup( &amp;quot;フォルダ／ファイル名のみ 貼り付け (&amp;amp;N)&amp;quot;&lt;br /&gt;
                 , sm2 = CreatePopupMenu() );&lt;br /&gt;
    sm2.Add( &amp;quot;フォルダ／ファイル名 のみを貼り付け (&amp;amp;N)&amp;quot;, 29, grayFlag );&lt;br /&gt;
    sm2.Add( &amp;quot;フォルダ／ファイル名を 文字列順(数値順) でソートして貼り付け (&amp;amp;S)&amp;quot;, 30, grayFlag );&lt;br /&gt;
    sm2.Add( &amp;quot;フォルダ／ファイル名を ファイル名順* でソートして貼り付け (&amp;amp;F)&amp;quot;, 31, grayFlag );&lt;br /&gt;
    sm2.Add( &amp;quot;フォルダ／ファイル名を 拡張子順* でソートして貼り付け (&amp;amp;E)&amp;quot;, 32, grayFlag );&lt;br /&gt;
    menu.Add( &amp;quot;&amp;quot;, 0, meMenuSeparator );&lt;br /&gt;
&lt;br /&gt;
    menu.AddPopup( &amp;quot;フォルダ／ファイル名のみを 二重引用符つきで \&amp;quot;貼り付け\&amp;quot; (&amp;amp;Q)&amp;quot;&lt;br /&gt;
                 , sm3 = CreatePopupMenu() );&lt;br /&gt;
    sm3.Add( &amp;quot;フォルダ／ファイル名を 二重引用符つきで \&amp;quot;貼り付け\&amp;quot; (&amp;amp;Q)&amp;quot;, 33, grayFlag );&lt;br /&gt;
    sm3.Add( &amp;quot;フォルダ／ファイル名を 文字列順(数値順) でソートして \&amp;quot;貼り付け\&amp;quot; (&amp;amp;S)&amp;quot;, 34, grayFlag );&lt;br /&gt;
    sm3.Add( &amp;quot;フォルダ／ファイル名を ファイル名順* でソートして \&amp;quot;貼り付け\&amp;quot; (&amp;amp;F)&amp;quot;, 35, grayFlag );&lt;br /&gt;
    sm3.Add( &amp;quot;フォルダ／ファイル名を 拡張子順* でソートして \&amp;quot;貼り付け\&amp;quot; (&amp;amp;E)&amp;quot;, 36, grayFlag );&lt;br /&gt;
  }&lt;br /&gt;
  else {&lt;br /&gt;
    menu.Add( &amp;quot;二重引用符つきで \&amp;quot;貼り付け\&amp;quot; (&amp;amp;W)&amp;quot;, 24, grayFlag );&lt;br /&gt;
    menu.Add( &amp;quot;&amp;quot;, 0, meMenuSeparator );&lt;br /&gt;
    menu.Add( &amp;quot;\u00A5 を \u00A5\u00A5 に置換して貼り付け (&amp;amp;C)&amp;quot;, 20, grayFlag );	//「¥」(\u00A5)&lt;br /&gt;
    menu.Add( &amp;quot;\u00A5 を \u00A5\u00A5 に置換して 二重引用符つきで \&amp;quot;貼り付け\&amp;quot; (&amp;amp;C)&amp;quot;, 25, grayFlag );&lt;br /&gt;
    menu.Add( &amp;quot;&amp;quot;, 0, meMenuSeparator );&lt;br /&gt;
    menu.Add( &amp;quot;フォルダ／ファイル名 のみを貼り付け (&amp;amp;N)&amp;quot;, 29, grayFlag );&lt;br /&gt;
    menu.Add( &amp;quot;フォルダ／ファイル名を 二重引用符つきで \&amp;quot;貼り付け\&amp;quot; (&amp;amp;Q)&amp;quot;, 33, grayFlag );&lt;br /&gt;
  }&lt;br /&gt;
  menu.Add( &amp;quot;&amp;quot;, 0, meMenuSeparator );&lt;br /&gt;
&lt;br /&gt;
  menu.Add( &amp;quot;貼り付けしてからアイテムを削除 (&amp;amp;M)&amp;quot;, 37, grayFlag );&lt;br /&gt;
  menu.Add( &amp;quot;アイテムを削除 (&amp;amp;D)&amp;quot;, 38 );&lt;br /&gt;
  menu.Add( &amp;quot;&amp;quot;, 0, meMenuSeparator );&lt;br /&gt;
  menu.Add( &amp;quot;キャンセル	 &amp;amp; &amp;quot;, 0 );&lt;br /&gt;
&lt;br /&gt;
  // ポップアップメニューを表示&lt;br /&gt;
  r = menu.Track( + menuPosMouse );&lt;br /&gt;
}&lt;br /&gt;
// 「フルパスのリスト」以外のデータのとき&lt;br /&gt;
else if ( forcePaste &amp;amp;&amp;amp; cbData.length &amp;amp;&amp;amp; ! grayFlag ) {&lt;br /&gt;
  r = 19;	// 「貼り付け」&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// 選択したコマンドを実行&lt;br /&gt;
if ( ! r ) { Status = $status; }&lt;br /&gt;
else {&lt;br /&gt;
  editor.ExecuteCommandByID( MEID_WINDOW_ACTIVE_PANE = 2189 );&lt;br /&gt;
&lt;br /&gt;
  // 貼り付け&lt;br /&gt;
  if ( r === 19 ) { s.Paste(); }&lt;br /&gt;
&lt;br /&gt;
  else if ( r &amp;gt;= 20 &amp;amp;&amp;amp; r &amp;lt;= 36 ) {	// &amp;gt;&lt;br /&gt;
    // ¥¥ を ¥ に置換し、二重引用符の囲いをはずす&lt;br /&gt;
    cbData = cbData.replace( /\\\\/g, &amp;quot;\\&amp;quot; )&lt;br /&gt;
                   .replace( /^(\s*)&amp;quot;+/gm, &amp;quot;$1&amp;quot; ).replace( /&amp;quot;+(\s*)$/gm, &amp;quot;$1&amp;quot; );&lt;br /&gt;
&lt;br /&gt;
    var str =&lt;br /&gt;
      // ¥ を ¥¥ に置換して貼り付け&lt;br /&gt;
      ( r === 20 ) ? Escape( cbData )&lt;br /&gt;
      // パスを 文字列順(数値順) でソートして貼り付け&lt;br /&gt;
    : ( r === 21 ) ? SortPathByString( cbData )&lt;br /&gt;
      // パスを ファイル名順* でソートして貼り付け&lt;br /&gt;
    : ( r === 22 ) ? SortPathByFileName( cbData )&lt;br /&gt;
      // パスを 拡張子順* でソートして貼り付け&lt;br /&gt;
    : ( r === 23 ) ? SortPathByFileExt( cbData )&lt;br /&gt;
&lt;br /&gt;
      // 二重引用符つきで &amp;quot;貼り付け&amp;quot;&lt;br /&gt;
    : ( r === 24 ) ? DoubleQuote( cbData )&lt;br /&gt;
      // ¥ を ¥¥ に置換して &amp;quot;貼り付け&amp;quot;&lt;br /&gt;
    : ( r === 25 ) ? DoubleQuote( Escape( cbData ) )&lt;br /&gt;
      // パスを 文字列順(数値順) でソートして &amp;quot;貼り付け&amp;quot;&lt;br /&gt;
    : ( r === 26 ) ? DoubleQuote( SortPathByString( cbData ) )&lt;br /&gt;
      // パスを ファイル名順* でソートして &amp;quot;貼り付け&amp;quot;&lt;br /&gt;
    : ( r === 27 ) ? DoubleQuote( SortPathByFileName( cbData ) )&lt;br /&gt;
      // パスを 拡張子順* でソートして &amp;quot;貼り付け&amp;quot;&lt;br /&gt;
    : ( r === 28 ) ? DoubleQuote( SortPathByFileExt( cbData ) )&lt;br /&gt;
&lt;br /&gt;
      // フォルダ／ファイル名 のみを貼り付け&lt;br /&gt;
    : ( r === 29 ) ? Extract( cbData )&lt;br /&gt;
      // フォルダ／ファイル名を 文字列順(数値順) でソートして貼り付け&lt;br /&gt;
    : ( r === 30 ) ? Extract( SortPathByString( cbData ) )&lt;br /&gt;
      // フォルダ／ファイル名を ファイル名順* でソートして貼り付け&lt;br /&gt;
    : ( r === 31 ) ? Extract( SortPathByFileName( cbData ) )&lt;br /&gt;
      // フォルダ／ファイル名を 拡張子順* でソートして貼り付け&lt;br /&gt;
    : ( r === 32 ) ? Extract( SortPathByFileExt( cbData ) )&lt;br /&gt;
&lt;br /&gt;
      // フォルダ／ファイル名を 二重引用符つきで &amp;quot;貼り付け&amp;quot;&lt;br /&gt;
    : ( r === 33 ) ? DoubleQuote( Extract( cbData ) )&lt;br /&gt;
      // フォルダ／ファイル名を 文字列順(数値順) でソートして &amp;quot;貼り付け&amp;quot;&lt;br /&gt;
    : ( r === 34 ) ? DoubleQuote( Extract( SortPathByString( cbData ) ) )&lt;br /&gt;
      // フォルダ／ファイル名を ファイル名順* でソートして &amp;quot;貼り付け&amp;quot;&lt;br /&gt;
    : ( r === 35 ) ? DoubleQuote( Extract( SortPathByFileName( cbData ) ) )&lt;br /&gt;
      // フォルダ／ファイル名を 拡張子順* でソートして &amp;quot;貼り付け&amp;quot;&lt;br /&gt;
    : ( r === 36 ) ? DoubleQuote( Extract( SortPathByFileExt( cbData ) ) )&lt;br /&gt;
    : cbData;&lt;br /&gt;
&lt;br /&gt;
    s.Text = str;&lt;br /&gt;
    if ( sendToClipboard ) { cb.SetData( str );  cb.SetData( str, 0 ); }&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  // （貼り付けしてから）アイテムを削除&lt;br /&gt;
  else if ( r &amp;gt;= 37 ) { &lt;br /&gt;
    if ( r === 37 ) { s.Paste(); }&lt;br /&gt;
    cb.ClearData();&lt;br /&gt;
    if ( ! cb.GetData() ) {&lt;br /&gt;
      Status = &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;
 * 関数 DoubleQuote( str )&lt;br /&gt;
 * 各行ごとに &amp;quot;二重引用符&amp;quot; で囲う&lt;br /&gt;
 */&lt;br /&gt;
function DoubleQuote( str ) {&lt;br /&gt;
  return str.replace( /^./gm, &amp;quot;\&amp;quot;$&amp;amp;&amp;quot; ).replace( /(.)([\r\n]+)/g, &amp;quot;$1\&amp;quot;$2&amp;quot; );&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * 関数 Escape( str )&lt;br /&gt;
 * ¥ を ¥¥ に置換する&lt;br /&gt;
 */&lt;br /&gt;
function Escape( str ) {&lt;br /&gt;
  return str.replace( /\\/g, &amp;quot;\\$&amp;amp;&amp;quot; );&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * 関数 Extract( str )&lt;br /&gt;
 * パスをフォルダ／ファイル名 だけにする&lt;br /&gt;
 */&lt;br /&gt;
function Extract( str ) {&lt;br /&gt;
  return str.replace( /^.*\\/gm, &amp;quot;&amp;quot; );&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * 関数 DigitsAsNumber( str )&lt;br /&gt;
 * 数字を数値（十進数）として評価する&lt;br /&gt;
 * masme 氏の「行並べ替え」マクロの &amp;quot;数値順変換（opt.asNum）&amp;quot; のコードを借用&lt;br /&gt;
 * ref. https://www.haijin-boys.com/wiki/%E8%A1%8C%E4%B8%A6%E3%81%B9%E6%9B%BF%E3%81%88&lt;br /&gt;
 */&lt;br /&gt;
function DigitsAsNumber( str ) {&lt;br /&gt;
  return str.toLowerCase()&lt;br /&gt;
            .replace( /(0*)([0-9]+)/g, function( str, z, n ) {&lt;br /&gt;
    var k = 0xF + n.length;&lt;br /&gt;
    return ( k &amp;gt; 0xFFF0 )&lt;br /&gt;
           ? &amp;quot;0\r\uFFF1\r&amp;quot; + str&lt;br /&gt;
           : &amp;quot;0\r&amp;quot; + String.fromCharCode( k )+ n + z + &amp;quot;;\r&amp;quot;;&lt;br /&gt;
  } );&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * 関数 SortByString( a, b )&lt;br /&gt;
 * 数字を数値順で評価して並べ替える&lt;br /&gt;
 */&lt;br /&gt;
function SortByString( a, b ) {&lt;br /&gt;
  var aN = DigitsAsNumber( a ),  bN = DigitsAsNumber( b );&lt;br /&gt;
  return aN.localeCompare( bN ) || a.localeCompare( b );&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * 関数 SortByExt( a, b )&lt;br /&gt;
 * 拡張子順で評価して並べ替える&lt;br /&gt;
 * ・拡張子より前の部分の数字は数値順で評価&lt;br /&gt;
 */&lt;br /&gt;
function SortByExt( a, b ) {&lt;br /&gt;
  var Fso = new ActiveXObject( &amp;quot;Scripting.FileSystemObject&amp;quot; );&lt;br /&gt;
  var a1 = Fso.GetExtensionName( a );  a2 = a1.toLowerCase();&lt;br /&gt;
  var b1 = Fso.GetExtensionName( b );  b2 = b1.toLowerCase();&lt;br /&gt;
  var aN = DigitsAsNumber( a ),  bN = DigitsAsNumber( b );&lt;br /&gt;
  return ( a2 &amp;lt; b2 ) ? -1&lt;br /&gt;
       : ( a2 &amp;gt; b2 ) ? 1&lt;br /&gt;
       : ( a1 &amp;lt; b1 ) ? -1&lt;br /&gt;
       : ( a1 &amp;gt; b1 ) ? 1&lt;br /&gt;
       : aN.localeCompare( bN ) || a.localeCompare( b );&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * 関数 SortPathByString( pathData )&lt;br /&gt;
 * パスをファイル名順で並べ替える&lt;br /&gt;
 * ・数字を数値順で評価&lt;br /&gt;
 * ・フォルダを先頭に集めない&lt;br /&gt;
 */&lt;br /&gt;
function SortPathByString( path ) {&lt;br /&gt;
  var a = path.split( /[\r\n]+/ ),  crlf = RegExp[ &amp;quot;$&amp;amp;&amp;quot; ];&lt;br /&gt;
  return a.sort( SortByString ).join( crlf ) + crlf;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * 関数 SortPathByFileName( pathArray )&lt;br /&gt;
 * パスをファイル名順で並べ替える&lt;br /&gt;
 * ・数字を数値順で評価&lt;br /&gt;
 * ・フォルダを先頭に集める&lt;br /&gt;
 */&lt;br /&gt;
function SortPathByFileName( path ) {&lt;br /&gt;
  var Fso = new ActiveXObject( &amp;quot;Scripting.FileSystemObject&amp;quot; );&lt;br /&gt;
  var a = path.split( /[\r\n]+/ ),  crlf = RegExp[ &amp;quot;$&amp;amp;&amp;quot; ];&lt;br /&gt;
  var folders = [],  files = [];&lt;br /&gt;
  for ( var i = 0, len = a.length; i &amp;lt; len; i ++ ) {	// &amp;gt;&lt;br /&gt;
    if ( Fso.FolderExists( a[i] ) ) { folders.push( a[i] ) }; &lt;br /&gt;
    else { files.push( a[i] ) }; &lt;br /&gt;
  }&lt;br /&gt;
  folders.sort( SortByString );&lt;br /&gt;
  files.sort( SortByString );&lt;br /&gt;
  return folders.concat( files ).join( crlf ) + crlf;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * 関数 SortPathByFileExt( pathArray )&lt;br /&gt;
 * パスを拡張子順で並べ替える&lt;br /&gt;
 * ・数字を数値順で評価&lt;br /&gt;
 * ・フォルダを先頭に集める&lt;br /&gt;
 */&lt;br /&gt;
function SortPathByFileExt( path ) {&lt;br /&gt;
  var Fso = new ActiveXObject( &amp;quot;Scripting.FileSystemObject&amp;quot; );&lt;br /&gt;
  var a = path.split( /[\r\n]+/ ),  crlf = RegExp[ &amp;quot;$&amp;amp;&amp;quot; ];&lt;br /&gt;
  var folders = [],  files = [];&lt;br /&gt;
  for ( var i = 0, len = a.length; i &amp;lt; len; i ++ ) {	// &amp;gt;&lt;br /&gt;
    if ( Fso.FolderExists( a[i] ) ) { folders.push( a[i] ) }; &lt;br /&gt;
    else { files.push( a[i] ) }; &lt;br /&gt;
  }&lt;br /&gt;
  folders.sort( SortByString );&lt;br /&gt;
  files.sort( SortByExt );&lt;br /&gt;
  return folders.concat( files ).join( crlf ) + crlf;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== メモ ==&lt;br /&gt;
動作確認は Windows XP SP3 (32bit) 上の Mery ver 3.2.3 で行ったのみです。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sukemaru</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%91%E3%82%B9%E3%82%92%E8%B2%BC%E3%82%8A%E4%BB%98%E3%81%91_(%E3%83%9D%E3%83%83%E3%83%97%E3%82%A2%E3%83%83%E3%83%97%E3%83%A1%E3%83%8B%E3%83%A5%E3%83%BC).zip&amp;diff=5480</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%91%E3%82%B9%E3%82%92%E8%B2%BC%E3%82%8A%E4%BB%98%E3%81%91_(%E3%83%9D%E3%83%83%E3%83%97%E3%82%A2%E3%83%83%E3%83%97%E3%83%A1%E3%83%8B%E3%83%A5%E3%83%BC).zip&amp;diff=5480"/>
		<updated>2020-12-30T01:55:56Z</updated>

		<summary type="html">&lt;p&gt;Sukemaru: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Sukemaru</name></author>
	</entry>
	<entry>
		<id>https://www.haijin-boys.com/wiki/index.php?title=%E5%AE%9F%E9%A8%93%E7%9A%84%E3%83%9E%E3%82%AF%E3%83%AD%E3%83%BB%E7%B7%B4%E7%BF%92%E3%83%9E%E3%82%AF%E3%83%AD%E3%81%AA%E3%81%A9&amp;diff=5479</id>
		<title>実験的マクロ・練習マクロなど</title>
		<link rel="alternate" type="text/html" href="https://www.haijin-boys.com/wiki/index.php?title=%E5%AE%9F%E9%A8%93%E7%9A%84%E3%83%9E%E3%82%AF%E3%83%AD%E3%83%BB%E7%B7%B4%E7%BF%92%E3%83%9E%E3%82%AF%E3%83%AD%E3%81%AA%E3%81%A9&amp;diff=5479"/>
		<updated>2020-12-29T21:52:03Z</updated>

		<summary type="html">&lt;p&gt;Sukemaru: 「パスを貼り付け（ポップアップメニュー）」を追加&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;練習で作ってみたマクロや、自家用に作った・改造したマクロ、実験的な要素をふくんでいて「マクロライブラリ」のトップページに載せづらいマクロなど。&amp;lt;br&amp;gt;&lt;br /&gt;
または昔つくって今は使っていないマクロの供養などに…。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 要 「[[GetKeyState.exe(キー状態取得実行ファイル)]]」 ==&lt;br /&gt;
*[[ファイルのフルパスをコピーして閉じる]] (sukemaru) update 2019/04/14　※イベントマクロ&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 要「[[includeライブラリ]]」 ==&lt;br /&gt;
*[[位置情報を保存してから「次の文字列を検索」]]＋復帰　(sukemaru) 2019/05/28&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== その他 ==&lt;br /&gt;
*[[行の表示方法を切り替える]] (sukemaru) update 2019/08/25　※ 論理行 ⇔ 表示行 トグル&lt;br /&gt;
*[[パスを貼り付け（ポップアップメニュー）]] (sukemaru)2020/12/30　※ Mery ver 3.2.2 以降 [https://www.haijin-boys.com/discussions/5835#discussion-5868]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- == あたらしいカテゴリを作る == --&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sukemaru</name></author>
	</entry>
	<entry>
		<id>https://www.haijin-boys.com/wiki/index.php?title=%E3%83%91%E3%82%B9%E3%82%92%E8%B2%BC%E3%82%8A%E4%BB%98%E3%81%91%EF%BC%88%E3%83%9D%E3%83%83%E3%83%97%E3%82%A2%E3%83%83%E3%83%97%E3%83%A1%E3%83%8B%E3%83%A5%E3%83%BC%EF%BC%89&amp;diff=5478</id>
		<title>パスを貼り付け（ポップアップメニュー）</title>
		<link rel="alternate" type="text/html" href="https://www.haijin-boys.com/wiki/index.php?title=%E3%83%91%E3%82%B9%E3%82%92%E8%B2%BC%E3%82%8A%E4%BB%98%E3%81%91%EF%BC%88%E3%83%9D%E3%83%83%E3%83%97%E3%82%A2%E3%83%83%E3%83%97%E3%83%A1%E3%83%8B%E3%83%A5%E3%83%BC%EF%BC%89&amp;diff=5478"/>
		<updated>2020-12-29T21:47:47Z</updated>

		<summary type="html">&lt;p&gt;Sukemaru: ページを新規作成（初版）&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- 「パスを貼り付け（ポップアップメニュー）」マクロ	2020/12/30 --&amp;gt;&lt;br /&gt;
__toc__ &amp;lt;br clear=all&amp;gt;&lt;br /&gt;
[[ファイル:パスを貼り付け（ポップアップメニュー）.png|link=]] &amp;lt;br clear=all&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 概要 ==&lt;br /&gt;
&lt;br /&gt;
Mery ver 3.2.2α 以降（の隠し機能）で、エクスプローラ上で「コピー」したフォルダ・ファイルのパスを、ポップアップメニューから選択した形式に整形してペーストします。&lt;br /&gt;
: → ref.　 Mery 公式フォーラムのトピック [https://www.haijin-boys.com/discussions/5835#discussion-5868 「【要望】ファイルパスの貼付け機能」]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
クリップボードのデータが &amp;lt;br&amp;gt;&lt;br /&gt;
・「エクスプローラ上でコピーしたフォルダ・ファイル（リスト形式）」でない場合 &amp;lt;br&amp;gt;&lt;br /&gt;
・「フォルダ・ファイルの&#039;&#039;&#039;フルパス&#039;&#039;&#039;のリスト（テキスト形式）」でない場合 &amp;lt;br&amp;gt;&lt;br /&gt;
・ Mery 本体のバージョンが動作要件を満たさない場合 &amp;lt;br&amp;gt;&lt;br /&gt;
は、ポップアップメニューを表示せずに通常の「貼り付け(Ctrl＋V)」をおこないます （設定項目&amp;lt;code&amp;gt;forcePaste&amp;lt;/code&amp;gt;： 初期値＝&amp;lt;source lang=&amp;quot;javascript&amp;quot; inline&amp;gt;true&amp;lt;/source&amp;gt;）。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
※ &amp;lt;span style=&amp;quot;color:#0000c0;&amp;quot;&amp;gt;動作要件：（Windows OS 上の） Mery ver 3.2.2α 以降&amp;lt;/span&amp;gt; &amp;lt;br&amp;gt;&lt;br /&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;quot;貼り付け&amp;quot;&lt;br /&gt;
* &amp;lt;code&amp;gt;¥&amp;lt;/code&amp;gt;（U+005C バックスラッシュ）を二重&#039;&#039;&#039;&amp;lt;code&amp;gt;¥¥&amp;lt;/code&amp;gt;&#039;&#039;&#039;にして貼り付け&lt;br /&gt;
* &amp;lt;code&amp;gt;¥&amp;lt;/code&amp;gt;（U+005C バックスラッシュ）を二重&#039;&#039;&#039;&amp;lt;code&amp;gt;¥¥&amp;lt;/code&amp;gt;&#039;&#039;&#039;にして &#039;&#039;&#039;二重引用符つき&#039;&#039;&#039; で &amp;quot;貼り付け&amp;quot;&lt;br /&gt;
* &#039;&#039;&#039;フォルダ名・ファイル名&#039;&#039;&#039; の部分のみにして貼り付け&lt;br /&gt;
* &#039;&#039;&#039;フォルダ名・ファイル名&#039;&#039;&#039; の部分のみを &#039;&#039;&#039;二重引用符つき&#039;&#039;&#039; で &amp;quot;貼り付け&amp;quot;&lt;br /&gt;
&lt;br /&gt;
: ※「&amp;lt;code&amp;gt;¥&amp;lt;/code&amp;gt;を二重&#039;&#039;&#039;&amp;lt;code&amp;gt;¥¥&amp;lt;/code&amp;gt;&#039;&#039;&#039;にして [二重引用符つきで] 貼り付け」の変換パターンと下記のソートパターンを組み合わせた選択項目はありません。 &amp;lt;br&amp;gt;必要なら、&#039;&#039;&#039;ソートつきで貼り付けたあとに Undo (Ctrl＋Z) してから&#039;&#039;&#039;、このマクロを再実行して「&amp;lt;code&amp;gt;¥&amp;lt;/code&amp;gt;を二重&#039;&#039;&#039;&amp;lt;code&amp;gt;¥¥&amp;lt;/code&amp;gt;&#039;&#039;&#039;にして [二重引用符つきで] 貼り付け」しなおしてください。&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;gt; 文字列順&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
いずれのソートパターンでも、フォルダ・ファイルパス内の「連続する半角数字の部分」は「数値順 (十進数)」で評価します。&lt;br /&gt;
:: i.e. 　1 &amp;lt;　002　&amp;lt;　03　&amp;lt;　5　&amp;lt;　40&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
: ※ &amp;quot;0&amp;quot; から始まる「16進数」や「数字の羅列」などを含むパスでは、望ましくない並び順になる場合があります。&lt;br /&gt;
:: i.e. 　1a1a　&amp;lt;　02a0　&amp;lt;　0010&lt;br /&gt;
: → 完全な文字列順にしたい場合は、貼り付けた後で「[[昇順で並び替え]]」「[[昇順で並び替え／降順で並び替え|昇順で並び替え／降順で並び替え トグル変換]]」「[[行並べ替え]]」などのマクロなどで並べなおしてください。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
: ※ アルファベットの大文字／小文字は区別せずに「辞書順 (OS のロケールに依存)」で評価します。&lt;br /&gt;
: ※ ひらがな／カタカナ などは区別して「unicode (UTF-16) 昇順」で評価します。&lt;br /&gt;
: ※「拡張子順*」では、拡張子の部分の数字を「文字列順」で評価します。&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;code&amp;gt;sendToClipboard&amp;lt;/code&amp;gt;（初期値＝&amp;lt;source lang=&amp;quot;javascript&amp;quot; inline&amp;gt;false&amp;lt;/source&amp;gt;） &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot; inline&amp;gt;true&amp;lt;/source&amp;gt;にすると、整形して貼り付けたデータ（テキスト形式）をクリップボードに送信します。&lt;br /&gt;
: → Ctrl＋V で整形済みのデータを再貼り付けできるようになります （Mery の「クリップボード履歴」からも再貼り付けできるようになります）。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
: ※ 整形なしの「貼り付け」では、Mery の「クリップボード履歴」に残しません。&lt;br /&gt;
: ※ このマクロを再実行して別の形式を選択して貼り付けする場合、前回の整形済みデータから &#039;&#039;&#039;&amp;quot;&#039;&#039;&#039;二重引用符&#039;&#039;&#039;&amp;quot;&#039;&#039;&#039; と「ふたつ重ねにした&amp;lt;code&amp;gt;¥&amp;lt;/code&amp;gt;記号」を消した状態から、あらためて整形しなおします （整形なしの「貼り付け」では前回と同じ形式で貼り付け）。&lt;br /&gt;
: ※ 間違えて「フォルダ／ファイル名のみ ～」で貼り付けしてしまった場合、Undo してもクリップボードに送信したデータ形式を復旧できないので再度エクスプローラ上でフォルダ・ファイルを「コピー」し直さなければなりません （フルパス形式でなくなるため、マクロを再実行してもメニューを再表示できない）。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== ソースコード ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ダウンロード&#039;&#039;&#039;　&amp;gt;&amp;gt;　「[[ファイル:パスを貼り付け（ポップアップメニュー）.zip]]」(アイコン入り)&lt;br /&gt;
: 初版： 2020/12/30&lt;br /&gt;
&amp;lt;br&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;paste_path.ico&amp;quot;&lt;br /&gt;
// #icon = &amp;quot;Mery用 マテリアルデザインっぽいアイコン.icl&amp;quot;,313&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * ---------------------------------------------------------&lt;br /&gt;
 * 「パスを貼り付け（ポップアップメニュー）」マクロ&lt;br /&gt;
 * sukemaru, 2020/12/27 - 2020/12/29 (公開版 初版: 2020/12/30)&lt;br /&gt;
 * ---------------------------------------------------------&lt;br /&gt;
 * エクスプローラ上で「コピー」したフォルダ・ファイルのパスを&lt;br /&gt;
 * ポップアップメニューから選択した形式に整形してペーストする&lt;br /&gt;
 * &lt;br /&gt;
 * 動作要件：（Windows OS 上の） Mery ver 3.2.2α 以降&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
// ---------- ▼ 設定項目 ▼ ---------- //&lt;br /&gt;
&lt;br /&gt;
// ■「フルパスのリスト」以外のデータのとき、メニューを表示せずに「貼り付け」する？&lt;br /&gt;
var forcePaste = true;	// true: 貼り付けする ／ false: なにもしない&lt;br /&gt;
&lt;br /&gt;
// ■ 整形して貼り付けたデータをクリップボードに送信する？&lt;br /&gt;
var sendToClipboard = true;	// true: 送信する ／ false: 送信しない&lt;br /&gt;
&lt;br /&gt;
// ■ ポップアップメニューを表示する位置&lt;br /&gt;
var menuPosMouse = true;	// true: マウス位置 ／ false: キャレット位置&lt;br /&gt;
&lt;br /&gt;
// ---------- ▲ 設定項目 ▲ ---------- //&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
var d = editor.ActiveDocument,  s = d.selection;&lt;br /&gt;
var grayFlag = d.ReadOnly ? meMenuGrayed : 0;&lt;br /&gt;
var r;&lt;br /&gt;
&lt;br /&gt;
// Mery.exe のバージョンチェック&lt;br /&gt;
var meryVer = + ( editor.Version.replace( /\d+/g , function( dig ) {&lt;br /&gt;
                  return dig.length &amp;lt; 2 ? &amp;quot;0&amp;quot; + dig : dig&lt;br /&gt;
                } ).replace( /\./g, &amp;quot;&amp;quot; ).slice( 0, 6 ) );&lt;br /&gt;
&lt;br /&gt;
// クリップボードデータ&lt;br /&gt;
var cb = ClipboardData,  cbData = cb.GetData();&lt;br /&gt;
var cnd = ( meryVer &amp;gt;= 30202 &amp;amp;&amp;amp; cbData.length &amp;amp;&amp;amp; /:\\.*[\r\n]+$/.test( cbData )&lt;br /&gt;
&amp;amp;&amp;amp; ( cbData.match( /:\\/g ) || [] ).length === ( cbData.match( /[\r\n]+/g ) || [] ).length );&lt;br /&gt;
&lt;br /&gt;
// ステータスバーの表示&lt;br /&gt;
var $status = Status;&lt;br /&gt;
if ( grayFlag ) { Status = &amp;quot;　ドキュメントは書き換え禁止です。&amp;quot;; }&lt;br /&gt;
&lt;br /&gt;
// パスの整形・貼り付け用メニュー&lt;br /&gt;
if ( cnd ) {&lt;br /&gt;
  var cbPathMulti = /\n(?!$)/.test( cbData );&lt;br /&gt;
  var menu = CreatePopupMenu();&lt;br /&gt;
&lt;br /&gt;
  menu.Add( &amp;quot;貼り付け (&amp;amp;P)&amp;quot;, 19, grayFlag );&lt;br /&gt;
  menu.Add( &amp;quot;&amp;quot;, 0, meMenuSeparator );&lt;br /&gt;
&lt;br /&gt;
  if ( cbPathMulti ) {&lt;br /&gt;
    menu.Add( &amp;quot;\u00A5 を \u00A5\u00A5 に置換して貼り付け (&amp;amp;C)&amp;quot;, 20, grayFlag );	//「¥」(\u00A5)&lt;br /&gt;
    menu.Add( &amp;quot;パスを 文字列順(数値順) でソートして貼り付け (&amp;amp;S)&amp;quot;, 21, grayFlag );&lt;br /&gt;
    menu.Add( &amp;quot;パスを ファイル名順* でソートして貼り付け (&amp;amp;F)&amp;quot;, 22, grayFlag );&lt;br /&gt;
    menu.Add( &amp;quot;パスを 拡張子順* でソートして貼り付け (&amp;amp;E)&amp;quot;, 23, grayFlag );&lt;br /&gt;
    menu.Add( &amp;quot;&amp;quot;, 0, meMenuSeparator );&lt;br /&gt;
&lt;br /&gt;
    menu.AddPopup( &amp;quot;二重引用符つきで \&amp;quot;貼り付け\&amp;quot; (&amp;amp;W)&amp;quot;&lt;br /&gt;
                 , sm1 = CreatePopupMenu() );&lt;br /&gt;
    sm1.Add( &amp;quot;二重引用符つきで \&amp;quot;貼り付け\&amp;quot; (&amp;amp;W)&amp;quot;, 24, grayFlag );&lt;br /&gt;
    sm1.Add( &amp;quot;\u00A5 を \u00A5\u00A5 に置換して \&amp;quot;貼り付け\&amp;quot; (&amp;amp;C)&amp;quot;, 25, grayFlag );&lt;br /&gt;
    sm1.Add( &amp;quot;パスを 文字列順(数値順) でソートして \&amp;quot;貼り付け\&amp;quot; (&amp;amp;S)&amp;quot;, 26, grayFlag );&lt;br /&gt;
    sm1.Add( &amp;quot;パスを ファイル名順* でソートして \&amp;quot;貼り付け\&amp;quot; (&amp;amp;F)&amp;quot;, 27, grayFlag );&lt;br /&gt;
    sm1.Add( &amp;quot;パスを 拡張子順* でソートして \&amp;quot;貼り付け\&amp;quot; (&amp;amp;E)&amp;quot;, 28, grayFlag );&lt;br /&gt;
    menu.Add( &amp;quot;&amp;quot;, 0, meMenuSeparator );&lt;br /&gt;
&lt;br /&gt;
    menu.AddPopup( &amp;quot;フォルダ／ファイル名のみ 貼り付け (&amp;amp;N)&amp;quot;&lt;br /&gt;
                 , sm2 = CreatePopupMenu() );&lt;br /&gt;
    sm2.Add( &amp;quot;フォルダ／ファイル名 のみを貼り付け (&amp;amp;N)&amp;quot;, 29, grayFlag );&lt;br /&gt;
    sm2.Add( &amp;quot;フォルダ／ファイル名を 文字列順(数値順) でソートして貼り付け (&amp;amp;S)&amp;quot;, 30, grayFlag );&lt;br /&gt;
    sm2.Add( &amp;quot;フォルダ／ファイル名を ファイル名順* でソートして貼り付け (&amp;amp;F)&amp;quot;, 31, grayFlag );&lt;br /&gt;
    sm2.Add( &amp;quot;フォルダ／ファイル名を 拡張子順* でソートして貼り付け (&amp;amp;E)&amp;quot;, 32, grayFlag );&lt;br /&gt;
    menu.Add( &amp;quot;&amp;quot;, 0, meMenuSeparator );&lt;br /&gt;
&lt;br /&gt;
    menu.AddPopup( &amp;quot;フォルダ／ファイル名のみを 二重引用符つきで \&amp;quot;貼り付け\&amp;quot; (&amp;amp;Q)&amp;quot;&lt;br /&gt;
                 , sm3 = CreatePopupMenu() );&lt;br /&gt;
    sm3.Add( &amp;quot;フォルダ／ファイル名を 二重引用符つきで \&amp;quot;貼り付け\&amp;quot; (&amp;amp;Q)&amp;quot;, 33, grayFlag );&lt;br /&gt;
    sm3.Add( &amp;quot;フォルダ／ファイル名を 文字列順(数値順) でソートして \&amp;quot;貼り付け\&amp;quot; (&amp;amp;S)&amp;quot;, 34, grayFlag );&lt;br /&gt;
    sm3.Add( &amp;quot;フォルダ／ファイル名を ファイル名順* でソートして \&amp;quot;貼り付け\&amp;quot; (&amp;amp;F)&amp;quot;, 35, grayFlag );&lt;br /&gt;
    sm3.Add( &amp;quot;フォルダ／ファイル名を 拡張子順* でソートして \&amp;quot;貼り付け\&amp;quot; (&amp;amp;E)&amp;quot;, 36, grayFlag );&lt;br /&gt;
  }&lt;br /&gt;
  else {&lt;br /&gt;
    menu.Add( &amp;quot;二重引用符つきで \&amp;quot;貼り付け\&amp;quot; (&amp;amp;W)&amp;quot;, 24, grayFlag );&lt;br /&gt;
    menu.Add( &amp;quot;&amp;quot;, 0, meMenuSeparator );&lt;br /&gt;
    menu.Add( &amp;quot;\u00A5 を \u00A5\u00A5 に置換して貼り付け (&amp;amp;C)&amp;quot;, 20, grayFlag );	//「¥」(\u00A5)&lt;br /&gt;
    menu.Add( &amp;quot;\u00A5 を \u00A5\u00A5 に置換して 二重引用符つきで \&amp;quot;貼り付け\&amp;quot; (&amp;amp;C)&amp;quot;, 25, grayFlag );&lt;br /&gt;
    menu.Add( &amp;quot;&amp;quot;, 0, meMenuSeparator );&lt;br /&gt;
    menu.Add( &amp;quot;フォルダ／ファイル名 のみを貼り付け (&amp;amp;N)&amp;quot;, 29, grayFlag );&lt;br /&gt;
    menu.Add( &amp;quot;フォルダ／ファイル名を 二重引用符つきで \&amp;quot;貼り付け\&amp;quot; (&amp;amp;Q)&amp;quot;, 33, grayFlag );&lt;br /&gt;
  }&lt;br /&gt;
  menu.Add( &amp;quot;&amp;quot;, 0, meMenuSeparator );&lt;br /&gt;
&lt;br /&gt;
  menu.Add( &amp;quot;貼り付けしてからアイテムを削除 (&amp;amp;M)&amp;quot;, 37, grayFlag );&lt;br /&gt;
  menu.Add( &amp;quot;アイテムを削除 (&amp;amp;D)&amp;quot;, 38 );&lt;br /&gt;
  menu.Add( &amp;quot;&amp;quot;, 0, meMenuSeparator );&lt;br /&gt;
  menu.Add( &amp;quot;キャンセル	 &amp;amp; &amp;quot;, 0 );&lt;br /&gt;
&lt;br /&gt;
  // ポップアップメニューを表示&lt;br /&gt;
  r = menu.Track( + menuPosMouse );&lt;br /&gt;
}&lt;br /&gt;
// 「フルパスのリスト」以外のデータのとき&lt;br /&gt;
else if ( forcePaste &amp;amp;&amp;amp; cbData.length &amp;amp;&amp;amp; ! grayFlag ) {&lt;br /&gt;
  r = 19;	// 「貼り付け」&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// 選択したコマンドを実行&lt;br /&gt;
if ( ! r ) { Status = $status; }&lt;br /&gt;
else {&lt;br /&gt;
  editor.ExecuteCommandByID( MEID_WINDOW_ACTIVE_PANE = 2189 );&lt;br /&gt;
&lt;br /&gt;
  // 貼り付け&lt;br /&gt;
  if ( r === 19 ) { s.Paste(); }&lt;br /&gt;
&lt;br /&gt;
  else if ( r &amp;gt;= 20 &amp;amp;&amp;amp; r &amp;lt;= 36 ) {	// &amp;gt;&lt;br /&gt;
    // ¥¥ を ¥ に置換し、二重引用符の囲いをはずす&lt;br /&gt;
    cbData = cbData.replace( /\\\\/g, &amp;quot;\\&amp;quot; )&lt;br /&gt;
                   .replace( /^(\s*)&amp;quot;+/gm, &amp;quot;$1&amp;quot; ).replace( /&amp;quot;+(\s*)$/gm, &amp;quot;$1&amp;quot; );&lt;br /&gt;
&lt;br /&gt;
    var str =&lt;br /&gt;
      // ¥ を ¥¥ に置換して貼り付け&lt;br /&gt;
      ( r === 20 ) ? Escape( cbData )&lt;br /&gt;
      // パスを 文字列順(数値順) でソートして貼り付け&lt;br /&gt;
    : ( r === 21 ) ? SortPathByString( cbData )&lt;br /&gt;
      // パスを ファイル名順* でソートして貼り付け&lt;br /&gt;
    : ( r === 22 ) ? SortPathByFileName( cbData )&lt;br /&gt;
      // パスを 拡張子順* でソートして貼り付け&lt;br /&gt;
    : ( r === 23 ) ? SortPathByFileExt( cbData )&lt;br /&gt;
&lt;br /&gt;
      // 二重引用符つきで &amp;quot;貼り付け&amp;quot;&lt;br /&gt;
    : ( r === 24 ) ? DoubleQuote( cbData )&lt;br /&gt;
      // ¥ を ¥¥ に置換して &amp;quot;貼り付け&amp;quot;&lt;br /&gt;
    : ( r === 25 ) ? DoubleQuote( Escape( cbData ) )&lt;br /&gt;
      // パスを 文字列順(数値順) でソートして &amp;quot;貼り付け&amp;quot;&lt;br /&gt;
    : ( r === 26 ) ? DoubleQuote( SortPathByString( cbData ) )&lt;br /&gt;
      // パスを ファイル名順* でソートして &amp;quot;貼り付け&amp;quot;&lt;br /&gt;
    : ( r === 27 ) ? DoubleQuote( SortPathByFileName( cbData ) )&lt;br /&gt;
      // パスを 拡張子順* でソートして &amp;quot;貼り付け&amp;quot;&lt;br /&gt;
    : ( r === 28 ) ? DoubleQuote( SortPathByFileExt( cbData ) )&lt;br /&gt;
&lt;br /&gt;
      // フォルダ／ファイル名 のみを貼り付け&lt;br /&gt;
    : ( r === 29 ) ? Extract( cbData )&lt;br /&gt;
      // フォルダ／ファイル名を 文字列順(数値順) でソートして貼り付け&lt;br /&gt;
    : ( r === 30 ) ? Extract( SortPathByString( cbData ) )&lt;br /&gt;
      // フォルダ／ファイル名を ファイル名順* でソートして貼り付け&lt;br /&gt;
    : ( r === 31 ) ? Extract( SortPathByFileName( cbData ) )&lt;br /&gt;
      // フォルダ／ファイル名を 拡張子順* でソートして貼り付け&lt;br /&gt;
    : ( r === 32 ) ? Extract( SortPathByFileExt( cbData ) )&lt;br /&gt;
&lt;br /&gt;
      // フォルダ／ファイル名を 二重引用符つきで &amp;quot;貼り付け&amp;quot;&lt;br /&gt;
    : ( r === 33 ) ? DoubleQuote( Extract( cbData ) )&lt;br /&gt;
      // フォルダ／ファイル名を 文字列順(数値順) でソートして &amp;quot;貼り付け&amp;quot;&lt;br /&gt;
    : ( r === 34 ) ? DoubleQuote( Extract( SortPathByString( cbData ) ) )&lt;br /&gt;
      // フォルダ／ファイル名を ファイル名順* でソートして &amp;quot;貼り付け&amp;quot;&lt;br /&gt;
    : ( r === 35 ) ? DoubleQuote( Extract( SortPathByFileName( cbData ) ) )&lt;br /&gt;
      // フォルダ／ファイル名を 拡張子順* でソートして &amp;quot;貼り付け&amp;quot;&lt;br /&gt;
    : ( r === 36 ) ? DoubleQuote( Extract( SortPathByFileExt( cbData ) ) )&lt;br /&gt;
    : cbData;&lt;br /&gt;
&lt;br /&gt;
    s.Text = str;&lt;br /&gt;
    if ( sendToClipboard ) { cb.SetData( str );  cb.SetData( str, 0 ); }&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  // （貼り付けしてから）アイテムを削除&lt;br /&gt;
  else if ( r &amp;gt;= 37 ) { &lt;br /&gt;
    if ( r === 37 ) { s.Paste(); }&lt;br /&gt;
    cb.ClearData();&lt;br /&gt;
    if ( ! cb.GetData() ) {&lt;br /&gt;
      Status = &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;
 * 関数 DoubleQuote( str )&lt;br /&gt;
 * 各行ごとに &amp;quot;二重引用符&amp;quot; で囲う&lt;br /&gt;
 */&lt;br /&gt;
function DoubleQuote( str ) {&lt;br /&gt;
  return str.replace( /^./gm, &amp;quot;\&amp;quot;$&amp;amp;&amp;quot; ).replace( /(.)([\r\n]+)/g, &amp;quot;$1\&amp;quot;$2&amp;quot; );&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * 関数 Escape( str )&lt;br /&gt;
 * ¥ を ¥¥ に置換する&lt;br /&gt;
 */&lt;br /&gt;
function Escape( str ) {&lt;br /&gt;
  return str.replace( /\\/g, &amp;quot;\\$&amp;amp;&amp;quot; );&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * 関数 Extract( str )&lt;br /&gt;
 * パスをフォルダ／ファイル名 だけにする&lt;br /&gt;
 */&lt;br /&gt;
function Extract( str ) {&lt;br /&gt;
  return str.replace( /^.*\\/gm, &amp;quot;&amp;quot; );&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * 関数 DigitsAsNumber( str )&lt;br /&gt;
 * 数字を数値（十進数）として評価する&lt;br /&gt;
 * masme 氏の「行並べ替え」マクロの &amp;quot;数値順変換（opt.asNum）&amp;quot; のコードを借用&lt;br /&gt;
 * ref. https://www.haijin-boys.com/wiki/%E8%A1%8C%E4%B8%A6%E3%81%B9%E6%9B%BF%E3%81%88&lt;br /&gt;
 */&lt;br /&gt;
function DigitsAsNumber( str ) {&lt;br /&gt;
  return str.toLowerCase()&lt;br /&gt;
            .replace( /(0*)([0-9]+)/g, function( str, z, n ) {&lt;br /&gt;
    var k = 0xF + n.length;&lt;br /&gt;
    return ( k &amp;gt; 0xFFF0 )&lt;br /&gt;
           ? &amp;quot;0\r\uFFF1\r&amp;quot; + str&lt;br /&gt;
           : &amp;quot;0\r&amp;quot; + String.fromCharCode( k )+ n + z + &amp;quot;;\r&amp;quot;;&lt;br /&gt;
  } );&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * 関数 SortByString( a, b )&lt;br /&gt;
 * 数字を数値順で評価して並べ替える&lt;br /&gt;
 */&lt;br /&gt;
function SortByString( a, b ) {&lt;br /&gt;
  var aN = DigitsAsNumber( a ),  bN = DigitsAsNumber( b );&lt;br /&gt;
  return aN.localeCompare( bN ) || a.localeCompare( b );&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * 関数 SortByExt( a, b )&lt;br /&gt;
 * 拡張子順で評価して並べ替える&lt;br /&gt;
 * ・拡張子より前の部分の数字は数値順で評価&lt;br /&gt;
 */&lt;br /&gt;
function SortByExt( a, b ) {&lt;br /&gt;
  var Fso = new ActiveXObject( &amp;quot;Scripting.FileSystemObject&amp;quot; );&lt;br /&gt;
  var a1 = Fso.GetExtensionName( a );  a2 = a1.toLowerCase();&lt;br /&gt;
  var b1 = Fso.GetExtensionName( b );  b2 = b1.toLowerCase();&lt;br /&gt;
  var aN = DigitsAsNumber( a ),  bN = DigitsAsNumber( b );&lt;br /&gt;
  return ( a2 &amp;lt; b2 ) ? -1&lt;br /&gt;
       : ( a2 &amp;gt; b2 ) ? 1&lt;br /&gt;
       : ( a1 &amp;lt; b1 ) ? -1&lt;br /&gt;
       : ( a1 &amp;gt; b1 ) ? 1&lt;br /&gt;
       : aN.localeCompare( bN ) || a.localeCompare( b );&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * 関数 SortPathByString( pathData )&lt;br /&gt;
 * パスをファイル名順で並べ替える&lt;br /&gt;
 * ・数字を数値順で評価&lt;br /&gt;
 * ・フォルダを先頭に集めない&lt;br /&gt;
 */&lt;br /&gt;
function SortPathByString( path ) {&lt;br /&gt;
  var a = path.split( /[\r\n]+/ ),  crlf = RegExp[ &amp;quot;$&amp;amp;&amp;quot; ];&lt;br /&gt;
  return a.sort( SortByString ).join( crlf ) + crlf;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * 関数 SortPathByFileName( pathArray )&lt;br /&gt;
 * パスをファイル名順で並べ替える&lt;br /&gt;
 * ・数字を数値順で評価&lt;br /&gt;
 * ・フォルダを先頭に集める&lt;br /&gt;
 */&lt;br /&gt;
function SortPathByFileName( path ) {&lt;br /&gt;
  var Fso = new ActiveXObject( &amp;quot;Scripting.FileSystemObject&amp;quot; );&lt;br /&gt;
  var a = path.split( /[\r\n]+/ ),  crlf = RegExp[ &amp;quot;$&amp;amp;&amp;quot; ];&lt;br /&gt;
  var folders = [],  files = [];&lt;br /&gt;
  for ( var i = 0, len = a.length; i &amp;lt; len; i ++ ) {	// &amp;gt;&lt;br /&gt;
    if ( Fso.FolderExists( a[i] ) ) { folders.push( a[i] ) }; &lt;br /&gt;
    else { files.push( a[i] ) }; &lt;br /&gt;
  }&lt;br /&gt;
  folders.sort( SortByString );&lt;br /&gt;
  files.sort( SortByString );&lt;br /&gt;
  return folders.concat( files ).join( crlf ) + crlf;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * 関数 SortPathByFileExt( pathArray )&lt;br /&gt;
 * パスを拡張子順で並べ替える&lt;br /&gt;
 * ・数字を数値順で評価&lt;br /&gt;
 * ・フォルダを先頭に集める&lt;br /&gt;
 */&lt;br /&gt;
function SortPathByFileExt( path ) {&lt;br /&gt;
  var Fso = new ActiveXObject( &amp;quot;Scripting.FileSystemObject&amp;quot; );&lt;br /&gt;
  var a = path.split( /[\r\n]+/ ),  crlf = RegExp[ &amp;quot;$&amp;amp;&amp;quot; ];&lt;br /&gt;
  var folders = [],  files = [];&lt;br /&gt;
  for ( var i = 0, len = a.length; i &amp;lt; len; i ++ ) {	// &amp;gt;&lt;br /&gt;
    if ( Fso.FolderExists( a[i] ) ) { folders.push( a[i] ) }; &lt;br /&gt;
    else { files.push( a[i] ) }; &lt;br /&gt;
  }&lt;br /&gt;
  folders.sort( SortByString );&lt;br /&gt;
  files.sort( SortByExt );&lt;br /&gt;
  return folders.concat( files ).join( crlf ) + crlf;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== メモ ==&lt;br /&gt;
動作確認は Windows XP SP3 (32bit) 上の Mery ver 3.2.3 で行ったのみです。&lt;/div&gt;</summary>
		<author><name>Sukemaru</name></author>
	</entry>
</feed>