• ベストアンサー

Excelでの質問です。

こんな事が出来るのか?出来ないのかさえ判らない者ですが・・・・     シート2のA列と、シート3のA列に上からランダム(上からは順番です、シート2と、シート3の順序はバラバラです)に日付を入力 この、それぞれに入力した日付をシート1の、A列の上から順番(入力順)に反映したい。     尚、シート2、シート3共、B列、C列、D列に日付の関連項目を入力し、これもシート1のB列、C列、D列に反映したい。    Excelの先達の方々、どうかよろしくご教授下さい。

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

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.1

>入力した順に ふつーに関数では出来ませんので,マクロを使って実現することになります。 手順: シート2のシート名タブを右クリックしてコードの表示を選び,現れたシートに下記をコピー貼り付ける private sub worksheet_change(byval Target as excel.range)  dim h as range  set target = application.intersect(range("A:A"), target)  if target is nothing then exit sub  for each h in target  if h <> "" then  with worksheets("Sheet1").raneg("A65536").end(xlup).offset(1)   .value = h.parent.name   .offset(0, 1) = h.row  end with  end if  next exit sub ファイルメニューからエクセルに戻る 続いてシート3のシート名タブを右クリックしてコードの表示を選び,現れたシートに同じ内容をコピー貼り付ける シート1に移動し,C列に C2: =IF(A2="","",INDIRECT(A2&"!A"&B2)) D2: =IF(A2="","",INDIRECT(A2&"!B"&B2))&"" E2: =IF(A2="","",INDIRECT(A2&"!C"&B2))&"" それぞれ下向けに沢山コピー と準備しておく シート2,3のA,B,C列にデータを記入すると,記入した順にシート1に現れる。

k-josui
質問者

お礼

keithin 様 ありがとうございました。 お陰様で完成しました。 この後、もう一つ作成予定のファイルがあります。 またそちらでも、わからない事がありましたら質問しますので、よろしくご指導くださいませ。

k-josui
質問者

補足

keithin 様、お答えありがとうございます。 されど、全て入力しシート2のA:2へ日付を入力すると「コンパイルエラー、end subが必要です」とエラーが返ってきます。     再度ご教授下さい、よろしくお願いします。

その他の回答 (2)

  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.3

ん? そこも誤記ですね まちがい: With Worksheets("Sheet1").raneg("A65536").End(xlUp).Offset(1) 訂正: With Worksheets("Sheet1").range("A65536").End(xlUp).Offset(1) 重ねてゴメンなさい。

k-josui
質問者

お礼

keithin 様 何度もお付き合い頂きありがとうございました。

  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.2

ありゃ,失敬。誤記てました。 まちがい: exit sub 訂正: end sub 失礼しました。

k-josui
質問者

お礼

ありがとうございます。

k-josui
質問者

補足

再度お願い致します。 シート2、あるいはシート3で日付を入力すると    実行時エラー:438 オブジェクトは、このプロパティまたはメソッドをサポートしていません      と表示され、デバッグボタンをクリックすると以下の行が黄色く表示されます。 With Worksheets("Sheet1").raneg("A65536").End(xlUp).Offset(1)       よろしくご指導ください。

関連するQ&A