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

初心者でもわかるExcelマクロ入門! オートフィルタを使って複数条件で項目を抽出する方法Photo: Adobe Stock

複数条件で絞る方法

前回に引き続き、オートフィルタの使い方を解説していきます。

今回は、複数条件にあった項目に絞るマクロを学びます。引き続き同じ「練習」シートでフィルタをかけます。

初心者でもわかるExcelマクロ入門! オートフィルタを使って複数条件で項目を抽出する方法

それでは、名前が「田中」もしくは「佐藤」で、金額が「40より大きい」かつ「60以下」の行だけを抽出しましょう。

初心者でもわかるExcelマクロ入門! オートフィルタを使って複数条件で項目を抽出する方法

AutoFilterの後ろに半角スペースを空け、その後に「何列目のフィルタか」「絞る条件は何か」を並べて指定します。複数条件を設定するときには、3つ注意点があります。

① 1列目への条件指定と2列目への条件指定はそれぞれ別の行に書く
② 1つの列に対し、条件は2つまで
③ 条件を2つ入れるときは、間に「xlOr(もしくは)」か「xlAnd(かつ)」を入れる

マクロは次のように書きます。

Sheets("練習").select
Range("A:B").AutoFilter 1, "田中", xlOr, "佐藤"
Range("A:B").AutoFilter 2, ">40", xlAnd, "<=60"

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

「フィルタ3」という名前を付け、マクロを書きましょう。

初心者でもわかるExcelマクロ入門! オートフィルタを使って複数条件で項目を抽出する方法

ボタンにマクロを登録し、保存した後に押してみてください。名前が「田中」もしくは「佐藤」で、金額が「40より大きい」かつ「60以下」の行だけ抽出されれば成功です!

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

1 RangeやSelect、AutoFilter、xlの綴りが間違っている
2 A:Bや条件が" "(ダブルクォーテーション)で囲まれていない
3 SelectやAutoFilterの前に.(ピリオド)がない
4 AutoFilterと1や2の間に半角スペースがない
5 xlOrやxlAndの前後に,(コンマ)がない

不等号の使い方

数値の大小を比較するときは、>(大なり)か<(小なり)を書きます。「以上」「以下」は、右側に=(イコール)を付けます。また「等しくない」を表すときには、大なりと小なりを組み合わせた<>を使います(これは文字列にも利用できます)。

初心者でもわかるExcelマクロ入門! オートフィルタを使って複数条件で項目を抽出する方法

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

寺澤伸洋(てらさわ・のぶひろ)

初心者でもわかるExcelマクロ入門! オートフィルタを使って複数条件で項目を抽出する方法

1976年、大阪府生まれ。灘高校、東京大学経済学部卒業後、日系メーカーで17年間勤務。経理や営業、マーケティング、経営企画などに携わり、独学で覚えたエクセルマクロを用いて様々な分析や業務改革を行う。2017年、GAFAの日本法人のうちの1社へシニアマネージャー(部長)として転職。これまでエクセルマクロを用いた業務改善などで数多くの社内表彰を受けている。手作業では不可能なほど大量のデータを、短時間で分析しやすく加工したことが評価され、社内エクセルマクロ講習会の講師として延べ200人以上に講座を実施。エクセルマクロについて1から10まで教える詰め込み型の学習ではなく、仕事に必要な部分だけを効率的に学べる講座として満足度98%の高い評価を受けている。