• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:日程一覧をカレンダー表示したい)

日程一覧をカレンダー表示する方法

このQ&Aのポイント
  • 日程一覧をカレンダー表示したいと考えています。現在は手動で日程の追加を行っていますが、計算式などを使って自動的に表示を変更したいです。
  • 日程一覧をカレンダー表示する方法を教えてください。現在は2つのシートを手動で変更していますが、1つを変更すると自動的にもう一つも変更できるようにしたいです。
  • カレンダーシートに日程一覧を自動的に表示する方法を教えてください。イベント数によって表示が変わることも考慮し、計算式を使って最大4つまでのイベントを表示したいです。

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

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

こんばんは! 一例です。 ↓の画像で説明します。 左側が「カレンダー」Sheetで、右側が「日程一覧」Sheetとします。 カレンダーに最大5件まで表示するようにしています。 まずカレンダーを作成します。 「カレンダー」SheetのA1セルに西暦年・A2セルに月の数値のみを入力すると 1ヶ月のカレンダーが作成できるようにしています。 まずB1セルの表示形式をユーザー定義から mmm としておきます。 B1セルには =DATE(A1,A2,1) という数式を入れています。このデータを利用してカレンダーを作成します。 画像では途中に空白セル(出向先?)を5件まで表示できるように5行ずつ空白セルを作ります。 A5セル(セルの表示形式はユーザー定義から d とだけにしておきます)には =IF(MONTH($C$1-WEEKDAY($C$1)+COLUMN(A1)+7*(ROW(A6)/6-1))=$A$2,$C$1-WEEKDAY($C$1)+COLUMN(A1)+7*(ROW(A6)/6-1),"") という数式を入れ土曜のG5セルまでフィルハンドルでコピー! そしてA5~G10セルまで(空白セルもそのまま)範囲指定 → G10セルのフィルハンドルで 下へ6行ずつまとめてコピーします。 (場合によっては第6週まである月が出てきますので、G40セルまで) これで第1段階のカレンダーは完成ですが、「日程一覧」SheetのB列データを表示させなければいけません。 数式でもできますが、簡単にフィル&コピーという訳にはいかないので (フィル&コピーでもできますが、各行の数式の手直しが必要になる) この部分だけVBAにしてみました。 画面左下の「カレンダー」SheetのSheet見出し上で右クリック → コードの表示 → VBE画面のカーソルが点滅しているところに ↓のコードをコピー&ペースト → Excel画面に戻り、A1、およびA2の数値を入れ替えてみてください。 Private Sub Worksheet_Change(ByVal Target As Range) 'この行から Dim i As Long, j As Long, k As Long, cnt As Long, wS As Worksheet Set wS = Worksheets("日程一覧") If Intersect(Target, Range("A1:A2")) Is Nothing Or Target.Count > 1 Then Exit Sub For i = 5 To 35 Step 6 For j = 1 To 7 Cells(i, j).Offset(1).Resize(5).ClearContents If Cells(i, j) <> "" And WorksheetFunction.CountIf(wS.Range("A:A"), Cells(i, j)) Then cnt = i For k = 2 To wS.Cells(Rows.Count, "A").End(xlUp).Row If Cells(i, j) = wS.Cells(k, "A") Then cnt = cnt + 1 Cells(cnt, j) = wS.Cells(k, "B") End If Next k End If Next j Next i End Sub 'この行まで ※ 当然のことながら日付セルはシリアル値とします。 ※ 画像の配置通りでの関数、VBAですので、1行・1列でも違う場合は めちゃくちゃなデータが表示されてしあいます。 以上、長々と書きましたがボチボチやってみてください。m(_ _)m

その他の回答 (1)

  • aokii
  • ベストアンサー率23% (5210/22062)
回答No.1

outlookの予定表の利用をお勧めします。

htc1014331
質問者

補足

回答、ありがとうございます。 私の個人利用のみでしたらぜひ、outlookの利用をしたいのですが 共同で、作業をしてますので エクセルで別表示する方法設定方法を探しています。 そちらで、なにかアドバイスがありましたら、おねがいします。

関連するQ&A

専門家に質問してみよう