MENU
  • サービス
  • せるワザの特徴
  • お客様の声
  • 記事
    • データ分析
    • クエリ
    • ピボットテーブル
    • スクレイピング
    • 電子帳簿保存法
    • インボイス制度
    • 教育・学習
  • お知らせ
  • よくある質問
お見積りは無料!どんなことでもまずはご連絡ください!
EXCELの時短ツール開発なら『せるワザ』にお任せ!
  • サービス
  • せるワザの特徴
  • お客様の声
  • 記事
    • データ分析
    • クエリ
    • ピボットテーブル
    • スクレイピング
    • 電子帳簿保存法
    • インボイス制度
    • 教育・学習
  • お知らせ
  • よくある質問
EXCELの時短ツール開発なら『せるワザ』にお任せ!
  • サービス
  • せるワザの特徴
  • お客様の声
  • 記事
    • データ分析
    • クエリ
    • ピボットテーブル
    • スクレイピング
    • 電子帳簿保存法
    • インボイス制度
    • 教育・学習
  • お知らせ
  • よくある質問
  1. ホーム
  2. 記事
  3. ノン・プログラマー、仕事のためのマクロ・VBAシリーズ
  4. ノン・プログラマー、仕事のためのマクロ・VBA(5)重複チェック、目視で間違ってはいませんか? それ、VBAの仕事です。

ノン・プログラマー、仕事のためのマクロ・VBA(5)重複チェック、目視で間違ってはいませんか? それ、VBAの仕事です。

2024 6/08
ノン・プログラマー、仕事のためのマクロ・VBAシリーズ
2021年11月22日2024年6月8日

前回(「複数の見積書作成を自動化」)、ExcelでもVBAを活用すれば、差込印刷が可能になる、という説明をしました。作業が楽になるのは良いのだけれど、自動化で多くの件数をこなせるようになったら、データのダブり(重複)チェックをどうしますか?

目視? 今すぐやめましょう。

なぜなら、あなたが間違いを起こさない保証は、どこにもないからです。

見積書や請求書を重複して発行してしまったら? それこそ炎上必至ですよね。

データ重複チェックは、機械的に、ExcelのVBAにやらせて楽をしましょう。

今回は、簡単な重複チェックの「魔法の一文」をご紹介します。

目次

使う機能は、「フィルターオプション」です

ノン・プログラマー、仕事のためのマクロ・VBA(5)重複チェック、目視で間違ってはいませんか? それ、VBAの仕事です。

[データ]タブの、[フィルター]ボタン(コマンド)は、日頃から事務作業に活用している人も多いでしょう。

しかし、その右下の[詳細設定]ボタン(コマンド)は使っていますか? ここには、[オートフィルター]では実現できない、さまざまなオプション機能が隠されています。

たとえば、見積書や請求書などに差し込みたい宛名リストがあるとします。

ノン・プログラマー、仕事のためのマクロ・VBA(5)重複チェック、目視で間違ってはいませんか? それ、VBAの仕事です。

※注:宛名リストは、法人名でも個人名でも同じように重複チェックできますが、この記事では、「すごい名前生成器」が完全ランダム生成した男性名10件、女性名10件を抽出しています。特定の個人を指すものではないダミー人名簿です。

差込印刷を使って作成する書類は20通のはずですが、複数の担当者が連絡を取り合って、台帳には5件の重複データが出てしまいました。

上記の一覧だけみて、すぐに5件のダブりを見つけられましたか?

これ、Excelの仕事です。

ノン・プログラマー、仕事のためのマクロ・VBA(5)重複チェック、目視で間違ってはいませんか? それ、VBAの仕事です。

[オートフィルター]では、抽出した結果を別表として使用する際に、一度[コピー]→[ペースト]する必要があります。

しかし、

[詳細設定]→[リスト範囲]指定&[重複するレコードは無視する]にチェック→[OK]

と進むと、重複が排除された20件のレコードが、瞬時に元表と並んでペーストされます。

ノン・プログラマー、仕事のためのマクロ・VBA(5)重複チェック、目視で間違ってはいませんか? それ、VBAの仕事です。

これなら、重複確認がずいぶん楽に進められそうですね。

このように便利な[フィルターオプション]ですが、それでもまだ、機能には限界があります。たとえば、元表はそのまま保存しておき、「別のワークシートに抽出結果を保存しておきたい」という要望には、[フィルターオプション]のダイアログボックスでは対応できないのです。

