![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 02.07.2009
Сообщений: 122
|
![]()
Здравствуйте, уважаемые
Вся надежда на профессионалов! Это в продолжение темы http://www.programmersforum.ru/showt...395#post545395 Требуется открыть скриптом файл *.xls - именно файл, чтобы вызывалось "родное" приложение. Убивает, что из bat-файла - без проблем, например, @CD %Desktop% @CD %CD%\StartCalcExperiments @start Calc_MKS46000.xls Из скриптов, как только не пробовал - ни в какую! Мне в конечном итоге надо запускать из скрипта макрос в надстройке. Адресацию к нему прошли - см. ссылку. Но при полном адресе макроса, когда создается новый экземпляр приложения, выпадает стандартное сообщение о наличии в надстройке макросов, что мне ни к чему (запрет прерываний и сообщений тут не действуют). При этом из файла, созданного вновь или открытого в новом экземпляре приложения, проект надстройки не виден, хотя сама надстройка в списке надстроек видна и доступна!? Если же при вызове макроса надстройки уже имеется открытый файл *.xls - никаких проблем, ее макрос молча запускается. Весь в надеждах... |
![]() |
![]() |
![]() |
#2 |
Форумчанин
Регистрация: 02.07.2009
Сообщений: 122
|
![]()
Дополнительный пример
Без проблем вызывается командная строка (cmd): Set objShellApp = CreateObject("Shell.Application") objShellApp.FileRun Но что с ней дальше делать? |
![]() |
![]() |
![]() |
#3 |
Старожил
Регистрация: 11.05.2010
Сообщений: 5,170
|
![]()
Скрипт vbs
Код:
Ну и всё, что относится к GetSheet() - тут просто для примера, для задачи не нужно.
webmoney: E265281470651 Z422237915069 R418926282008
Последний раз редактировалось Hugo121; 11.06.2010 в 17:30. |
![]() |
![]() |
![]() |
#4 |
Форумчанин
Регистрация: 02.07.2009
Сообщений: 122
|
![]()
Спасибо, Hugo, но, похоже, таким способом задача не решается...
Функция GetSheet() может найти только уже открытый (активный) файл и, соответственно, родительский экземпляр Excel находится функцией ActivateExcel() для этого открытого файла. В ином случае идет ветка функции ActivateExcel() с командой CreateObject("Excel.Application") и образует новый экземпляр Excel. В этой ветке и проблема! Вот когда открываешь любой файл *.xls вручную, тогда автоматом активируется "родной" экземпляр Excel, в котором доступны проекты vba всех созданных в нем файлов, включая надстройки. А в "новых" экземплярах Excel надстройки видны в списке надстроек, но их проекты не видны. Соответственно, чтобы запустить макрос надстройки, надо к нему адресоваться полным путем, при этом система выдает предупреждение о наличии в адресуемой надстройке макросов... При пуске макроса надстройки из "родного" экземпляра, такого предупреждения нет (естественно, если в системе безопасности установлен флажок "доверять доступ к проектам...") В конце-концов меня бы устроил и вариант запуска из скрипта bat - файла (см. выше - 3 строчки), но как его запустить из скрипта? |
![]() |
![]() |
![]() |
#5 |
Старожил
Регистрация: 11.05.2010
Сообщений: 5,170
|
![]()
Да, сейчас проверил пристальнее - если Эксель открыт, то новый файл открывается в этом Экселе - вроде всё в порядке, PERSONAL.XLS доступен (надстроек у меня нет). Но если Эксель не открыт, то открывается Эксель без открытия PERSONAL.XLS
![]()
webmoney: E265281470651 Z422237915069 R418926282008
|
![]() |
![]() |
![]() |
#6 |
Форумчанин
Регистрация: 02.07.2009
Сообщений: 122
|
![]()
Вариант:
'на рабочем столе открываем файл Proba.xls в установленной 'по умолчанию сессии (ProgID) Excel Код:
Последний раз редактировалось Stilet; 15.06.2010 в 12:27. |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Передать xls -файл по почте | valerij | Microsoft Office Excel | 5 | 29.12.2009 10:06 |
Кто возьмется перекачать файл txt в xls за вознаграждение?? | himera | Microsoft Office Access | 3 | 14.02.2009 13:09 |
Помогите с настройкай скрипта mlm (буквально один файл) | YurecLB | Помощь студентам | 3 | 02.02.2009 20:09 |
Найти файл *.xls содержащий определенный текст | EfDim | Microsoft Office Excel | 5 | 19.01.2009 16:22 |
как присвоить значение ячейки R1C1 из 1.xls, допустим какой-нибудь любой ячейке из 2.xls ? | diabloskrk | Microsoft Office Excel | 3 | 08.10.2007 12:27 |