-日本語プログラミング言語「なでしこ」公式サイト日本語でプログラミングできる「なでしこ」を使って、プログラミングを身につけましょう。プログラミングができれば、いろいろな仕事を自動化することができます。似たようなテキストを連続で大量に作成する必要がある場合でも、数行のプログラムを書くことで済んでしまうこともよくあります。今回は、その例として365日分のカレンダーを作ってみましょう。365日分のカレンダーを作ろうところで、皆さんは、自分でカレンダーを作ろうと思ったら、どうやって作るでしょうか。多くの方がExcelを使って作ることでしょう。Excelのセルをカレンダーのマスに合わせれば、比較的手軽にカレンダーを作れます。言え、365日分の日付や曜日を書いていくのは、なかなか面倒な作業です。Excelのオートフィルの機能を使えば省力できますが、それでも時間はかかります。その点、プログラミングができれば、あっという間にカレンダーを作ることができます。それでは、9月始まりの一年分(365日分)のカレンダーを作ってみましょう。なでしこ3のWeb簡易エディタ(こちら)を開いて見てください。エディタに以下のプログラムを貼り付けて「実行」ボタンを押してみましょう。F曜日=対象日の曜日。「{F日付}{タブ}{F曜日}」を表示。ここまですると、日付をタブで区切った一年分のデータが表示されます。そこで、一年分のこのデータを全選択して、クリップボードにコピーしておきましょう。...このタブで区切ったデータが何に使えるのかと言うと、Excelを起動して、左上のセルを選択した状態で、「貼り付け」を実行してみてください。すると、以下の画面のように、各セルに一つずつ値が貼り付けられます。タブで区切ったデータはExcelの各セルに貼り付けられるつまり、直接Excelを操作しなくても、なでしこでデータを作り、それをExcelに貼り付けることで、カレンダーの雛形を作ることができるということです。9行のプログラムで、カレンダーの雛形が完成するのですから便利です。プログラムを確認してみましょう。このプログラムでは、『N回...ここまで』構文を利用して、処理を365回繰り返し実行します。その繰り返しの中では、日付を出力した後で、日付に1日分を加算していきます。プログラムの冒頭では、日付をUNIXTIMEと呼ばれる数値へと変換しています。UNIXTIMEとは、1970年1月1日以降からの経過秒のことを言います。これを使うと、日時を数値で表すことができるので、日時の計算が楽になります。ある日の翌日を得ようと思ったら、86400秒(=60秒×60分×24時間)を足すだけで良いからです。ここでも、カレンダーの日付を進めるために、繰り返しの末尾で、この日付の足し算を行っています。時:分:秒」の形式に変換する関数です。不要な項目を表示しないようにしようところで、先ほど作ったカレンダーを見てみると、年・月・日がすべて表示されるために、表が見づらいものになっています。年は冒頭と1月1日の時だけ表示し、月も1日のときだけ表示するように改良してみましょう。以下のプログラムをなでしこ3のエディタに貼り付けて実行してみてください。F曜日=対象日の曜日。D=対象日を「/」で区切る。「{F年}{タブ}{F月}{タブ}{F日}{タブ}{F曜日}」を表示。ここまでプログラムは18行と少し長くなりましたが、このプログラムを実行し、Excelに貼り付け、罫線などの装飾を加えると、以下のような行事予定表のカレンダーを作ることができます。(完成したカレンダーcalendar.xlsx)作成された9月1日から1年分のカレンダープログラムでは、年・月において、前回表示した値を覚えておいて、前回と同じなら空白にするという処理を加えています。それから、プログラムの(*1)以降の部分ですが、日付データは「年/月/日」と記号「/」で区切られています。そこで、日付データを「/」で区切ると、配列変数Dに[年,月,日]という三つのデータが代入されます。配列変数というのは、一つの変数の中に複数の値を保持することができる変数です。『配列変数名@要素番号』と書くと、配列変数の各要素を取得できます。配列変数については、また、後日詳しく紹介します。まとめ以上、今回は、指定回数だけ繰り返す『N回...ここまで』構文を使って、365日分のカレンダーを作ってみました。ここでは、9月始まりのカレンダーを作りましたが、プログラムの冒頭にある『対象日』の値を、任意の日付に変更することで、特定の日から一年分のカレンダーを作ることができます。市販のカレンダーは、1月か4月始まりのものがほとんどなので、半端な日付から始まるカレンダーが必要な場合、自作しなければなりませんが、このプログラムを利用することで、自作が容易になるでしょう。