В Экселе как открыть вложенный файл в письме через Аутлук? - VB
Формулировка задачи:
Приветствую милые Дамы и уважаемые Господа!
У меня есть цель: С 3 магазинов в маем городе каждый вечер мне отправляют имаил с отчетом о прадажах. Уж очень хочется это дело автоматизировать. В магазинах я сделал им маленькую прогу для отправки письма, продавец в конце дня нажимает на кнопочку "отправить имайл" в Экселе
и данные отправляются, используя Аутлук, причем:1) тема письма это названия файла + дата, 2)боди - это название листа в книге и 3)создается новый файл, туда копируются данные сохраняются и закрываутся а затем этот файл прикрепляется к отправленному письму. Файл отправлен на почту который указан на листе "настройки". Работа сделанна на 5+ но вот небальшое затруднение при приеме данных. В Офисе куда кажды вечер стикаются данные, настроил Аутлук так что именно письма с магазинов скидываются в отдельную папку.
Цель состоит в следующем я открываю документ в Екселе, и нажимаю на кнопку, и макрос открывает полученные файлы и копирует их в мой документ. Помогите создать макрос который
справится с это задачей.
За ранее благодарю.
С Уважением Мердан
У меня есть цель: С 3 магазинов в маем городе каждый вечер мне отправляют имаил с отчетом о прадажах. Уж очень хочется это дело автоматизировать. В магазинах я сделал им маленькую прогу для отправки письма, продавец в конце дня нажимает на кнопочку "отправить имайл" в Экселе
и данные отправляются, используя Аутлук, причем:1) тема письма это названия файла + дата, 2)боди - это название листа в книге и 3)создается новый файл, туда копируются данные сохраняются и закрываутся а затем этот файл прикрепляется к отправленному письму. Файл отправлен на почту который указан на листе "настройки". Работа сделанна на 5+ но вот небальшое затруднение при приеме данных. В Офисе куда кажды вечер стикаются данные, настроил Аутлук так что именно письма с магазинов скидываются в отдельную папку.
Цель состоит в следующем я открываю документ в Екселе, и нажимаю на кнопку, и макрос открывает полученные файлы и копирует их в мой документ. Помогите создать макрос который
справится с это задачей.
За ранее благодарю.
С Уважением Мердан
Решение задачи: «В Экселе как открыть вложенный файл в письме через Аутлук?»
textual
Листинг программы
<font color="blue">Option</font> <font color="blue">Explicit</font> <font color="#00AA00">'---------------------------------------------------------------------------------------</font> <font color="#00AA00">' Procedure : Save_File</font> <font color="#00AA00">' Purpose : Ïðîöåäóðà ñîõðàíåíèÿ ôàéëà</font> <font color="#00AA00">'---------------------------------------------------------------------------------------</font> <font color="#00AA00">'Sub Save_File()</font> <font color="#00AA00">'Dim ActiveSht As Worksheet</font> <font color="#00AA00">'Dim NewWb As Workbook</font> <font color="#00AA00">'</font> <font color="#00AA00">' Set ActiveSht = ActiveSheet</font> <font color="#00AA00">' Set NewWb = Workbooks.Add</font> <font color="#00AA00">' ActiveSht.Copy Before:=Workbooks(NewWb.Name).Sheets(1)</font> <font color="#00AA00">' With ActiveSheet.UsedRange</font> <font color="#00AA00">' .Value = .Value</font> <font color="#00AA00">' End With</font> <font color="#00AA00">' ActiveWorkbook.SaveAs Filename:=[Q5]</font> <font color="#00AA00">' MsgBox <font color="teal">"Ôîðìà ñêîïèðîâàíà è ñîõðàíåíà"</font>, , <font color="teal">""</font></font> <font color="#00AA00">'End Sub</font> <font color="blue">Sub</font> Save_File() <font color="blue">Dim</font> WorkDir, WorkDate <font color="blue">Dim</font> WorkFile <font color="blue">As</font> <font color="blue">String</font> WorkDir = [Q4] WorkFile = [Q5] Columns(<font color="teal">"A:O"</font>).<font color="blue">Select</font> Range(<font color="teal">"A3"</font>).Activate Selection.Copy Workbooks.Add Columns(<font color="teal">"A:A"</font>).<font color="blue">Select</font> Range(<font color="teal">"A1"</font>).<font color="blue">Select</font> Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _ SkipBlanks:=False, Transpose:=False Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _ xlNone, SkipBlanks:=False, Transpose:=False Sheets(<font color="teal">"Sheet2"</font>).<font color="blue">Select</font> Application.CutCopyMode = False ActiveWindow.SelectedSheets.Delete Sheets(<font color="teal">"Sheet3"</font>).<font color="blue">Select</font> ActiveWindow.SelectedSheets.Delete Sheets(<font color="teal">"Sheet1"</font>).<font color="blue">Select</font> Sheets(<font color="teal">"Sheet1"</font>).<font color="blue">Name</font> = [E2] Cells.<font color="blue">Select</font> Selection.Interior.ColorIndex = xlNone Selection.Font.ColorIndex = <font color="darkblue"><b>0</b></font> Range(<font color="teal">"I7"</font>).<font color="blue">Select</font> <font color="#00AA00">' ChDir = WorkDir</font> ActiveWorkbook.SaveAs Filename:=WorkFile, _ FileFormat:=xlNormal, _ Password:=<font color="teal">""</font>, _ WriteResPassword:=<font color="teal">""</font>, _ ReadOnlyRecommended:=False, _ CreateBackup:=False ActiveWindow.<font color="blue">Close</font> MsgBox <font color="teal">"Ôàéë îò÷åòà ñîõðàíåí!"</font>, , <font color="teal">"Îïåðàöèÿ çàâåðøåíà"</font> Range(<font color="teal">"A1:M1"</font>).<font color="blue">Select</font> <font color="blue">End</font> <font color="blue">Sub</font> <font color="#00AA00">'---------------------------------------------------------------------------------------</font> <font color="#00AA00">' Procedure : Send_Mail</font> <font color="#00AA00">' Purpose : Ïðîöåäóðà îòïðàâêè ïèñüìà</font> <font color="#00AA00">'---------------------------------------------------------------------------------------</font> <font color="blue">Sub</font> Send_Mail() <font color="blue">Const</font> CDO_Cnf = <font color="teal">"http://schemas.microsoft.com/cdo/configuration/"</font> <font color="blue">Dim</font> oCDOCnf <font color="blue">As</font> <font color="blue">Object</font>, oCDOMsg <font color="blue">As</font> <font color="blue">Object</font> <font color="blue">Dim</font> SMTPserver <font color="blue">As</font> <font color="blue">String</font>, sUsername <font color="blue">As</font> <font color="blue">String</font>, sPass <font color="blue">As</font> <font color="blue">String</font>, sMsg <font color="blue">As</font> <font color="blue">String</font> <font color="blue">Dim</font> sTo <font color="blue">As</font> <font color="blue">String</font>, sFrom <font color="blue">As</font> <font color="blue">String</font>, sSubject <font color="blue">As</font> <font color="blue">String</font>, sBody <font color="blue">As</font> <font color="blue">String</font>, sAttachment <font color="blue">As</font> <font color="blue">String</font> <font color="blue">On</font> <font color="blue">Error</font> <font color="blue">Resume</font> <font color="blue">Next</font> <font color="#00AA00">'sFrom - êàê ïðàâèëî ñîâïàäàåò ñ sUsername</font> SMTPserver = [Q10] <font color="#00AA00">' SMTPServer: íàéòè ïîäõîäÿùèé ñåðâåð</font> sUsername = [Q11] <font color="#00AA00">' Ó÷åòíàÿ çàïèñü íà ñåðâåðå</font> sPass = [Q12] <font color="#00AA00">' Ïàðîëü ê ïî÷òîâîìó àêêàóíòó</font> <font color="blue">If</font> Len(SMTPserver) = <font color="darkblue"><b>0</b></font> <font color="blue">Then</font> MsgBox <font color="teal">"Íå óêàçàí SMTP ñåðâåð"</font>, vbInformation, <font color="teal">"Îøèáêà"</font>: <font color="blue">Exit</font> <font color="blue">Sub</font> <font color="blue">If</font> Len(sUsername) = <font color="darkblue"><b>0</b></font> <font color="blue">Then</font> MsgBox <font color="teal">"Íå óêàçàíà ó÷åòíàÿ çàïèñü"</font>, vbInformation, <font color="teal">"Îøèáêà"</font>: <font color="blue">Exit</font> <font color="blue">Sub</font> <font color="blue">If</font> Len(sPass) = <font color="darkblue"><b>0</b></font> <font color="blue">Then</font> MsgBox <font color="teal">"Íå óêàçàí ïàðîëü"</font>, vbInformation, <font color="teal">"Îøèáêà"</font>: <font color="blue">Exit</font> <font color="blue">Sub</font> sTo = [Q8] <font color="#00AA00">'Êîìó</font> sFrom = [Q9] <font color="#00AA00">'Îò êîãî</font> sSubject = [A1] <font color="#00AA00">'Òåìà ïèñüìà</font> sBody = [Q3] <font color="#00AA00">'Òåêñò ïèñüìà</font> sAttachment = [Q5] <font color="#00AA00">'Âëîæåíèå(ïîëíûé ïóòü ê ôàéëó)</font> <font color="#00AA00">'Ïðîâåðêà íàëè÷èÿ ôàéëà ïî óêàçàííîìó ïóòè</font> <font color="blue">If</font> Dir(sAttachment, vbDirectory) = <font color="teal">""</font> <font color="blue">Then</font> sAttachment = <font color="teal">""</font> <font color="#00AA00">'Íàçíà÷àåì êîíôèãóðàöèþ CDO</font> <font color="blue">Set</font> oCDOCnf = CreateObject(<font color="teal">"CDO.Configuration"</font>) <font color="blue">With</font> oCDOCnf.Fields .Item(CDO_Cnf & <font color="teal">"sendusing"</font>) = <font color="darkblue"><b>2</b></font> .Item(CDO_Cnf & <font color="teal">"smtpauthenticate"</font>) = <font color="darkblue"><b>1</b></font> .Item(CDO_Cnf & <font color="teal">"smtpserver"</font>) = SMTPserver .Item(CDO_Cnf & <font color="teal">"smtpserverport"</font>) = <font color="darkblue"><b>465</b></font> .Item(CDO_Cnf & <font color="teal">"smtpusessl"</font>) = <font color="darkblue"><b>1</b></font> .Item(CDO_Cnf & <font color="teal">"sendusername"</font>) = sUsername .Item(CDO_Cnf & <font color="teal">"sendpassword"</font>) = sPass .Update <font color="blue">End</font> <font color="blue">With</font> <font color="#00AA00">'Ñîçäàåì ñîîáùåíèå</font> <font color="blue">Set</font> oCDOMsg = CreateObject(<font color="teal">"CDO.Message"</font>) <font color="blue">With</font> oCDOMsg <font color="blue">Set</font> .Configuration = oCDOCnf .BodyPart.Charset = <font color="teal">"koi8-r"</font> .From = sFrom .<font color="blue">To</font> = sTo .Subject = sSubject .TextBody = sBody <font color="blue">If</font> Len(sAttachment) > <font color="darkblue"><b>0</b></font> <font color="blue">Then</font> .AddAttachment sAttachment .Send <font color="blue">End</font> <font color="blue">With</font> <font color="blue">Select</font> <font color="blue">Case</font> Err.Number <font color="blue">Case</font> -<font color="darkblue"><b>2147220973</b></font>: sMsg = <font color="teal">"Íåò äîñòóïà ê Èíòåðíåò"</font> <font color="blue">Case</font> -<font color="darkblue"><b>2147220975</b></font>: sMsg = <font color="teal">"Îòêàç ñåðâåðà SMTP"</font> <font color="blue">Case</font> <font color="darkblue"><b>0</b></font>: sMsg = <font color="teal">"Îò÷åò îòïðàâëåí!"</font> <font color="blue">End</font> <font color="blue">Select</font> MsgBox sMsg, vbInformation, <font color="teal">"Îòïðàâêà ñîîáùåíèÿ"</font> <font color="blue">Set</font> oCDOMsg = <font color="blue">Nothing</font>: <font color="blue">Set</font> oCDOCnf = <font color="blue">Nothing</font> <font color="blue">End</font> <font color="blue">Sub</font> <font color="#00AA00">'---------------------------------------------------------------------------------------</font> <font color="#00AA00">' Procedure : Get_File_Path</font> <font color="#00AA00">' Purpose : Ïðîöåäóðà âûáîðà ôàéëà</font> <font color="#00AA00">'---------------------------------------------------------------------------------------</font> <font color="#00AA00">'Sub Get_File_Path()</font> <font color="#00AA00">' Dim sPath</font> <font color="#00AA00">' sPath = Application.GetOpenFilename(<font color="teal">"All Files(*.*),*.*"</font>, , <font color="teal">"Âûáðàòü ôàéëû"</font>, <font color="teal">"Âûáðàòü"</font>, False)</font> <font color="#00AA00">' If sPath = False Then Exit Sub</font> <font color="#00AA00">' [Q5] = sPath</font> <font color="#00AA00">'End Sub</font>
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д