• 締切済み

年を跨ぐカレンダー【Excel】

excelのテンプレートから、万年カレンダーをダウンロードしました。 仕事のスケジュールを入力していたのですが 通常の1月から始まって12月で終わるカレンダーでは使いにくいです。 そこで決算期に合わせたカレンダーにしたいのですが どこをどういじったらいいのかわかりません。 現状は、1月~12月まで12枚のシートに別れていて 1月のシートだけに年を選択する矢印(コントロール)がついてます。 1月のシートでそのコントロールを【2014】とすると 1月~12月までが【2014年】のカレンダーに変わります。 このカレンダーを会計年度に合わせて以下のようにしたいです。 10月~9月までの12枚のシート。(シートの順を並べ替えました) 10月のシートにだけ年を選択する矢印(コントロール)をつける。(←今、ここまでやった。) 10月のシートで年を【2013】と選択すると、 10月~12月までは【2013年】のカレンダー、1月~9月までは【2014年のカレンダー】になるようにしたいです。 ■カレンダーのタイトル(何年何月)のセルは以下のようになってます。 =UPPER(TEXT(DATE(CalendarYear,12,1),"yyyy年 m月"))  ←12月の例 ■現状の12月1日と1月1日のセルは以下のようになってます。 【12月1日】 =IF(DAY(DecSun1)=1,IF(AND(YEAR(DecSun1)=CalendarYear,MONTH(DecSun1)=12),DecSun1,""),IF(AND(YEAR(DecSun1)=CalendarYear,MONTH(DecSun1)=12),DecSun1,"")) 【1月1日】 =IF(DAY(JanSun1)=1,"",IF(AND(YEAR(JanSun1+2)=CalendarYear,MONTH(JanSun1+2)=1),JanSun1+2,""))

みんなの回答

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.8

