powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Запуск в Outlook макроса из Excel
11 сообщений из 11, страница 1 из 1
Запуск в Outlook макроса из Excel
    #36339714
Nevsky2006
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте.
Подскажите, как правильно написать код находясь в Outlook:

1) или открыть файл Excel.
2) или запустить макрос, который находится в Excel

Пишу
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
    Set AppEx = Application.CreateObject("Excel.Application")
    AppEx.Visible = True
    AppEx.Open ("C:\1\2\3\4\PostWithOutlook_1.1.xls") 
  ' Так не хочет открывать (Run-Time error 438 Объект не поддерживает свойства или метод)
  
    a = AppEx.Run("C:\1\2\3\4\PostWithOutlook_1.1.xls!save_new_3") ' хоть так 
        AppEx.Run("C:\1\2\3\4\PostWithOutlook_1.1.xls!save_new_3") ' хоть так 
 'Пробую запустить макрос  - говорит не найден макрос "save_new_3", хотя файл запускается.
Спасибо заранее.
...
Рейтинг: 0 / 0
Запуск в Outlook макроса из Excel
    #36339826
Hugo121
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Попробуй
Код: plaintext
1.
AppEx.Application.OnTime Now, "save_new_3"
из vbs так работает.
...
Рейтинг: 0 / 0
Запуск в Outlook макроса из Excel
    #36340208
vkodor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
    Set AppEx = Application.CreateObject("Excel.Application")
    AppEx.Workbooks.Open "C:\1\2\3\4\PostWithOutlook_1.1.xls"
    AppEx.Run "Module1.save_new_3"
Слово "Module1" заменить на имя модуля в котором лежит "save_new_3" (при необходимости)
...
Рейтинг: 0 / 0
Запуск в Outlook макроса из Excel
    #36340323
m
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
m
Гость
А кто может объяснить, в чем разница между:
...
Рейтинг: 0 / 0
Запуск в Outlook макроса из Excel
    #36340335
m
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
m
Гость
Код: plaintext
1.
Set ExApp = Application.CreateObject("Excel.Application")
AppEx.Workbooks.Open "C:\1.xls"

и

Код: plaintext
Set ExApp = Application.GetObject("C:\1.xls")

Я всегда использую GetObject, но может правильней через CreateObject ?...
...
Рейтинг: 0 / 0
Запуск в Outlook макроса из Excel
    #36340394
vkodor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mА кто может объяснить, в чем разница между:

m
...
что именно написано в справке ?
...
а что в справке написано, ... ?

Автор курса - Волков Антон (aka Funbit) (vb_tutor_rus.chm)CreateObject (class) - возвращает ссылку на объект ActiveX класса class
GetObject([pathname] [, class]) - возвращает ссылку на объект ActiveX ассоциированного с определённым файлом.

P.S. m, почему не регистируетесь? Отдайте должное сайту.
...
Рейтинг: 0 / 0
Запуск в Outlook макроса из Excel
    #36340478
Djon Player
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
m
Код: plaintext
1.
Set ExApp = Application.CreateObject("Excel.Application")
AppEx.Workbooks.Open "C:\1.xls"
и
Код: plaintext
Set ExApp = Application.GetObject("C:\1.xls")

Я всегда использую GetObject, но может правильней через CreateObject ?...
Использование GetObject в данном случае предпологает, что Excel запущен (ну или какая-то другая программа в которой хотите открыть файл) и сам файл (в данном случае "C:\1.xls") уже открыт.
В то время как первый код как раз запускает Excel и в нем принудительно открывает файл.
...
Рейтинг: 0 / 0
Запуск в Outlook макроса из Excel
    #36340614
m (MaximuS)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 vkodor ,
То что Вы написали, это как-бы ясно, но меня интересует практическая разница при использовании. Тоесть например, метод CreateObject используется в таких ситуациях, а GetObject - в таких... При использовании GetObject вместо CreateObject может возникнуть такая-то ситуация...

2 vkodorP.S. m, почему не регистируетесь? Отдайте должное сайту
Я зарегистрирован, просто как-то перенял поведение заходить под Гестом из форума по Аксу, там многие так заходят постоянно. А что Вы имеете ввиду под отдать должное сайту ? :)

2 Djon Player
Использование GetObject в данном случае предпологает, что Excel запущен (ну или какая-то другая программа в которой хотите открыть файл) и сам файл (в данном случае "C:\1.xls") уже открыт.
Да, вроде бы нет, у меня, например, есть БД Акцесс - закрытая. И я сразу через GetObject получаю доступ к конкретному файлу, который меня интересует, и метод GetObject сразу же его открывает, при этом само приложение находится в скрытом режиме. Поэтому я как бы и спросил, зачем писать 2 строки если можно одну, при этом получив тот же результат :)
...
Рейтинг: 0 / 0
Запуск в Outlook макроса из Excel
    #36340759
Djon Player
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
m (MaximuS)[b]
Да, вроде бы нет, у меня, например, есть БД Акцесс - закрытая. И я сразу через GetObject получаю доступ к конкретному файлу, который меня интересует, и метод GetObject сразу же его открывает, при этом само приложение находится в скрытом режиме. Поэтому я как бы и спросил, зачем писать 2 строки если можно одну, при этом получив тот же результат :)
Возможно фишка ещё и в том, что через CreateObject указывается конкретное приложение, через которое хотите открыть этот файл.
При желании его ведь можно и в блокноте открыть.
А GetObject открывает в приложении по умолчанию, а если этого умолчания нет, то может не будет даже знать в чем открыть.

Кроме того, иногда нужно, чтобы файл открылся в новом Excel при уже имеющемся открытом Excel, в этом случае CreateObject тоже нужен.
А GetObject при наличии открытого Excel в нем-же и откроет файл.

Это лишь мои предположения.
...
Рейтинг: 0 / 0
Запуск в Outlook макроса из Excel
    #36340765
SimpleC
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
m (MaximuS), тема такая... Когда юзаешь CreateObject ты запускаешь новый процесс , который нужно не забыть убить ещё.. Когда GetObject, то процесс новый не создаётся, а используется существующий(и соответственно не загрязняется память и т.д.). Ну это абстрактно конечно. Только иногда сложно пользоваться Get'ом, когда много заглушек особенно на ошибки стоит. С другой стороны , когда много раз используешь Create, то по той же самой причине может возникнуть ситуация, когда вновь созданный процесс не убивается, хоть даже ты и прописал Set Объект = nothing... Это приводит к глюкам различного рода... Конкретный пример привожу. Грузишь в аксесс форму Экселевскую.. Юзаешь Create несколько раз(ну с нескольких листов тебе нужно циферки собрать).. Всё отлично загрузил.. Всё гуд.. Если после этого открыть любой файл экселевский , то вместе с ним отероется и та форма из который ты грузил циферки в аксесс.. Повторюсь, что это, как правило, происходит, когда компилируется много много кода с болльшим количеством Error Exception ' ов, что приводит к тому что процесс не убивается экселевский.. Вот.. А если что - то простенькое реализуется , то можно юзать и Create и Get, не заморачиваясь особо..
...
Рейтинг: 0 / 0
Запуск в Outlook макроса из Excel
    #36340827
m
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
m
Гость
2 Djon Player, SimpleC ,
Спасибо. Вообщем буду дальше юзать GetObject, может и выскочит глюк какой, так буду знать :)
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Запуск в Outlook макроса из Excel
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]