『検索後、一致セルの右セルの情報をコピーしたい』(まとな) 何回となく教えを請いながら未だに力量が向上しない自分に情けなくなります。 どなたかお教えください。 日曜日から始まる七曜の年間カレンダーを作成して、6つの時間帯への 作業者の割り振りをしようと考えています。 「Sheet2に特別作業のための作業者の割り振りデータを入力しておき、 それをもとにSheet3のカレンダーに検索をかける。その結果一致する Sheet3の日付セルの右に用意した6つのセル(Sheet2の6つの時間帯と合致)に 元データ(Sheet2のセル)の右の6つのセルの情報をコピーする。 ただしコピーする情報は、値と背景の情報のみとする。」という処理です。 コピーを「値と背景の情報のみ」とするのは、このマクロ実行の前にカレ ンダーに他の処理をしておくため、罫線等の情報の影響を排除したいからです。 以前質問しお教えいただいたことを応用しようとしたのですが、うまくいきません。 FindやIf End Ifなどを使用するのだろうとは思うのですが? イメージ的には次のとおりです。 Sheet2 R    S T U V W X 4 平成19年4月6日   田 梨                ↑                ↑   シリアル値で入力 背景色あり 5 平成19年4月15日   大 門 田 ↑ ↑ シリアル値で入力 背景色あり 6 7 8 9 〜 63 64 Sheet3 A B C D E F G H I J 〜 AL AM AN AO AP AQ AR AS AT AU AV AW AX AY 3 期 曜 日 月 金 土 4 1 2 6 田 梨 7                               ↑                                    背景色あり  5 8 9 13 14 6 15 大 門 田 16 20 21             ↑ 背景色あり 〜 55 23 24 28 29 56 30 31 ↑ ↑ ↑ ↑ 日付はシリアル値を表示で"日"部分のみ表示としている。 ---- まとなさん、こんにちは。 なかなかレスが付かないようですが、まとなさんが引っかかっているポイントが わからないというのがネックですね。ご本人さんもどうしたらよいのか判らないのだと 思いますが・・・。   まずは、 変数の使い方、For〜Nextステートメントでのループの入れ子をマスタしてください。 いきなりSheet2をSheet3の形にするのではなくて、 処理の間に別のシートへ、例えば、1行目から31行目までへSheet2のデータと背景情報を 複写するようなマクロを作成して練習みてはいかがでしょうか。   Sheet2のR4からR列の最終行までをループし、Sheet4の1行目(1日)から該当日の行へ S列〜X列までのデータ背景情報を複写するマクロ   Dim C As Range, Rng As Range Dim myRow As Long, i As Long Dim myDay As Long With Worksheets("Sheet2") myRow = .Cells(.Rows.Count, 18).End(xlUp).Row For Each C In .Range("R4:R" & myRow) myDay = CLng(Format(C.Value, "d")) Set Rng = Worksheets("Sheet4").Cells(myDay, 1).Resize(1, 6) Rng.Value = C.Offset(0, 1).Resize(1, 6).Value For i = 1 To Rng.Cells.Count Rng.Cells(i).Interior.ColorIndex = C.Offset(0, i).Interior.ColorIndex Next i Next C End With   これらが何をしているか理解できればSheet3への処理に進めると思います。 (みやほりん)(-_∂)b ---- みやほりんさん、ありがとうございました。 >なかなかレスが付かないようですが、まとなさんが引っかかっているポイントが >わからないというのがネックですね。ご本人さんもどうしたらよいのか判らないのだ >と思いますが・・・。 ずばり、ご指摘のとおりです。 まずは、ご紹介いただいたものを読み解く努力をしてみようと思います。 (まとな)