質問: excel2007 カレンダーの作成方法について教えて下さい 会社でexcel2007を使用しています。 来年(2017年)の予定表とカレンダーを作成中です。 添付のカレンダーは月ごとにシートが分かれており、今現在、手動作成してあるため、条件付き書式や数式は入っていません。 カレンダーとは別に、祝日のみを入力するシートがあります。 このカレンダーのシート(添付資料でいうと2017年1月、2月のシート)b6~h31の格子部分を通常のカレンダーのように、合致した場所に日にちが自動で入力(2017年1月の場合、月初めが日曜日なので、格子内の日曜日の列(b7)に「1日」、2017年2月の場合、月初めが水曜日なので、格子内の水曜日の列(e7に)「1日」)がされ、土日祝日部分は、自動で塗りつぶされるようになって、1月なら1月のみの日にちの表示(1月のカレンダーに、2月の1~4日を表示させないようにしたい)が出来ると大変ありがたいのですが...。 ご回答していただく際、大変なお手間だと思いますが、どうか未熟な私にどうぞご教示ください。 よろしくお願いいたします。
回答: こんばんは! 画像を拝見すると1日に付き、5行使っているのですね? これが結構厄介です。 無理やりやってみました。 わざわざ月ごとにシートを変える必要はないと思うのですが、 一月ごと別シートにする場合でもやり方は一緒です。 1 まず別シートに↓の右側の画像のように祝日一覧のデータを作成しておきます。 2 右側シートのb列を「祝日」と名前定義します。 (b列を範囲指定 → 名前ボックス(セル番地が表示されている窓)に 祝日 と入力しenter!) これで範囲指定したセルが「祝日」と名前定義されます。 3 カレンダーsheet(左側シート)のd1セルに =date(a1,a2,1) という数式を入れ、セルの表示形式はユーザー定義から mmm としています。 このd1セルのシリアル値を利用します。 4 b7セル(セルの表示形式はユーザー定義から d としています)に =if(month($d$1-weekday($d$1)+column(a1)+7*(row(a5)/5-1))=$a$2,$d$1-weekday($d$1)+column(a1)+7*(row(a5)/5-1),"") という数式を入れます。 5 b8セルに =if(countif(祝日,b7),index(sheet2!$a$1:$a$17,match(b7,祝日,0)),"") という数式をいれます。 これで祝日名が表示されます。 最後に一番厄介な条件付き書式です。 b7・b8・b9・b10・b11セルすべてのセルに同じ条件付き書式を設定します。 b7セルを選択 → 条件付き書式 → 新しいルール → 数式を使用して・・・ → 数式欄に =countif(祝日,b7) という数式を入れ → 書式 → 塗りつぶしから「赤」を選択しok 同様にb8セルにも条件付き書式を設定 数式もb7セルと全く同じ数式にします。 この操作をb11セルまですべてのセルに設定します。 (b11セルまで数式はすべて同じです) そしてb7~b11セルを範囲指定 → b11セルのフィルハンドルで右へコピー! → そのまま下へ5行ずつコピー! これで細かい設定は完了です。 最後に日曜の列を範囲指定 → 「赤」で塗りつぶし 土曜の列を範囲指定 → 「青」で塗りつぶし 以上で↓のような感じになります。 ※ これでa2セルの「月」の数値を変更するだけで 好みの月のカレンダーができます。 ※ フィル&コピーした場合、書式もコピーされてしまうため 日・土曜の塗りつぶしは最後に行います。m(_ _)m