|
マクロ勉強中の可愛村のたかしです。カーソルのある行を罫線で囲むマクロを考えて
います。
いつものことなのですが、目標の形になりません。マクロの31行と45行の文が
実行されていないように見えます。 間違いは何処にあるのでしょうか?
(見る画面で、罫線の位置が違って見えるかもしれませんが、自作マクロでは、左側
の罫線が鍵型になっていません)
また、マクロ文を短くまとめたいのですが、よい方法はないでしょうか?
目標の整形した文
あああああああああああああああああ
あああああああああああああああああ
┏━━━━━━━━━━━━━━┓
┃ああああああああああああああ┃
┗━━━━━━━━━━━━━━┛
ああああああああああああああああ
あああああああああああああ
マクロ実行後の文
あああああああああああああああああ
あああああああああああああああああ
━━━━━━━━━━━━━━━┓
┃ああああああああああああああ┃
━━━━━━━━━━━━━━━┛
ああああああああああああああああ
あああああああああああああ
//カーソル行を囲む
//罫線
$a[0] = "─" ; $a[1] = "│" ;
$a[2] = "┌" ; $a[3] = "┐" ;
$a[4] = "└" ; $a[5] = "┘" ;
$a[6] = "━" ; $a[7] = "┃" ;
$a[8] = "┏" ; $a[9] = "┓" ;
$a[10] = "┗" ; $a[11] = "┛" ;
//線種の選択
menu "─ 細線" , "━ 太線" ;
#r = result;
#r = ( #r -1 ) * 6 ;
if (linelen > 0) {
#len = linelen;
if (#len / 2 * 2 != #len) #len = #len + 1;
#len = #len + 2 ;
golinetop;
insert $a[ #r + 1 ] ;
golineend;
insert $a[ #r + 1 ] + "\n" ;
golinetop;
insert $[ #r + 4 ] ;
#a = 1 ;
while(#a <= #len ){
insert $a[ #r ] ;
#a = #a + 2;
}
insert $a[ #r + 5 ] ;
golinetop;
up;
up;
golineend;
insert "\n" ;
insert $[ #r + 2 ] ;
#a = 1 ;
while( #a <= #len ){
insert $a[ #r ] ;
#a = #a + 2;
}
insert $a[ #r + 3 ] ;
}
else {
message "囲む行の上にカーソルを置いてください。";
}
endmacro;
|
|