No.4です。 たびたびごめんなさい。 前回のコードはSheet名を変更するのを忘れていましたので、 Sheet1のコードをすべて消去して、↓のコードに変更してください。 Private Sub Worksheet_Change(ByVal Target As Range) 'この行から Dim k As Long If Target.Address = "$A$1" Then If IsDate(Target) Then For k = 1 To 12 Worksheets(k).Name = k Next k Application.EnableEvents = False With Target .Value = DateSerial(Year(.Value), Month(.Value), 1) .NumberFormatLocal = "yyyy年m月" End With Application.EnableEvents = True Worksheets(1).Name = Format(Worksheets(1).Range("A1"), "yyyy年m月") For k = 2 To 12 With Worksheets(k).Range("A1") .Value = DateAdd("m", k - 1, Worksheets(1).Range("A1")) .NumberFormatLocal = "yyyy年m月" End With With Worksheets(k) .Name = Format(.Range("A1"), "yyyy年m月") End With Next k End If End If End Sub 'この行まで これで、Sheet1のA1セルに日付を入力するとSheet名も変わります。 ※ 前回(および今回)の方法は ダウンロードされた「万年カレンダー」に関する方法ではなく、一からご自分で7列カレンダーを作成する方法ですので ご希望の方法でなかったら無視してくださいね。m(_ _)m

  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.7

 忘れていました。  もし、回答No.5、6にある様な方法で祝日の日付の文字色を変える様な設定とする場合には、その年の春分の日や秋分の日を入力し忘れる事が無い様にするために、念の為に警告が表示される様にした方が良いかも知れません。  具体的な方法の一案としては以下の様になものとなります。  まず、3月シートの目立つ位置にある適当なセルに次の関数を入力して下さい。(警告表示ですので、文字色を赤にしておくのも良いかも知れません) =IF(ISNUMBER(休日!$B$13),"","【本年の春分の日が未定です!】")  次に、9月シートの目立つ位置にある適当なセルに次の関数を入力して下さい。 =IF(ISNUMBER(休日!$B$24),"","【本年の秋分の日が未定です!】")  以上です。

  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.6

 回答No.5の続きです。  次に、休日シートのA14セルに「振替」と入力して下さい。  次に、休日シートのB14セルに次の関数を入力して下さい。 =IF(ISNUMBER(1/(WEEKDAY(B13)=1)),B13+1,"")  次に、休日シートのD列に各年の春分の日の日付を(年を付けた形式で)入力して下さい。  次に、休日シートのE列に各年の秋分の日の日付を(年を付けた形式で)入力して下さい。  (不要になった年の春分の日の日付や秋分の日の日付は、削除してしまっても構いません)  次に、以下の操作を行って、各月のシートにおいて日付を表示するセルに条件付き書式を設定して下さい。 10月シート(或いは他の月のシートでも可)のA4セルを選択   ↓ [ホーム]タブをクリック   ↓ 現れた「スタイル」グループの中にある[条件付き書式]ボタンをクリック   ↓ 現れた選択肢の中にある[ルールの管理]をクリック   ↓ 現れた「条件付き書式ルールの管理」ダイアログボックスの中にある[新規ルール]ボタンをクリック   ↓ 現れた「新しい書式ルール」ダイアログボックスの[数式を使用して、書式設定するセルを決定]をクリック   ↓ 「次の数式を満たす場合に値を書式設定」と記されている欄に =AND(ISNUMBER(A4),COUNTIF(休日!$B:$B,A4)) と入力  尚、ExcelのバージョンがExcel2007よりも前のものである場合には、 =AND(ISNUMBER(A4),COUNTIF(INDIRECT("休日!B:B"),A4)) として下さい。   ↓ 「新しい書式ルール」ダイアログボックスの[書式]ボタンをクリック   ↓ 現れた「セルの書式設定」ダイアログボックスの[フォント]タブをクリック   ↓ 現れた「色」欄をクリック   ↓ 現れた色のサンプルの中にある赤色の四角形をクリック   ↓ 「セルの書式設定」ダイアログボックスの[OK]ボタンをクリック   ↓ 「新しい書式ルール」ダイアログボックスの[OK]ボタンをクリック   ↓ 「条件付き書式ルールの管理」ダイアログボックスの中にある「適用先」欄をクリック   ↓ [Ctrl]キーを押しっ放しにした状態で10月シートの A4セルの所でマウスの左ボタンを押してG4のセルの所にカーソルを移動させてから左ボタンを放し、 A12セルの所でマウスの左ボタンを押してG12のセルの所にカーソルを移動させてから左ボタンを放し、 A20セルの所でマウスの左ボタンを押してG20のセルの所にカーソルを移動させてから左ボタンを放し、 A28セルの所でマウスの左ボタンを押してG28のセルの所にカーソルを移動させてから左ボタンを放し、 A36セルの所でマウスの左ボタンを押してG36のセルの所にカーソルを移動させてから左ボタンを放し、 A44セルの所でマウスの左ボタンを押してG44のセルの所にカーソルを移動させてから左ボタンを放し、 という操作を行って、カレンダーの日付欄の全て($A$4:$G$4,$A$12:$G$12,$A$20:$G$20,$A$28:$G$28,$A$36:$G$36,$A$44:$G$44)をまとめて範囲選択   ↓ 「条件付き書式ルールの管理」ダイアログボックスの中にある[適用]ボタンをクリック   ↓ 「条件付き書式ルールの管理」ダイアログボックスの中にある[OK]ボタンをクリック   ↓ 10月シートのA4~G44の範囲をまとめて範囲選択   ↓ 選択範囲を示す黒い太枠の内側にカーソルを合わせてマウスを右クリック   ↓ 現れた選択肢の中にある[コピー]をクリック   ↓ 11月シートのシート見出しをクリックしてから、[Shift]キーを押しながら9月シートをクリックする事で、10月以外の全ての月のシートのみをまとめて選択   ↓ 11月シートのA4セルを右クリック   ↓ 現れた選択肢の中にある「貼り付けのオプション:」の中の[書式設定](「%」と筆が付いているクリップボードのアイコン)のアイコンをクリック   ↓ 10月シートか休日シートのシート見出しをクリックする事で、複数シートを選択している状態を解除  以上です。

  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.5

 祝日や振替休日の日付を計算で求めて、そのデータを基に条件付き書式を使用して、祝日や振替休日の日の文字の色を自動的に赤色に変更する方法です。  但し、春分の日と秋分の日の日付に関しては、国立天文台が天体観測を行って得た地球の軌道や地軸の傾き等のデータを基にして、閣議によって決定されるものであり、それらの天体観測のデータは多数の惑星と太陽の重力的な相互作用によって変動するため、その様な値を求める事は方程式を使って行う事は出来ず、Excelの関数を使って求めようとしましても、どうしても日付にずれが生じてしまう年が出て来ますので、春分の日と秋分の日に関してだけは日本政府が発表した日付を手作業によって入力する必要があります。  尚、翌年の春分の日や秋分の日の日付を確認する際には、次のURLのページを参考にされると良いと思います。 【参考URL】  国立天文台 > 日の出・日の入り情報(暦) > 暦計算室 > 暦要項   http://eco.mtk.nao.ac.jp/koyomi/yoko/  それと、祝日の決め方が現在の方式になったのは2007年からであり、2006年以前には祝日の決め方が現在とは異なっていますので、以下の方法で祝日や振替休日を求める事が出来るのは、2007年以降の年に関してのみである事を御断り致しておきます。  まず、「休日」というシート名のシートを新たに作成して下さい。  次に、休日シートのA1セルに次の関数を入力して下さい。 =CalendarYear  次に、休日シートのA2セルに「体育」と入力して下さい。  次に、休日シートのB2セルに次の関数を入力して下さい。 =IF(ISNUMBER(($A$1&"/1/1")/($A$1>2006)),DATE($A$1,10,14-WEEKDAY(DATE($A$1,10,0),3)),"")  次に、休日シートのA3セルに「文化」と入力して下さい。  次に、休日シートのB3セルに次の関数を入力して下さい。 =IF(ISNUMBER(($A$1&"/1/1")/($A$1>2006)),DATE($A$1,11,3),"")  次に、休日シートのA4セルに「振替」と入力して下さい。  次に、休日シートのB4セルに次の関数を入力して下さい。 =IF(ISNUMBER(1/(WEEKDAY(B3)=1)),B3+1,"")  次に、休日シートのA5セルに「勤労」と入力して下さい。  次に、休日シートのB5セルに次の関数を入力して下さい。 =IF(ISNUMBER(($A$1&"/1/1")/($A$1>2006)),DATE($A$1,11,23),"")  次に、休日シートのA6セルに「天皇」と入力して下さい。  次に、休日シートのB6セルに次の関数を入力して下さい。 =IF(ISNUMBER(($A$1&"/1/1")/($A$1>2006)),DATE($A$1,12,23),"")  次に、休日シートのA7セルに「振替」と入力して下さい。  次に、休日シートのB7セルに次の関数を入力して下さい。 =IF(ISNUMBER(1/(WEEKDAY(B6)=1)),B6+1,"")  次に、休日シートのA8セルに「元旦」と入力して下さい。  次に、休日シートのB8セルに次の関数を入力して下さい。 =IF(ISNUMBER(($A$1+1&"/1/1")/($A$1>2006)),DATE($A$1+1,1,1),"")  次に、休日シートのA9セルに「振替」と入力して下さい。  次に、休日シートのB9セルに次の関数を入力して下さい。 =IF(ISNUMBER(1/(WEEKDAY(B8)=1)),B8+1,"")  次に、休日シートのA10セルに「成人」と入力して下さい。  次に、休日シートのB10セルに次の関数を入力して下さい。 =IF(ISNUMBER(($A$1+1&"/1/1")/($A$1>2006)),DATE($A$1+1,1,14-WEEKDAY(DATE($A$1+1,1,0),3)),"")  次に、休日シートのA11セルに「建国」と入力して下さい。  次に、休日シートのB11セルに次の関数を入力して下さい。 =IF(ISNUMBER(($A$1+1&"/1/1")/($A$1>2006)),DATE($A$1+1,2,11),"")  次に、休日シートのA12セルに「振替」と入力して下さい。  次に、休日シートのB12セルに次の関数を入力して下さい。 =IF(ISNUMBER(1/(WEEKDAY(B11)=1)),B11+1,"")  次に、休日シートのA13セルに「春分」と入力して下さい。  次に、休日シートのB13セルに次の関数を入力して下さい。 =IF(ISNUMBER(($A$1+1&"/1/1")/($A$1>2006)),IF(COUNTIF($D:$D,">"&$A$1+1&"/3/18")-COUNTIF($D:$D,">"&$A$1+1&"/3/23"),IF(LARGE($D:$D,COUNTIF($D:$D,">"&$A$1+1&"/3/18"))=LARGE($D:$D,COUNTIF($D:$D,">"&$A$1+1&"/3/23")+1),LARGE($D:$D,COUNTIF($D:$D,">"&$A$1+1&"/3/18")),"候補が複数あり"),"該当日未入力"),"")  次に、休日シートのA14セルに「振替」と入力して下さい。  次に、休日シートのB14セルに次の関数を入力して下さい。 =IF(ISNUMBER(1/(WEEKDAY(B13)=1)),B13+1,"")  次に、休日シートのA15セルに「昭和」と入力して下さい。  次に、休日シートのB15セルに次の関数を入力して下さい。 =IF(ISNUMBER(($A$1+1&"/1/1")/($A$1>2006)),DATE($A$1+1,4,29),"")  次に、休日シートのA16セルに「振替」と入力して下さい。  次に、休日シートのB16セルに次の関数を入力して下さい。 =IF(ISNUMBER(1/(WEEKDAY(B15)=1)),B15+1,"")  次に、休日シートのA17セルに「憲法」と入力して下さい。  次に、休日シートのB17セルに次の関数を入力して下さい。 =IF(ISNUMBER(($A$1+1&"/1/1")/($A$1>2006)),DATE($A$1+1,5,3),"")  次に、休日シートのA18セルに「みどり」と入力して下さい。  次に、休日シートのB18セルに次の関数を入力して下さい。 =IF(ISNUMBER(($A$1+1&"/1/1")/($A$1>2006)),DATE($A$1+1,5,4),"")  次に、休日シートのA19セルに「こども」と入力して下さい。  次に、休日シートのB19セルに次の関数を入力して下さい。 =IF(ISNUMBER(($A$1+1&"/1/1")/($A$1>2006)),DATE($A$1+1,5,5),"")  次に、休日シートのA20セルに「振替」と入力して下さい。  次に、休日シートのB20セルに次の関数を入力して下さい。 =IF(AND(ISNUMBER(1/(WEEKDAY(B19)<4)),ISNUMBER(B19)),B19+1,"")  次に、休日シートのA21セルに「海」と入力して下さい。  次に、休日シートのB21セルに次の関数を入力して下さい。 =IF(ISNUMBER(($A$1+1&"/1/1")/($A$1>2006)),DATE($A$1+1,7,21-WEEKDAY(DATE($A$1+1,7,0),3)),"")  次に、休日シートのA22セルに「敬老」と入力して下さい。  次に、休日シートのB22セルに次の関数を入力して下さい。 =IF(ISNUMBER(($A$1+1&"/1/1")/($A$1>2006)),DATE($A$1+1,9,21-WEEKDAY(DATE($A$1+1,9,0),3)),"")  次に、休日シートのA23セルに「国民」と入力して下さい。  次に、休日シートのB23セルに次の関数を入力して下さい。 =IF(ISNUMBER(1/(B24=B22+2)),B22+1,"")  次に、休日シートのA24セルに「秋分」と入力して下さい。  次に、休日シートのB24セルに次の関数を入力して下さい。 =IF(ISNUMBER(($A$1+1&"/1/1")/($A$1>2006)),IF(COUNTIF($E:$E,">"&$A$1+1&"/9/21")-COUNTIF($E:$E,">"&$A$1+1&"/9/25"),IF(LARGE($E:$E,COUNTIF($E:$E,">"&$A$1+1&"/9/21"))=LARGE($E:$E,COUNTIF($E:$E,">"&$A$1+1&"/9/25")+1),LARGE($E:$E,COUNTIF($E:$E,">"&$A$1+1&"/9/21")),"候補が複数あり"),"該当日未入力"),"") ※そろそろ、このサイトの回答欄に入力可能な文字数の制限を超えそうですので、残りはまた後で投稿させて頂きます。

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.4

こんばんは! 横からお邪魔します。 ↓の画像で左側がSheet1~Sheet12の配置とし、右側が祝日データのSheet13とします。 画像が小さいと思いますので、画面を拡大してSheet13のように表を作成しておいてください。 そして画面左下のSheet見出しの一番左側SheetのSheet見出し上で右クリック → コードの表示 → VBE画面に ↓のコードをコピー&ペーストしておいて、Excel画面に戻ってください。 Private Sub Worksheet_Change(ByVal Target As Range) 'この行から Dim k As Long If Target.Address = "$A$1" Then If IsDate(Target) Then Application.EnableEvents = False With Target .Value = DateSerial(Year(.Value), Month(.Value), 1) .NumberFormatLocal = "yyyy年m月" End With Application.EnableEvents = True For k = 2 To 12 With Worksheets(k).Range("A1") .Value = DateAdd("m", k - 1, Worksheets(1).Range("A1")) .NumberFormatLocal = "yyyy年m月" End With Next k End If End If End Sub 'この行まで これでSheet1のA1セルに日付を入力するとSheet1~Sheet12までA1セルに1か月違いの日付が入ります。 (別Sheetに日付を入れてもなにも変化しません、Sheet見出しの一番左側Sheetのみです) 次にSheet1を選択 → Shiftキーを押しながらSheet12のSheet見出しをクリック! これでSheet1~Sheet12までが作業グループ化されましたので、 ↓の画像のような配置で表を作成します。 日~土まではあらかじめ入力しておきます。 そして画像のA4セル(セルの表示形式はユーザー定義から d としておきます)に =IF(MONTH($A$1-WEEKDAY($A$1)+COLUMN(A1)+7*(ROW(A3)/3-1))=MONTH($A$1),$A$1-WEEKDAY($A$1)+COLUMN(A1)+7*(ROW(A3)/3-1),"") という数式を入れます。 その後A5セルに(Sheet13の祝日名を表示するため) =IF(A4="","",IF(COUNTIF(Sheet13!$B$1:$E$21,A4),INDEX(Sheet13!$A$1:$A$21,SUMPRODUCT((Sheet13!$B$1:$E$21=A4)*ROW(Sheet1!$A$1:$A$21))),"")) という数式を入れ、A4~A6セルを範囲指定 → A6セルのフィルハンドルで土曜のG列までコピー! そのまま(3行が選択されている状態で)下へ3行ずつオートフィルでコピー! 最後にSheet見出し上で右クリック → 作業グループ化解除 これで画像のような感じになります。 ※ 祝日のフォントの色を変えたい場合は条件付き書式で可能ですが、作業グループ化されたままでは できないようですので、1Sheetずつ条件付き書式を設定する必要があるようです。 以上、長々と書きましたが参考になりますかね?m(_ _)m

  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.3

 尋ね忘れていた事があります。  Excelのバージョンによっては、条件付き書式の設定方法を始めとする、一部の操作方法が異なってくる場合が少なくありませんので、先程の回答で触れた条件付き書式による祝日等の表示の設定方法を回答する前に、質問者様が御使いになられているExcelのバージョンを御教え願います。

  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.2

