🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら

Q&A

解決済

2回答

1139閲覧

Excel VBAでカンマ区切りの文字を列に一意で表示したい

KOnaga99

総合スコア16

0グッド

1クリップ

投稿2019/12/22 14:40

イメージ説明

エクセルVBAにてカンマ区切りの列を一意で別の列に表示したいと考えております。
恐らく、SPLIT関数で配列に入れた後に、重複する行を削除、降順に並び替え、重複する行を削除
すると思うのですが、書き方がどうしても不明です。
何か良い方法をご存じの方がいらっしゃいましたらご教示いただきたく。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

私がやるとこんな感じになりました。

vba

1Public Sub xxx1() 2 3 Dim sht As Excel.Worksheet 4 Set sht = ThisWorkbook.Worksheets("sheet1") 5 6 Dim arr() As String 7 Dim list As New Dictionary 8 Dim i As Integer 9 Dim j As Integer 10 Dim k As Integer 11 Dim m As Integer 12 13 i = 1 14 15 Do Until sht.Cells(i, 1) = "" 16 arr = Split(sht.Cells(i, 1), ",") 17 For j = 0 To UBound(arr) 18 If Not list.Exists(arr(j)) Then 19 list.Add arr(j), arr(j) 20 End If 21 Next 22 23 i = i + 1 24 Loop 25 26 m = 1 27 For k = 0 To list.Count - 1 28 sht.Cells(m, 3) = list.Items(k) 29 m = m + 1 30 Next 31 32End Sub

投稿2019/12/25 13:38

編集2019/12/25 13:40
firstlast

総合スコア138

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

ディクショナリを使うと自分でロジックを書くより簡単に実装できますよ。
https://kazusa-pg.com/vba-delete-element-in-array/

投稿2019/12/22 17:55

firstlast

総合スコア138

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

KOnaga99

2019/12/23 15:05

ありがとうございました。色々試してみます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問