『日毎集計で打ち込みシートの内容を表示シートの日付に合ったセルにとばしたいです』(まっきー) シート1 日付を選ぶ(プルダウンメニュー)      内容を打ち込み欄に打ち込む      マクロのボタンを押す シート2 別シートの同日付のセルに張り付けされる。 と言う形にしたいのですが、シート1の日付を認識させてシート2の同日付セルに 張りつける記述がどこを探してもありません。 お手数ですがご教授願います。 バージョン 2007 OS XP ---- たとえば <Sheet1> A B 1 日付 内容 2   12月2日 あああ <Sheet2> A B 1 日付 内容 2 12月1日 3 12月2日 4 12月3日 5 12月4日 ・ 12月5日 ・ 12月6日 ・ 12月7日 30 12月29日 31 12月30日 32 12月31日 のようになっていて、ボタンをクリックするとSheet2のB3セルに「あああ」と 表示されるようにしたいということでしょうか? フォームツールバーからボタンを作成して、別シートへ転記のマクロを登録 Sub 別シートへ転記() Dim 日付 As Date Dim MyRange As Range 日付 = Sheets(1).Range("A2") Set MyRange = Sheets(2).Columns("A").Find(what:=日付) MyRange.Offset(0, 1) = Sheets(1).Range("B2") End Sub これでSheet1のA2セルに日付、B2セルに内容を入力してボタンをクリックすれば Sheet2の同じ日付の隣のセルに内容が貼られます。 (se_9) ---- Sub Test20111212() Dim rng As Range Set rng = Worksheets("Sheet2").Range("A:A").Find( _ What:=Worksheets("Sheet1").Range("A1").Text, _ LookIn:=xlValues, _ LookAt:=xlWhole) If rng Is Nothing Then MsgBox "検索値が存在しません", vbCritical Else rng.Offset(0, 1).Value = Sheets("Sheet1").Range("A1").Offset(0, 1).Value End If End Sub   Sheet1のA1セルに入力された日付をSheet2のA列で検索し、 Sheet1のA1セルの右のセルの値を検索し、 検索で見つかったセルの右のセルへ転記。   [まっきー]さんと「まったく同じ作業」をしているひとが、何千人もいれば そのものずばりが見つかることはあると思いますが、 そうでない限りこのようなマクロは自分で作らなければいけない、と 思っておいたほうがいいですよ。   (みやほりん)(-_∂)b ---- 遅くなりましてすいません。 おふた方有難うございます。 説明がわるかったようで、内容的にはse_9さんの言うとおりです。 しかし、張り付けて、セル、シート名を替えましたが インデックスが見つかりませんと「日付 = Sheets(1).Range("A2")」この部分が 黄色になってしまいます。。。。 Sub 別シートへ転記() Dim 日付 As Date Dim MyRange As Range 日付 = Sheets(打込欄).Range("B7") Set MyRange = Sheets(一月).Columns("A").Find(what:=日付) MyRange.Offset(0, 1) = Sheets(打込欄).Range("E7") End Sub こんな感じなんですが・・・ 初心者で勉強不足ですが宜しくお願いします。 ---- 追記です(まっきー) 打ち込み欄シート−−−−    A   B   C   D   E   F   G 1     売上 仕入 客数 2 12/1 5000  50  51 3 表示シート−−−−    A   B   C   D   E   F   G 1 日付  売上     合計  仕入     客数 2 12/1 5000      50   51 3 打ち込み欄のA2のセルはドロップダウンリストで 表示シートのA列からもってきています。 なんどもすみません。 ---- 何個もすみません;; 上の表とその上のソースは一緒じゃないです。 簡潔に分かりやすくしたかったので。。。すみません ---- インデックスの件は解決しました。 あらたなる壁が・・・・ MyRange.Offset(0, 1).Select = Sheets(1).Range("B2") 上記部分がオブジェクト変数またはブロック変数が〜になってしまいます。 ほんとに何度ももうしわけありません。 ---- インデックスの件は解決したということですが、一応書いておきます。 Sheetsの括弧内は""で括ってください。Sheets("打込欄")のように。 MyRange.Offset(0, 1).Select = Sheets(1).Range("B2") は .Select が不用です。 追記の件ですが 合計(D列)に50、仕入(E列)に51と入っていますが、実際は 仕入(E列)に50、客数(G列)に51ですよね? Sub 別シートへ転記() Dim 日付 As Date Dim MyRange As Range 日付 = Sheets("打込欄").Range("A2") Set MyRange = Sheets("表示").Columns("A").Find(what:=日付) With Sheets("打込欄") MyRange.Offset(0, 1) = .Range("B2") '売上 MyRange.Offset(0, 4) = .Range("C2") '仕入 MyRange.Offset(0, 6) = .Range("D2") '客数 End With End Sub ような感じでいいと思います。 *追記* Sheets(1)のような場合は""で括らなくても大丈夫です。 Sheets(1)の1はシートの1枚目、Sheets(2)はシートの2枚目という意味です。 シート名が変動する場合には上のような使い方が楽だと思います。 あと For sh = 1 to 10 Sheets(sh)… Next のような場合も""で括らなくても大丈夫です。 (se_9) ---- ありがとうございます。 できましたーーーーーーーーーー。 超初心者の私にもわかりやすく記述していただきありがとうございました。 まっきー