記事 か 日記 かは・・・??
(ただ単に、自分の備忘録かも・・・)
カレンダー その1 [EXCEL]
EXCELで、カレンダーを作る。
一番手っ取り早い(と、思う)方法。
日付表示は固定で、曜日を変化させる。
A1に、年 B1に月を入力
(セルの書式設定にて、ユーザー定義でA1:0"年" B1:0"月" と、してます)
日付は、1~31までを数値で入力。
B2セルに、=DATE($A$1,$B$1,B3)として、表示形式で 「aaa」としています。
(従って、2行目の曜日の実データは日付シリアル値になります)
A1、B1セル指定が絶対番地になっている事に注意してください。
これで、その日に対応した曜日を表示できます。
大の月、小の月、又土日の色分けを考えなければこれでOKでしょう。
ただ、やはり小の月は31(2月は29~31)を、隠したいですし土日の色は変えたいですよね。
その場合は、条件付書式設定を使います。
曜日、日付のセルを全部選択(B2~AF3)し、B2セルをアクティブにした状態で、
条件付書式で、
数式が =WEEKDAY(B$2,2)>5
WEEKDAY関数のセル指定が相対参照になっていることに注意してください。
又、先の日記でも書きましたが、WEEKDAY関数の第2引数に2を指定する事によって、土曜日=6、日曜日=7 になります。
従って、WEEKDAY関数の返り値が5より大きければ 土日であると言う事になります。
こうして、書式設定でフォント色を赤に設定すれば、土日の曜日・日付両方が赤字になります。
更に、29日以降のセル範囲(AD2~AF3)を選択し、もう一つの条件を設定します。(AD2をアクティブに)
条件付書式設定の、条件2(条件1は、土日の書式設定で使用しているため)で、
数式が =MONTH(AD$2)<>$B$1
書式で、フォント色をセルの背景色と同じにすれば見かけ上は判らなくなります。
そして、ここからが重要
このままの状態では、例えば、1日が、土曜か日曜だった場合条件1で設定した土日の判別が優先されます。
従って、条件2で設定した小の月で31を隠すような書式設定が反映されません。
今年(2008)で言えば、3月の1・2が土日にですので、このままでは2月の時に3月1・2土日の条件が反映されて、曜日と、日付(表示上は30・31)が赤になって見えてしまう)
それを防ぐために、条件1と、2を入れ替える必要があります。
まあ、単純に最初から入れ替えた形で入力もいいのですが、
条件3に、条件1の設定を入力して、条件1を削除。
と言った方法も・・・
(どっちがやり易いかは、人によって違うかも)
とにかく、条件付書式は、条件1から順次適用され、条件が合えばその次の条件は無視するようになっています。
(2007からは、条件の適用順序が設定できるようになってるようです。)
数式の意味は、シリアル値から月を求め、その数値がB1セルに入力してある数値と違う場合に
フォント色を背景色(多分普通は白)にする。
と言う事です。
一番手っ取り早い(と、思う)方法。
日付表示は固定で、曜日を変化させる。
A1に、年 B1に月を入力
(セルの書式設定にて、ユーザー定義でA1:0"年" B1:0"月" と、してます)
日付は、1~31までを数値で入力。
B2セルに、=DATE($A$1,$B$1,B3)として、表示形式で 「aaa」としています。
(従って、2行目の曜日の実データは日付シリアル値になります)
A1、B1セル指定が絶対番地になっている事に注意してください。
これで、その日に対応した曜日を表示できます。
大の月、小の月、又土日の色分けを考えなければこれでOKでしょう。
ただ、やはり小の月は31(2月は29~31)を、隠したいですし土日の色は変えたいですよね。
その場合は、条件付書式設定を使います。
曜日、日付のセルを全部選択(B2~AF3)し、B2セルをアクティブにした状態で、
条件付書式で、
数式が =WEEKDAY(B$2,2)>5
WEEKDAY関数のセル指定が相対参照になっていることに注意してください。
又、先の日記でも書きましたが、WEEKDAY関数の第2引数に2を指定する事によって、土曜日=6、日曜日=7 になります。
従って、WEEKDAY関数の返り値が5より大きければ 土日であると言う事になります。
こうして、書式設定でフォント色を赤に設定すれば、土日の曜日・日付両方が赤字になります。
更に、29日以降のセル範囲(AD2~AF3)を選択し、もう一つの条件を設定します。(AD2をアクティブに)
条件付書式設定の、条件2(条件1は、土日の書式設定で使用しているため)で、
数式が =MONTH(AD$2)<>$B$1
書式で、フォント色をセルの背景色と同じにすれば見かけ上は判らなくなります。
そして、ここからが重要
このままの状態では、例えば、1日が、土曜か日曜だった場合条件1で設定した土日の判別が優先されます。
従って、条件2で設定した小の月で31を隠すような書式設定が反映されません。
今年(2008)で言えば、3月の1・2が土日にですので、このままでは2月の時に3月1・2土日の条件が反映されて、曜日と、日付(表示上は30・31)が赤になって見えてしまう)
それを防ぐために、条件1と、2を入れ替える必要があります。
まあ、単純に最初から入れ替えた形で入力もいいのですが、
条件3に、条件1の設定を入力して、条件1を削除。
と言った方法も・・・
(どっちがやり易いかは、人によって違うかも)
とにかく、条件付書式は、条件1から順次適用され、条件が合えばその次の条件は無視するようになっています。
(2007からは、条件の適用順序が設定できるようになってるようです。)
数式の意味は、シリアル値から月を求め、その数値がB1セルに入力してある数値と違う場合に
フォント色を背景色(多分普通は白)にする。
と言う事です。
コメント 0