ホームに戻る | 自作秀丸マクロ 自作Excelマクロ
カーソル上の数値か、数値の入力で強調コードの意味を表示するマクロです。(Ver.5.xxには未対応)
//// 数値から強調定義の意味を表示する Yasuhisa,2004 ////
$youto1[0x01] = "強調1"; // 1 ; 0000 0001
$youto1[0x41] = "強調2"; // 65 ; 0100 0001
$youto1[0x81] = "強調3"; // 129 ; 1000 0001
$youto1[0xC1] = "強調4"; // 193 ; 1100 0001
$youto1[0x05] = "特に強調1"; // 5 ; 0000 0101
$youto1[0x45] = "特に強調2"; // 69 ; 0100 0101
$youto1[0x03] = "行の強調1"; // 3 ; 0000 0011
$youto1[0x43] = "行の強調2"; // 67 ; 0100 0011
$youto2[0x08] = "大文字/小文字を区別しない"; // 8 ; 0000 1000
$youto2[0x10] = "正規表現"; // 16 ; 0001 0000
$youto2[0x20] = "単語"; // 32 ; 0010 0000
// 数値取得 //
if( selecting == false ) selectword;
#HilightCode = val( gettext( seltopx, seltopy, selendx, selendy ) ); // カーソル上の数値
if( #HilightCode == 0 ) {
#HilightCode = val(input( "調べたい強調定義用の番号" )); // 数値入力
if( #HilightCode == 0 ) endmacro;
}
#code1 = #HilightCode & 0xC7;
#code2[0] = #HilightCode & 0x08;
#code2[1] = #HilightCode & 0x10;
#code2[2] = #HilightCode & 0x20;
$msg = "強調定義用の番号 [ " + str(#HilightCode) + " ]\n----------\n";
// 判定処理 //
if( $youto1[#code1] == "" )
$msg = $msg + "不正な数値です!!";
else{
// 表示方法
$msg1 = $youto1[#code1];
// 検索方法
#num = 0;
while( #num <= 2 ){
if( #code2[#num] != 0 ){
if( $msg2 != "" ) $msg2 = $msg2 + ", ";
$msg2 = $msg2 + $youto2[#code2[#num]];
}
#num = #num + 1;
}
$msg = $msg + "表示方法 : " + $msg1 + "\n検索方法 : " + $msg2;
}
// 表示 //
message $msg;
現在のカーソル上のカラーコードを表示させるマクロです。まあ、なにをやっているかは…見ればわかると思います。(^^;; ちなみにメッセージは秀丸のヘルプより引用しています。
// カーソル上のカラーコードを表示する。
#Bubun = colorcode & 0x001F;
#Tab = colorcode & 0x0020;
#ZenSpace = colorcode & 0x0040;
#HanSpace = colorcode & 0x0080;
#Select = colorcode & 0x0100;
#CtrlCode = colorcode & 0x0200;
#OpenByShell = colorcode & 0x0400;
#OpenByHidemaru = colorcode & 0x0800;
#E_mail = colorcode & 0x1000;
$Bubun_msg[ 0] = "普通の部分";
$Bubun_msg[ 3] = "コメント部分";
$Bubun_msg[ 4] = "強調1";
$Bubun_msg[ 5] = "特に強調1";
$Bubun_msg[ 6] = "行の強調1";
$Bubun_msg[ 7] = "強調2";
$Bubun_msg[ 8] = "特に強調2";
$Bubun_msg[ 9] = "行の強調2";
$Bubun_msg[11] = "URL部分";
$Bubun_msg[12] = "E-mail部分";
$Bubun_msg[13] = "HTMLタグ全体部分";
$Bubun_msg[14] = "HTMLタグのエレメント";
$Bubun_msg[15] = "HTMLタグのアトリビュート";
$Bubun_msg[16] = "[EOF]";
$Bubun_msg[20] = "文字定数";
$Bubun_msg[21] = "ファイル名部分";
$Bubun_msg[22] = "強調3";
$Bubun_msg[23] = "強調4";
$msg = $Bubun_msg[#Bubun];
if( #Tab != 0 ) $msg = $msg + "\n" + "タブ文字";
if( #ZenSpace != 0 ) $msg = $msg + "\n" + "全角空白";
if( #HanSpace != 0 ) $msg = $msg + "\n" + "半角空白";
if( #Select != 0 ) $msg = $msg + "\n" + "範囲選択";
if( #CtrlCode != 0 ) $msg = $msg + "\n" + "制御コード";
if( #OpenByShell != 0 ) $msg = $msg + "\n" + "「...を開く」が出来る場所";
if( #OpenByHidemaru != 0 ) $msg = $msg + "\n" + "「...を秀丸で開く」が出来る場所";
// if( #E_mail != 0 ) $msg = $msg + "\n" + "E-mail部分";
message "ColorCode = " + str( colorcode ) + "\n\n" + $msg;
強調表示ファイルを直接書き換えるときに必要となる、強調番号を算出します。Ver.4.xxになってから、「正規表現」指定時に「大文字/小文字の区別しない」がチェックできるようになっていたので修正しました。
//// 初期設定 ////
$youto1[0] = "強調1";
$youto1[1] = "強調2";
$youto1[2] = "強調3";
$youto1[3] = "強調4";
$youto1[4] = "特に強調1";
$youto1[5] = "特に強調2";
$youto1[6] = "行の強調1";
$youto1[7] = "行の強調2";
$youto2[0] = "大文字/小文字を区別しない";
$youto2[1] = "正規表現";
$youto2[2] = "単語の検索";
$check_str[0] = "□"; // 未チェック
$check_str[1] = "■"; // チェック済み
$check_str[2] = "×"; // チェック不可
#hilight1[0] = 0x01;
#hilight1[1] = 0x41;
#hilight1[2] = 0x81;
#hilight1[3] = 0xC1;
#hilight1[4] = 0x05;
#hilight1[5] = 0x45;
#hilight1[6] = 0x03;
#hilight1[7] = 0x43;
#hilight2[0] = 0x08;
#hilight2[1] = 0x10;
#hilight2[2] = 0x20;
//// 『表示方法』の選択 ////
menuarray $youto1, 8;
#menu1 = result - 1;
if( #menu1 == -1 ){
endmacro;
}else{
#kyoutyou = #hilight1[#menu1];
}
$str = $youto1[#menu1];
//// 『検索方法』の選択 ////
while( #menu2 != -1 ){
$menu_str[0] = $check_str[#check[0]] + $youto2[0];
$menu_str[1] = $check_str[#check[1]] + $youto2[1];
$menu_str[2] = $check_str[#check[2]] + $youto2[2];
menuarray $menu_str, 3;
#menu2 = result - 1;
if( #menu2 == 0 ){
// 『大文字/小文字を区別しない』の切り替え
#kyoutyou = #kyoutyou ^ #hilight2[0];
#check[0] = #check[0] ^ 1;
}else if( #menu2 == 1 ){
// 『正規表現』の切り替え
#kyoutyou = #kyoutyou ^ #hilight2[1];
#check[1] = #check[1] ^ 1;
}else if( #menu2 == 2 ){
// 『単語の検索』の切り替え
#kyoutyou = #kyoutyou ^ #hilight2[2];
#check[2] = #check[2] ^ 1;
}
}
//// 『検索方法』の文字列追加 ////
if( #check[0] == 1 ) $str = $str + "\n" + $youto2[0];
if( #check[1] == 1 ) $str = $str + "\n" + $youto2[1];
if( #check[2] == 1 ) $str = $str + "\n" + $youto2[2];
//// 表示 ////
message $str + "\n\n上記の組み合わせは、『" + str( #kyoutyou ) + "』です。";
書き込み禁止にします。ちなみにファイル属性を変えているわけではないのでご注意を。(それくらいわかる?)
// 上書き禁止にする
if( readonly == 0 ){
readonlyswitch;
}