Удаление макропрограмм из книги
А подскажите вот такую вещь.
Дело в экселе.
Есть книга с макросами какими-то. Мне нужно сделать точную копию этой книги (с другим именем предположим), но без макросов. Как это можно сделать?
Растолкуйте мне бестолковому :D
Доброго время суток народ.
А подскажите вот такую вещь.
Дело в экселе.
Есть книга с макросами какими-то. Мне нужно сделать точную копию этой книги (с другим именем предположим), но без макросов. Как это можно сделать?
Растолкуйте мне бестолковому :D
Тут вопрос - где у тебя твои макросы записаны: в модуле книги или в модуле листов книги?
Если у тебя (обычно это так) в модуле книги, то можно предложить такой вариант:
1. создать новую книгу.
2. удалить в ней пустые листы.
3. Скопировать/переместить листы из нужной книги.
4. сохранить под другим названием.
Несколько громозко, но пока ничего другого в голову не пришло.
Есть еще такой объект - VBPROJECT. по идее можно получить доступ к проекту с модулями, но справки по нему у меня нет (видно не прикладывают в Office) и обращаться к нему напрямую, VBA че-то не дает...
Тут вопрос - где у тебя твои макросы записаны: в модуле книги или в модуле листов книги?
Если у тебя (обычно это так) в модуле книги, то можно предложить такой вариант:
1. создать новую книгу.
2. удалить в ней пустые листы.
3. Скопировать/переместить листы из нужной книги.
4. сохранить под другим названием.
Несколько громозко, но пока ничего другого в голову не пришло.
Есть еще такой объект - VBPROJECT. по идее можно получить доступ к проекту с модулями, но справки по нему у меня нет (видно не прикладывают в Office) и обращаться к нему напрямую, VBA че-то не дает...
Предлагаю такой способ.
1. Включаешь защиту от макровирусов.
2. Открываешь книгу. Эксель спросит - туту, типа какие-то макросы, может ну их на фиг? Отвечаешь - да, открываем без макросов.
3. Файл откроется без макросов в режиме "только для чтения". Сохраняешь под другим именем и все.
Предлагаю такой способ.
1. Включаешь защиту от макровирусов.
2. Открываешь книгу. Эксель спросит - туту, типа какие-то макросы, может ну их на фиг? Отвечаешь - да, открываем без макросов.
3. Файл откроется без макросов в режиме "только для чтения". Сохраняешь под другим именем и все.
А программно такое можно сделать? Мне кажется, хлопотно это
Workbooks.Open "C:\1.XLS", , , , , , , , , , , , , , xlExtractData - открывает только данные, правда при этом вылезает табличка ругательная, якобы файл был так сильно испорчен, что восстановлению не подлежит :), на которую приходится нажимать и потом видишь нормальный файл без макросов.
Workbooks.Open "C:\1.XLS", , , , , , , , , , , , , , xlExtractData
Application.SendKeys ("~")
ActiveWorkbook.SaveAs "C:\2.XLS"
SendKeys - нужен для того чтобы закрыть противное окно(посылает нажатие клавиши Enter), ну а дальше файл уже можно сохранять под новым названием и все что душе угодно.
Прикольно, но можно сделать так:
Workbooks.Open "C:\1.XLS", , , , , , , , , , , , , , xlExtractData
Application.SendKeys ("~")
ActiveWorkbook.SaveAs "C:\2.XLS"
SendKeys - нужен для того чтобы закрыть противное окно(посылает нажатие клавиши Enter), ну а дальше файл уже можно сохранять под новым названием и все что душе угодно.
Наверное, можно сделать так:
Application.DisplayAlerts = False
Workbooks.Open "C:\1.XLS", ...
Application.DisplayAlerts = True
Попробовать не могу - у меня 97-й Эксель.
Наверное, можно сделать так:
Application.DisplayAlerts = False
Workbooks.Open "C:\1.XLS", ...
Application.DisplayAlerts = True
Попробовать не могу - у меня 97-й Эксель.
Это я попробывал в самом начале - не помогает (Xp Office), так что пришлось извращаться... :(:)