• ベストアンサー

EXCEL2000:上書きするVBAのコードを教えてください。

EXCEL2000のマクロを使用して以下のようなことをやりたいと考えています。 VBAに記載するコードを教えていただけますでしょうか。 ●シート構成 1.データシート A列:各データを識別するコード(3桁で000、001等) B列:氏名 C列:年齢 D列:性別 2.入力シート A列:各データを識別するコード(3桁で000、001等) B列:氏名 C列:年齢 ●やりたいこと 1.「入力シート」に識別コードをふり、データを入力しています。 2.そのデータとは別に、「データシート」にもデータを入力しています。 3.「データシート」に存在するデータに関しては、入力シート上のA列:識別コードと同じデータのB列:氏名とC列:年齢を、「入力シート」上のそれぞれの列に上書きします。 4.「データシート」に存在しないデータに関しては、「入力シート」上に存在するデータをそのまま残します。 マクロを作動させると、上記一連の作業が完了するようにできればと考えています。 まとめますと、「データシート」上にデータが存在すればそれを「入力シート」上に表示し、存在しなければ「入力シート」のデータをそのまま表示するというような仕組みにできればと考えています。 ご回答よろしくお願い致します。

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

  • ベストアンサー
  • ja7awu
  • ベストアンサー率62% (292/464)
回答No.1

> VBAのコードを教えてください こういう質問の仕方は、余り関心しませんね。 丸投げ ですもんね。 今後、VBAを習得するのであれば、まず自分で考え、うまく行かなかった部分を 質問するよう、お勧めします。 一応、入力後に、まとめて突合せを行なうのであれば、こんな感じです。 Sub test() Dim WS1 As Worksheet Dim WS2 As Worksheet Dim Rng As Range Dim FndRng As Range Set WS1 = Worksheets("データシート") Set WS2 = Worksheets("入力シート") For Each Rng In WS2.Range("A2", WS2.Range("A65536").End(xlUp))   If Not IsEmpty(Rng) Then     Set FndRng = WS1.Range("A:A").Find(Rng.Value, lookat:=xlWhole)     If Not FndRng Is Nothing Then       Rng.Offset(, 1).Value = FndRng.Offset(, 1).Value       Rng.Offset(, 2).Value = FndRng.Offset(, 2).Value     End If   End If Next Rng End Sub

nihinihinihi
質問者

お礼

おっしゃる通りでございます。 大変失礼いたしましたm(__)m ありがとうございました。

すると、全ての回答が全文表示されます。

その他の回答 (1)

回答No.2

データシートに存在しないデータとは、何を基準に判断するのですか?  1.識別コード  2.名前  3.祖貴別コードと名前の組み合わせ マクロはどの段階で実行されるのですか?  1.識別コードなど、判断用キーデータが入力された時点  2.すべて入力後 入力シートにあってデータシートにないデータは、データシートに転記するの ですか?

nihinihinihi
質問者

お礼

No.1の方がおっしゃる通り、漠然とした質問をしすぎてしまったようです。申し訳ありません。 またあらためて質問させていただきます。 ありがとうございました。

すると、全ての回答が全文表示されます。

関連するQ&A