- ベストアンサー
Excelでの質問です。
こんな事が出来るのか?出来ないのかさえ判らない者ですが・・・・ シート2のA列と、シート3のA列に上からランダム(上からは順番です、シート2と、シート3の順序はバラバラです)に日付を入力 この、それぞれに入力した日付をシート1の、A列の上から順番(入力順)に反映したい。 尚、シート2、シート3共、B列、C列、D列に日付の関連項目を入力し、これもシート1のB列、C列、D列に反映したい。 Excelの先達の方々、どうかよろしくご教授下さい。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
>入力した順に ふつーに関数では出来ませんので,マクロを使って実現することになります。 手順: シート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に現れる。
その他の回答 (2)
- keithin
- ベストアンサー率66% (5278/7941)
ん? そこも誤記ですね まちがい: With Worksheets("Sheet1").raneg("A65536").End(xlUp).Offset(1) 訂正: With Worksheets("Sheet1").range("A65536").End(xlUp).Offset(1) 重ねてゴメンなさい。
お礼
keithin 様 何度もお付き合い頂きありがとうございました。
- keithin
- ベストアンサー率66% (5278/7941)
ありゃ,失敬。誤記てました。 まちがい: exit sub 訂正: end sub 失礼しました。
お礼
ありがとうございます。
補足
再度お願い致します。 シート2、あるいはシート3で日付を入力すると 実行時エラー:438 オブジェクトは、このプロパティまたはメソッドをサポートしていません と表示され、デバッグボタンをクリックすると以下の行が黄色く表示されます。 With Worksheets("Sheet1").raneg("A65536").End(xlUp).Offset(1) よろしくご指導ください。
お礼
keithin 様 ありがとうございました。 お陰様で完成しました。 この後、もう一つ作成予定のファイルがあります。 またそちらでも、わからない事がありましたら質問しますので、よろしくご指導くださいませ。
補足
keithin 様、お答えありがとうございます。 されど、全て入力しシート2のA:2へ日付を入力すると「コンパイルエラー、end subが必要です」とエラーが返ってきます。 再度ご教授下さい、よろしくお願いします。