![]() |
|
Модераторы: Akina |
![]()
|
|
| Kurt |
|
|||
|
Увлеченный ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1662 Регистрация: 22.8.2003 Где: Краснодар Репутация: нет Всего: 36 |
Народ!
Пишу приложение, которое, в частности работает с Excel. А как бы мне сделать, чтоб мое приложение работало для всех версий Microsoft Office? А то в WinXP работает (ввиду объективных обстоятельств программирование происходит в WinXP), а в Win2000 - нет... -------------------- Для корабля, который не знает куда плыть, нет попутного ветра... ((С) Архимед) ... Все знают, что это невозможно. Но случайно находится невежда, который этого не знает. Он-то и делает открытие.. ((С) А. Эйнштейн) |
|||
|
||||
| Mephisto |
|
|||
![]() Волкъ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1818 Регистрация: 27.8.2003 Где: Питер Репутация: 2 Всего: 34 |
Что именно не работает
|
|||
|
||||
| RAN |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 709 Регистрация: 14.3.2003 Где: Щёлково Моск.обл. Репутация: нет Всего: 6 |
WinXP или OfficeXP? Используй Excel.Application. И при написании проги, пользуйся объектами Excel97, например.
P.S. Мне известно лишь одно неудобство. Но это относится к Word. В Word2002 и более ранних версиях по разному индексируются строки и столбцы таблиц. Возникает необходимость при обращении к ячейки проверять версию Word'а. |
|||
|
||||
| Kurt |
|
|||
|
Увлеченный ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1662 Регистрация: 22.8.2003 Где: Краснодар Репутация: нет Всего: 36 |
Конечно, я имел ввиду OfficeXP.
А можно как-то взять объекты Excel97, не устанавливая его? -------------------- Для корабля, который не знает куда плыть, нет попутного ветра... ((С) Архимед) ... Все знают, что это невозможно. Но случайно находится невежда, который этого не знает. Он-то и делает открытие.. ((С) А. Эйнштейн) |
|||
|
||||
| RAN |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 709 Регистрация: 14.3.2003 Где: Щёлково Моск.обл. Репутация: нет Всего: 6 |
Ты не понял. OfficeXP поддерживает всё, что есть в 97. Но у него есть много нового, по сранению с 2000. А в 2000 много нового, по сравнению с 97. Я тебе говорю, что надо использовать только то, что есть в 97. Это кстати отноcится и к ActiveX. Не бери новых ActiveX в проект. Иначе, даже если ты будешь использовать древнии интерфейсы, прога всё равно будет выдавать ошибку: "Семейство не поддерживается".
Найди доку по автоматизации Office97 (а лучше книгу. новую будет уже сложно купить), а использовать можешь любой Office. Устанавливать ничего не надо |
|||
|
||||
| Kurt |
|
|||
|
Увлеченный ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1662 Регистрация: 22.8.2003 Где: Краснодар Репутация: нет Всего: 36 |
RAN, я понимаю каково это - объяснять самоучке (коим я в VB и являюсь!),
но вот смотри:
Это пример из help by VB5. Там сказано - подключить Microsoft Excel Object Library. OK. У меня Microsoft Excel 10.0 Object Library. Все работает. Перехожу в Office2000 ( просто загружаюсь в Win2000, там у меня Office2000), запускаю EXE-шник: Error! Ошибка работы приложения! Если не влом, расскажи как быть? ..А книгу я обязательно куплю! P.S. Кстати, в OfficeXP, после работы этого примера, остается Excel-процесс. Но, по-моему, это уже обсуждается на этом форуме... -------------------- Для корабля, который не знает куда плыть, нет попутного ветра... ((С) Архимед) ... Все знают, что это невозможно. Но случайно находится невежда, который этого не знает. Он-то и делает открытие.. ((С) А. Эйнштейн) |
|||
|
||||
| RAN |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 709 Регистрация: 14.3.2003 Где: Щёлково Моск.обл. Репутация: нет Всего: 6 |
Плата за совместимоть. От Object Library придётся отказаться. Это внесёт некоторые неудобства в написание кода. По нажатию на точку не будет появляться список методов и свойств, нельзя использовать константы (придётся писать их значения вместо имён).
Меняй все типы из Microsoft Excel 10.0 Object Library на Object, а саму Library отключай обратно. У тебя будет такой код
Могу предложить тебе писать прогу с подключённой Library, чтоб использовать все прелести IDE. А перед созданием exe править код, меняя все типы на Object. У тебя получатся release и debug версии (простите за C-ишный жаргон |
|||
|
||||
| Kurt |
|
|||
|
Увлеченный ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1662 Регистрация: 22.8.2003 Где: Краснодар Репутация: нет Всего: 36 |
Danke, все понял...
-------------------- Для корабля, который не знает куда плыть, нет попутного ветра... ((С) Архимед) ... Все знают, что это невозможно. Но случайно находится невежда, который этого не знает. Он-то и делает открытие.. ((С) А. Эйнштейн) |
|||
|
||||
| RAN |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 709 Регистрация: 14.3.2003 Где: Щёлково Моск.обл. Репутация: нет Всего: 6 |
Процесс Excel должен уничтожаться после того, как ты присвоишь Nothing всем объектам (xlApp, xlBook и т.д.). Остаётся он в памяти обычно из-за самой распространённой ошибки. Не обрабатывают исключительные ситуации, при которых до =Nothing дело не доходит. Обязательно пиши On Error Goto перед использованием COM-сервера. Это же не твоя программа, там всё что угодно может произойти. А твоё дело по On Error сообщить пользователю, что Excel подкачал, извините. И выполить = Nothing для всех объектов.
|
|||
|
||||
![]()
|
| Правила форума "VB6" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | VB6 | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |