Как удалить макросы в excel

Удаление макроса из персональной книги макросов

10.07.2014, 21:10

Запуск функций UDF из персональной книги макросов
Добрый день! Помогите пожалуйста. Небольшая проблема. Я создал пользовательскую функцию UDF. Если.

Очистка книги от макросов
При сохранении книги использую такой код: Public Sub WorkbookDeleteVBA(oWorkbook As.

Загрузка личной книги макросов
Добрый день. Подскажите пожалуйста как мне загрузить personal.xls при помоши макроса. Проблема в.

Программное сохранение книги с отработкой макросов
Доброе время суток. Подскажите как программно сохранить книгу с выполнением макросов. Есть.

10.07.2014, 21:22 2

Зачем его удолять ?, может быть проще не использовать в тех или иных случаях

Добавлено через 4 минуты
или вот как можно!, ручками.. средствами правки.. копировать-вырезать-вставить-удалить

10.07.2014, 21:51 [ТС] 3 10.07.2014, 22:34 4

Решение

10.07.2014, 23:16 [ТС] 5 07.07.2015, 16:40 6

Решение

1. На вкладке Вид в группе Окно нажмите кнопку Отобразить окно.

2. В разделе Показать скрытое окно книги выберите пункт ЛИЧНОЕ, а затем нажмите кнопку ОК.

3. В списке Находится в выберите рабочую книгу с макросом, который требуется удалить. Например, выберите вариант Эта книга.

4. В поле Имя макроса выберите имя макроса, который нужно удалить.

5. Выберите команду Удалить.

14.03.2016, 23:40 7 12.05.2016, 10:48 8 20.03.2018, 17:38 9

Кстати, нет никакой необходимости пользоваться “Персональной Книгой Макросов”.

Можно любой документ с расширением XlsM сохранить в папку
c:UsersUserAppDataRoamingMicrosoftExcelXLSTART
И музыка будет играть

16.05.2019, 09:34 10 16.05.2019, 09:41 11
16.05.2019, 09:41
16.05.2019, 09:41

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Автосохранение книги в созданую папку без макросов
Добрый день. Вопрос – есть код VBA Sub Auto_open() Dim x As String strPath = “” .

Остановка работы всех макросов перед закрытием книги.
Pered zakrytiem knigi nado ostanovitj rabotu vseh makrosov. Kak eto mozno sdelatj, 4erez kakie.

Запуск макроса из закрытой книги
Здравствуйте Гуру VBA! Может эта тема уже и поднималась. Я по крайней мере не нашел ответа.

Запуск макроса без книги
Дело такое: для производственных нужд сделал макрос который приводит данные в ячейках к.

Источник: www.cyberforum.ru

Как удалить макросы в книге?

Рано или поздно у разработчиков возникает вопрос: как удалить макросы, в том числе и из книги, в которой эти макросы расположены? Да еще так, чтобы об этом никто ничего не узнал?

Для изменения кодов программно необходимо, чтобы было проставлено доверие к объектной модели проекта VBA и изменяемый проект не должен быть защищен. Подробнее читайте в статье: Что необходимо для внесения изменений в проект VBA(макросы) программно
Без этого будет невозможно программное вмешательство в проект VBA.

УДАЛИТЬ ВСЕ МАКРОСЫ ИЗ АКТИВНОЙ КНИГИ

Sub Delete_Macroses() Dim oVBComponent As Object, lCountLines As Long ‘Проверяем, защищен проект или нет If ActiveWorkbook.VBProject.Protection = 1 Then MsgBox “VBProject выбранной книги защищён.” & vbCrLf & _ ” Компоненты не будут удалены.”, vbExclamation, “Отмена выполнения” Exit Sub End If For Each oVBComponent In ActiveWorkbook.VBProject.VBComponents On Error Resume Next With oVBComponent Select Case .Type Case 1 ‘Модули .Collection.Remove oVBComponent Case 2 ‘Модули Класса .Collection.Remove oVBComponent Case 3 ‘Формы .Collection.Remove oVBComponent Case 100 ‘ЭтаКнига, Листы lCountLines = .CodeModule.CountOfLines .CodeModule.DeleteLines 1, lCountLines End Select End With Next Set oVBComponent = Nothing End Sub

Так же можно удалить макросы только из одного компонента(листа или книги или модуля).

УДАЛИТЬ ОТДЕЛЬНЫЙ МОДУЛЬ(Module), ФОРМУ(UserForm) КОД ЛИСТА ИЛИ КНИГИ
Удалить модуль/форму целиком достаточно просто:

ActiveWorkbook.VBProject.VBComponents(“UserForm1”).Collection.Remove ActiveWorkbook.VBProject.VBComponents(“UserForm1”) ActiveWorkbook.VBProject.VBComponents(“Module1”).Collection.Remove ActiveWorkbook.VBProject.VBComponents(“Module1”)

С листами несколько сложнее – если удалить компонент полностью, то будут потеряны и все данные на листе, а не только макросы. Поэтому удалять необходимо только код внутри листа. В качестве примера возьмем Лист1:

Sub Delete_Macroses_In_One_Comp() Dim oVBComponent As Object, lCountLines As Long Set oVBComponent = ActiveWorkbook.VBProject.VBComponents(“Лист1”) With oVBComponent lCountLines = .CodeModule.CountOfLines .CodeModule.DeleteLines 1, lCountLines End With Set oVBComponent = Nothing End Sub

Здесь тоже есть небольшая поправка: Лист1 – это кодовое(внутреннее имя) листа. На ярлычке имя листа может отображаться как угодно, а вот внутренее. Его можно лучше подглядеть через редактор VBA:

Чтобы удалить коды из модуля книги необходимо вместо Лист1 указать ЭтаКнига(для англ.версии – ThisWorkbook).

УДАЛИТЬ ПРОЦЕДУРУ ИЗ ТЕЛА МОДУЛЯ
Если же Вам необходимо удалить лишь определенную процедуру из модуля формы, стандартного модуля, модуля листа или книги, то сделать это чуть сложнее. Рассмотрим на примере удаления процедуры с именем “Code2” , расположенной в стандартном модуле “Module2”

Sub Delete_Sub_From_Module() Dim lCountLines As Long, li As Long, lStartLine As Long, lProcLineCount As Long Dim sCodeName As String, sProcName As String With ActiveWorkbook.VBProject.VBComponents(“Module2”) ‘получаем кол-во строк кода в модуле lCountLines = .CodeModule.CountOfLines ‘получаем первую строку с кодом, исключая строки декларирования функции и опций модуля lStartLine = .CodeModule.CountOfDeclarationLines + 1 ‘цикл по всем строкам кода внутри модуля For li = lStartLine To lCountLines ‘получаем имя процедуры/функции, внутри которой строка кода sProcName = .CodeModule.ProcOfLine(li, 0) ‘если имя процедуры совпадает с тем, которое нам нужно If sProcName = “Code2” Then ‘узнаем кол-во строк процедуры/функции lProcLineCount = .CodeModule.ProcCountLines(sProcName, 0) ‘удаляем процедуру/функцию .CodeModule.DeleteLines li, lProcLineCount – 1 Exit For End If li = li + lProcLineCount Next li End With End Sub

Здесь стоит обратить внимание на один момент: данный поиск чуствителен к регистру. Т.е. если требуется удалить процедуру “Code2” , то и к сравнению надо вписывать имя именно так. Если записать “code2” , то совпадения найдено не будет и процедура не будет удалена. Во избежание подобного можно приводить имена к одному регистру:
If LCase(sProcName) = LCase(“Code2”) Then

УДАЛИТЬ ВСЕ МАКРОСЫ ВРУЧНУЮ
Еще хочу добавить, что если Вам надо не скрыто, а просто быстро удалить все макросы из книги и Вы счастливый обладатель Excel версии 2007 и выше, то Вам всего лишь необходимо книгу, из которой хотите удалить макросы, Сохранить как-обычная Книга Excel(МенюСохранить какКнига Excel).

Программно это можно сделать простым кодом:

Sub SaveBookWithoutMacro() ActiveWorkbook.SaveAs Filename:=”C:Книга1.xlsx”, FileFormat:=51 End Sub

Для тех же, кто все еще использует офис 2003 и ранее и хочет удалить коды и макросы вручную – придется удалять каждый модуль из проекта и каждый код из модулей листов и книг поочередно, руками.

Статья помогла? Поделись ссылкой с друзьями!

Источник: www.excel-vba.ru

Как удалить макросы в excel

Друзья!
Есть файл и в нем, в списке макросов, есть некий макрос (mod_011), который никак не удается удалить, а кнопка удаления на активна.
Откуда он взялся не понятно. Даже удалив все модули и листы с документа, макрос не пропал.

Есть ли способ по удалению такого макроса?

Друзья!
Есть файл и в нем, в списке макросов, есть некий макрос (mod_011), который никак не удается удалить, а кнопка удаления на активна.
Откуда он взялся не понятно. Даже удалив все модули и листы с документа, макрос не пропал.

Есть ли способ по удалению такого макроса?

Сообщение Друзья!
Есть файл и в нем, в списке макросов, есть некий макрос (mod_011), который никак не удается удалить, а кнопка удаления на активна.
Откуда он взялся не понятно. Даже удалив все модули и листы с документа, макрос не пропал.

Есть ли способ по удалению такого макроса?

Спасибо! Автор – blayd2007
Дата добавления – 05.05.2018 в 18:22

_Boroda_ Дата: Суббота, 05.05.2018, 18:36 | Сообщение № 2

Скажи мне, кудесник, любимец ба’гов.
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995

Ответить

blayd2007 Дата: Суббота, 05.05.2018, 19:00 | Сообщение № 3
blayd2007 Дата: Суббота, 05.05.2018, 19:18 | Сообщение № 4
_Boroda_ Дата: Суббота, 05.05.2018, 19:24 | Сообщение № 5

Скажи мне, кудесник, любимец ба’гов.
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995

Ответить

blayd2007 Дата: Суббота, 05.05.2018, 19:31 | Сообщение № 6
_Boroda_ Дата: Суббота, 05.05.2018, 19:46 | Сообщение № 7

Скажи мне, кудесник, любимец ба’гов.
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995

Ответить

blayd2007 Дата: Суббота, 05.05.2018, 20:17 | Сообщение № 8

Я понял, спасибо!

Да, диспетчер имен удобный инструмент, который отображает список всех имен, определенных в активной книге.
Просто пока у меня не было острой, практической необходимости, или никто не смог объяснить всех прелестей его использования.

Наверное, теперь я пересмотрю свое мнение.

Спасибо большое за разъяснения!

Я понял, спасибо!

Да, диспетчер имен удобный инструмент, который отображает список всех имен, определенных в активной книге.
Просто пока у меня не было острой, практической необходимости, или никто не смог объяснить всех прелестей его использования.

Наверное, теперь я пересмотрю свое мнение.

Спасибо большое за разъяснения! blayd2007

Сообщение Я понял, спасибо!

Да, диспетчер имен удобный инструмент, который отображает список всех имен, определенных в активной книге.
Просто пока у меня не было острой, практической необходимости, или никто не смог объяснить всех прелестей его использования.

Наверное, теперь я пересмотрю свое мнение.

Спасибо большое за разъяснения! Автор – blayd2007
Дата добавления – 05.05.2018 в 20:17

Источник: www.excelworld.ru

Как включать и отключать макросы в Excel

При помощи макросов в Эксель задаются специальные команды, благодаря которым можно автоматизировать часть задач и, тем самым, существенно уменьшить временные затраты на выполнение работы. Однако, макросы обладают уязвимостью к хакерским атакам и потенциально опасны. Следует помнить о том, что они несут в себе определенную угрозу, и этим могут воспользоваться злоумышленники. Решение о необходимости их применения нужно принимать, оценивая каждый конкретный случай.

К примеру, если пользователь не уверен в безопасности открываемого документа, от макросов целесообразнее будет отказаться, так как файл может нести в себе вирусный код. Разработчики программы принимают во внимание этот факт и дают пользователю возможность выбора. Именно поэтому в Экселе заложена функция настройки макросов, а точнее, их активности.

Содержание: “Как включить/отключить макросы в Excel”

Активация и выключение макросов во вкладке Разработчика

Сразу стоит отметить, что в процессе выполнения этой задачи некоторые пользователи могут столкнуться с трудностями. Все из-за того, что вкладка “Разработчик” по умолчанию выключена и ее, для начала, нужно активировать.

  1. Щелкаем левой кнопкой мыши по меню «Файл».
  2. Затем, внизу раскрывшегося списка выбираем пункт «Параметры».
  3. В параметрах программы нас интересует пункт «Настройка ленты». Далее ставим галочку напротив вкладки “Разработчик”. Теперь подтверждаем действие нажатием кнопки «OK».

По завершении этих действий вкладка «Разработчик» будет активирована. Теперь можно приступить к включением макросов.

  1. Щелкаем по вкладке “Разработчик”. В левом углу будет находиться требуемый раздел, где нажимаем кнопку «Безопасность макросов» в виде восклицательного знака.
  2. В появившемся окне с настройками можно активировать сразу все макросы. Для этого необходимо выбрать из всех предложенных параметров вариант “Включить все макросы”. Нажатием кнопки “OK” подтверждаем внесенные изменения и выходим из параметров.Однако, следует обратить внимание на то, что разработчики Microsoft не рекомендуют выбирать этот вариант, так как есть вероятность запуска опасной программы, что может навредить компьютеру. Поэтому, выполняя эту операцию, помните, что вы действуете на свой страх и риск.

Деактивация макросов происходит в том же диалоговом окне. Однако, при выключении пользователю будет предложено сразу три варианта с разной степенью безопасности.

Как следует из названия, в самом нижнем варианте исправно будут работать все макросы, имеющие цифровую подпись. А в двух первых вариантах они будут отключены полностью. После того, как мы сделали выбор, нажимаем кнопку «OK».

Настройка макросов в Параметрах программы

  1. Заходим в меню «Файл», и выбираем в нем пункт «Параметры» – аналогично первому пункту в рассмотренном ранее примере.
  2. Но теперь вместо настроек ленты, выбираем раздел “Центр управления безопасностью”. В правой части окна щелкаем на кнопку “Параметры центра управления безопасностью…”
  3. В итоге система нас направит в окно с настройками макросов, которое открывалось и при выполнении операции во вкладке Разработчика. Далее выбираем нужную нам опцию и кликаем “OK”.

Настройка макросов в ранних версиях Эксель

В ранних версиях программы активация и деактивация макросов происходила иначе.

Например, алгоритм действий в программах 2010 года и моложе аналогичный, но есть определенные различия в интерфейсе программ.

А для активации или выключения макросов в версии 2007 года необходимо щелкнуть мышью по значку Microsoft Office в сверху в левом углу. После этого требуется найти раздел «Параметры» внизу открывшейся страницы. Кликнув по разделу «Параметры», мы попадем в Центр управления безопасностью. Далее нам нужны Параметры центра управления безопасностью и, в итоге, непосредственно, сами параметры макросов.

Заключение

Благодаря отключению макросов разработчики пытаются обезопасить пользователей от возможных рисков. Однако, в некоторых случаях, их все же, требуется включить. В зависимости от версии программы, и даже в одной и той же версии это может выполняться по-разному. Но независимого от выбранного способа, процедура достаточно проста и не требует глубоких знаний и навыков работы с ПК.

Источник: microexcel.ru

Как удалить макросы в excel

Посмотрите, к примеру, здесь

Если не устроит, во вторник напишу подробнее.

Андрей, спасибо за ссылку. Я ее уже просматривал, но, к сожалению, не смог реализовать механизм, описанный там. По отдельности макросы отлично работают. Первый разрешает доступ к VBA проекту, а второй удаляет макросы. Однако вместе они не работают. Кроме того, не удается отключить доступ к проектам по окончанию удаления макросов. Буду признателен, если Вы сможете мне помочь.

M.S.D. [mdanshin] написано:
Seraser написано:

Спасибо, дельный совет. Однако в данном случае его невозможно использовать так как круг адресатов неограничен, а следоавтельно нет уверенности в том, что адресат сможет открыть файл. Может быть есть другие варианты?

SFX архивы в RAR ворят чудеса. Архив можно сопроводить информацией типа “для расшифровки используйте имя файла как пароль”, которая будет появлятся во время попытки распаковки. Да было бы желание.

К сожалению использование SFX архивов не всегда возможно т.к. некоторые почтовые серверы не позволяют передавать исполнимые файлы. Кроме того, приходится работать с адресатами в различных странах. Наличие у них установленного RAR предугадать невозможно. Думаю, что большинство из них даже не подозревает о том, что есть такая программа. В связи с тем, что работа по обмену информацией является оперативной, то использование дополнительных программ не является лучшим вариантом т.к. может привести к задержке и, следовательно, к материальным расходам, которые, в конечном итоге, будут повешены на IT. Необходимо учесть, что нашим клиентам приходится вести переписку не с постоянными партнерами, а с теми компаниями, которые оказываются партнерами по бизнесу на текущий момент. В связи с этим невозможно установить какое-то программное обеспечение, которое позволяло бы обрабатывать файлы, на стороне адресата. Более рациональным представляется удаление всех макросов после импорта данных в Excel либо Word. Поэтому хотелось бы получить компетентное мнение специалистов как это сделать легально и с минимальными затратами.

Источник: social.technet.microsoft.com

Как удалить пустые столбцы? Программное удаление пустых столбцов макросом VBA

Существует несколько способов удаления пустых столбцов в Excel. Условно эти способы можно разделить на стандартные, выполняемые стандартными средствами Excel и нестандартные, выполняемые с помощью программирвоания на VBA.

Стандартные способы удаления пустых столбцов

Удаление вручную

Это самый простой способ, при котором необходимо навести курсор на название пустого столбца и кликнуть по нему левой кнопкой мыши. Весь столбец выделится. Нажав и удерживая клавишу Ctrl на клавиатуре, можно выделить несколько столбцов. После этого их можно удалить все одновременно, кликнув правой кнопкой мыши в выделенной области и выбрав команду “Удалить” в контекстном меню.

Удаление при помощи сортировки

Суть этого способа сводится к тому, чтобы используя сортировку по возрастанию либо по убыванию сгруппировать все пустые столбцы и после этого удалить их, выделив диапазон пустых столбцов. При этом очередность столбцов нарушается и для того, чтобы ее затем восстановить, необходимо предварительно в спомогательной строке ввести нумерацию всех столбцов. Кроме того, необходимо изменить параметры сортировки. По умолчанию в Excel установлен параметр “сортировать строки диапазона”. Для сортировки столбцов необходимо изменить этот параметр на “сортировать столбцы диапазона”.

Удаление при помощи выделения группы ячеек

Для того чтобы удалить пустые столбцы в Excel 2007 и 2010 можно воспользоваться возможностью выделения группы ячеек. Для этого выделяем строку, содержащую пустые ячейки, после чего находим на ленте Excel вкладку “Главная”, в группе “Редактирование” выбираем кнопку “Найти и выделить” и выбираем пункт “Выделение группы ячеек”. В появившемся диалоговом окне “Выделение группы ячеек” включаем опцию “Пустые ячейки” и нажимаем кнопку ОК. В предварительно выделенной строке будут выделены все пустые ячейки. Остается кликнуть правой кнопкой мыши в любом месте выделенного поля и выбрать пункт “Удалить. ” в контекстном меню, а в появившемся диалоговом окне “Удаление ячеек” выбрать пункт “Столбец” и нажать ОК. При этом, строго говоря, будут удалены не пустые столбцы, а столбцы, содержащие пустые ячейки в предварительно выделенной строке.

Нестандартные методы удаления пустых столбцов

Программное удаление макросом VBA

Если ни один из стандартных способов не подходит, то для удаления пустых столбцов можно использовать процедуру, написанную на языке VBA, которая удалит все пустые столбцы в используемом диапазоне листа.

Для того, чтобы перенести этот программный код на свой компьютер, наведите курсор мыши на поле с программным кодом, нажмите на одну из двух кнопкок в правом верхнем углу этого поля, скопируйте программный код и вставьте его в модуль проекта на своем компьютере (подробнее о том, как сохранить программный код макроса).

Автоматическое удаление с использованием надстройки

Для тех, кому функциональности приведенной выше процедуры будет недостаточно для решения своих задач, можно воспользоваться надстройкой, позволяющей удалять и скрывать не только пустые столбцы, но и столбцы, удовлетворяющие условиям пользователя, которые можно задавать в диалоговом окне.

Пользователь на свой выбор может удалять либо скрывать пустые столбцы. Может удалять либо скрывать столбцы, содержащие либо не содержащие заданный текст, при этом на свой выбор учитывать либо не учитывать регистр. Возможен одновременный поиск сразу нескольких текстовых выражений, разделенных знаком ; (точка с запятой). Пользователь также может на свое усмотрение расширять область действия макроса и ограничивать его, задавая номера первого и последнего столбца. Кроме того, надстройка освобождает пользователя от поиска нужного макроса, так как позволяет вызывать диалоговое окно прямо из панели инструментов Excel.

Еще одна надстройка, позволяющая скрывать и удалять строки и столбцы, в зависимости от значения ячейки и заданного условия, а также удаляющая пустые ячейки и ячейки с заданными значениями со сдвигом вверх и со сдвигом влево.

Источник: macros-vba.ru

Добавить комментарий

Adblock
detector