秀丸マクロ: テンプレートファイルの内容をコピペする

テンプレートファイルの内容をコピペする

テンプレートファイルの内容を、 現在開いているファイルにコピペするプログラムです。
テンプレートファイルを自分で開いてコピペするのが面倒だったので マクロを作りました。

秀丸マクロ プログラム

コードは次の通りです。下で簡単な解説をしています。

最初にテンプレートファイルのパスを記述する部分がありますので、 そこだけ入力してください。

// -------------------------------------------
// テンプレートファイルをコピペするプログラム
// -------------------------------------------

// *******************************************************
// テンプレートファイルのパスを記述  例: "d:\\test\\a.txt" 
$file_name = "";
// *******************************************************


// 実行中のウィンドウハンドルを取得(メインファイル)
#h_main = hidemaruhandle(0);

// 新規作成状態の見えない秀丸エディタが起動(ステルスファイル)
openfile "/h " + $file_name;

//  実行中のウィンドウハンドルを取得(ステルスファイル)
#h_sub = hidemaruhandle(0);

// すべてを選択
selectall;

// 選択範囲の文字列を取得(範囲選択を維持しない)
$str = gettext(seltopx,seltopy,selendx,selendy, 1);

// メインファイルをアクティブにする
setactivehidemaru #h_main;

// ステルスファイルを閉じる
closehidemaruforced #h_sub;

// インサート
insert $str;

コード解説

前準備

次の部分でテンプレートファイルのパスを指定すれば準備完了です。 あとはマクロプログラムを実行してください。

// ********************************************
// ファイルのパスを記述  例: "d:\\test\\a.txt" 
$file_name = "";
// ********************************************

プログラミングの流れ

全体的なプログラムの流れは次の通りです。

  • テンプレートファイルをステルスファイルとして開く
  • テンプレートファイルの内容をコピー
  • ステルスファイルを閉じる
  • 現在のファイルにペースト

closehidemaruforcedについて

最後の方に次のコードがあります。

// メインファイルをアクティブにする
setactivehidemaru #h_main;

// ステルスファイルを閉じる
closehidemaruforced #h_sub;
先にメインファイルをアクティブにしてから、 ステルスファイルを閉じないとうまくいきません。 これは「closehidemaruforced」が自分自身(アクティブなファイル) を指定することができないからです
秀丸マクロ