見出し画像

【マクロの成長記録:20日目】ユニーク機能を使って重複の削除してから、数値の合計

どーもKiyotomoです。

昨日は孫の顔を見せに実家に戻った為、
マクロの更新が途絶えてしまいました....

1日途絶えましたが、今日もマクロ始めます!

今日の問題

ユニーク機能を使って重複の削除してから、数値の合計

関数でも使うユニーク機能(=unique(範囲)で簡単です)
これを使えば重複したデータを一瞬で精査できます。
マクロでは使ったことないです...

コード

今回は全く分かりませんでした。。。

Sub 練習問題21_2()
  Dim i As Long
  Range("D1").CurrentRegion.Offset(1).ClearContents '出力範囲の消去
  Range("A1").CurrentRegion.AdvancedFilter _
    Action:=xlFilterCopy, _
    CopyToRange:=Range("D1"), _
    Unique:=True
  For i = 2 To Cells(Rows.Count, 4).End(xlUp).Row
    Cells(i, 5) = WorksheetFunction.SumIf(Columns(1), Cells(i, 4), Columns(2))
  Next
End Sub

このような答えのようです。
Unique:=True
⇒これは関数のつづりと一緒ですね。
Trueとなっているのでユニーク機能はここで設定するようです。

更に
Range("A1").CurrentRegion.AdvancedFilter _
    Action:=xlFilterCopy, _
    CopyToRange:=Range("D1"), _

CurrentRegionは範囲選択するコードなので、
ここでA1を起点に範囲で選択し、AdvancedFilterで
フィルターを指示しているようですね。

そしてその後、D1にユニーク機能をつけてコピペ

コードを見ると思ったよりは複雑ではないですね。
そして関数を知っているとなんとなくの意味は分かりやすいです。

今日は以上です!
最後まで読んで頂きありがとうございましたー!


"VBAの勉強方法"を出版しました!
これから勉強しようとしている方、一度勉強したけど躓いた方、
挫折しないコツをまとめているので、ぜひ読んでみてください!

▼Kindleはコチラ ※Kindle Unlimitedの方なら無料で読めます

▼Brainはこちら


よろしければサポートセンターお願いいたします! 頂いたサポートはクリエイターとしての活動費として使わせて頂きます