エクセルマクロの挫折しない勉強法や仕事で使いこなすコツを徹底解説!
講師の寺澤さんはこれまでの20年間マクロを使って様々な業務を効率化させるなど、数多くの社内表彰を受けてきました。例えば、数十万行の元データから分析用データを毎週作成する作業。人の手だと1週間かけても終わらない作業ですが、マクロを使うと30分程で完成してしまいます。さらに自ら社内講座も主催、全くマクロを触ったことがない数百人を指導し、満足度98%と人気を博しています。近著『4時間のエクセル仕事は20秒で終わる』では、そのエッセンスを余すところなく紹介しています。
本連載では、エクセルマクロを仕事で使うための本当に必要な知識だけを、できるだけわかりやすく説明していきます。

【Excelマクロ × VLOOKUP活用術】<br />2つの表を自動で合体させるマクロの作り方とは?Photo: Adobe Stock

2つの表を自動で合体させるテクニック

ある表に、新しい列を挿入して、一番上のセルにVLOOKUP関数やSUM関数を入れる。

そのセルをデータの一番下までドラッグでザッと引っ張ってコピーし情報を付け足す作業、よくありますよね。一度きりならよいのですが、定例資料を作るのに毎週繰り返していると地味にめんどう。

実は、この作業もマクロにやらせることができます。

「練習」というシートに担当名と担当エリアの表があるとします。

【Excelマクロ × VLOOKUP活用術】<br />2つの表を自動で合体させるマクロの作り方とは?

今回はこれに、「所属」シートの表から各担当者の所属を付け足します。

【Excelマクロ × VLOOKUP活用術】<br />2つの表を自動で合体させるマクロの作り方とは?

さらに処理の最後に数式を消して演算結果だけを値貼り付けします。

これでエクセルを動かすたびに関数が再計算し、動きが遅くなることを防げます。

【Excelマクロ × VLOOKUP活用術】<br />2つの表を自動で合体させるマクロの作り方とは?

次のように考えてマクロを書いていきます。
① 「練習」シートB列に1列挿入し、セルB1にタイトルを付ける
② セルB2にVLOOKUP関数を入れ、表の1番下までコピーする
③ ②で数式を入れたセルをコピーし、同じ場所に値貼り付けする

では、1つずつ説明していきます。

①「練習」シートB列に1列挿入し、セルB1にタイトルを付ける

「練習」シートを選び、B列に新たに列を挿入します。次にセルB1に「所属」と入力します。

Sheets("練習").Select
Range("B:B").Insert
Range("B1") = "所属"

【Excelマクロ × VLOOKUP活用術】<br />2つの表を自動で合体させるマクロの作り方とは?

② セルB2にVLOOKUP関数を入れ、表の1番下までコピーする

セルB2にVLOOKUP関数「=VLOOKUP(A2, 所属!A:B,2,FALSE)」を入れて、所属を追加します。

合わせてセルB2をコピーしておきます。

Range("B2").Formula = "=VLOOKUP(A2,所属!A:B,2,FALSE)"
Range("B2").Copy

【Excelマクロ × VLOOKUP活用術】<br />2つの表を自動で合体させるマクロの作り方とは?

このセルからデータの終端セルB4までを選んでペーストします。データが何行あっても最後の行まで数式が貼り付けされるマクロにすれば使いやすくなります。

黄色のセルは終端セルと相対参照の組み合わせで選択できます。A列の終端セルを探し、右に1つ移動させます。このセルをSelectで選択しておくと、以後はSelectionで表せます。

Range("A100000").End(xlUp).Offset(0, 1).Select

セルB2からSelectionまでを範囲選択するには「Range("B2",Selection)」と書きます。

ここに先ほどコピーした数式を貼り付けます。

Range("B2", Selection).PasteSpecial Paste:=xlFormulas

③ ②で数式を入れたセルをコピーし、同じ場所に値貼り付けする

データを追加した範囲をコピーして、同じ範囲に値貼り付けしましょう。数式の結果が値になりファイルを軽くできます。VLOOKUP関数の参照元を消してしまってもエラーが出なくなります。

Range("B2", Selection).Copy
Range("B2", Selection).PasteSpecial Paste:=xlValues

完成させて動かしてみよう

「情報列挿入」という名前を付け、マクロを書きましょう。

【Excelマクロ × VLOOKUP活用術】<br />2つの表を自動で合体させるマクロの作り方とは?

ボタンにマクロを登録し、保存した後に押してみてください。「練習」シートのB列に所属の情報が挿入されれば成功です!

エラーが出たらチェック! よくある間違い

1 Selection、End(xlUp)、PasteSpecial、xlValues、xlFormulas の綴りが間違っている
2 B2とSelectionの間の,(コンマ)が:(コロン)になっている
3 Range("B2", Selection) の" "(ダブルクォーテーション)が間違っている
4 :(コロン)が;(セミコロン)になっている
5 「 :=」ではなく「=:」の順番になっている

(本稿は、寺澤伸洋著『4時間のエクセル仕事は20秒で終わる』を抜粋、再構成したものです)

参考記事① 初心者でも簡単マスター!「Excelマクロの学び方」4つのポイント
参考記事② たった1行でOK!Excelマクロで、データに挿入した空白列の末尾を選択するテクニック
参考記事③ Excelマクロ省力化のコツ!同じ大きさの範囲を何度も選択するときの便利な書き方とは?
参考記事④ 初心者でもわかるExcelマクロ入門! コピーしたセルのさまざまな貼り付け方をマスター