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

RFpro.ru: Пакет Microsoft Office

  Все выпуски  

RusFAQ.ru: Пакет Microsoft Office


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

/ КОМПЬЮТЕРЫ И ПО / Помощь пользователю ПО / Пакет Microsoft Office

Выпуск № 87
от 17.04.2006, 20:35

Администратор:Ерёмин Андрей
В рассылке:Подписчиков: 182, Экспертов: 49
В номере:Вопросов: 1, Ответов: 1


Вопрос № 40069: Добрый день! MS Office 2000. Подскажите, можно ли сделать так чтобы при запуске определенного файла Excel (например, file.xls) запускался макрос (он чистит определенные ячейки, это я знаю как написать). В этот файл нельзя встроить макрос - он пер...

Вопрос № 40.069
Добрый день!
MS Office 2000. Подскажите, можно ли сделать так чтобы при запуске определенного файла Excel (например, file.xls) запускался макрос (он чистит определенные ячейки, это я знаю как написать). В этот файл нельзя встроить макрос - он пересоздается каждый день программно (код программы закрыт).
Если создать файл personal.xls в папке XLStart с макросом auto_open(), то при открытии отрабатывает макрос, а только потом открывается запущенный файл.
Отправлен: 12.04.2006, 10:09
Вопрос задал: Иванов Дмитрий Дмитриевич (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 5)

Отвечает: Genyaa
Здравствуйте, Иванов Дмитрий Дмитриевич!

Да, можно. С помощью событий Application.

Используя код в Приложении:

1. Создайте в personal.xls модуль класса с именем EventClassModule
2. Введите в этот модуль код №1 из Приложения.
3. В модуль самой книги personal.xls введите код №2 из Приложения.
4. После этого выйдите из Excel с сохранением файла personal.xls и войдите вновь.

Теперь при попытке открытия файла только с именем указанным в коде №1 (file.xls) будет запускаться часть кода, куда и можно будет включить нужную обработку этого файла.

Суть решения в том, что при входе в Excel автоматически открывается personal.xls, в который включен обработчик события на открытие Workbook_Open (должен быть создан в модуле книги).
Таким образом при открытии personal.xls Workbook_Open запускает (активизирует) модуль класса в personal.xls под именем EventClassModule, который в свою очередь активизирует возможность работы с объектом Application и устанавливает на уровне Application обработчик события App_WorkbookOpen, запускающийся при открытии любой книги в Excel. Соответственно достаточно проверять имя открывающегося файла (If Wb.Name = "file.xls" Then) или любой другой нужный признак, чтобы запустить нужную обработку нужного файла.

Заметьте, что директива Dim X As New EventClassModule в коде №2 должна ссылаться на имя, совпадающее с именем модуля класса, активизирующего работу с объектом Application.

Приложение:

---------
Всякое решение плодит новые проблемы.

Ответ отправил: Genyaa (статус: 3-ий класс)
Ответ отправлен: 12.04.2006, 10:55
Оценка за ответ: 5


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

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

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

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

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


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


© 2001-2006, Портал RusFAQ.ru, Россия, Москва.
Идея, дизайн, программирование: Калашников О.А.
Email: adm@rusfaq.ru, Тел.: +7 (926) 535-23-31
Авторские права | Реклама на портале
Версия системы: 4.30 (beta) от 09.04.2006
Яндекс Rambler's Top100

В избранное