エクセルマクロの挫折しない勉強法や仕事で使いこなすコツを徹底解説!
講師の寺澤さんはこれまでの20年間マクロを使って様々な業務を効率化させるなど、数多くの社内表彰を受けてきました。例えば、数十万行の元データから分析用データを毎週作成する作業。人の手だと1週間かけても終わらない作業ですが、マクロを使うと30分程で完成してしまいます。さらに自ら社内講座も主催、全くマクロを触ったことがない数百人を指導し、満足度98%と人気を博しています。近著『4時間のエクセル仕事は20秒で終わる』では、そのエッセンスを余すところなく紹介しています。
本連載では、エクセルマクロを仕事で使うための本当に必要な知識だけを、できるだけわかりやすく説明していきます。
圧倒的速さでダブりデータを削除する
「あちゃ~。データのダブりを見逃してた(泣)。資料を作り直さなきゃ……」
誰でも一度はこんな経験をしたことがあるのではないでしょうか。いちいち手と目を使ってチェックするのは、時間も気力も使いますよね。そこで、データのダブりを消すマクロを学んでいきます。
まず「練習」シートのデータへオートフィルタをかけ、A列のダブりを消します。その後、右図のように「ダブりなし」シートにデータをコピー&ペーストします。
ダブりを消すには「AdvancedFilter」という特殊なオートフィルタを使います。フィルタの詳細設定の項目を使うマクロです。どの操作なのか一度エクセルで見てみましょう。
「データ」タブにあるフィルターの項目に詳細設定があります。
ここにある「重複するレコードは無視する」をマクロで操作します。
このオートフィルタをかけるには「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
完成させて動かしてみよう
「ダブり消し」という名前を付け、マクロを書きましょう。
ボタンにマクロを登録し、保存した後に押してみてください。「練習」シートのデータからダブりが消えたものが「ダブりなし」シートに貼り付いていれば成功です!
1 AdvancedFilter やCopytoRange、Unique、True などの綴りが間違っている
2 A:AやA1が" "(ダブルクォーテーション)で囲まれていない
3 :(コロン)が;(セミコロン)になっている
4 「:=」ではなく「= :」になっている
5 AdvancedFilter とAction の間のスペースが抜けている
(本稿は、寺澤伸洋著『4時間のエクセル仕事は20秒で終わる』を抜粋、再構成したものです)
寺澤伸洋(てらさわ・のぶひろ)
1976年、大阪府生まれ。灘高校、東京大学経済学部卒業後、日系メーカーで17年間勤務。経理や営業、マーケティング、経営企画などに携わり、独学で覚えたエクセルマクロを用いて様々な分析や業務改革を行う。2017年、GAFAの日本法人のうちの1社へシニアマネージャー(部長)として転職。これまでエクセルマクロを用いた業務改善などで数多くの社内表彰を受けている。手作業では不可能なほど大量のデータを、短時間で分析しやすく加工したことが評価され、社内エクセルマクロ講習会の講師として延べ200人以上に講座を実施。エクセルマクロについて1から10まで教える詰め込み型の学習ではなく、仕事に必要な部分だけを効率的に学べる講座として満足度98%の高い評価を受けている。