Страницы: 1
RSS
Outlook и перенос инфо в Excel
 
Добрый день. Возможно ли при открытии письма или при ответе на него, переносить в таблицу Excel данные из темы письма?

Из темы письма в Excel. Желательно не всю тему, а только номер. Он всегда семизначный. куча текста и номер. В будущем, еще один параметр будут указывать. буквенный. Его бы тоже. Их 4 вида планируется. То есть, 4 типовых слова. Но как и требуемый номер, может быть в начале темы, в конце или где угодно)) что наверное, сложно.
 
Макрос надо писать в   Outlook, в модуле класса ThisOutlookSession и писать в файл csv
Код
' Код разместить в ThisOutlookSession

Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
    Dim subj As String, filename As String
    filename = "C:\1.csv"
    If Item.Class = olMail Then
        subj = Item.Subject
        With CreateObject("Scripting.FileSystemObject")
            If .FileExists(filename) Then
                Set obj = .OpenTextFile(filename, 8)
            Else
                Set objf = .CreateTextFile(filename)
                Set objf = Nothing
                Set obj = .OpenTextFile(filename, 8)
            End If
            obj.Write subj & vbCrLf
            obj.Close
            Set obj = Nothing
        End With

    End If
End Sub
 
Большое спасибо. Вопрос: а ничего не случится с ящиком? Не только я работаю с почтой. У коллег этот макрос не отобразится?
 
Коллеги по очереди работают с одним аутлуком?
 
Outlook на разных ПК. Но почтовый ящик общий. В онлайн режиме работаем вместе. Они будут конечно рады нововведению, но я хотел бы сам пока обкатать.  
Изменено: vikttur - 17.01.2022 23:21:42
 
Общий ящик не имеет ничего общего с отдельным экземпляром Outlook, к котором будет этот код
 
Цитата
написал:
Общий ящик не имеет ничего общего с отдельным экземпляром Outlook, к котором будет этот код
Я наверное деградировал. Уже 3 года макросами не пользовался((

Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)    Dim subj As String, filename As String
   filename = "C:\1.csv" - это ссылка на файл Excel, верно?
   If Item.Class = olMail Then
       subj = Item.Subject
       With CreateObject("Scripting.FileSystemObject")
           If .FileExists(filename) Then
               Set obj = .OpenTextFile(filename, 8)
           Else
               Set objf = .CreateTextFile(filename)
               Set objf = Nothing
               Set obj = .OpenTextFile(filename, 8)
           End If
           obj.Write subj & vbCrLf
           obj.Close
           Set obj = Nothing
       End With

   End If
End Sub
И как указать, что искомое значение состоит из 7 символов?
 
Igorman, кнопка оформления кода в сообщении <...>
 
Цитата
Igorman написал:
filename = "C:\1.csv
Это ссылка на файл csv
Если такового нет, будет создан.
Для разбора темы сообщения используйте регулярные выражения для поиска
 
Минутка оптимизации
Изменено: Jack Famous - 20.01.2022 08:59:27
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Цитата
Jack Famous написал:
Минутка оптимизации
ну, не знаю насчет оптимизации...У метода OpenTextFile есть параметр - Create. Если она установлен в True, то файл будет автоматически создан, если его еще нет :)
Т.е. по сути все может свестись вообще к единой строке. Вместо:
Код
If .FileExists(filename) Then
                Set obj = .OpenTextFile(filename, 8)
            Else
                Set objf = .CreateTextFile(filename)
                Set objf = Nothing
                Set obj = .OpenTextFile(filename, 8)
            End If

записать так:
Код
Set obj = .OpenTextFile(filename, 8, True)
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Цитата
Дмитрий(The_Prist) Щербаков: есть параметр
я этого не знал и просто сократил то, что было без потери логики работы  :)
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
Страницы: 1
Наверх