この記事では、定義された範囲から一意の値を抽出するマクロを作成します。

この例の生データは、A7:A21の範囲の国名の重複エントリで構成されています。

ArrowMain

定義された範囲から一意の値を抽出するために、「FindUniqueValues」マクロを作成しました。このマクロは、「送信」ボタンをクリックして実行できます。 「送信」ボタンをクリックする前に、セルH9に重複データを含む範囲のアドレスと、出力を表示する宛先のアドレスを指定する必要があります。

ArrowOutput

ロジックの説明

「findUniqueValues」マクロは、入力パラメーターとして2つの範囲オブジェクトを取ります。

最初のパラメーターは重複データを含む範囲を定義し、2番目のパラメーターは出力を含む開始セルの位置を定義します。パラメータを指定する必要があるため、このマクロを直接呼び出すことはできません。そのため、マクロを呼び出すための2番目のマクロ「MacroRunning」を作成しました。

「macroRunning」マクロは、ユーザーが入力したパラメーターを使用して「FindUniqueValues」マクロを呼び出します。

コードの説明

SourceRange.AdvancedFilter Action:= xlFilterCopy、_ CopyToRange:= TargetCell、Unique:= True RangeオブジェクトのAdvancedFilterメソッドは、特定の基準に基づいて範囲からデータをフィルタリングまたはコピーするために使用されます。一意の値のみをコピーするには、AdvancedFilterのUniqueパラメーターをTrueに設定する必要があります。

コードについては以下に従ってください

Option Explicit

Sub FindUniqueValues(SourceRange As Range, TargetCell As Range)

'Using advance filter for extacting unique items in the source range

SourceRange.AdvancedFilter Action:=xlFilterCopy, _

CopyToRange:=TargetCell, Unique:=True



End Sub

Sub MacroRunning()

'Calling FindUniqueValues macro

Call FindUniqueValues(Range(Range("H9").Value), Range(Range("H10").Value))

End Sub

このブログが気に入ったら、FacebookやFacebookで友達と共有してください。

皆様からのご意見をお待ちしております。私たちの仕事を改善し、より良いものにする方法をお知らせください。 [email protected]までご連絡ください