|
|
|
Excel :)
|
|||
|---|---|---|---|
|
#18+
Вопрос по екцелю, в наш форум как межгалактический мегаресурс Возможно ли открыть книгу екцеля, без загрузки туевой тучи надстроек? Я тут в обмарок давеча упал, когда поставил PromtXP SmartTool on Excel - книга стала открываться по 20-40 секунд. Вот и хотелось бы убрать нахрен все то что не нужно (а мне ничего не нужно :) ? == Тема по Excel навеяна mahoune :), а чем я хуже ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2003, 14:47 |
|
||
|
Excel :)
|
|||
|---|---|---|---|
|
#18+
Вот че я тебе накопал (из справки Excel'a, введи в строку поиска - "личная книга макросов" и вторая тема - "Настройка запуска Microsoft Ecxel"... короче не мог описать :-) ): Использование ключей автозагрузки при запуске Microsoft Excel В главном меню (кнопка Пуск) выберите команды Программы, Стандартные и Проводник. В проводнике Windows перейдите к папке «\Program Files\Microsoft Office\Office10\Shortcut Bar\Office» и удалите ярлык для Microsoft Excel. В проводнике Windows перейдите к папке «\Program Files\Microsoft Office\Office10», щелкните правой кнопкой мыши файл EXCEL.exe и выберите Создать ярлык. Правой кнопкой мыши щелкните созданный ярлык, выберите Свойства и измените путь в поле Объект, используя значения из таблицы. Например, для открытия книги «Страховые списки.xls» введите пробел после пути в поле Объект, а затем введите: C:\Reference Data\Страховые списки.xls Чтобы запустить Microsoft Excel и Введите Открыть определенную книгу путь к книге/имя файла Открыть определенную книгу только для чтения /r путь к книге/имя файла Не отображать загрузочный экран и пустую новую книгу /e Указать рабочую папку Примечание. Папка, определенная в ключе автозагрузки, используется вместо папки, указанной в поле Рабочий каталог вкладки Общие диалогового окна Параметры (меню Сервис). /p путь к папке/имя папки Указать безопасный режим Microsoft Office /safe Нажмите кнопку OK. Переместите ярлык в «\Windows\Documents and Settings\Главное меню». Примечание. Пользовательский ярлык может быть заменен ярлыком Windows Installer, если он называется «Microsoft Excel», а также выполнены следующие условия. Используется команда Microsoft Office «Найти и восстановить» и установлен флажок Восстановить ярлыки. В режиме поддержки выбран параметр Восстановление Microsoft Office, выполнена команда Исправить ошибки в установке Office и установлен флажок Восстановить ярлыки. Если пользовательский ярлык заменен ярлыком Windows Installer, пользовательский ярлык необходимо создать заново. Так вот, если поиграть этими ключами, то можно кой-чего добиться: 1. Запускаешь ярлык с ключом "/safe" - AddIns не грузятся, хотя галка в Надстройках остаются. 2. Personal.xls (и все другие автомат. загр. книги) грузятся в safe, но для них есть другой ключик :-) - "/p" указываем другой каталог и все они обламываются... Вроде все, а так там есть еще Application.AddIns - но только для чтения, а коллекция AddIns только позволяет смотреть и добавлять addins, но не удалять. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2003, 15:44 |
|
||
|
Excel :)
|
|||
|---|---|---|---|
|
#18+
Мдаа... скопированный текст из справки хорошо перекорежило при таком форматировании.... :-) лучше в справке посмотри. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2003, 15:50 |
|
||
|
Excel :)
|
|||
|---|---|---|---|
|
#18+
Понятно. Спаcибо Только теперь не понятно как запустить сие чудо средствами OLE Set xwrb = xlsa.Workbooks.Open(filename:=strT, ReadOnly:=True) если в strT добавить "/s" То "умный" екцель добавляет окончание .xls В МСДН полно инфы, но только про ярлыки... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2003, 16:11 |
|
||
|
Excel :)
|
|||
|---|---|---|---|
|
#18+
Как мысль: запустить ХЛ как ярлык через Shell() взять API и найти окно, а затем к нему DDE-шиться насчет как в коде - абсолютно не знаю.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2003, 16:32 |
|
||
|
Excel :)
|
|||
|---|---|---|---|
|
#18+
Да, так, собака, он брать не хочет.. :-( Получается только если открывать ярлык с ключом. Т.е. получается надо сначала создать ярлык на файл с ключом, а потом его уже открывать... немного геморойно, но я пока другого выхода не вижу... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2003, 16:35 |
|
||
|
Excel :)
|
|||
|---|---|---|---|
|
#18+
C Shell конечно все понятно, но думаю это крайний вариант. Если уж мы опустились до API, тогда проще ярлык создать на файл и потом спокойно юзай в программе объекты Excel'a ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2003, 16:37 |
|
||
|
Excel :)
|
|||
|---|---|---|---|
|
#18+
А чтобы создать ярлык надо знать: 1. Версию екцеля 2. Путь к екцелю Мобуть что другое надыблю... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2003, 16:38 |
|
||
|
Excel :)
|
|||
|---|---|---|---|
|
#18+
C путем и версией проблем нет, как xlApp = CreateObject("Excel.Application") сделал, спокойно все нужное смотришь в свойствах, оно там... По поводу создания ярлыка, вот один из примерчиков, с какого-то сайта (уж не помню) надыбыл: Код: plaintext 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. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2003, 16:42 |
|
||
|
Excel :)
|
|||
|---|---|---|---|
|
#18+
1. Create не катит. Мне нужно Get. Хотя это и не важно 2. Твой пример не с сайта, а из МСДН (HOWTO: Use Windows Script Host to Create Shortcut with Parameters). Для этого нужно WScript, а он не везде есть, да и глупо ради одной строчки навязывать юзерам 5 Мб установщик. Лучше на VB: HOWTO: Create Shortcuts (Shell Links) within Windows (ms-help://MS.MSDNQTR.2003APR.1033/enu_kbvbwin/vbwin/155303.htm) Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. Сам этот пример не проверял. По видимому другого выхода нет -сначала ярлык с ключом /s, а и только потом - танцы :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2003, 16:59 |
|
||
|
Excel :)
|
|||
|---|---|---|---|
|
#18+
>А чтобы создать ярлык надо знать: >1. Версию екцеля >2. Путь к екцелю В винде раньше была хорошая штука (для запуска из DOS): start filename.ext запускала приложение, связанное с файлом, и открывало файл Попробуй, вдруг поможет ВМЕСТО ПУТЕЙ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2003, 17:22 |
|
||
|
Excel :)
|
|||
|---|---|---|---|
|
#18+
>В винде раньше была хорошая штука (для запуска из DOS): Зачем Дос? Есть и для виньдоуса. Но это не подойдет в моем случае. Код: plaintext 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. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. По видимому алгоритм прийдется строить так: 1. Пытаемся законектиться к открытому екцелю с помощью GetObject Если ошибка - значит екцел не открыт (идем к п2), если открыт - по фиг на Надстройки - работаем с текущей ссылкой. Но: а вдруг кто екцел открыл - тот его и закроет? Прийдеться скрыть его , что ли. 2. Создаем ярлык с ключем для безопасного запуска. Запускаем, получаем ссылку. Работаем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2003, 17:30 |
|
||
|
Excel :)
|
|||
|---|---|---|---|
|
#18+
Мой пример создания ярлыка от 16:59 у меня работать не хочет :( Инсnрукция не может быть Read/write ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2003, 17:37 |
|
||
|
Excel :)
|
|||
|---|---|---|---|
|
#18+
a) к сокрытию: там глюк встречается по чтению ячеек на спрятанном листе - наткнешься если, попробуй minimize вместо hide. б) естественно, и у винды есть, тока опять АПИ ;))) в) пример из справки по определению открытости Код: plaintext 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. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2003, 17:41 |
|
||
|
Excel :)
|
|||
|---|---|---|---|
|
#18+
Мдаа, написать что-ли в Майкрософт, чтобы изменили работу метода Open, чтоб он не мудрил и xls в конец не добавлял, а сделали бы нормальный запуск (в смысде открытие) с ключами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2003, 17:47 |
|
||
|
Excel :)
|
|||
|---|---|---|---|
|
#18+
Функцию DetectExcel можно упростить если используеться версия 2000 и выше Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Шняга с SendMessage hWnd, WM_USER + 18, 0, 0 нужна для глюка екцеля 95 (7.0) (Microsoft Excel 95 fails to correctly register itself in the Running Object Table. The GetObject function can be used with the correct syntax to obtain a currently running instance of Microsoft Excel 95 for use with OLE automation. ) Подробности: FIX: Microsoft Excel 95 Doesn't Respond Correctly to GetObject (ms-help://MS.MSDNQTR.2003APR.1033/enu_kbvbwin/vbwin/153025.htm) >a) к сокрытию: там глюк встречается по чтению ячеек на спрятанном листе - наткнешься если, попробуй minimize вместо hide. Скрываю-то я екцел целиком. А что за глюк (для общего развития)? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2003, 17:48 |
|
||
|
Excel :)
|
|||
|---|---|---|---|
|
#18+
Виктор, а у тебя пользователь не офигеет от количества ярлычков? Или ты их за собой удалять будешь? Тож прикольно. Твоя программа будет выглядеть как сошедший с ума суперинсталятор экселя. I like to move it move it. Или можно еще одну проверку ввести. Т.е. сначала пытаемся найти открытый эксель, если не нашли - пытаемся найти нужный ярлык , если нашли - то его юзаем, иначе создаем новый. Только это... когда мы ярлык найдем - его кто-нибудь удалить может случайно... Придется его покрасить под цвет рабочего стола... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2003, 17:48 |
|
||
|
Excel :)
|
|||
|---|---|---|---|
|
#18+
>Мдаа, написать что-ли в Майкрософт, чтобы изменили работу метода Open, чтоб он не мудрил и xls в конец не добавлял, а сделали бы нормальный запуск (в смысде открытие) с ключами. Для запуска с ключами нужен не Open (для Книги), а нечто во время создания объекта New Excel.Application (CreateObject ("Excel.Application"). Именно в этот момент и создаеться нормальный/не нормальный екцел. Получаеться только через ярлык... :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2003, 17:51 |
|
||
|
Excel :)
|
|||
|---|---|---|---|
|
#18+
2ЛП Что-ты ты сегодня не в настроении - бурчишь ... а, блин, у тебя отпуск же кончился :( По поводу ярлыков: не очень мне и хочеться их делать. Верней со всем не хочеться. Но если и делать - то: 1. Делать только 1 ярлык 2. И не на рабочем столе, а в каталоге с программой 3. И пусть ярлык удаляют (если найдут), его и заново создать можно. Только все равно даже если и получиться - вылезет еще какая нибудь гадость, типа сообЧения "Вы работаете в безопасном режиме", которое нельзя отменить, или еще что-нить (типа, при первом запуске, предложение ввести инициалы). AcSex с Excel'ем - одним словом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2003, 17:58 |
|
||
|
Excel :)
|
|||
|---|---|---|---|
|
#18+
Интересно, что будет если на сайте sql.ru открыть форум по экселю? Сори за оффтоп ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2003, 18:00 |
|
||
|
Excel :)
|
|||
|---|---|---|---|
|
#18+
>Скрываю-то я екцел целиком. А что за глюк (для общего развития)? Если откомментируешь две последние строки и закомментируешь три первые - будет App defined error ' Show Microsoft Excel through its Application property. Then ' show the actual window containing the file using the Windows ' collection of the MyXL object reference. MyXL.Application.Visible = True MyXL.Parent.Windows(1).Visible = True MyXL.Application.WindowState = -4140 'xlMinimized 'НЕ ВЫКЛЮЧАТЬ ПОКАЗ ОКОН 'ИНАЧЕ НЕ РАБОТАЕТ .CELLS( 'ХОТЯ RANGE(" РАБОТАЕТ... ' ' MyXL.Application.Visible = False ' MyXL.Parent.Windows(1).Visible = False ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2003, 18:01 |
|
||
|
Excel :)
|
|||
|---|---|---|---|
|
#18+
2ЛП >Интересно, что будет если на сайте sql.ru открыть форум по экселю? Будет тоже самое, что и с форумом по VB - т.е там ничего не будет :) 2Alexus12 Надо будет попробовать... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2003, 20:35 |
|
||
|
Excel :)
|
|||
|---|---|---|---|
|
#18+
Порылся я на MSDN. Вот чего там наковырял. Эти AddIns суть COM-объекты, т.е. явл. подгружаемыми dll'ками. Когда сохраняешь книгу как xla - Надстройка, то Excel ее скрывает с глаз долой, хотя в VBE проект виден. Я так понял, что твои файлы Надстроек (xla), так же как и сторонних программистов в VBE будут видны, а вот свои файлы AddIns Excel после закрытия-открытия из VBE убирает, прячет (например Lookup.xla - мастер подстановок). В процессе работы к коллекции AddIns можно получить доступ и управлять ими программно, а вот как при загрузке запретить подгружать AddIns я не нашел. Отыскал список всех ключей при загрузке (там есть ключ указыв. на подгружание указанного AddIns), но не по теме. Единственное решение какое откапал, это: При установке AddIns, Excel прописывает пути к этим xla в реестре, по которым при загрузке их и загружает: HKEY_CURRENT_USER\Software\Microsoft\Office\10.0\Excel\Options Ключ: OPEN = "/R "C:\Program Files\Microsoft Office\Office10\Library\Analysis\ANALYS32.XLL" P.S. но опять же, что интересно, сюда попадают только сторонние AddIns, т.е. если отметишь AddIns - "мастер подстановок" (Lookup.xla ) ключа в реестре вы на него не найдете. Вообщем маскируется дядя Билл по полной программе (а может на самом деле эти файлы и так все время автоматом подгружаются). В статьях по разработке AddIns было написано, что разработчик может указать когда подгружать свой addins: в момент загрузки Excel, обращения к функции и т.д. так что все на совести разработчика AddIns'a. Так что, если удалить, временно, ключи из реестра, то можно Excel и в облегченном варианте загрузить. Правда, кому надо стоко гемороя на свою ... :-( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.08.2003, 15:37 |
|
||
|
Excel :)
|
|||
|---|---|---|---|
|
#18+
Нет, столько гемору нам не нужно. Пусть это будет документированная фича - чем больше надьстроек в екцеле - тем дольше юзер будет ждать отчета. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.08.2003, 20:21 |
|
||
|
|

start [/forum/topic.php?fid=45&msg=32246559&tid=1679719]: |
0ms |
get settings: |
9ms |
get forum list: |
19ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
61ms |
get topic data: |
14ms |
get forum data: |
5ms |
get page messages: |
90ms |
get tp. blocked users: |
2ms |
| others: | 261ms |
| total: | 469ms |

| 0 / 0 |
