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

めんどうな作業はExcelマクロにやらせよう<br />一瞬でダブりチェックが終わるマクロの作り方とは?Photo: Adobe Stock

圧倒的速さでダブりデータを削除する

「あちゃ~。データのダブりを見逃してた(泣)。資料を作り直さなきゃ……」

誰でも一度はこんな経験をしたことがあるのではないでしょうか。いちいち手と目を使ってチェックするのは、時間も気力も使いますよね。そこで、データのダブりを消すマクロを学んでいきます。

まず「練習」シートのデータへオートフィルタをかけ、A列のダブりを消します。その後、右図のように「ダブりなし」シートにデータをコピー&ペーストします。

めんどうな作業はExcelマクロにやらせよう<br />一瞬でダブりチェックが終わるマクロの作り方とは?

ダブりを消すには「AdvancedFilter」という特殊なオートフィルタを使います。フィルタの詳細設定の項目を使うマクロです。どの操作なのか一度エクセルで見てみましょう。

「データ」タブにあるフィルターの項目に詳細設定があります。

めんどうな作業はExcelマクロにやらせよう<br />一瞬でダブりチェックが終わるマクロの作り方とは?

ここにある「重複するレコードは無視する」をマクロで操作します。

めんどうな作業はExcelマクロにやらせよう<br />一瞬でダブりチェックが終わるマクロの作り方とは?

このオートフィルタをかけるには「AdvancedFilter」を書き、後ろにダブり消し用の条件を加えます。

Range("A:A").AdvancedFilter Action:=2, CopytoRange:=貼付先, Unique:=True

Action:=2 は「データ上でフィルタをかけた後、別シートにコピー」
CopytoRange は「ここにコピーを貼り付けます」
Unique:=True は「重複を無視します」という意味です。

今回、貼り付け先は「ダブりなし」シートのセルA1なので、マクロは次のようになります。

Sheets("練習").Select
Range("A:A").AdvancedFilter Action:=2, CopytoRange:=Sheets("ダブりなし").Range("A1"), Unique:=True

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

「ダブり消し」という名前を付け、マクロを書きましょう。

めんどうな作業はExcelマクロにやらせよう<br />一瞬でダブりチェックが終わるマクロの作り方とは?

ボタンにマクロを登録し、保存した後に押してみてください。「練習」シートのデータからダブりが消えたものが「ダブりなし」シートに貼り付いていれば成功です!

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

1 AdvancedFilter やCopytoRange、Unique、True などの綴りが間違っている
2 A:AやA1が" "(ダブルクォーテーション)で囲まれていない
3 :(コロン)が;(セミコロン)になっている
4 「:=」ではなく「= :」になっている
5 AdvancedFilter とAction の間のスペースが抜けている

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