カレンダーのように「日・月・火・水・木・金・土」の各列の位置に合わせて、年月ごとに変化する日付を表示するには、Excelと同様に配列定数を配列数式の中で利用することで実現できます。
カレンダーの完成イメージ
ForguncyはExcelと同様に「名前の管理」ダイアログを使用して、配列定数に名前を付けることができます。また、配列数式も設定できます。
カレンダーの日付の実装方法
例えば「名前の管理」設定画面で以下のような配列定数を定義した場合、
ページ内のセルでは、次のような配列定数「DaysAndWeeks」を利用した配列数式を設定できます。
①の計算結果
配列定数「DaysAndWeeks」の定義に従って、1列目は「0」で1行目は「0」となります。つまり、1行目の1列目の「DaysAndWeeks」の値は、「0+0*7=0」となります。
②の計算結果
Forguncyは日付をExcelと同様にシリアル値と呼ばれる数値で管理しています。2023年2月1日のシリアル値は「44958」です。つまり、「DATE(2023,2,1)」は「44958」となります。
③の計算結果
ExcelのWEEKDAY関数は、日付に対応する曜日を整数で戻します。つまり「WEEKDAY(DATE(2023,2,1))」の戻り値は、「4(水曜日)」となります。
配列数式の計算結果
①から③箇所の計算によって、1行目の1列目の配列数式のセルには「0(①)+44958(②)-4(③)+1=44955(2023年1月29日)」と表示されます。
予定をテーブルに登録する方法
「登録」ボタンのコマンドで以下のような処理を実装します。
「繰り返し」コマンドの「繰り返しのルール」で「セル範囲に基づいて繰り返し処理を行う」を指定して、登録したいセルの数だけ登録用の処理を繰り返すようにします。
この繰り返し処理内でセルを相対参照で指定した場合、参照されるセルやセル範囲は、実行ごとに「繰り返し」コマンドで指定したセルとの位置関係で移動します。例えば、繰り返しのルール「セル範囲」を「=A1:A5」と指定して、繰り返し処理内のコマンドで「C1」と参照セルを指定した場合、まずは「C1」セルに値が設定され、以降の繰り返す回数分「C2」「C3」といったように1ずつセル位置が移動します。
添付のサンプルプロジェクトは、Forguncy 8.0.5.0以降のバージョンで読み込むことができます。
検索キーワード: fgchowto fgcdevelopment fgcdatabase