• ベストアンサー

【VBA】セルに含まれない値を追加していく

VBA初心者です あるリストの、指定の列の重複しない値のリストを作成したいのですが 具体的には A B C 1 大阪 りんご 10 2 東京 りんご 20 3 東京 りんご 30 4 名古屋 ごりら 40 5 福岡 ごりら 50 6 大阪 らっぱ 60 指定のセル内(E1:E10)にA列の重複しないリスト (この例だと、大阪、東京、名古屋、福岡) を作成したいのです いくつか試してみたけれどうまくいきません どのようなVBAを作成すればよいでしょうか よろしくお願いいたします

質問者が選んだベストアンサー

  • ベストアンサー
  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.1

こんにちは! A列に地名・B列に品名・C列に数値があるわけですよね? 今回の質問はB・C列は関係なく、A列のデータを重複なしでE列に表示したい! というコトでと解釈して・・・ 一例です。 シートモジュールにしていますので、 画面左下の操作したいSheet見出し上で右クリック → コードの表示 → VBE画面に ↓のコードをコピー&ペーストしてマクロを実行してみてください。 Sub Sample1() 'この行から Dim i As Long, cnt As Long, c As Range Range("E:E").ClearContents For i = 1 To Cells(Rows.Count, "A").End(xlUp).Row Set c = Range("E:E").Find(what:=Cells(i, 1), LookIn:=xlValues, lookat:=xlWhole) If c Is Nothing Then cnt = cnt + 1 Cells(cnt, "E") = Cells(i, "A") End If Next i End Sub 'この行まで こんな感じではどうでしょうか?m(_ _)m

kazu999999
質問者

お礼

希望通りのものができました ありがとうございました

その他の回答 (1)

回答No.2

一般機能で Sub Sample2()    Range("E:E").ClearContents ’E列を[Delete]    Rows("1:1").Insert Shift:=xlDown ’1行目を挿入    Range("A1") = "項目名" 'A1セルに「項目名」と入力    'フィルタオプションの設定 重複するレコードは無視する    Range("A1:A" & Range("A1").End(xlDown).Row).AdvancedFilter Action:=xlFilterCopy, _        CopyToRange:=Range("E1"), Unique:=True    Rows("1:1").Delete Shift:=xlUp ’1行目の削除 End Sub

kazu999999
質問者

お礼

返信遅くなりまして申し訳ございません 先にご回答いただいた方をベストアンサーとさせていただきました ありがとうございました

関連するQ&A