>日付の件は、縦並びのカレンダーを想定して考えて下さったので、(A1)となってるのはA1のセルに1日が来ていると想定した場合ですよね。  いえ、それはROW関数という「参照先のセルの行番号を求める関数」を利用して、1から始まる連続した数値を取り出すために、1行目に存在するセルの1つであるA1セルを指定しているだけで、例えば、縦方向に連続しているセル範囲に、間隔を開ける事無く日付を入力する様な場合には、1日の日付を表示させるセルがどの行の何列目のセルであるのかには関係なく、当該箇所にはA1と入力します。  但し、これは1日の日付がどのセル番号のセルであるのか不明であったために、やむを得ずこのような記述としたものであり、例えば、1日の日付を表示させるセルが4行目のセルである事が判明している場合には、「ROW(A1)」とするよりも「ROWS($4:4)」とする方が好ましいのではないかと思います。  尤も、上記の話は、日付のセルが縦1列に連続している場合の話ですから、御補足頂いた内容から、日付のセルは縦1列に並んでいる訳ではない事が判明した以上は、本件にはあまり関係の無い話となってしまいました。 >画像のようなカレンダーで、1日が来る場所は月によっても年によっても変動する場合はどのようにしたらよいでしょうか。  その場合はまず、A4セルに次の関数を入力して下さい。(月に関係なく共通) =IF(ISNUMBER((SUBSTITUTE($A$2," ",)&COLUMNS($A:A)-WEEKDAY((SUBSTITUTE($A$2," ",)&"1日")+0)+1+INT((ROWS($4:4)-1)/8)*7&"日")+0),(SUBSTITUTE($A$2," ",)&COLUMNS($A:A)-WEEKDAY((SUBSTITUTE($A$2," ",)&"1日")+0)+1+INT((ROWS($4:4)-1)/8)*7&"日")+0,"")  次に、A4セルをコピーして、その他の「年や月によっては日付を表示しなければならなくなる可能性がある全てのセル」に数式のみを貼り付けて下さい。  次に、「年や月によっては日付を表示しなければならなくなる可能性がある全てのセル」の書式設定の表示形式を[ユーザー定義]の d にして下さい。(おそらく既にそのような設定になっている事と思います)  これで、各月の日付と曜日が一致する様に、日付が表示される筈です。  後、余談ですが、条件付き書式を使用して、祝日や振替休日の日の文字の色を変えたり、「春分の日と秋分の日」以外の祝日や振替休日の日付を自動的に求めたり、社内カレンダーの休日の一覧表を手入力にて作成しておく事によって、社内カレンダーによる休日の比の文字の色を変えたり、といった方法もありますので、必要があればそれらの方法も御伝えしようと思うのですが、どう致しましょうか?

