Новости:

Интересные и полезные статьи по работе с Excel и VBA
можно найти в разделе ХИТРОСТИ

Главное меню

Excel 2003 на Win10 каждый файл открыть в отдельном процессе Excel

Автор McConst, 09.04.2020, 15:32:36

« назад - далее »

McConst

Добрый день.
Пользуюсь Excel 2003 на Win 10. Предпочитаю старый офис в силу быстродействия при обработке таблиц с большим объемом данных порядка 30-60 тыс. строк. Новые офисы на таком объеме просто виснут.
Проблема следующая. Чтобы иметь возможность независимой параллельной работы VBA в нескольких книгах одновременно, нужно чтобы каждая книга открывалась в отдельном процессе Excel.
В голове помню, что нужно запретить dde и поставить параметр "%1" при запуске Excel.
В Win XP это делалось элементарно в проводнике при выборе приложения по умолчанию, в Win10 нужно править реестр. Постоянно забываю в каких ветках реестра нужно копаться. Просьба, напишите кто помнит, что именно нужно править?

Можно ли параметр "%1" править не для всего реестра, а для конкретных файлов с макросами, например в ярлыках на файлы?  - так было бы наверное корректнее.

McConst

Кажется решил вопрос.
Для офиса 2003 в основном рекомендуют пользоваться заменой ключей в реестре /dde на %1
Какие ветки реестра сейчас не помню и в гугле не искал, так как решение через правку реестра будет действовать для всех файлов без исключения. А параллельная работа макросов в разных книгах одновременно требует запуска в отдельных процессах только избранных книг с макросами. Поэтому решение следующее:

На сайте майкрософта перечислены ключи, с которыми может запускаться приложение Excel. Запуск приложения Excel в отдельном процессе выполняется с ключом /x
Чтобы нужная мне книга запускалась в отдельном процессе, делаю следующее:
1. Создаю ярлык в удобном для меня месте к файлу Excel. У меня он расположен по адресу: "C:\Program Files (x86)\Microsoft Office\OFFICE11\EXCEL.EXE"
2. В свойствах ярлыка в пути к объекту дописываю ключ и путь к книге, которую мне нужно запустить в отдельном процессе. Получается что-то такое:
"C:\Program Files (x86)\Microsoft Office\OFFICE11\EXCEL.EXE" /x "D:\Нейтрализаторы.xls"
Все пути должны быть закавычены, иначе пробел между словами может всё испортить. Без кавычек прописывается только ключ.
3. Переименовываем ярлык в имя книги, которую открываем отдельным процессом. Типа в "Нейтрализаторы(отдельно)"

McConst

Периодически возвращаюсь к этому решению.
Чтобы не создавать ярлык, можно внести правку в реестре.
Для Excel 2003
в реестре
HKEY_CLASSES_ROOT\Excel.Sheet.8\shell\Open\command

безымянный параметр, который имеет путь к файлу EXCEL.exe записать следующим образом
"C:\Program Files\Microsoft Office\Office11\EXCEL.EXE" /e "%1"

Яндекс.Метрика Рейтинг@Mail.ru