◆フィルタ オプションを使用して、重複しない 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()
'開いた in課題1.CSVをアクティブにします
Windows(CSV_Workbook_Name).Activate
'作業用のSheetを挿入します
Sheets.Add after:=ActiveWorkbook.Sheets(CSV_Sheet_Name)
'挿入した作業用 Sheet の名前を "temp" にします
Sheets(ActiveSheet.Name).Name = "temp"
'重複しない品目コードを取り出します
Sheets(CSV_Sheet_Name).Columns("B:B").AdvancedFilter _
Action:=xlFilterCopy, CopyToRange:=Range("A1"), Unique:=True
End Sub
example1 をダウンロードして、サンプルマクロを参照してください。 コメントを詳しく入れてあります。