CoroQ
質問者

お礼

ROW関数とは何ぞや?と思って調べてみたものの、間違った解釈をしていたようです^^; 詳しく説明ありがとうございます。 さて、教えて頂いた数式を早速貼ってみました。 お見事でございました!!! もっと早く質問すべきでした。 実は、ダウンロードしたテンプレートは月曜始まりでして、これを日曜始まりにするために 地道なことをしてまして・・・ もう自力で会計年度用カレンダーを完成させる余力が残ってませんでした。 使いやすく快適なカレンダーになりました。ありがとうございました!! 余談で頂いた祝日の色を変える方法、もしお時間が許すようでしたら教えて頂けますか? 経理担当なので、金融機関の休業日の間違いは命とりですので、それができると有難いです。 年中無休の会社ですので、社内カレンダーの休日は今のところはないです。 excelのバージョンは2007です。お時間のある時で構いませんのでよろしくお願い致します。

  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.1

 情報が不足しているため、このままでは正確な回答を行う事が出来ません。 >10月のシートにだけ年を選択する矢印(コントロール)をつける。(←今、ここまでやった。) との事ですが、その10月のシート上のコントロールで、例えば年を【2013】と選択すると、全てのシートの年も、ちゃんと2013年に変わる様になっているのでしょうか?  又、2日のセルは1日のセルの1つ下の行の所に位置しているのでしょうか?  もし、そうなっているのでしたら、次の様にされると良いと思います。 ■10月~12月のシート 現行通り ■1月のカレンダーのタイトル =UPPER(TEXT(DATE(CalendarYear+1,1,1),"yyyy年 m月")) ■2月のカレンダーのタイトル =UPPER(TEXT(DATE(CalendarYear+1,2,1),"yyyy年 m月")) ■9月のカレンダーのタイトル =UPPER(TEXT(DATE(CalendarYear+1,9,1),"yyyy年 m月")) ■1月1日のセル =IF(ISNUMBER((CalendarYear+1&"/1/"&ROW(A1))+0),DATE(CalendarYear+1,1,ROW(A1)),"") ■2月1日のセル =IF(ISNUMBER((CalendarYear+1&"/2/"&ROW(A1))+0),DATE(CalendarYear+1,2,ROW(A1)),"") ■9月1日のセル =IF(ISNUMBER((CalendarYear+1&"/9/"&ROW(A1))+0),DATE(CalendarYear+1,9,ROW(A1)),"")

CoroQ
質問者

補足

情報不足の中、回答ありがとうございます。 画像を追加しました。(2014年9月のものです) >10月のシート上のコントロールで、例えば年を【2013】と選択すると、全てのシートの年も、ちゃんと2013年に変わる様になっているのでしょうか? はい。そのようになってます。 >2日のセルは1日のセルの1つ下の行の所に位置しているのでしょうか? 画像のように、横並びのカレンダーです。 カレンダーのタイトルについては、教えて頂いた通りで思う通りの表示となりました。 日付の件は、縦並びのカレンダーを想定して考えて下さったので、(A1)となってるのはA1のセルに1日が来ていると想定した場合ですよね。 情報不足で申し訳ないです。 画像のようなカレンダーで、1日が来る場所は月によっても年によっても変動する場合はどのようにしたらよいでしょうか。