Home > 秀丸エディタとマクロ

秀丸エディタのマクロの基本的なコード

新規作成日 2018-07-02
最終更新日

コードの全てを理解することができないので、使用するコードの記述は、一覧に残しておくことが大切です。

基本的なコード

秀丸エディタのマクロのヘルプは、コマンド名でまとめてあります。 そこで、目的から検索する逆引きで探したい場合は、微妙に困ります。

秀丸エディタは、歴史のあるエディタですので、マクロの情報は、ユーザーの有志が、情報を公開してくれています。有益な情報を見つけたら、そのページのリンクも記録しておくことも大切です。

秀丸エディタは、コミュニティによるサポートが手厚いことで知られています。わからないことがあれば、秀シリーズサポートフォーラムで問い合わせましょう。

多くのコマンドは、マクロの記録で記録することができます。

カーソルの存在する行を選択するマクロ

shift+F6で選択を開始し、行末記号(\n)を検索します。

	beginsel;	// 選択を開始
	searchdown "\\n" , regular, hilight;	// 行末まで選択

shift+F6で選択を開始し、Endキーを押す。

	beginsel;	// 選択を開始
	golineend;	// 行末に移動

カーソル移動

行頭に移動する

Homeキーを押す

	golinetop;	// 行頭に移動する

カーソルを下げる

↓下矢印キーを2回選択する

	down 2;

カーソルを行の先頭に移動する

Homeキーを押す

	golinetop;

ファイルの先頭に移動する

Ctrl+Homeを押す

	gofiletop;

ファイルの末尾に移動する

Ctrl+Endを押す

	gofileend;

選択した範囲を取得する

$s = gettext(seltopx,seltopy,selendx,selendy);

$sは、文字列変数です。文字列の最初に、$をつけ、数値変数には、#をつけます。

挿入

文字列をカーソル位置に挿入する

insert "挿入";

改行を挿入する

insertreturn;

選択を解除する

Escキーを押す

	escape;

選択範囲を削除する

	beginsel;	// shift+F6で選択を開始する
	golineend;	// Endで行末に移動する
	delete;		// 削除

カーソル位置の文字コードを取得する

ファイル全てを処理する際の条件式に使う事が多い

Code
  • ファイルの最後の[EOF]の上の場合は-1(eofという定数と同じ値)になります。
  • 改行文字の上の場合は0x0D
  • フリーカーソルモードの時に、カーソルが改行文字より後ろに位置する場合はcodeの値は0になります。

空白ではない行に移動する。

カーソルを行頭に移動して、文字があるか確認します。改行文字であれば、その行には文字はありません。

// 空白行をスキップする
golinetop;	// 行頭に移動する
while(code == 0x0D)		//  0x0Dは、改行コード
{
	down 1;	// 次の行に移動する
	golinetop;	// 行頭に移動する
} 

カーソル行の文字列を取得する

		// カーソル行の内容を取得する
		golinetop;	// 行頭に移動する
		beginsel;	// 選択を開始
		golineend;	// 行末に移動
		$workString = gettext(seltopx,seltopy,selendx,selendy);	// 選択行の内容を取得する

繰り返し構文

秀丸マクロの繰り返し構文には、for文がありません。そのため、繰り返しには、while を使用します。
while(条件式){
//条件式が0以外(真)の場合この部分の記述(処理)を、
//条件式が0(偽)になるまで繰り返し実行する
} 

条件分岐構文

if(条件式){
    //条件式が0以外(真)の場合この部分の記述(処理)を実行する
}
else{
    //条件式が0(偽)の場合この部分の記述(処理)を実行する
}

メッセージ

各種のメッセージボックスが用意されています。

message "メッセージ";

Home Editor Tools Operation TagScript HPSpace

Copyright (C) 2011 Horio Kazuhiko(kukekko) All Rights Reserved.
kukekko@gmail.com
ご連絡の際は、お問い合わせページのURLの明記をお願いします。
「掲載内容は私自身の見解であり、所属する組織を代表するものではありません。」