- 作成者投稿
- 2019年1月16日 10:31 pm #25548snowParticipant
開発お疲れ様です。
編集中のxxx.htmlに対して、そのままの状態で保存&置換した状態でxxx2.htmlで保存、xxx.htmlを開き直す…という操作をするため以下のようなマクロを書いたのですが…。var current = document.FullName;
document.Save(current);
document.selection.Replace(“img src=\\\x22[^\\\x22]+\\\x22″,”img”,eeReplaceAll | eeFindReplaceRegExp,eeExFindSeparateCRLF);
var current2 = current.replace(“.html”, “2.html”);
document.Save(current2);
//document.close();
editor.OpenFile(current);
(以下略)1. 「名前をつけて保存」した状態と考えてxxx2.htmlを閉じようとしたのですが、document.close()がない状態で想定どおりの動作をします。
2. そして、document.close()をすると、xxx2.htmlではなく同時に開いている別のタブがクローズされます。
これはどのような理由なのでしょうか。
さらに、「上書き保存」と同様のコマンドは存在しないのでしょうか。よろしくお願いします。
2019年1月17日 11:00 am #25549snowParticipant追加で…。
3. このマクロを実行すると、読み直しているので右のマーク領域には何もないことを期待しているのですが、置換した箇所がすべてマークされているようです。2019年1月18日 6:18 am #25552Yutaka EmuraKeymastersnow 様
いつもお世話になっております。江村です。
1. document.Save(current2); で名前を付けて保存をした時点では、文書は xxx2.html の 1 つしかないので、この文書が閉じられます。
2. 上書き保存を行いたい場合は、
editor.ExecuteCommandByID(4099);
を実行していただくか、現在の文書名で、document.Save( document.FullName ) としていただければ可能です。
3. マクロを実行すると、読み直しとありますが、既に同じファイルが開かれている場合は、読み直しは行わないようになっています。明示的に読みなおしを行には、
editor.ExecuteCommandByID(4109);
とすれば可能です。何を指定したらいいかわからない場合は、[マクロの記録] コマンドを使うと便利です。
よろしくお願い申し上げます。
2019年1月18日 11:20 pm #25554snowParticipantご返信ありがとうございます。
すみません、うまくお伝えできていないようですのでもう少し細かく箇条書きしてみます。0. xxx.htmlを含む複数タブの状態で実行(現状10タブ、xxx.htmlがアクティブ)
1. xxx.htmlを保存
2. xxx.html内を置換
3. xxx2.htmlで別名保存(ここまで問題なし)
4. // xxx2.htmlをクローズ
問題点1:xxx2.htmlではなく別のタブが閉じる(これが一番意味不明な挙動です。このため現状コメント)
5. xxx.htmlを開く(3で別名保存した結果xxx.htmlはない=「既に同じファイルが開かれている場合」ではありません)
問題点2:xxx2.htmlと同じタブに読まれている?(期待どおりxxx.htmlが開かれる)
問題点3:2の置換時のマーカーが消えない3で別名保存しているが内部のタブの認識はxxx.htmlのままで、その影響で5で開くときに完全にならない?ように見えます。
よろしくお願いします。
2019年1月19日 4:39 am #25556Yutaka EmuraKeymastersnow 様
いつもお世話になっております。江村です。
もしかして、[タブの自動整列] が設定されているということはないでしょうか? タブで右クリックして表示されるメニューで、[タブの整列] サブ メニューで、[タブの自動整列] がチェックされていれば、このチェックを解除してお試しください。
よろしくお願い申し上げます。
2019年1月19日 8:26 am #25558snowParticipantありがとうございます。
確認してみましたが、タブの整列は「昇順」のみにチェックがある状態です。 - 作成者投稿
- このトピックに返信するにはログインしてください。