そこで、VBAの「魔法の一文」が登場です。

AdvancedFilterは、ぜひ覚えておきたい機能

上記の[フィルターオプション]で実現したことを、VBAで記述すると、本文は一文にまとめられます。

Sub overlap_checker()
 
 Worksheets("original").Range("A:A").AdvancedFilter Action:=xlFilterCopy, CopytoRange:=Sheets("abstraction").Range("A1"), Unique:=True

‘ワークシート名”original”のA列データに関して、あらかじめ作成された別ワークシート”abstraction”のセルA1を始点に、フィルター結果(重複を無視した抽出結果)をコピーするプログラムです。
 
 End Sub

記述は簡単ですが、[フィルターオプション]のダイアログボックスでは実現できなかった高度なことを、実現できていますね。

構文に沿って記述を重ねていくことで、さらに高度な複数抽出条件なども重ねていくことができます。

基本的な構文([ ]は省略可能)は、

AdvancedFilter(Action, [CriteriaRange],[CopyToRange], [Unique])

となっており、Actionの引数には「xlFilterInPlace」(検索結果を同じ場所に出力)、もしくは「xlFilterCopy」(検索結果を別の場所に転記)などを指定します。

「xlFilterCopy」の場合に「CopyToRange」で転記先を正確に指定すれば、別ワークシートであっても、結果をはき出すことができるのです。

「CriteriaRange」は検索条件範囲を、「Unique」は重複データを除く(ture)か含む(false)かの指定をします。

まとめ

重複チェックはあなたの仕事じゃありません。オートフィルター→フィルターオプション→VBAの順で、どうしたら自動化できるか、作業の初期に考えてみましょう。

事例はとてもシンプルなものですが、実務上では、より複雑な、大容量の重複チェックをする場面が多々出てきます。

しかし、どのような場合にも、「ご自身の努力と根性」で乗り切る発想は、すぐに捨ててください。重複チェックのプログラムを自分で組んでみることは、VBA初歩の、とても良い練習になります。まずは、「Excelのどの機能を使ったら、”手抜きできる”=自動化できる、か」を、目視し始める前に考えてみてください。

Excelを使いこなせる範囲が、格段に広がりますよ。






小さなお悩みでも、お気軽にご相談ください!

お問い合わせ

お急ぎの方はお電話にてお問い合わせください 050-6867-2130

セルワザでは、役に立つEXCELワザをご紹介しております!

詳しく見てみる!

小さなお悩みでも、
お気軽にご相談ください!

お問い合わせ

お急ぎの方はお電話にてお問い合わせください
050-6867-2130

セルワザでは、役に立つEXCELワザを
ご紹介しております!

詳しく見てみる!
ノン・プログラマー、仕事のためのマクロ・VBAシリーズ
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
  • 「データ分析」のアドインを追加して、今日から私もプチ・サイエンティスト!?
  • 電子帳簿保存法(電帳法)大幅改正(1)「検索機能の確保」はExcelだけでOK!

関連記事

  • SWITCH関数は、Excelデータベース簡素化への入口!?IFS関数とうまく使いわけてみましょう
    2025年5月12日
  • スマートフォンのPayPayアプリ取引履歴が、CSVダウンロードできるようになりましたよ!
    2025年5月5日
  • どうしてもスクエア(四角)型月間カレンダーを使いたい方へ、それでもやはり「Excelを使う!」ことをおすすめします
    2025年4月28日
  • リボ払いの怖さを、Excel関数でシミュレーションしてみましょう
    2025年4月21日
  • Google Gemini advancedへ、Excelブックをアップロードしてみましょう、仕事に役立つ問答集になるか否か?
    2025年4月14日
  • 和暦←→西暦変換、どうしてますか?そろそろExcelにまかせてはいかがですか?
    2025年4月7日
  • Microsoft 365 版 ExcelのCopilotボタン、もう使ってみましたか?
    2025年3月10日
  • 紙レシートのテキストデータ化、実はAIに相談してみるといいかも!?
    2025年3月3日
  • サービス
  • せるワザの特徴
  • 記事
  • お知らせ
  • よくある質問
  • お問い合わせ
  • プライバシーポリシー
  • 特定商取引法に基づく表記

© EXCELの時短ツール開発なら『せるワザ』にお任せ!.

目次