「すべて戻す」の版間の差分

(ページを作成)
 
(<source>タグを<syntaxhighlight>タグに置き換え)
 
(他の1人の利用者による、間の1版が非表示)
1行目: 1行目:
__toc__
<br>
<br>
以下のマクロは、いずれもループ処理で Undo 操作を連続実行させるものなので、「無限ループ」防止のために「3秒」の初期値で制限時間を設定してあります。
以下のマクロは、いずれもループ処理で Undo 操作を連続実行させるものなので、「無限ループ」防止のために「3秒」の初期値で制限時間を設定してあります。
8行目: 9行目:
</div>
</div>
<br>
<br>
== ダウンロード ==
ダウンロード >> 「[[ファイル:すべて戻す.zip]]」(アイコン入り)
:* すべて戻す.js
:* もっとたくさん元に戻す.js


== すべて戻す ==
== すべて戻す ==


最後に保存したときの状態まで「元に戻す」(Undo) を連続試行します。<br><br>
最後に保存したときの状態まで「元に戻す (Undo)」を連続試行します。<br><br>
[ファイル] メニュー >> [読み直し] >> [自動選択] するのと同じ結果になるとおもいますが、このマクロで元に戻した内容は「やり直し」(Redo) 可能です。<br>
[ファイル] メニュー >> [読み直し] >> [自動選択] するのと同じ結果になるとおもいますが、このマクロで元に戻した内容は「やり直し (Redo)」可能です。<br>
また、このマクロは『無題』タブでも利用できます。
また、このマクロは『無題』タブでも利用できます。<br>
<br>
<br>


=== ソースコード ===
; ソースコード
<source lang="javascript">
<syntaxhighlight lang="javascript">
#title = "すべて戻す"
#title   = "すべて戻す"
#tooltip = "最後に保存したときの状態まで戻す"
#tooltip = "最後に保存したときの状態まで戻す"
// #icon = "undo_more.ico"


// ---------- ▼ 設定項目 ▼ ----------
// ---------- ▼ 設定項目 ▼ ----------
35行目: 43行目:
   d.Undo();  undoCount ++;
   d.Undo();  undoCount ++;
   elpased = new Date() - restart; // 経過時間(ミリ秒)
   elpased = new Date() - restart; // 経過時間(ミリ秒)
} while ( ! d.Saved && elpased < 3000 );
} while ( ! d.Saved && elpased < limit );


Status = " ... " + undoCount + " 回 UNDO しました。  [ "
Status = " ... " + undoCount + " 回 UNDO しました。  [ "
+ ( elpased / 1000 ).toFixed( 3 ).replace( /\./, ". " ) + " 秒 ]";
+ ( elpased / 1000 ).toFixed( 3 ).replace( /\./, ". " ) + " 秒 ]";
</source>
</syntaxhighlight>
<br>
<br>


== もっとたくさん元に戻す ==
== もっとたくさん元に戻す ==


「最後に保存したときの状態」よりも前の「Mery で開いたときの状態」まで元に戻したい場合は、こちらのマクロをご利用ください。
「最後に保存したときの状態」よりも前の「Mery で開いたときの状態」まで元に戻したい場合は、こちらのマクロをご利用ください。<br>
<br>
<br>


=== ソースコード ===
; ソースコード
<source lang="javascript">
<syntaxhighlight lang="javascript">
#title = "もっとたくさん元に戻す"
#title = "もっとたくさん元に戻す"
#tooltip = "Mery で開いたときの状態まで元に戻す"
#tooltip = "Mery で開いたときの状態まで元に戻す"
// #icon = "restore[5].ico"


// ---------- ▼ 設定項目 ▼ ----------
// ---------- ▼ 設定項目 ▼ ----------
67行目: 76行目:
   d.Undo();  undoCount ++;
   d.Undo();  undoCount ++;
   elpased = new Date() - restart; // 経過時間(ミリ秒)
   elpased = new Date() - restart; // 経過時間(ミリ秒)
} while ( elpased < 3000 );
} while ( elpased < limit );


Status = " ... " + undoCount + " 回 UNDO しました。  [ "
Status = " ... " + undoCount + " 回 UNDO しました。  [ "
+ ( elpased / 1000 ).toFixed( 3 ).replace( /\./, ". " ) + " 秒 ]";
+ ( elpased / 1000 ).toFixed( 3 ).replace( /\./, ". " ) + " 秒 ]";
</source>
</syntaxhighlight>
<br>
<br>


