Kazuki.io

プログラミングやITガジェットなどの備忘録だよ。人の役に立てばいいな。

VBAでシートをJOINする

 

f:id:kazukisaito:20191228173032p:plain

 

例えば以下のような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

 

ソースコードはこんな感じです。

 

VBA Join

 

21行目のようにクエリによるデータ取得によってシートを結合したCollectionを取得できます。

 

戻ってきたCollectionは36行目にあるCopyFromRecordSetで一括セル書き込みができます。便利だなぁ。

※結合する前、後、いずれともCollectionで管理できる最大フィールド数は256なので、それを超えるとエラーになります。