Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на Basic / VBA


РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Basic/VBA

Выпуск № 528
от 14.05.2007, 00:05

Администратор:Калашников О.А.
В рассылке:Подписчиков: 261, Экспертов: 36
В номере:Вопросов: 2, Ответов: 2


Вопрос № 85964: Из Excel вызываю диалоговое окно отправки файла по e-mail: Application.Dialogs(xlDialogSendMail).Show Подскажите как с помощью API-функций типа SendMessage отправить строки в Текстовые поля "Кому" и "Тема". <...
Вопрос № 86009: Здравствуйте!!! Как можно из своей надстройки в Excel отлавливать событие открытия новой рабочей книги? Тоесть моя надстройка работает я нажимаю кнопку добавить новую рабочую книгу или открыть и на это событие открываемая книга долж...

Вопрос № 85.964
Из Excel вызываю диалоговое окно отправки файла по e-mail:

Application.Dialogs(xlDialogSendMail).Show

Подскажите как с помощью API-функций типа SendMessage отправить строки в Текстовые поля "Кому" и "Тема".

Если можно дайте кусок работоспособного кода.

Благодарю.
Отправлен: 08.05.2007, 08:14
Вопрос задал: Mironicuss (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 2)

Отвечает: Тесленко Евгений Алексеевич
Здравствуйте, Mironicuss!
У диалога - xlDialogSendMail есть три аргумента recipients, subject, return_receipt
(из справки VBA)
Евгений.
Ответ отправил: Тесленко Евгений Алексеевич (статус: 7-ой класс)
Ответ отправлен: 08.05.2007, 20:09


Вопрос № 86.009
Здравствуйте!!! Как можно из своей надстройки в Excel
отлавливать событие открытия новой рабочей книги?
Тоесть моя надстройка работает я нажимаю кнопку добавить
новую рабочую книгу или открыть и на
это событие открываемая книга должна закрыться.
Проблема именно в событии или может есть альтернативный вариант?
Отправлен: 08.05.2007, 14:43
Вопрос задал: Rewer8 (статус: 8-ой класс)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 2)

Отвечает: HookEst
Здравствуйте, Rewer8!
Для перехвата событий Application нужен класс-обертка:

'ClassModule: AppEvents
Option Explicit

Private WithEvents mApp As Excel.Application

'метод для включения и отключения перехвата событий
Sub HandleEvents(ByVal b As Boolean)
If b Then Set mApp = Application Else Set b = Nothing
End Sub

Private Sub Class_Terminate()
Set mApp = Nothing
End Sub

'перехватчик события OnNewWorkbook
Private Sub mApp_NewWorkbook(ByVal Wb As Workbook)
MsgBox "Book creation is illegal! It will be closed!"
Wb.Close
End Sub


ну и собственно в модуле настройки:


'Module1
Option Explicit

Private xlApp As New AppEvents

'если надстройка включена, Auto_Open будет выполнятся при запуске Excel
Sub Auto_Open()
xlApp.HandleEvents True
End Sub


Успехов.
Ответ отправил: HookEst (статус: Студент)
Ответ отправлен: 10.05.2007, 07:00
Оценка за ответ: 5
Комментарий оценки:
Спасибо громадное! Именно то что нужно Отличный вариант а главное именно для надстроек *.xla и очень универсальный


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2007, Портал RusFAQ.ru, Россия, Москва.
Авторское право: ООО "Мастер-Эксперт Про"
Email: support@rusfaq.ru, тел.: +7 (926) 535-23-31
Хостинг: "Московский хостер"
Поддержка: "Московский дизайнер"
Авторские права | Реклама на портале
Версия системы: 4.52 от 02.05.2007
Яндекс Rambler's Top100

В избранное