|
Имя exe-файла Word, Excel (Application)
|
|||
---|---|---|---|
#18+
Здравствуйте. Что-то не найду, где в VBA прописано имя файла Application? То есть WORD.EXE, EXCEL.EXE. Нашел только Application.Path, хотелось бы к нему добавить Name, а лучше сразу FullName :) ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2016, 07:40 |
|
Имя exe-файла Word, Excel (Application)
|
|||
---|---|---|---|
#18+
Сын вождягде в VBA прописано имя файла Application? То есть WORD.EXE, EXCEL.EXE. Нигде - это свойство процесса/потока, а не приложения. Максимум что можно получить - это точный тип объекта Application (Word.Application, Excel.Application и пр.). ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2016, 09:26 |
|
Имя exe-файла Word, Excel (Application)
|
|||
---|---|---|---|
#18+
AkinaНигде - это свойство процесса/потока... Благодарю. Где-то так я и думал, ибо справка и поисковики ответа не дали. Как тогда запустить (Run) копию активного приложения, например Excel? Такое писать как-то не солидно: Application.Path & "\excel.exe" Замечу, что одновременно установлено несколько версий Excel. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2016, 09:42 |
|
Имя exe-файла Word, Excel (Application)
|
|||
---|---|---|---|
#18+
Сын вождяКак тогда запустить (Run) копию активного приложения, например Excel? Ну например Код: vbnet 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2016, 10:08 |
|
Имя exe-файла Word, Excel (Application)
|
|||
---|---|---|---|
#18+
AkinaНу например Код: vbnet 1.
Нет, это запуск приложения Excel, принятого по умолчанию в системе. Аналог: Код: vbnet 1.
А надо конкретную версию Excel, в которой выполняется код, потому и нужны полные путь и имя файла. Запускать буду через скрипт, где-то так: Код: vbnet 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2016, 10:24 |
|
Имя exe-файла Word, Excel (Application)
|
|||
---|---|---|---|
#18+
Сразу замечу, что это тоже не работает: Код: vbnet 1. 2.
Видимо, придется лезть в реестр. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2016, 10:36 |
|
Имя exe-файла Word, Excel (Application)
|
|||
---|---|---|---|
#18+
Сын вождянадо конкретную версию Excel, в которой выполняется код Ну так и создавайте не Excel.Application (который запустит дефолтную версию), а конкретный тип в зависимости от нужной версии. А ещё лучше - оставайтесь в рамках существующего Excel.Application, просто открывайте новую (Application.WorkBooks.Add) или существующую (Application.WorkBooks.Open) книгу. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2016, 10:37 |
|
Имя exe-файла Word, Excel (Application)
|
|||
---|---|---|---|
#18+
AkinaНу так и создавайте не Excel.Application...а конкретный тип в зависимости от нужной версии... Не работает CreateObject("Excel.Application.XX"), писал выше. Хотя, по-простому установлены, и прекрасно одновременно работают, Office 2010 и 2013. Нужен 100% рабочий код, для масс. Потому, склоняюсь к Run. Akina...А ещё лучше - оставайтесь в рамках существующего Excel.Application... Не подходит, так как пишу скрипт перезапуска Excel. Уперся в exe-имя. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2016, 10:47 |
|
Имя exe-файла Word, Excel (Application)
|
|||
---|---|---|---|
#18+
Сын вождяOffice 2010 и 2013Я еще понимаю, когда надо 2003 и версии выше различить. Но 2010 и 2013. В чем необходимость запускать ту или иную версию в данном случае? Может если понять цель, то можно будет найти средство, отличное от ранее рассмотренных? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2016, 15:35 |
|
Имя exe-файла Word, Excel (Application)
|
|||
---|---|---|---|
#18+
The_Prist...Может если понять цель, то... Цель простая - перезапустить Excel, в котором работает код. Причина сложнее - пока запущен Excel, невозможно удалить (не путать с отключить) надстройку из списка Excel. Макрос запускает скрипт который: закрывает Excel, затирает надстройку, запускает Excel, хорошо бы тот же самый :) Последнее, в принципе, не критично, но дает гарантию, что надстройка удалена успешно! P.S. Тоже запарились искать ответ? :) P.P.S. Нашел решение через API, но надеялся на что попроще :( ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2016, 16:04 |
|
Имя exe-файла Word, Excel (Application)
|
|||
---|---|---|---|
#18+
Сын вождяНашел решение через APIНу дык поделись - вдруг ещё кому понадобится... ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2016, 16:06 |
|
Имя exe-файла Word, Excel (Application)
|
|||
---|---|---|---|
#18+
Глядишь кому сгодится: Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21.
Тестировал вплоть до Office 2003 + XP, но должно работать и в Office 2000. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2016, 16:42 |
|
Имя exe-файла Word, Excel (Application)
|
|||
---|---|---|---|
#18+
А почему не объявить строку фиксированной длины и избавиться от заморочки с инициализацией? Код: vbnet 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2016, 16:51 |
|
Имя exe-файла Word, Excel (Application)
|
|||
---|---|---|---|
#18+
AkinaА почему не объявить строку фиксированной длины... Есть нюансы. Пробовали? :) ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2016, 17:02 |
|
Имя exe-файла Word, Excel (Application)
|
|||
---|---|---|---|
#18+
Просто любопытствую. Опять же привык, что строки фиксированной длины обрабатываются быстрее. И пока ни с проблемами, ни даже с нюансами при использовании строк фиксированной длины при обращении к API не сталкивался. Не просветите? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2016, 17:14 |
|
Имя exe-файла Word, Excel (Application)
|
|||
---|---|---|---|
#18+
Akina...при использовании строк фиксированной длины при обращении к API не сталкивался. Не просветите? Что-то связанное с памятью, не помню уже :) Можно почитать например тут: http://bytecomb.com/vba-internals-getting-pointers/ http://bytecomb.com/vba-scalar-variables-and-pointers-in-depth/ http://www.codeproject.com/Articles/5685/Pointers-in-Visual-Basic-using-Undocumented-Functi\ Может разберетесь и приспособите фикс... ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2016, 18:23 |
|
Имя exe-файла Word, Excel (Application)
|
|||
---|---|---|---|
#18+
Сын вождяМожно почитать например тутПросмотрел. Нет там ничего вменяемого. На самом деле напрочь не могу понять, откуда могли бы вылезти проблемы - StrPtr корректно даёт адрес первого байта для любого типа стринга, а API-функция использует переданный указатель, в принципе не зная, на что этот указатель, для неё это просто область памяти, куда надо положить или откуда забрать данные. Единственное, что я могу придумать - это повторное использование fixed length string в рамках одной области видимости, когда она предыдущими действиями НЕ забита нулевыми байтами, и тогда функция может неправильно определить длину переданных строковых данных. Но в данном конкретном случае такого быть не может. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2016, 19:13 |
|
Имя exe-файла Word, Excel (Application)
|
|||
---|---|---|---|
#18+
Вот и я не смог вспомнить/найти отчего так, но все используют именно переменную строку, иначе - ошибка. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2016, 19:46 |
|
Имя exe-файла Word, Excel (Application)
|
|||
---|---|---|---|
#18+
Сын вождя, Попробуйте, не получиться таким кодом удалить надстройку: Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27.
... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2016, 19:49 |
|
Имя exe-файла Word, Excel (Application)
|
|||
---|---|---|---|
#18+
Хотя нет, т.к. даже при таком подходе надо будет перезапускать Excel. Надо поковырять в этом направлении - может получиться вырубить начисто без перезапуска. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2016, 20:04 |
|
Имя exe-файла Word, Excel (Application)
|
|||
---|---|---|---|
#18+
The_PristПопробуйте, не получиться таким кодом удалить надстройку... Спасибо за подсказку, про параметр OPEN реестра не знал. Но это имена подключенных надстроек. Еще, именование такое: OPEN , OPEN1, OPEN2... Список отключенных надстроек лежит здесь: HKEY_CURRENT_USER\Software\Microsoft\Office\xx\Excel\Add-in Manager Проблема в том, что Excel обновляет реестр при выходе. То есть, все текущие отключения / подключения надстроек отразятся в реестре только после выхода из Excel. По-любому, надстройку надо сначала отключать. Значит, после закрытия Excel, она появится в разделе "Add-in Manager". Думаю, без перезапуска Excel не обойтись. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2016, 21:22 |
|
Имя exe-файла Word, Excel (Application)
|
|||
---|---|---|---|
#18+
Можно глянуть мой халявный инсталлятор для Excel, где это все реализовано: http://mtdmacro.ru/create/starter.xls ... |
|||
:
Нравится:
Не нравится:
|
|||
13.01.2016, 21:35 |
|
|
start [/forum/topic.php?fid=61&fpage=39&tid=2173223]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
67ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
52ms |
get tp. blocked users: |
1ms |
others: | 293ms |
total: | 454ms |
0 / 0 |