VBAでシートをJOINする
例えば以下のような2つのシートを結合したいとします。
結合するキーは各シートにあるCountryIDです。
SheetA
EmployeeID | Name | CountryID |
1 | Kajima | 1 |
2 | Anderson | 2 |
3 | Reetesh | |
4 | Kalvin | 3 |
5 | Adarton | |
6 | Ashton | 2 |
7 | Liu | 4 |
8 | Tanaka | 1 |
9 | Kimura | 1 |
10 | Pack |
SheetB
CountryID | CountryName |
1 | Japan |
2 | US |
3 | UK |
4 | China |
ソースコードはこんな感じです。
21行目のようにクエリによるデータ取得によってシートを結合したCollectionを取得できます。
戻ってきたCollectionは36行目にあるCopyFromRecordSetで一括セル書き込みができます。便利だなぁ。
※結合する前、後、いずれともCollectionで管理できる最大フィールド数は256なので、それを超えるとエラーになります。