|
>▼おにこ さん:
>
>語と語の区切りは「、」
>だとして、
>
>(元) AA列
>たぬき<みどり>、きつね
>
>(移動後)
> AA列 AH列
>きつね たぬき<みどり>
>となればいいのですか?
>
上のコードでやっていることを図で説明します。
AA列を1行づつ順に処理していきます。
セルの文字列中に「<」があったときだけ、移動処理をします。
> If InStr(ss, "<") > 0 Then
> aa = Split(ss, "、") 'セルの文字列を「、」で分割
分割したリストを2つのComboBoxのリストにセットします。
(このComboBoxは 見えません)
> List1.List = aa
> List2.List = aa
List1 List2
┌─────────┐ ┌─────────┐
│たぬき<みどり> │ │たぬき<みどり> │
│きつね │ │きつね │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
└─────────┘ └─────────┘
> With List1
このリストを下から調べていきます。
> For i = .ListCount - 1 To 0 Step -1
もし対象リストアイテムに「<*>」が含まれていたら
> If .List(i) Like "*<*>*" Then
List1からそのアイテムを削除します
> .RemoveItem i
> Else
含まれていなければ、List2のその行を削除します
> List2.RemoveItem i
> End If
> Next
> End With
この処理がおわると、2つのリストは以下のようになっています
List1 List2
┌─────────┐ ┌─────────┐
│きつね │ │たぬき<みどり> │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
└─────────┘ └─────────┘
それぞれのリストを(アイテムが複数あれば「、」でJoinして)
AA列とAH列に貼り付けます。
> c.Value = aa
> c.Offset(, 7).Value = ah
|
|