• ベストアンサー

ExcelVBAでプログラミング

ExcelVBA初心者です。 A表とB表があり、そこからC表を出力するプログラミングを作りたいのですが教えてください。 A表(順不同) あ 100 い 1000 う 1500 え 1800 お 300 B表(順不同) a う b あ c え d お e い C表(B表の記載順) a 1500 b 100 c 1800 d 300 e 1000 A表とB表は与えられていて、A表とB表の順番は入れ替わることがあるとする。C表はB表の記載順に整列する。 色々調べたのですがどのようなプログラミングを組んだらよいのかわからずこのサイトで質問に踏み切りました。 宜しくお願い致します。

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

  • ベストアンサー
  • lark_0925
  • ベストアンサー率63% (37/58)
回答No.1

まず、VBAでプログラミングすることが目的なら、 A、B,C表がどこのシート(どんな名前のシート名)にあるとか それぞれの表がセル番地のどこに入力されているか等を 明確に記述した方が良いですよ!! そうしないと回答者がそれを規定しなければなりませんから・・・。 シート名を  表の名前だとします。つまり、 A表があるシート名をA表 B表があるシート名をB表 C表があるシート名をC表 とし、それぞれの表は各シートのセルA1~B5(例題の場合) に入力されているとします (C表の場合は、その範囲に作成するものとします) 標準モジュールに '======================================================= Sub main()   Dim arng As Range   Dim brng As Range   With Worksheets("A表")     Set arng = .Range("a1", .Cells(.Rows.Count, "a").End(xlUp)).Resize(, 2)     End With   With Worksheets("B表")     Set brng = .Range("a1", .Cells(.Rows.Count, "a").End(xlUp))     End With   With Worksheets("C表").Range(brng.Address)     .Value = brng.Value         .Offset(0, 1).Formula = "=vlookup(" & _               brng.Cells(1, 2).Address(False, False, , True) & _               "," & arng.Address(, , , True) & ",2,false)"     End With End Sub mainを実行してみてください

kx15
質問者

お礼

お礼が遅くなって申し訳ありませんでした。 lark_0925さんの回答の通りにSheetに名前をつけ実行してみました。 自分が勉強不足なのを改めて実感しました。 忙しいなか今回は回答頂き本当にありがとうございました。 これからもっと勉強をしていきたい思います。 lark_0925さんをみつけたら今度は力になりたいと思っています。 本当にありがとうございました。

その他の回答 (2)

  • squip
  • ベストアンサー率16% (2/12)
回答No.3

A表を Sheet1、B表を Sheet2 とし、それぞれ A 列と B 列にデータがあるものとする。 C表を Sheet3 として、以下の式を入力する。 A1: =Sheet2!A1 B1: =VLOOKUP(Sheet2!B1,Sheet1!A:B,2,FALSE) 範囲 A1:B1 を選択して必要な行数分オートフィルする。

kx15
質問者

お礼

今回は回答頂きありがとうございました。 まだまだ勉強不足を感じこれからもっと勉強していきたいと思います。 squipさんから指摘いただいたVLOOLUPの使い方がネットや書籍を通してもいまいち理解できずもう少し勉強を進めてから使ってみようと考えています。 徐々にプログラミングに慣れていけたらと考えています。 今回は本当にありがとうございました。

  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.2

A・B・C表は同じシートにあるのですか?違うのですか? シート構成(セル番地)はどのようになっているのですか? A・B表のキーは重複はないのですね?

kx15
質問者

お礼

今回は質問の仕方や説明不足を指摘して頂きありがとうございました。 表をどこに配置するかやsheet構成の事を考えずに質問してしまいすいませんでした。 次回からはもっと勉強をし、しっかり構成を考えてから質問したいと思います。

関連するQ&A