• ベストアンサー

エクセルを使ったカレンダーの作り方

エクセル2000を使って、年間カレンダー(1月から12月まで全て1枚の中に入っているカレンダー)を作りたいと思います。作り方を教えてください。土日の色を変えたり、絵を入れたものを作りたいのですが。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.7

おはようございます。 imogasiさんのプログラム拝見しました。 最終日の確認を >月末 = DateSerial(y, m + 1, 1) - 1 >月末日 = Day(月末) とされてますね! 今まで気が付きませんでした。(なさけない) 私の >'月末の日付取得 >For j = 31 To 28 Step -1 >If (IsDate(wk_year & "/" & i & "/" & j)) Then >max_day = j >Exit For >End If >Next j 部分は max_day = day(DateSerial(wk_year, j + 1, 1) - 1) で1行に置き換えられます。 参考になりました。

その他の回答 (6)

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.6

ご参考に祝日を表示していないカレンダーのプログラムを載せます。土日色づけ。まず最小限短くを心がけました。祝日を表示するといかに長くなるか分かります。各月を下に増やし、年間カレンダーにするのは、下記の行を示すlをコントロールすれば、少しの変更で出来ます。 Sub cal01() y = InputBox("何年分?") m = InputBox("何月分?") l=1 Cells(l, 2) = y & "/" & m Cells(l, 3) = "月カレンダー " a = "日月火水木金土" '------- For i = 1 To 7 Cells(l+1, i) = Mid(a, i, 1) Next i 月末 = DateSerial(y, m + 1, 1) - 1 月末日 = Day(月末) l = 3 '---- For i = 1 To 月末日 日 = DateSerial(y, m, i) '---日曜 If Weekday(日) = 1 Then l = l + 1 Cells(l, Weekday(日)).Interior.ColorIndex = 6 End If '---土曜 If Weekday(日) = 7 Then Cells(l, Weekday(日)).Interior.ColorIndex = 7 End If '--- Cells(l, Weekday(日)) = i Next i '------編集(フォント・罫線・列幅など設定。省略) End Sub

rosimov
質問者

お礼

ご回答ありがとうございます。参考にさせていただきます。

回答No.5

