◆フィルタ オプションを使用して、重複しない Item を取得する
重複しない項目は、フィルターオプションを使用することで簡単に得られます。
ホストからデーターをダウンロードして、色々な処理を行うアプリケーションを
作成する場合などで、重複しない項目はいくつあるのか?
マクロを組むに当たってひとつの重要な要素になります。
重複しない項目を取得するには、
[データ]−[フィルタ]−[フィルタ オプションの設定]を使います。
ここでは、Download の example1 を例にして説明します。
example1 の 項目が重複している例題 (csv)をダウンロードしてください。
「スーパー洗濯機」や「未来が見えるメガネ」など、
複数行にわたり重複しています。
いったい何品目あるのでしょうか?
実際にExcelを操作して、重複しない品目コードを取得してみましょう。
ダウンロードした 項目が重複している例題 (csv)を開いて、
シートを追加してください。
追加したシートの名前を temp にしてください。
temp シートを選択しておきます。
最初に結果を出力させたいシートを選択して置くのがポイントです。
メニューの [データ]−[フィルタ]−[フィルタ オプションの設定]を実行し
ます。
@抽出先は、指定した範囲内を選択します。
Aリスト範囲は、in課題1!$B:$B を入力します。
をクリックして、in課題1のシートを選択後、
B列をクリックすればOKです。
もう一度押すともとに戻ります。
B検索条件範囲は何も入力しません。
C抽出範囲はtemp!$A$1 を入力します。
tempシートのA1をクリックすれば自動的に入力されます。
D「重複するレコードは無視する」チェックボックスをオンにします。
[OK]をクリックしてください。
このようになるはずです。重複しない品目は4品目でした。
これって、普通のExcelの操作でも知っていると便利です。
上記の操作をもう一度実行して、Excelにマクロを自動記録させてください。
記録されたマクロのシート名などを変数に置き換えたのが下記コードです。
Sub Get_ItemCount()
Windows(CSV_Workbook_Name).Activate
Sheets.Add after:=ActiveWorkbook.Sheets(CSV_Sheet_Name)
Sheets(ActiveSheet.Name).Name = "temp"
Sheets(CSV_Sheet_Name).Columns("B:B").AdvancedFilter _
Action:=xlFilterCopy, CopyToRange:=Range("A1"), Unique:=True
End Sub
example1 をダウンロードして、サンプルマクロを参照してください。
コメントを詳しく入れてあります。