Private Sub UserForm_Initialize()
Dim t$, i&, a1(), a2: ReDim a1(1, 0)
Open "D:mData.txt" For Input As #1
Do While Not EOF(1)
Line Input #1, t
a2 = Split(t, "¦")
a1(0, i) = a2(0)
a1(1, i) = Replace(a2(1), ";", "")
i = i + 1: ReDim Preserve a1(1, i)
Loop
Close #1
ListBox1.Column = a1
End Sub
Private Sub CommandButton1_Click()
Dim t$, i&
With ListBox1
For i = 0 To .ListCount - 1
If .Selected(i) = True Then
t = t & "," & .List(i, 1)
End If
Next
End With
MsgBox Mid(t, 2)
End Sub
Как вытащить адреса из текстового файла?
Есть текстовый файл (mData.txt) с начинкой:
Иванов¦Iv@mail.ru;
Петров¦Pe@mail.ru;
Сидоров¦Si@mail.ru;
Надо из него сделать выпадающий(появляющийся) список с возможностью отметить галочкой получателей. И после выбора получить в переменную адреса (которые сидят после разделителя ¦).
Делаю макрос для отправки письма через Аутлюк с аттачем, путь к которому сидит в буфере обмена.
Код:
Dim mAddress As New Collection
Dim mFIO As New Collection
Dim mMail As New Collection
Open "d:mData.txt" For Input As #1
Do While Not EOF(1)
Line Input #1, TextLine
mAddress.Add Item:=TextLine
TextLine1 = TextLine1 + TextLine
Loop
Close #1
For a = 1 To mAddress.Count
mFIO_tmp = Split(mAddress(a), "¦")(0)
mFIO.Add Item:=mFIO_tmp
Next a
For b = 1 To mAddress.Count
mMail_tmp = Split(mAddress(b), "¦")(1)
mMail.Add Item:=mMail_tmp
Next b
Dim mFIO As New Collection
Dim mMail As New Collection
Open "d:mData.txt" For Input As #1
Do While Not EOF(1)
Line Input #1, TextLine
mAddress.Add Item:=TextLine
TextLine1 = TextLine1 + TextLine
Loop
Close #1
For a = 1 To mAddress.Count
mFIO_tmp = Split(mAddress(a), "¦")(0)
mFIO.Add Item:=mFIO_tmp
Next a
For b = 1 To mAddress.Count
mMail_tmp = Split(mAddress(b), "¦")(1)
mMail.Add Item:=mMail_tmp
Next b
Если в используемом ListBox есть свойство Column, то как вариант :
Цитата: pashulka
Если в используемом ListBox есть свойство Column, то как вариант :
Код:
Private Sub UserForm_Initialize()
Dim t$, i&, a1(), a2: ReDim a1(1, 0)
Open "D:mData.txt" For Input As #1
Do While Not EOF(1)
Line Input #1, t
a2 = Split(t, "¦")
a1(0, i) = a2(0)
a1(1, i) = Replace(a2(1), ";", "")
i = i + 1: ReDim Preserve a1(1, i)
Loop
Close #1
ListBox1.Column = a1
End Sub
....
Dim t$, i&, a1(), a2: ReDim a1(1, 0)
Open "D:mData.txt" For Input As #1
Do While Not EOF(1)
Line Input #1, t
a2 = Split(t, "¦")
a1(0, i) = a2(0)
a1(1, i) = Replace(a2(1), ";", "")
i = i + 1: ReDim Preserve a1(1, i)
Loop
Close #1
ListBox1.Column = a1
End Sub
....
Спасибо. Именно такой вариант и хотелось увидеть - коротко и красиво.