秀丸マクロの質問です。

次のような元ファイルがあります。
例---------------------------
AAAAAAAAAAAAAAAAAAAAA
BBBBBBBBBBBBBBBBBBBBB
CCCCCCCCCCCCCCCCCCCCC

AAAAAAAAAAAAAAAAAAAAA
BBBBBBBBBBBBBBBBBBBBB
CCCCCCCCCCCCCCCCCCCCC

以下同じ構造で続く
----------------------------
これに別ファイルがありまして
例--------------------------
ああああああああああああ
いいいいいいいいいいいい
うううううううううううう
以下え、おと続く
----------------------------
元ファイルの
CCCCCCCCCCCCCCCCCCCCC
の部分に別ファイルの上からの行を順に挿入するにはどうしたらよいでしょうか。

結果イメージ---------------------------------------

AAAAAAAAAAAAAAAAAAAAA
BBBBBBBBBBBBBBBBBBBBB
ああああああああああああ

AAAAAAAAAAAAAAAAAAAAA
BBBBBBBBBBBBBBBBBBBBB
いいいいいいいいいいいい
---------------------------
よろしくお願いいたします。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2008/02/01 17:34:45
  • 終了:2008/02/08 17:35:02

回答(1件)

id:bonlife No.1

回答回数421ベストアンサー獲得回数752008/02/02 14:25:01

ポイント60pt

元ファイルを開いて、別ファイルは閉じた状態で実行すると動くようなマクロを書いてみました。

$target_filenameに入れる別ファイルなどは適宜修正してください。

$original_filename = filename;
$target_filename = "02.txt";
$target_string = "CCCCCCCCCCCCCCCCCCCCC\n";

gofiletop;
openfile $target_filename;

// 変換に使うファイルの終わりになるまで処理
while (code != eof) {
    // 1行分(改行含む)をコピー
    beginsel;
    golineend;
    right;
    copy;
    // 元ファイルに戻って置換
    beginclipboardread;
    $replace_string = getclipboard;
    setactivehidemaru findhidemaru($original_filename);
    replacedown $target_string, $replace_string, regular;
    if (!result) break; // replacedown に失敗したらループを抜ける
    setactivehidemaru findhidemaru($target_filename);
}

// 元ファイルをアクティブにして、変換ファイルを閉じる
setactivehidemaru findhidemaru($original_filename);
closehidemaru findhidemaru($target_filename);

こういったものも、無理に秀丸マクロでやるよりもスクリプト言語で対応した方が速いと思います。

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません