Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.62/13: Рейтинг темы: голосов - 13, средняя оценка - 4.62
2 / 2 / 0
Регистрация: 09.02.2011
Сообщений: 59

Написать макрос для Microsoft Outlook, который будет преобразовывать HTML текст

29.10.2014, 11:59. Показов 2515. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день, необходимо написать макрос для Microsoft Outlook, который будет преобразовывать html текст (письмо заказ с интернет-магазина) в excel файл. Все письма заказов имеют одинаковую структуру.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
29.10.2014, 11:59
Ответы с готовыми решениями:

Написать макрос, который будет копировать текст из "Надпись" в ячейки
Здравствуйте, нужно написать макрос, а потом надстройку, которая будет копировать текст из "Надпись" в ячейки. Проблема в том,...

Написать макрос для Word, который будет делать автосумму как в Excel
Здравствуйте, помогоите пожалуйста написать макрос для Word, который будет делать автосумму как в Excel.

Написать макрос который будет работать в виде теста и в конце выводить результат
Здравствуйте, есть задача написать макрос который будет работать в виде теста и в конце выводить результат, написал данное , но не...

9
 Аватар для Alex77755
11525 / 3812 / 683
Регистрация: 13.02.2009
Сообщений: 11,229
30.10.2014, 07:39
Пример письма хоть приложил бы
1
2 / 2 / 0
Регистрация: 09.02.2011
Сообщений: 59
30.10.2014, 09:47  [ТС]
0
2 / 2 / 0
Регистрация: 09.02.2011
Сообщений: 59
30.10.2014, 09:50  [ТС]
В excel файле нужны только Информация о клиенте, в отдельной ячейке, например А1
ниже код товара, количество, цена, доставка и итого
0
 Аватар для Alex77755
11525 / 3812 / 683
Регистрация: 13.02.2009
Сообщений: 11,229
30.10.2014, 10:00
из VBA сложно работать с картинками
Нужен сам файл.
И потом почему именно в Outlook?
Можно и в ексел макрос иметь
1
 Аватар для mc-black
2786 / 718 / 106
Регистрация: 04.02.2011
Сообщений: 1,443
30.10.2014, 10:37
Цитата Сообщение от Alex77755 Посмотреть сообщение
из VBA сложно работать с картинками
Да ладно, сложно? Захреначить порезаный по координатам скриншот в ячейки, делов-то. Каков вопрос - таков ответ, зачем утомляться
1
2 / 2 / 0
Регистрация: 09.02.2011
Сообщений: 59
30.10.2014, 14:22  [ТС]
Письма проверяются с помощью MS Outlook, а не Excel. В дальнейшем их нужно загружать в складскую программу.

Добавлено через 17 минут
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
<div style="width:780px"><a href="#" title="Интернет-магазин" target="_blank"><img src="" alt="Интернет-магазин" style="margin-bottom:20px;border:none" class="CToWUd"></a>
  <p style="margin-top:0px;margin-bottom:20px">Вы получили заказ.</p>
      <table style="border-collapse:collapse;width:100%;border-top:1px solid #dddddd;border-left:1px solid #dddddd;margin-bottom:20px">
    <thead>
      <tr>
        <td style="font-size:12px;border-right:1px solid #dddddd;border-bottom:1px solid #dddddd;background-color:#efefef;font-weight:bold;text-align:left;padding:7px;color:#222222" colspan="2">Детализация заказа</td>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td style="font-size:12px;border-right:1px solid #dddddd;border-bottom:1px solid #dddddd;text-align:left;padding:7px"><b>№ заказа:</b> 123<br>
          <b>Дата заказа:</b> 29.10.2014<br>
          <b>Способ оплаты:</b> Оплата при доставке<br>
                    <b>Способ доставки:</b> Самовывоз</td>
        <td style="font-size:12px;border-right:1px solid #dddddd;border-bottom:1px solid #dddddd;text-align:left;padding:7px"><b>E-mail:</b> <a href="mailto:mail@mail.ru" target="_blank">mail@mail.ru</a><br>
          <b>Телефон:</b> +79630000000<br>
          <b>IP-адрес:</b> 108.151.201.116<br><b>Состояние заказа:</b> Обработка<br></td>
      </tr>
    </tbody>
  </table>
    <table style="border-collapse:collapse;width:100%;border-top:1px solid #dddddd;border-left:1px solid #dddddd;margin-bottom:20px">
    <thead>
      <tr>
        <td style="font-size:12px;border-right:1px solid #dddddd;border-bottom:1px solid #dddddd;background-color:#efefef;font-weight:bold;text-align:left;padding:7px;color:#222222">Информация о покупателе</td>
      </tr>
      
    </thead>
    <tbody>
      <tr>
        <td style="font-size:12px;border-right:1px solid #dddddd;border-bottom:1px solid #dddddd;text-align:left;padding:7px">Имя Фамилия<br>Адрес<br>Город Индекс</td>
      </tr>
    </tbody>
  </table>
  <table style="border-collapse:collapse;width:100%;border-top:1px solid #dddddd;border-left:1px solid #dddddd;margin-bottom:20px">
    <thead>
      <tr>
        <td style="font-size:12px;border-right:1px solid #dddddd;border-bottom:1px solid #dddddd;background-color:#efefef;font-weight:bold;text-align:left;padding:7px;color:#222222">Товар</td>
        <td style="font-size:12px;border-right:1px solid #dddddd;border-bottom:1px solid #dddddd;background-color:#efefef;font-weight:bold;text-align:left;padding:7px;color:#222222">Код товара</td>
        <td style="font-size:12px;border-right:1px solid #dddddd;border-bottom:1px solid #dddddd;background-color:#efefef;font-weight:bold;text-align:right;padding:7px;color:#222222">Количество</td>
        <td style="font-size:12px;border-right:1px solid #dddddd;border-bottom:1px solid #dddddd;background-color:#efefef;font-weight:bold;text-align:right;padding:7px;color:#222222">Цена</td>
        <td style="font-size:12px;border-right:1px solid #dddddd;border-bottom:1px solid #dddddd;background-color:#efefef;font-weight:bold;text-align:right;padding:7px;color:#222222">Итого:</td>
      </tr>
    </thead>
    <tbody>
            <tr>
        <td style="font-size:12px;border-right:1px solid #dddddd;border-bottom:1px solid #dddddd;text-align:left;padding:7px">SHELL Helix HX7 5*40   4л п/с синий (Plus extra)          </td>
        <td style="font-size:12px;border-right:1px solid #dddddd;border-bottom:1px solid #dddddd;text-align:left;padding:7px">10337</td>
        <td style="font-size:12px;border-right:1px solid #dddddd;border-bottom:1px solid #dddddd;text-align:right;padding:7px">1</td>
        <td style="font-size:12px;border-right:1px solid #dddddd;border-bottom:1px solid #dddddd;text-align:right;padding:7px">868.00 р.</td>
        <td style="font-size:12px;border-right:1px solid #dddddd;border-bottom:1px solid #dddddd;text-align:right;padding:7px">868.00 р.</td>
      </tr>
                </tbody>
    <tfoot>
            <tr>
        <td style="font-size:12px;border-right:1px solid #dddddd;border-bottom:1px solid #dddddd;text-align:right;padding:7px" colspan="4"><b>Сумма:</b></td>
        <td style="font-size:12px;border-right:1px solid #dddddd;border-bottom:1px solid #dddddd;text-align:right;padding:7px">868.00 р.</td>
      </tr>
            <tr>
        <td style="font-size:12px;border-right:1px solid #dddddd;border-bottom:1px solid #dddddd;text-align:right;padding:7px" colspan="4"><b>Самовывоз</b></td>
        <td style="font-size:12px;border-right:1px solid #dddddd;border-bottom:1px solid #dddddd;text-align:right;padding:7px">0.00 р.</td>
      </tr>
            <tr>
        <td style="font-size:12px;border-right:1px solid #dddddd;border-bottom:1px solid #dddddd;text-align:right;padding:7px" colspan="4"><b>Итого:</b></td>
        <td style="font-size:12px;border-right:1px solid #dddddd;border-bottom:1px solid #dddddd;text-align:right;padding:7px">868.00 р.</td>
      </tr>
          </tfoot>
  </table>
  <table style="border-collapse:collapse;width:100%;border-top:1px solid #dddddd;border-left:1px solid #dddddd;margin-bottom:20px">
    <thead>
      <tr>
        <td style="font-size:12px;border-right:1px solid #dddddd;border-bottom:1px solid #dddddd;background-color:#efefef;font-weight:bold;text-align:left;padding:7px;color:#222222" colspan="2">Комментарий к заказу:</td>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td style="font-size:12px;border-right:1px solid #dddddd;border-bottom:1px solid #dddddd;text-align:left;padding:7px">
          <br></td>
      </tr>
    </tbody>
  </table><div class="yj6qo"></div><div class="adL">
  <p style="margin-top:0px;margin-bottom:20px"></p>
</div></div>
0
 Аватар для Alex77755
11525 / 3812 / 683
Регистрация: 13.02.2009
Сообщений: 11,229
30.10.2014, 16:59
В excel файле нужны только Информация о клиенте, в отдельной ячейке, например А1
Трудно искать чйрную кошку... тьфу! клиента. Особенно его нет
Миниатюры
Написать макрос для Microsoft Outlook, который будет преобразовывать HTML текст  
1
2 / 2 / 0
Регистрация: 09.02.2011
Сообщений: 59
31.10.2014, 07:55  [ТС]
Будем считать что его зовут Имя, фамилия у него Фамилия, живет он по Адресу в Городе с Индексом. Смысл не изменится если вместо Имя будет Вася и тд.
0
 Аватар для Alex77755
