Выбранное значение из выпадающего списка добавляется в ячейку с этим списком. Удаление текста - двойной клик по ячейке.

В модуль листа:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim oldValue As String
If Application.Intersect(Range("B2"), Target) Is Nothing Then Exit Sub
Application.EnableEvents = False
Application.Undo
oldValue = Target.Value
Application.Undo
Target.Value = fNormal(oldValue & " " & Target.Value)
Application.EnableEvents = True
End Sub
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Application.Intersect(Range("B2"), Target) Is Nothing Then Exit Sub
Application.EnableEvents = False
Target.ClearContents
Application.EnableEvents = True
End Sub
Private Function fNormal(sText As String) As String
fNormal = Replace(Application.Trim(Replace(sText, ",", " ")), " ", ", ")
End Function
Строку можно выводить в другую ячейку (например, C4
). При таком варианте строк кода в два раза меньше:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim oldValue As String
If Application.Intersect(Range("B2"), Target) Is Nothing Then Exit Sub
Application.EnableEvents = False
Range("B4").Value = fNormal(Range("B4").Value & " " & Target.Value)
Application.EnableEvents = True
End Sub
Private Function fNormal(sText As String) As String
fNormal = Replace(Application.Trim(Replace(sText, ",", " ")), " ", ", ")
End Function