|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
22.08.2014, 11:28 | #1 |
Пользователь
Регистрация: 22.08.2014
Сообщений: 16
|
Excel 2007 и Mozilla Thunderbird
Добрый день, форумчане и гуру VBA. Столкнулся с проблемой и не могу найти решение, прошу Вашей помощи. Суть проблемы: на компах пользователей установлен Excel 2007, почтовый клиент Mozilla Thunderbird, ОС Win7. Необходимо реализовать возможность отправки текущего документа Excel во вложении через почтовый клиент по умолчанию. Outlook в компании использовать запрещено, с ним было бы намного проще, т.к. при его установке кнопка "Отправить сообщение" в Excel становится активной. В windows XP исправлял эту беду регистрацией mapi32.dll, в Win7 это не работает. Поэтому нужен рабочий макрос или в идеале надстройка для Excel, которая бы повторяла действия стандартной функции "Отправить сообщение" в Excel, но для почтового клиента Mozilla Thunderbird. Заранее благодарю, если описание проблемы получилось скомканным и недостаточно информативным, задавайте вопросы )
|
22.08.2014, 11:58 | #2 |
Новичок
СтарожилДжуниор
Регистрация: 05.02.2008
Сообщений: 9,487
|
а загляните в справку VBA, там как раз Ваша ситуация описана
Workbook.SendMail Method Sends the workbook by using the installed mail system. Syntax expression.SendMail(Recipients, Subject, ReturnReceipt) и мощный пример как этим пользоваться: Example This example sends the active workbook to a single recipient. Visual Basic for Applications ActiveWorkbook.SendMail recipients:="Jean Selva"
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
|
22.08.2014, 12:07 | #3 |
Пользователь
Регистрация: 22.08.2014
Сообщений: 16
|
IgorGO, я видел готовые макросы через SendMail, но с ним есть проблема: как минимум одного получателя письма нужно указать явно в теле макроса. В моем же случае используется адресная книга LDAP. То есть по сути, мне необходимо, чтобы в результате работы макроса открывалось окно отправки сообщений Mozilla Thunderbird с прикрепленным текущим файлом Excel.
Нашел вот такой кусок кода, немного его подрихтовал, окно почтового клиента открывается без проблем. Но как туда файл запихнуть ума не приложу... Private Sub SendMailThunder_Click() Dim strAn As String Dim strBetr As String Dim ..... 'alle anderen; hab die jetzt mal fürs forum rausgenommen '******** Variable zur Übergabe strEmpfaenger1 = Range("O19").Value strEmpfaenger2 = Range("O20").Value strAn = strEmpfaenger1 & ";" & strEmpfaenger2 strBetr = "Abrechnungsbeleg" strBody = "Tagesbeleg vom " & Mid(strFile2, 19, 10) 'strFile2 = Range("ah3") 'wird Pfad und Name der aktuellen Datei hinterlegt strFile2 = "c:\aa\TAG_UP_07.01.2013.txt" 'NUR in Test '******** Code für Shell Ausführung strCommand = "C:\Program Files (x86)\Mozilla Thunderbird\Thunderbird.exe" strCommand = strCommand & " -compose " & Chr(34) & "mailto:" & strAn & "?" strCommand = strCommand & "subject=" & Chr(34) & strBetr & Chr(34) & "&" strCommand = strCommand & "body=" & Chr(34) & strBody & Chr(34) & "&" strCommand = strCommand & "attachment=" & "C:\aa\TAG_UP_L064_07.01.2013.txt"" " 'alternativ könnte man mit file:/// arbeiten ... klappt nicht (??) 'strCommand = strCommand & "attachment=file:///" & Replace(strFile2, "\", "/") ' '& "&" '& "'," _ 'strCommand = strCommand & "attachment=""""strFile2"""" Call Shell(strCommand, vbNormalFocus) End Sub |
22.08.2014, 12:12 | #4 |
Новичок
СтарожилДжуниор
Регистрация: 05.02.2008
Сообщений: 9,487
|
1. сохраните файл на диск
2. укажите путь к нему в параметр attachment
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
|
22.08.2014, 12:31 | #5 |
Пользователь
Регистрация: 22.08.2014
Сообщений: 16
|
IgorGO, я могу сохранить текущий файл во временную папку в том же куске кода, и дописать путь к нему в параметр attachment, но проблема в том, что даже в случае указания явного пути к файлу, он не прикрепляется к письму=) я не сильно разбираюсь в VBA, но этот вариант я уже опробовал...
|
22.08.2014, 12:56 | #6 |
Новичок
СтарожилДжуниор
Регистрация: 05.02.2008
Сообщений: 9,487
|
не прикрепляется потому что где-то делаете ошибку.
судя по тому, что как я понимаю, запускается-таки Thunderbird.exe и все там на месте, кроме файла - не правильно указываете путь к файлу и Thunderbird.exe не может его найти
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
|
22.08.2014, 13:01 | #7 |
Пользователь
Регистрация: 22.08.2014
Сообщений: 16
|
Если я все правильно понял, то кусок кода с открытием окна сообщения и прикрепленным файлом должен выглядеть так?
strCommand = "C:\Program Files (x86)\Mozilla Thunderbird\Thunderbird.exe" strCommand = strCommand & " -compose " & Chr(34) & "mailto:" & strAn & "?" strCommand = strCommand & "subject= & Chr(34) & strBetr & Chr(34) & " & "" strCommand = strCommand & "body= & Chr(34) & strBody & Chr(34) & " & "" strCommand = strCommand & "attachment=" & "C:\123.xlsx""" |
22.08.2014, 13:25 | #8 |
Новичок
СтарожилДжуниор
Регистрация: 05.02.2008
Сообщений: 9,487
|
перед Call Shell(strCommand, vbNormalFocus)
посмотрите как выглядит Ваша strCommand, нет-ли там каких-то проблем, можете показать ее сюда в следующем сообщении
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
|
22.08.2014, 14:01 | #9 |
Пользователь
Регистрация: 22.08.2014
Сообщений: 16
|
Private Sub SendMailThunder_Click()
Dim file As String file = "C:\123.xlsx" strCommand = "C:\Program Files (x86)\Mozilla Thunderbird\Thunderbird.exe" strCommand = strCommand & " -compose " & "mailto:" & "?" strCommand = strCommand & "subject=" & "&" strCommand = strCommand & "body=" & "&" strCommand = strCommand & "attachment=file:///" & file Call Shell(strCommand, vbNormalFocus) End Sub |
22.08.2014, 18:26 | #10 |
Пользователь
Регистрация: 22.08.2014
Сообщений: 16
|
Проблема актуальна =) Скрипт выше не прикрепляет файл к письму...
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
запросы с диапазоном выбора из Access 2007 в Excel 2007 | eugene_pkc | Microsoft Office Access | 6 | 30.06.2014 01:50 |
Mozilla Thunderbird через Proxy | Stilet | Софт | 4 | 11.06.2014 07:58 |
Запрет режима преобразования файлов excel 2007 для excel 2003 | ольгаг | Microsoft Office Excel | 4 | 28.03.2014 12:20 |
Как запретить запуск программы на VBA Excel 2003 в Excel 2007 | kovalevskivf | Microsoft Office Excel | 2 | 15.05.2009 16:47 |
Mozilla Thunderbird, или Бесплатные программы для работы с почтой | Radmir | Софт | 1 | 01.04.2008 00:16 |