• ベストアンサー

【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

  • A、B列でのセルの個数を出したい。

    excel2003を使用しており、 A列    B列 東京   Aさん 東京   Aさん 東京   Aさん 東京   Bさん 東京   Cさん 東京   Cさん 名古屋  Dさん 名古屋  Dさん 名古屋  Dさん 名古屋  Eさん 名古屋  Eさん 名古屋  Aさん 大阪   Fさん 大阪   Fさん 福岡   Gさん 福岡   Gさん 福岡   Hさん といった状態のセルがあます。 この中から、【東京には3人、名古屋3人、大阪には1人福岡2人】 という数値を返す関数が分らないのです。 条件として、A列の土地名の種類は今後は増えません。B列の人名は今後も増える予定です。また、上例の様に、Aさんが東京にも名古屋にも存在するっといった事があります。 色々、COUNT系の関数を調べながらやってみたんですがうまいこといきません。お力添え頂ければ幸いです。宜しくお願い致します。

  • excel2003の、値抽出方法について。

    写真のように、A列に重複しているリストがあります。 C列に重複を排除したリストを作成する場合。 どのようにすればいいでしょうか。 VBAで記述した場合の方法と、関数の場合の方法とで それぞれ教えていただけるとありがたいです。

  • 最終行から順番に下へ同列で入力するVBAを教えて下さい。

    EXCELのVBAで教えて下さい。 セルA1に東京、A2に名古屋、A3に大阪と入力されています。 マクロのボタンにVBAの実行を割当て、ボタンを押す度にA1の東京がC5に、A2の名古屋がD5に、 A3の大阪がE5に入力され、更にA2又はA3のセルが空白でも必ず一行ずつ同じ行に入力されるにはどうしたら良いでしょうか? 例:入力の流れ  A    B    C    D    E    F   G・・・・・・ 1東京 2名古屋 3大阪 4 5          東京  名古屋 大阪 6          東京  名古屋 大阪 7 8 ・ ・ ・            ↓    ↓    ↓  A    B    C    D    E    F   G・・・・・・ 1東京 2 3大阪 4 5          東京  名古屋 大阪 6          東京  名古屋 大阪 7          東京        大阪 8 9 ・ ・            ↓    ↓    ↓  A    B    C    D    E    F   G・・・・・・ 1東京 2名古屋 3 4 5          東京  名古屋 大阪 6          東京  名古屋 大阪 7          東京        大阪 8          東京  名古屋 9 ・ ・         ※ポイント ・          セルD7を飛ばしてD8に入力される。            必ず一行ずつ同じ行に入力する。            EXCELを再起動しても入力セルの下から            続いて入力される。

  • リストと一致する値のセルを塗りつぶしたい。

    例えば A列に 東京都 神奈川県 埼玉県 千葉県 愛知県 大阪府 福岡県 という値が入力されているとします。 次にC列に 東京都 新潟県 大阪府 三重県 広島県 福岡県 という値が入力されているとします。 A列に入力されていて、かつC列にも入力されている値を自動的に赤く塗りたいとき、 どのような操作をすればいいのでしょうか。 この場合ですと東京都と大阪府と福岡県のセルが赤くなります。 条件附き書式と数式を組み合わせると良い気がしますが、 具体的には分かりません。

  • VBA 別シートにカウントした結果を表示したい

    VBA初心者です。 シート1で指定した単語をシート2にカウントした数を表示させたいです。 シート1のA列に100種類近い単語が縦に並んでいます。(重複している) 「りんご」「バナナ」「メロン」様々な単語があるとします。 シート2にはA列を横にした「りんご」「バナナ」「メロン」が並んでいます。(重複削除している) そのりんごなどの下に、リンゴがいくつか、バナナがいくつかをシート1からカウントした結果の数字を入れたいです。 今のところ、COUNTIFで単語を指定しているのですが、文言が増える可能性もあります。何かほかに案がありますでしょうか。 よろしくお願いいたします。

  • VBAを使用しての重複チェック→住所録作成

    VBAを始めたばかりの初心者です。 VBAにて受注データの重複チェックを行い、別シートへ住所録を作りたく奮闘しております。 他のシステムへインポートするため関数を使用するとなぜかエラーが出てしまうのでVBAのみで対応したいです。 Excelはバージョン2016です。 ▼受注データはおおむね下記の状態です。 シート1 A      B   C   D   E  F  G    H   I 受注日   電話1 電話2 電話3 名前 住所 商品  数量  受注ID 2016/2/5  11   111  1111 山田 東京 りんご  5  123-11111 2016/2/5  11   111  1111 山田 東京 いちご  2  123-11111 2016/2/5  11   111  1111 山田 東京 バナナ  6  123-11111 2016/2/5  80   8888 8888 鈴木 福岡 メロン  1  123-22222 2016/2/8  44   444  4444 加藤 奈良 りんご  3  123-33333 2016/2/8  44   444  4444 加藤 奈良 すいか  1  123-33333 2016/2/8  44   444  4444 加藤 奈良 ぶどう  5  123-33333 2016/2/8  44   444  4444 加藤 奈良 レモン  6  123-33333 2016/2/8  44   444  4444 加藤 奈良 いちご  2  123-33333 ▼やりたいこと シート2に受注IDを基に重複しないよう抽出して住所録を作りたいです。 (1) I列で重複をチェック (2) B列の電話1ですが先頭にOが削除されて表示されるのでシート2では0を付与してリスト化 (3) B列~D列の電話番号をシート2のリスト化の際には1つのセルに(ハイフンなしで)まとめる (4) (3)とは別のセルにB列~D列の電話番号をハイフンを付与してまとめる   ※電話番号は固定電話と携帯電話の番号が混ざっています。 (5) 住所録はシート2に作成 補足 (3)の情報は別システムのID(コード)として使用します。 (4)はそのまま電話番号として使用します。 ▼理想的な状態 A       B    C    D ID      名前   住所   電話  0111111111  山田   東京   011-111-1111 08088888888 鈴木   福岡   080-8888-8888 0444444444  加藤   奈良   044-444-4444 ▼難しそうなら最悪 A      B   C   D   E  F  G    H   I 受注日   電話1 電話2 電話3 名前 住所 商品  数量  受注ID 2016/2/5  11   111  1111 山田 東京 りんご  5  123-11111 2016/2/5  80   8888 8888 鈴木 福岡 メロン  1  123-22222 2016/2/8  44   444  4444 加藤 奈良 りんご  3  123-33333 までの状態にはもっていきたいです。 Webにて有志のかたの参考情報を基に 受注IDから重複チェックを行い特定のセルのみを抽出することは出来たのですが 行全体を抽出する方法がわかりませんでした…。 よろしくお願いいたします。

  • HTMLリストの作り方

    HTMLの<LI>で、 ● りんご ┣ごりら ┣らっぱ ┗ぱんつ のような構造のリストを簡単に作るcssはありませんか? わかるかたがいましたら教えてください。

    • 締切済み
    • CSS
  • エクセルVBAでセル選択

    エクセル2000でリストを作成し、VBAで編集しようとしています。 A列に入力されているコードの先頭に「’」をつけて文字列とするための関数をB2のセルからA列のデータが入力されている最後のセルの隣までコピーしたいと思っています。 A列の最終セルを取得するVBAは分かったのですが、その値をB列の選択範囲として使用する方法がわかりません。 エクセルVBAは全くの初心者です。 どなたか教えてください!

  • VBAでリスト通りにフォルダを作成

    excelのvbaでアクティブブックが入っているフォルダの中に"sheet1"のA列のリスト通りに名前を付けフォルダを作成したいです。リストに重複した名前がない場合はできますが、図のように重複した名前が入っているとどうすればいいか分からなく、ここに質問します。 どなたか知恵を貸していただけませんか? どうぞよろしくお願いいたします。

  • エクセルで試合結果を入力し、各シート(チーム毎)にまとめ、データベースを自動作成する方法教えてください。

    例えば、Jリーグの全試合結果をシート1に入力します。 A列に日付、B列にホームチーム名、C列にアウェイチーム名、D列に得点(ホーム)E列に失点(ホーム)、F列に得点(アウェイ)、G列に失点(アウェイ)とします。 A    B    C   D  E  F  G 3月2日 東京  名古屋  2  1  1  2 3月2日 大阪  福岡   1  0  0  1 3月9日 福岡  東京   3  1  1  3 3月9日 名古屋 大阪 シート2には、チーム毎の結果、例えば東京とすると、東京との対戦相手の結果のみが抽出される。 A    B    C   D  E  F  G 3月2日 東京  名古屋  2  1  1  2 3月9日 福岡  東京   3  1  1  3 そして、シート3を大阪とすると、大阪との対戦相手の結果のみが抽出され表示される。 このような、シート1に試合結果を入力すると各シートに表(チーム毎の表)が自動作成される関数を教えてください。 さらに、欲を言えば、シート2を東京と限定するので、B列に対戦相手、C列に場所、D列に得点、E列に失点というように一挙にまとめた表ができる関数があるとよいのですが・・・ A    B    C    D  E  3月2日 名古屋  ホーム  2  1   3月9日 福岡   アウェイ 1   3   上記のようなデータベース作成は、エクセルで無理なのでしょうか? またエクセルのマクロだと出来るのでしょうか? よろしくお願いいたします。

専門家に質問してみよう