======== keisen.def 作表マクロ (98罫線v1.02) ======== ; ;【作表マクロの操作方法】 ; ; [ESC]H :作表メニュー ; ;・まず、『D 外枠の描画』メニューを選択し、カーソル位置に指定のサイズの外枠を ; 書きます。 ;・外枠を書き終わると、最下行に《作表 〔罫線%c〕》と表示され、作表モードに入り ; ます。 ;・作表モードでは、通常の編集コマンドの一部を、作表用のコマンドに置き換えます。 ; ; [CR] :罫線引く/消す(カーソルが上枠/左枠上の時) ; ^F,^A :横方向拡大/縮小(カーソルが上枠上の時) ; ^C,^R :縦方向拡大/縮小(カーソルが左枠上の時) ; ;・また、表の内部で文字を書いたり、文字を削除しても、右枠の位置はずれません。 ; ただし、矩形ブロックコマンド等で表の内部に文字列をコピーした場合は、 ; 右枠の位置はずれてしまいます。 ;・作表モードを終了する場合は、[ESC]H で作表メニューを表示して、『Q 終了』を ; 選択してください。 ;・既存の表で作表を行なう場合は、表の左上(ョ)にカーソルを移動し、[ESC]H で ; メニューを表示し、『E 作表モードへ』を選択してください。 ;・随時、『S 罫線 [「]』メニューで罫線の種類を変更できます。 ; ;★注意★ 表の直後は、1行空けて空白行にしておかなければ、正常に動作しません。 * M マクロ 70 [ESC]H "作表メニュー" ?. (mm)? &q pp="「", :A t=pp.1&1, !01 (r)>?{ ; 作表メニューで分岐 >20 >10 { pp.1^=1, >A } { mm-,&m("作表終了") / } } (mm)? >20 / ;--- 外枠描画 --- 10: xx=lx, &g("横幅:") (r<0)? . u=r&1~, &g("縦幅:") (r<0)? >^ v=r, (u+4>=wd)?{ wd=u+lx+5, &d } mi[, ei[, mi-, ei+, (ct)??{ #n #n } ; <-- v1.02 #l (t)? >A 'ョ' (u/2){'「'} 'イ' >B :A 'ア' (u/2){'」'} 'オ' :B (v)?? >D #m (t)?'・'?'、' (u){' '} (t)?'・'?'、' (v<2)? >D #k (v==2)? >C (v-2){ #p #x } :C #i #x :D #m (t)? >E 'カ' (u/2){'「'} 'コ' >F :E 'ケ' (u/2){'」'} 'ス' :F ei], mi], >> ;--- 初期化 --- 20: mm+, &m("作表 〔罫線%c〕", '「'+t) x=lx, #> uu=lx, &x(x) ; カーソル位置の表の横幅を求める p="セソツナホムメユニヌハヘヨルレン゙瘋艷、・「」ョアイオカケコス", >> ;--- 1文字入力 --- 30: &p (c=r)(s)? >N ; 編集モードでなければスキップ (c<$FF)?{ &40 >^ } ; 文字の入力 (c==#m)?{ &50 >^} ; [CR] (c==#f || c==#a)?{ &60 >^ } ; ^F,^A (→←サイズ変更) (c==#c || c==#r)?{ &65 >^ } ; ^C,^R (↓↑サイズ変更) (c>=#h && c<#@ )?{ &40 >^ } ; 行の編集コマンド (c==#i || c==#p)?{ &40 >^ } ; ブロックのペースト :N &o(c) >^ ;--- 罫線保存 --- 40: (cd&1~!='│')??. ; <-- v1.01 &s &o(c) x=lx, #> xx=lx, #s d=cd&1~, &x(x) (d=='、')?{ (d=xx-uu)? >A } >Z :A (cd&1~!='、')?{ #d (lxA >Z } (d>0)?{ (d){ #h } >B } (-d){' '} :B &x(x) :Z #? ;--- 罫線描画/消去 --- 09: &o(c) 05: &f(cd,p) n=r, 06: a+=t,a=p..a,&o(a!!) 50: &05 (n<0)? >09 (n>=24)? >09 (n>=22)? >55 (n>=20)? >51 (n<4)?{ #y . } (n<8)? >56 >09 ;--- ヨコ罫線 --- 51: &s i=0, :A #e i++,&f(cd,"、・セソツナ") (r>=0)? >A #k (i){#x} #i mi[,mi+,a=n<<1&2,&06 :B &05 (n<0)? >D (n>=26)?{ a=n<<1&2+8, &06 >C } (n>=22)?{ &o('「'+t) >C } a=n&2+16, &06 :C (n<26)? >B :D mi], #a #? ;--- タテ罫線 --- 07: a+=t*2, a=p..a, &o(a!!) #s #x 55: &s mi[, mi+, a=n&1+4, &07 i=0, :A i++, (cd==$0D)? >B c=cd&1,(cd&1~!='「')??{ a=c+16, &07 >A } (ck)?? #g &o('、'+t) #s #x >A :B #e a=c+12, &07 >70 56: &s mi[, mi+, i=0, :A i++, &05 (n<20)?{ &o('「'+n&1) #s #x (n&3~!=12)? >A >70 } ' 'mi-,' ' mi+, #s #s #x >A ;--- 拡大/縮小 --- 60: uu+=2, (c==#a)? (uu-=4) (cd&1~!='「')? >09 &s mi[, mi-, i=0, :A (cd==$0D)? >70 i++, (c==#a)?{ #g (ck)?? #g >B } &o(cd) #s (ck)??{ &o(cd) #s } :B #x >A 65: (cd&1~!='、')? >09 (c==#c)?{ #k #i }? #y 70: mi], (i){ #e } &d * Pop up menu 1 "",12,4 "E 作表モードへ" "D 外枠の描画" "S 罫線 [$pp]" "Q 終了" * ======== End of keisen.def ========