11525 / 3812 / 683
Регистрация: 13.02.2009
Сообщений: 11,229
31.10.2014, 11:29
Я имею в виду, Что
Имя Фамилия
Адрес
Город Индекс
Это и есть те данные, которые надо извлекать или это заголовки строк, а сами данные будут во второй колонке?

Добавлено через 48 минут
который будет преобразовывать html текст
Значит html текст уже имеется!
Тогда просто записать его в файл и открыть екселем. Он это умеет.
Осталось удалить лишнее.
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
Function PREOBR(T)
        Open "C:\test.html" For Output As 1 'запись в файл
            Print #1, T
         Close
        Dim B As Double, P As Double, U As Double
        Dim Ex As Object, WB As Object, M()
        
        Set Ex = CreateObject("Excel.Application")
        Set WB = Ex.Workbooks.Open("C:\test.html")
        Ex.Visible = True
        WB.activesheet.rows("1:7").Delete
        WB.activesheet.rows("10:11").Delete
End Function
Добавлено через 1 час 41 минуту
Если текста вложения письма нет, то можно сохранить файл на диск и считав вызвать функцию.
Проверок наличия писем, количества вложений и пр. не делал.
При запуске будет просить разрешения на доступ. Стандартного способа обойти это нет. Есть только платные утилиты.
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
Private Sub Get_FLE()
Dim NAM, HT
 NAM = "C:\test.html"
        Dim oNamespace As Outlook.NameSpace
        Dim inbox As Outlook.MAPIFolder
        Dim Item As Object
        Dim oOutlook As New Outlook.Application
        Set inbox = oOutlook.GetNamespace("MAPI").Folders(1).Folders("Входящие")
        If inbox.Items(1).Attachments.Count > 0 Then inbox.Items(1).Attachments.Item(1).SaveAsFile (NAM)
        HT = CreateObject("Scripting.FileSystemObject").Getfile(NAM).OpenasTextStream(1).ReadAll
         PREOBR HT
End Sub
Добавлено через 13 минут
Можно, конечно, и не открывать файл екселом, а парсить содержимое файла и выковыривать нужные данные
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Private Sub QWERT()
        Dim NAM, HTML, HT, K, EL, U() As String, Q
        Dim W, FIO, ADR, GOR, IND
       NAM = "C:\test.html"
        HT = CreateObject("Scripting.FileSystemObject").Getfile(NAM).OpenasTextStream(1).ReadAll
        Set HTML = CreateObject("htmlfile")
        HTML.write HT
        U = Split(HTML.Body.innertext, vbNewLine)
        For K = 1 To UBound(U)
            If U(K) = "Информация о покупателе" Then ' инфа о клиенте
                FIO = U(K + 1)
                ADR = U(K + 2)
                If InStr(1, U(K + 3), " ") > 0 Then 'если формат записи "Город индекс"
                    GOR = Split(U(K + 3))(0)
                    IND = Split(U(K + 3))(1)
                    MsgBox GOR & "  " & IND
'                    Debug.Print GOR, IND
                End If
            End If
               If InStr(1, U(K), "товар", vbTextCompare) > 0 Then ' инфа о товаре
                    ' здеся дописать аналогичній код
               End If
        Next K
End Sub
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
31.10.2014, 11:29
Помогаю со студенческими работами здесь

создать макрос который будет делать рерайт во всем документе текста при этом текст чтобы был читабельным
создать макрос который будет делать рерайт во всем документе текста при этом текст чтобы был читабельным ну или изменить его так схожим по...

написать макрос,который по произвольному тексту определяет, имеет ли этот текст определенные свойства
Написать макрос, который по произвольному тексту определяет, имеет ли этот текст определенные свойства (зависящие от варианта). Макрос...

Написать макрос, который должен удалять текст всех ячеек выделенной области, если он удовлетворяет условию
Доброго времени суток.) Есть проблема с написанием макроса в экселе. :с Макрос MTextClear должен удалять текст всех ячеек выделенной...

VBA - Написать макрос, который должен удалять текст всех ячеек выделенной области, если он удовлетворяет условию
Здравствуйте, помогите, пожалуйста, с написание макроса. Макрос MTextClear должен удалять текст всех ячеек выделенной области, если он...

Макрос Microsoft Outlook 2010: копирование вложений по имени вложения
Добрий день! Помогите написать макрос для Microsoft Outlook 2010, которий будет копиравать вложение по имени вложнения, т.е если имя...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru