Re 01.10.04} [ROL2] 空白セル埋め] 01.10.14 混 L=32006 C=0082  *ファイル名 ROL2.MYX *仕事 指定範囲の空白セルに、同行で、内容が有る列の内容を移動させる。  *改訂履歴 1.00 2001.09.12 公開 * 1.01 2001.10.14 1個*を忘れた!ので修正 *変更 文字がはみ出る場合、列桁数を変更する。 * ページサイズがはみ出る場合、拡張して、ページ横サイズを変更する。 *前提条件 SETC:10:3:120 にしても切れる場合は対象外(どうせ劇遅!の筈?) * 対象は画面のみ *使用変数 Z91,Z92,Z93,Z94,Z95,Z96,Z97,Z98,Z99 V50  *使用方法 画面にデータを出して、RUN:ROL2[ENTER] * 「プログラムがありません」と出たら、FILEX にて登録して下さい。  *----------------------------------------------------------------------* *ユ―ザ―カスタマイズ部分(全画面表示なら、「*」を交換して下さい。)  WSIZE:2:::::Z90=Z40: *部分表示用 * WSIZE:1:::::Z90=Z40: *全画面表示用 *----------------------------------------------------------------------*   IF T0=0 THEN:  COLOR:6:1:2:  LOC:Z90-3:6:PRINT: :  LOC:Z90-2:6:PRINT: 表データを画面に出して下さい。 :  LOC:Z90-1:6:PRINT: :  STOP:ENDIF:   V50="未拡張": *拡張されてない場合の考慮  Z0=0:  COLOR:7:1:2:  LOC:Z90-3:6:PRINT: :  LOC:Z90-2:6:PRINT: 空白で有って欲しくない先頭列番号 :  LOC:Z90-1:6:PRINT: :  ACCPNUM:空白セル埋め対象先頭列は? :1:T0::?: Z91=Z0:  IF Z0=0 THEN:STOP:ENDIF:  Z0=0:  LOC:Z90-3:6:PRINT: :  LOC:Z90-2:6:PRINT: 移動させたい文字がある最終列番号 :  LOC:Z90-1:6:PRINT: :  ACCPNUM:空白セル埋め対象最終列は? :1:T0::?: Z92=Z0:  IF Z0=0 THEN:STOP:ENDIF:   DIA::Z93=Z39: *Z93 H行  IF Z39=0 THEN:  ACCP:データ行がありません。:?:STOP:  ENDIF:   IF Z92>Z91 THEN:Z81=1:V1="左":  ELSE:Z81=-1:V1="右":  ENDIF:  V0="ESC":ACCP:Z91〜Z92列 を V1方向へ空白埋めします。[中止…ESC] :?:  IF V0="ESC" THEN:STOP:ENDIF:   Z95=Z93: *行の検索  IF Z95=T1+1 THEN:STOP:ENDIF: *行   Z94=Z91: *空白埋め先頭列  *現在セル  IF Z94=Z92 THEN:Z95=Z95+1:GOTO *行の検索:ENDIF: *次の行へ  DPON:  DP:H:Z91:  DPOFF:  CF:Z94::Z97=Z37: *Z97 対象列の桁数   IF [Z95,Z94]<>"" THEN: *現在セルにデータが有る  Z94=Z94+Z81:GOTO *現在セル: *隣のセルを現在セルにする  ENDIF:   Z96=Z94+Z81: *データの移動元 先頭列  *データセル  IF Z96=Z92+Z81 THEN: *列方向 データが有るセル探  Z94=Z94+Z81:GOTO *現在セル:  ENDIF:  IF M(Z95,Z96)="" THEN: *右隣のセルにデータが無い時  Z96=Z96+Z81:GOTO *データセル: *更に隣のセルを調べる  ENDIF:  V0=[Z95,Z96]:  LEN:V0:Z98=Z0: *文字のバイト数  IF Z97