マクロでということなので、プログラムを書きます。 分からない部分等ありましたら、補足で質問してください。 (1)まずシート名[祝日]を作りA1セルに **************この下から************** 月,日,週,曜日,(1:月曜日) 1,1,,,正月 1,,2,1,成人の日 2,11,,,建国記念日 3,21,,,春分の日 4,29,,,みどりの日 5,3,,,憲法記念日 5,4,,,国民の休日 5,5,,,子供の日 7,20,,,海の日 9,15,,,敬老の日 9,23,,,秋分の日 10,,2,1,体育の日 11,3,,,文化の日 11,23,,,勤労感謝の日 12,23,,,天皇誕生日 **************この上まで************** をコピーし、「データ」→「区切り位置」→「カンマやタブなどの・・・」オプションボタンがチェックされているのを確認し →「次へ」→「カンマ」チェックボックスをチェックし→「完了」 これは祝日のデータが変更される事を考慮し、シートに作りました。 春分の日、秋分の日は、日が変動するので注意してください(ここでは固定になっています) 春分、秋分の式は探せばあると思いますが、国が決めた日が優先されるそうなので 私には、どうしようもありません。 だいたいこの日あたりだと思います。 (2)標準モジュールへ Sub カレンダー作成() wk_year = Range("A1") 'シートチェック For Each sh In Sheets If (sh.Name = wk_year & "年") Then MsgBox wk_year & "年は既に作成されています。" & Chr(13) & "再度作成する場合は、シートを削除してください" Exit Sub End If Next sh 'シート作成 Sheets.Add ActiveSheet.Name = wk_year & "年" '月タイトル表示セル monthcell = Array("A4", "I4", "Q4", "A14", "I14", "Q14", "A24", "I24", "Q24", "A34", "I34", "Q34") '月ごとの日曜日の表示セル daycell = Array("A5", "I5", "Q5", "A15", "I15", "Q15", "A25", "I25", "Q25", "A35", "I35", "Q35") For i = 1 To 12 '月分 '月末の日付取得 For j = 31 To 28 Step -1 If (IsDate(wk_year & "/" & i & "/" & j)) Then max_day = j Exit For End If Next j '月初めの曜日取得 wk_week = Weekday(wk_year & "/" & i & "/1") '月表示 Range(monthcell(i - 1)) = StrConv(i, vbWide) & "月" '曜日表示 For j = 1 To 7 With Range(daycell(i - 1)).Offset(0, j - 1) .Value = Choose(j, "日", "月", "火", "水", "木", "金", "土") .HorizontalAlignment = xlCenter .ColumnWidth = 3 Select Case j - 1 Case 0 '日曜日 .Font.ColorIndex = 3 '赤 Case 6 '土曜日 .Font.ColorIndex = 5 '青 End Select End With Next j '日表示 offsetrow = 1 offsetcol = wk_week - 1 For j = 1 To max_day With Range(daycell(i - 1)).Offset(offsetrow, offsetcol) .Value = j Select Case offsetcol Case 0 '日曜日 .Font.ColorIndex = 3 '赤 Case 6 '土曜日 .Font.ColorIndex = 5 '青 Case Else If (hurikae = 1) Then .Font.ColorIndex = 3 '赤 Else .Font.ColorIndex = 0 '黒 End If End Select '祝日チェック hurikae = 0 '振替休日用フラグ For k = 2 To Worksheets("祝日").Cells(Rows.Count, 1).End(xlUp).Row If (i = Worksheets("祝日").Cells(k, 1)) Then If (Worksheets("祝日").Cells(k, 2) <> "") Then '日付指定 If (j = Worksheets("祝日").Cells(k, 2)) Then If (offsetcol = 0) Then hurikae = 1 Else .Font.ColorIndex = 3 '赤 End If Exit For End If Else '曜日指定 If ((wk_week > Worksheets("祝日").Cells(k, 4) And _ offsetrow = Worksheets("祝日").Cells(k, 3) + 1) Or _ (wk_week <= Worksheets("祝日").Cells(k, 4) And _ offsetrow = Worksheets("祝日").Cells(k, 3) + 1)) Then If (offsetcol = Worksheets("祝日").Cells(k, 4)) Then .Font.ColorIndex = 3 '赤 Exit For End If End If End If ElseIf (i < Worksheets("祝日").Cells(k, 1)) Then Exit For End If Next k End With If (offsetcol = 6) Then offsetrow = offsetrow + 1 offsetcol = 0 Else offsetcol = offsetcol + 1 End If Next j Next i End Sub を貼り付けてください。 (3)Sheet1(他のシートでも構いません) ボタンを貼り付けてマクロ名「カレンダー作成」を選択し、「OK」を押す。 (4)A1セルに年(例:2003)を入力しボタンを押す。 以上で1つのシートに3×4のカレンダーができると思います。 なるべく変更しそうな個所にはコメントを入れましたが、修正したい時に、わからない部分は、質問してください。 もっと、スマートに書ける方もいるかもしれませんが、参考にしてみてください。

rosimov
質問者

お礼

とても詳しいご回答ありがとうございます。さっそくやってみます。

回答No.4

No.4のものです。 (1)の方法で http://www.benri.com/calendar/2003.html のようなカレンダーをコピー、形式を選択して貼り付けでもできます。

回答No.3

