
エクセルに詳しい方、得意な方、ご回答をお願いいたします。
エクセル2007で、予定表とカレンダーを作成しております。
エクセルの予定表シートG列(G14~下の列)のイベント(予定)内容を、1月シートA12:H41の各日付に合致した場所(1/1の場合A13~A17(日にちが入力されているセル(A12)は除く)へ反映させたいのですが、その場合のマクロコードもしくは数式を教えて下さい。
なお、添付資料では、カレンダーシートは1月のみ表示となりますが、実際は、月ごとに分かれた1月~12月までのシートがあります。
ご回答いただくのに、大変お手間になると思いますが、どうぞよろしくお願いいたします。

No.5ベストアンサー
- 回答日時:
No.4です。
条件付き書式の設定について・・・
この際ですので、日・祝日・土曜の色付けも条件付き書式でやってしまった方が簡単だと思います。
前回回答した最後の日・土曜の塗りつぶしは「なし」にしておいてください。
そして祝日データに関しては「祝日」と名前定義してあるとします。
画像の配置だとA11~A14セルすべてに同じ条件付き書式の設定を行います。
(数式はすべて同じです)
一つのセルに条件付き書式を二つ設定します。
① 日・祝日の設定
A11を選択 → 条件付き書式 → ・・・中略・・・ → 数式欄に
=OR(WEEKDAY(A11)=1,COUNTIF(祝日,A11))
として → 書式 → 塗りつぶしから「赤」を選択しOK
この操作をA14セルまで行う。
② 土曜の設定
同様にA11セルを選択 → 条件付き書式 → ・・・中略・・・ → 数式欄に
=WEEKDAY(A11)=7
という数式を入れ → 書式 → 塗りつぶしから「青」を選択しOK
この操作をA14セルまで行う。
複数の条件付き書式を設定すると優先順位がありますので、
↓の画像のように「赤」の条件付き書式が上になるように赤丸部分の▲・▼をクリックし優先順位を入れ替えます。
最後にA11~A14セルを範囲指定 → A14セルのフィルハンドルで右へコピー → そのまま4行ずつ下へコピー!
これでなんとかお望みどおりにならないでしょうか?m(_ _)m

ついに、で、出来ました!!!
めちゃくちゃ嬉しいです。
これで、明日、会社でカレンダーを仕上げることが出来ます。
本当に、本当に、ありがとうございました。
教えてgooにも、回答リクエストがあれば良いのにな……。
違う件で質問させていただいた際は、また是非、tom04さんご回答をよろしくお願いいたします。
No.4
- 回答日時:
こんにちは!
https://oshiete.goo.ne.jp/qa/9483136.html
のサイトの関連質問ですね。
画像を拝見すると何とかカレンダーは作成できているようですので・・・
まず、
① 「予定表」SheetのA列すべてを範囲指定 → 名前ボックスに 月日 と入力し、A列を「月日」と名前定義します。
② 「予定表」SheetのG列すべてを範囲指定 → 同様に イベント と名前定義
以上の準備をしておきます。
そして各月SheetのA13セルに
=IFERROR(INDEX(イベント,MATCH(A12,月日,0))&"","")
という数式をいれます。
最後にA12~A16(5行をまとめて範囲指定)しA16セルのフィルハンドルで
列方向にコピー → そのまま下へ5行ずつコピーしてみてください。m(_ _)m
tom04さん、再びご回答いただきまして、ありがとうございます。
再度、教えていただきたいことがございます。
tom04さんのご回答に、補足でコメントを付けさせていただきました。
お手数ですが、そちらを確認していただけないでしょうか。
どうぞ、よろしくお願いいたします。

No.2
- 回答日時:
長い複雑な式を埋め込むより、複数シートの処理を一気にマクロでやってしまった方がかえって簡単です。
参考まで。Sub test()
Dim ws1 As Worksheet, ws2 As Worksheet
Dim ws_name As String
Dim i As Long, imax As Long
Dim wk_Range As Range, wRange As Range
Application.ScreenUpdating = False
Set ws1 = Worksheets("予定表")
With ws1
imax = .Cells(Rows.Count, "G").End(xlUp).Row
For i = 14 To imax
If .Range("G" & i).Value <> "" Then
ws_name = Month(.Range("A" & i).Value) & "月"
Set ws2 = Worksheets(ws_name)
Set wk_Range = ws2.Range("A12:G42")
For Each wRange In wk_Range
If wRange.Value = .Range("A" & i).Value Then
wRange.Offset(1, 0).Value = .Range("G" & i).Value
Exit For
End If
Next wRange
End If
Next i
End With
Application.ScreenUpdating = False
End Sub
No.1
- 回答日時:
DATE関数、WEEKDAY関数、VLOOKUP関数を組み合わせてなんとかできました。
ヒントです。勉強してください。
そのうち、だれか教えてくれるでしょう。
どうしても無理なら、また質問をあげてください。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excelで数値→文字列変換で指数...
-
Excelの関数について、特定の文...
-
テキストボックス内の文字のふ...
-
【Excel】貼り付けた画像がいつ...
-
日付が1年以内になると他のセル...
-
エクセル カタカナの文字を検...
-
excelの16進数表示方法
-
数字がセルの左側に寄っていて...
-
エクセルで同じ値が連続してい...
-
勝手にリンクするテキストボッ...
-
エクセルで縦書きのかっこ
-
エクセル:セルのバックの色だ...
-
エクセル 入力中に表示されな...
-
Excel 記入欄に網掛けして、文...
-
エクセルで入力数字に自動的に,...
-
OpenOfficeの表組みで一部を太...
-
エクセル 入力規則 貼付して...
-
エクセル「一度設定した列幅を...
-
エクセルでふりがなごとリンク...
-
Excel で金額の,で中央揃えす...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelで数値→文字列変換で指数...
-
Excelの関数について、特定の文...
-
テキストボックス内の文字のふ...
-
日付が1年以内になると他のセル...
-
エクセル 入力規則 貼付して...
-
エクセル 入力中に表示されな...
-
数字がセルの左側に寄っていて...
-
エクセル カタカナの文字を検...
-
【Excel】貼り付けた画像がいつ...
-
エクセルで同じ値が連続してい...
-
excel 表計算 加算するセルが空...
-
excelの16進数表示方法
-
エクセルで条件付き書式を使わ...
-
エクセルで入力欄を明確にしたい
-
エクセル:セルのバックの色だ...
-
エクセルで平均時間の表示の仕方
-
Excel 記入欄に網掛けして、文...
-
Excel で金額の,で中央揃えす...
-
EXCELでCTRL+1が使えません。
-
エクセルで入力数字に自動的に,...
おすすめ情報
tom04さん、再びご回答いただきまして、ありがとうございます。
本日、教えていただいた方法で、カレンダーに予定表の内容を無事に反映することが出来ました。
tom04さんのおかげで、とても便利なカレンダーに仕上がりそうです。
最後にもう1つ教えていただけないでしょうか?
祝日の塗りつぶし(条件付き書式)ですが、私の設定ミスなのか、日にちの入っていない部分にも塗りつぶしされてしまいます。
添付画像ですと、1月31日以降の11マスが塗りつぶしされています。
その部分(日にちが表示されていないマス)を塗りつぶしされないようにするには、どうしたらよろしいでしょうか?
大変図々しくて申し訳ございませんが、そちらも教えていただけたら、とても助かります。