|
白馬の王子様さん、こんにちは。
改良版のマクロが末尾にあります。
・抜き書きファイル名を "<本文ファイル名>_抜き書き.txt" とする
・選択範囲が複数行にまたがる場合の対応 (改行を空白に置換する)
・同一行内で複数箇所の抜き書きに対応
・抜き書きファイルを別ウィンドウで開く (すでに開かれている場合は再読み込み)
> Nukigaki.txtを現状のように、本文ファイルと同じ所に保存すると同時に、秀丸
>上で(裏Window上で)開いておいてほしい
対応しましたが、アクティブウィンドウが一瞬切り替わるのは避けられません。
あらかじめ手動で開いておくだけで良いのではないでしょうか。
ファイルの排他制御の設定次第でお好みの動作になります。
《→ その他 - 動作環境 - 上級者向け設定 - 排他制御》
> あと、できれば、各抜き書きの間は1行分スペースがあると、Nukigaki.txtが読
>みやすくなりそうです。
これは可能ですが、INI ファイル形式の「1行1件」という前提と相性が悪く、「読み
やすくする」という目的に対する解決策としては筋が悪いと思います。
単に行間を広く設定するだけではいけませんか?
《→ その他 - ファイルタイプ別の設定 - 体裁 - 詳細 - 行間》
今後のマクロ作成のご参考になれば幸いです。
// nukigaki.mac
loaddll "hmjre.dll";
$nukigaki = leftstr(filename, strrstr(filename, ".")) + "_抜き書き.txt";
if (selecting) {
$key = basename + "(" + str(seltoplineno) + "," + str(seltopcolumn) + "):";
$value = gettext(seltopx, seltopy, selendx, selendy, true);
} else {
$key = basename + "(" + str(lineno) + "," + str(column) + "):";
$value = gettext2(0, lineno, 1024, lineno, true);
}
$value = dllfuncstr("ReplaceRegular", "\\r?\\n", $value, 0, " ", 2); // 改行
を空白に
writeinistr $nukigaki, basename, $key, $value;
freedll;
// ▼抜き書きファイルを開き、元のウィンドウをアクティブにする
#handle = hidemaruhandle(0);
openfile "/i /m4 " + $nukigaki;
setactivehidemaru #handle;
|
|