どのように作りたいのでしょう? (1)すべて手作業で、色の変更や図の挿入の仕方を教えて欲しい。 (2)関数で作るようにしたい(指定セルに年を入れると内容が変化する。) (3)マクロで処理する。(指定セルに年を入れ、ボタンを押すとカレンダーが作成される (2)はNo.2の方のホームページを参照してもできると思います。    ただ、祝日などは、手作業になるような気がしますが    (中には、1998年固定のものや、1-2-3で作成した物もありましたが) (3)は作ってみました。    といっても祝日を考慮に入れて土日の色を変えたシンプルなものです。    絵は手作業で入れて頂かないといけませんが・・・ もし、マクロでということでしたら教えてください。

rosimov
質問者

補足

ご回答ありがとうございます。(3)のマクロで作ってみたいと思います。よろしくお願いいたします。

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.2
noname#3361
noname#3361
回答No.1

適当な枠を作って数字を入れるだけでできますよ。 色はフォントの色を変えるだけです。 絵を入れたければ図の挿入でできます。 質問があまりに漠然なのですが,要は手作業で作成する手間は有りますが,何も難しいことはないですよ。 (カレンダー作成ソフトのような手軽さを期待しているのならちょっとExcelでは無理です。)

rosimov
質問者

お礼

ご回答ありがとうございます。

関連するQ&A

  • エクセル2000でカレンダーをつくりたいのですが・・。

    エクセル2000を使って1年分のカレンダーを作りたいと考えています。土日は条件付き書式を使って曜日の色を変えることができたのですが、祝日はどのような関数または命令をあたえれば検索または表示を変えることができますか。何か簡単な方法があれば教えてください。

  • エクセルで、土日のみのカレンダー作成

    エクセルで、1年間の土日だけのカレンダーを作成したいのですが、 出来るのでしょうか? ちなみにエクセルは初心者です。 簡単な作成方法などがあれば教えてください。

  • Excelで4勤2休のカレンダーを作りたい

    仕事が土日休みではなく、4勤2休というスケジュールです。 そのため、このスケジュールに合わせて、 休みの日の色が変わるようなカレンダーをExcelで作りたいのですが、 どなたか作り方を教えていただけないでしょうか? もしくは、そのようなカレンダーがダウンロードできるサイトがあれば教えてほしいです。 自分で作るにしても、可能な限り既存のカレンダーをちょっとカスタムするなど、 手間のかからない方法が理想です。 よろしくお願いします。

  • vbaカレンダーコントロール

    エクセルsheet上にカレンダーを作成しました。   D F G H ・  ・  ・  AH 5 6/1 6/2 6/3 6/4 ・ ・  ・   6 ・ ・ 24 カレンダーコントロールを使って土日のセル(5行から24行まで)に色をつけたいのですがコードの記述がわかりません。教えてください。イメージとしては、カレンダーコントロールの6月13日をクリックしたらセルに色がつく、です。 よろしくお願いします。

  • エクセルで作ったカレンダー。

    エクセルで(Verは2000かな?xpで使用しています)カレンダーを作成しました。三階ラボというカレンダーが配信されているのですが、それに似せて作りました(素人ですので、たいした物ではありません)。このカレンダーの当日部分の色、文字を自動で反転させる事は、出来るものでしょうか?

  • エクセルの祭日

    エクセルでカレンダーを作る場合、条件付き書式で土日のセルに色を付けるやり方は判るのですが、何月何日が祝日ということを判別して、色を付けることはできるのでしょうか? エクセルは2002のSP-2です。

  • エクセルで作るカレンダー

    よろしくお願いします。 エクセル2002を使っています。 一枚の用紙に1月から12月までが載ったカレンダーを 作りたいと思っています。 おおよそのデザインは以下の http://www.benri.com/calendar/2003.html と同じ様にしたいと思っています。 ただ、可能であれば年数を入力しただけで月の日付が表示されるように したいと思っています。 この場合、どのような数式をどのように使えばよろしいのでしょうか? よろしくお願いします。

  • Excelでのカレンダー作成について

    Excelでカレンダー(1カ月分)を作っているのですが、祝日に色を付けるのがどうしてもうまくいきません。 祝日の日付を入れたセルを用意したのですが、1つ関数につき1日分しか色をつけれませんでした =COUNTIF((1),(2))>=1 (1)祝日の日付を入れた複数の範囲のセル (2)カレンダーの日付のセル[1日分] これでやると1カ月分すべてのセルに対して1日ずつ条件を入れなければならないです。 (2)で1カ月分の日付の範囲をすべて選択してみたのですが、うまく表示されませんでした(>_<) どのような関数をつかえば、1カ月分すべての祝日の色を変えることが出来るでしょうか? 回答お願いしますm(_ _)m

  • 年度のカレンダー

    条件付き書式を使って土日祝日を色別に表示させるカレンダーを作成しました。 年度のカレンダーのため1月以降も前年の土日祝日が反映されてしまいます。 どのような方法があるのかご教授下さい。

  • シンプルな年間カレンダー

    画像のような、シンプルな年間カレンダーを、スマホの画面に表示しておきたいです。 でも、年間カレンダー シンプル iPhone 無料アプリ とかで検索しても、色がごちゃごちゃしたカレンダーとか、月表示しかできないカレンダーのアプリしか出てきません。 年間カレンダーって検索してるのに… どこかに、画像みたいなシンプルな年間カレンダー、無料でとれるアプリないですか?

専門家に質問してみよう