Новости:

Интересные и полезные статьи по работе с 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"

McConst

Проблема периодически возникает и всё время приходится её решать.
Поставил Windows 11. Здесь простой правкой реестра уже не обойтись. Windows 11 перестаёт открывать файлы через книгу или ярлык книги. Только через запуск приложения.

Долго мучал ИИ, прежде чем получил готовое решение. Приведу его здесь. Решение для Excel 2003

Создаём .reg файл для правки реестра:
Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Excel.Sheet.8.Separate]
@="Microsoft Excel Worksheet (Separate Instance)"

[HKEY_CLASSES_ROOT\Excel.Sheet.8.Separate\shell]

[HKEY_CLASSES_ROOT\Excel.Sheet.8.Separate\shell\open]

[HKEY_CLASSES_ROOT\Excel.Sheet.8.Separate\shell\open\command]
@="\"C:\\Program Files (x86)\\Microsoft Office\\OFFICE11\\EXCEL.EXE\" /x \"%1\""

Кликаем на файл. В реестр добавятся новые ветки-клоны стандартной Excel.Sheet.8 (Excel 2003)
Запускаем cmd в режиме Администратора.
Выполняем
assoc .xls=Excel.Sheet.8.Separate
Тем самым меняем действия приложения Excel, ассоциированные с файлами .xls
Если нужно восстановить способ открытия Excel обратно, в cmd запускаем
assoc .xls=Excel.Sheet.8

У меня сработало.

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