秀丸マクロ: テンプレートファイルの内容をコピペする
テンプレートファイルの内容をコピペする
テンプレートファイルの内容を、
現在開いているファイルにコピペするプログラムです。
テンプレートファイルを自分で開いてコピペするのが面倒だったので
マクロを作りました。
秀丸マクロ プログラム
コードは次の通りです。下で簡単な解説をしています。
最初にテンプレートファイルのパスを記述する部分がありますので、 そこだけ入力してください。
// ------------------------------------------- // テンプレートファイルをコピペするプログラム // ------------------------------------------- // ******************************************************* // テンプレートファイルのパスを記述 例: "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」が自分自身(アクティブなファイル) を指定することができないからです