年が明けてしまったので、「6日のあやめ」的な投稿だが…
我が家では数年来、パソコンを使い手製のカレンダーを作り続けている。 その元々は妻が退職後に通った、エクセルの初級講座。 そのときの教材となったのが、このカレンダー。 この表の上に前年の旅行先でのスナップや、孫たちの写真を貼り付けて印刷したものを、机の上などに飾る。 エクセルに手馴れた人なら、5分もかからず作れてしまう。 が、念のために簡単な手順を。 1、罫線を引いた後、日~土までの曜日、およびその上に「1月」などと打ち込む。 2.A4のセルに「1」を入力し、B4のセルには「=A4+1」と計算式を入力。 それを、G4のセルまでドラッグする。 3.A5のセルには「=A4+7]と計算式を入力し、G9のセルまでドラッグ。 表は1~42までの数字で埋まるはず。 4.実際のカレンダーと見比べながら、(今年の1月なら)A4とB4のセルを消去する。 さらに、31より多い数字をすべて(F8~G9)消去する。 5.後は、文字の大きさ・中央揃え、祝日の文字色など体裁を整え、完成。 以後は、前年のカレンダーをコピーし、手直し(消去した計算式をコピーしなおしたり)し、翌年のカレンダーを作成している。 まったくの手作業なので、昨年など日数の足りない月までできたしまった。 …で、Calcのマクロを使えば、「こんなみっともないことも起こらないか」と。 (この間にエクセルからOpenOfficeに変わったので) 1.D2のセルに、「1/1」と日付を入力する。 ###と表示されるのは、セル内に「2013/1/1」と表示しきれないため。 2.続いてA4のセルに「=D2-WEEKDAY(D2)+1」と計算式を入力する。 41273から始まる数字が表示されるが、実はこれが日付。 続いてこれらの表示形式を整える。 エクセルなら、日付の書式をユーザ定義で「M”月”」に。 これで2013/1/1が1月と表示される。 4.続いてA4~G9間での範囲の日付の表示形式を、書式コード「D」に。 以上の操作で、左のようにカレンダーらしき表に整えられる。 A4、B4の日付は前年12月、F8以後は2月の日付。 この後は、セルの内容を消去するなどの乱暴な方法ではなく、次のようにする。 5.A4~G9の範囲を選択し条件付書式を設定する。 6.数式として、「MONTH(G9)<>MONTH($D$2)」と入力。 エクセルの場合だと、右下のセルではなく左上のセルを指定する。 「MONTH(A4)<>MONTH($D$2)」 7.新しいスタイルを選び、フォントカラーとして白を指定する。 以上で、最初と同じカレンダーが表示される。 2/1などと違う月を表示しても、日付と曜日はあっている。 2016/1/1とすると、ちゃんとうるう年となっている。 大丈夫そう。 後は祝日を丸で囲ったり、フォントを赤にするなどが残っているが、それにはマクロが必要になる。 続きは下に
by t_ichib
| 2013-01-15 23:00
| 今日もまた老年プログラマー
|
プロフィール
カテゴリ
以前の記事
その他のジャンル
記事ランキング
|
ファン申請 |
||