【質問箱 No.37 回答】 ⇒⇒⇒⇒ 質問箱 No.37 (96年10月号)の趣旨 質問者:入川 精二 カレンダーを作りたい 回答者:早瀬 壮 一 <プログラム> /* CALPRO/1 */ 月;火;水;木;金;土;日;月;火;水;木;金;土;日;*; /*1 2 3 4 5 6 7*/ /* バリアブルプログラムデータの順番 */ <カレンダ> IF NAME(3,"CAL")=0 THEN GOTO $N;BIND;D;CAL;Y; $N: G;CALPRO/1; $A1: ACCEPT "何年のカレンダですか",V30; $A2: ACCEPT "1月1日は月から数えて何番目の曜日ですか",X8; SET;;;1;36;;; O;カレンダー;8/4/4;DATE;日;曜;4;F;ESC; IR;;T+1;394;NUM;;;1;;ESC;ATR;N;D;1; NUM;;;@DATE;;%(V30)0101;;ESC;NF;;@DATE;4/2/2; CPB;H,@;T,@;H,@日;CPB;H,@TE;T,@TE;H,@F;CU;;@日 =" 0";" ";;; VPSET CALVD;CLEAR X5; FOR X6=1 TO X8-1; READ V1;/* バリアブルプログラムを目的の数前までスキップ */ NEXT; FOR X6=1 TO 7; READ V%X6;IF X5=7 THEN BREAK; /* バリアブルプログラムを必要な数V1からV7に格納 */ NEXT; FOR X6=1 TO 7; LET V9=V%X6;FILL;%V9;%(H-1+X6);@曜;;/* カレンダに書き込み */ NEXT; LET X5=7; FOR X6=1 TO 6; CPB;H,5;%(H-1+X5),5;%(H+X5),5; LET X5=X5*2; NEXT; FOR X6=1 TO 12; S;CS;; @DA =%('"'+V30+'"')& @F =%('"'+RIGHT$(NUM$(100+X6),2)+'"');; %(CN("@日"))/%(CN("@曜"));; CT; %(FORM$(V30,5))年%(FORM$(NUM$(X6),5))月; /* このタイトル本当はできませんよ。しかし作りました。*/ /* どんな仕掛けがあるのか?月例会でのお楽しみ */ /* 頭のスペースに見えるところが?です。 */ INFO;S;256;CA;;;A;;CAL/N;/* カレンダページ作り */ NEXT; SET;;;1;256;;; STOP;