== メモ ==
== メモ ==
このマクロは、「[[コンパクトメニュー]]」マクロ用の独自コマンドとしてつくった機能を単独マクロとして改編したものです。 単独版の「すべて戻す」マクロにするにあたり、制限時間を任意に変更するための設定項目を追加してあります。
このマクロは、「[[コンパクトメニュー]]」マクロ用の独自コマンドとしてつくった機能を単独マクロとして改編したものです。 単独版の「すべて戻す」マクロにするにあたり、制限時間を任意に変更するための設定項目を追加してあります。
<br><br>
-----
*2021/01/20
:制限時間の設定値が反映されず3秒固定になってしまっていたミスを修正。

2023年5月17日 (水) 04:28時点における最新版


以下のマクロは、いずれもループ処理で Undo 操作を連続実行させるものなので、「無限ループ」防止のために「3秒」の初期値で制限時間を設定してあります。

※ 完全に元に戻りきらなかった場合は、念のためもう一度実行してみてください。

Mery で開いたまま他のエディタなどで編集・上書き保存してから Mery 側での「読み直しますか?」の確認ダイアログで「はい」を選んで読み直ししてしまった場合には元に戻すことができません。


ダウンロード編集

ダウンロード >> 「ファイル:すべて戻す.zip」(アイコン入り)

  • すべて戻す.js
  • もっとたくさん元に戻す.js


すべて戻す編集

最後に保存したときの状態まで「元に戻す (Undo)」を連続試行します。

[ファイル] メニュー >> [読み直し] >> [自動選択] するのと同じ結果になるとおもいますが、このマクロで元に戻した内容は「やり直し (Redo)」可能です。
また、このマクロは『無題』タブでも利用できます。

ソースコード
#title   = "すべて戻す"
#tooltip = "最後に保存したときの状態まで戻す"
// #icon = "undo_more.ico"

// ---------- ▼ 設定項目 ▼ ----------

// ■ 「無限ループ」防止のため制限時間
var limit = 3000;	// 単位: ミリ秒

// ---------- ▲ 設定項目 ▲ ----------

var d = editor.ActiveDocument;
var undoCount = 0,  restart = new Date(),  elpased;
limit = ( limit > 0 ) ? limit : 3000;

do {
  d.Undo();  undoCount ++;
  elpased = new Date() - restart;	// 経過時間(ミリ秒)
} while ( ! d.Saved && elpased < limit );

Status = " ... " + undoCount + " 回 UNDO しました。  [ "
+ ( elpased / 1000 ).toFixed( 3 ).replace( /\./, ". " ) + " 秒 ]";


もっとたくさん元に戻す編集

「最後に保存したときの状態」よりも前の「Mery で開いたときの状態」まで元に戻したい場合は、こちらのマクロをご利用ください。

ソースコード
#title = "もっとたくさん元に戻す"
#tooltip = "Mery で開いたときの状態まで元に戻す"
// #icon = "restore[5].ico"

// ---------- ▼ 設定項目 ▼ ----------

// ■ 「無限ループ」防止のため制限時間
var limit = 3000;	// 単位: ミリ秒

// ---------- ▲ 設定項目 ▲ ----------

var d = editor.ActiveDocument;
var undoCount = 0,  restart = new Date(),  elpased;
limit = ( limit > 0 ) ? limit : 3000;

d.Saved = false;
do {
  d.Undo();  undoCount ++;
  elpased = new Date() - restart;	// 経過時間(ミリ秒)
} while ( elpased < limit );

Status = " ... " + undoCount + " 回 UNDO しました。  [ "
+ ( elpased / 1000 ).toFixed( 3 ).replace( /\./, ". " ) + " 秒 ]";


メモ編集

このマクロは、「コンパクトメニュー」マクロ用の独自コマンドとしてつくった機能を単独マクロとして改編したものです。 単独版の「すべて戻す」マクロにするにあたり、制限時間を任意に変更するための設定項目を追加してあります。


  • 2021/01/20
制限時間の設定値が反映されず3秒固定になってしまっていたミスを修正。
スポンサーリンク