Как проверить наличие макросов в файле excel

Here is a sure shot way to check if the file has a macro or not.
This method is not for checking if the workbook has any code or not
. I am checking for «SUB» and «FUNCTION». Though by strict definition a macro doesn’t have a «FUNCTION». You can omit that.

Sub Sample()
    Dim wb As Workbook
    Dim HasMacro As Boolean
    Dim StrCode As String

        '~~> Open the file to check if it has any MACRO
    Set wb = Workbooks.Open("C:UsersSiddharth RoutDesktopbook2.xlsm")

        Select Case UCase(Split(wb.Name, ".")(UBound(Split(wb.Name, "."))))

        '<~~ Excel files which can have a macro.
    Case "XLS", "XLSM", "XLTM", "XLT", "XLA", "XLSB", "XLAM"
        '~~> Taking this approach as there are very few extensions which support macros
        With wb.VBProject
            '~~> Components are like sheet1, thisworkbook, module etc.
            If .VBComponents.Count > 0 Then
                For i = 1 To .VBComponents.Count
                    '~~> get the entire code in the module
                    StrCode = .VBComponents.Item(i).CodeModule.Lines(1, .VBComponents.Item(i).CodeModule.CountOfLines)
                    StrCode = " " & Replace(StrCode, vbCrLf, " ") & " "
                    If InStr(StrCode, " Sub ") > 0 Or InStr(StrCode, " Function ") > 0 Then
                        HasMacro = True
                        Exit For
                    End If
                Next
            End If
        End With
    End Select

        wb.Close SaveChanges:=False

        If HasMacro Then
        MsgBox "The workbook has macro"
    Else
        MsgBox "The workbook doesn't have a macro"
    End If
End Sub


Sid (A good exercise for the Heart is to bend down and help another up) Please do not email me your questions. I do not answer questions by email unless I get paid for it :) If you want, create a thread in VB.Net/Excel forum and email me the link and I will
help you if I can.


Download Article

An easy-to-use guide to find and manage macros in your Excel workbook


Download Article

This wikiHow teaches you how to see a list of macros in your Excel workbook, as well as how to view each macro’s details in the Visual Basic Editor. Before you can work with macros, you’ll need to enable the Developer tab in Excel—fortunately, this is super easy to do.

Steps

  1. Image titled View Macros in Excel Step 1

    1

    Open a workbook in Excel. You can double-click the name of the workbook to open it in Excel. Alternatively, open Excel first from the Windows Start menu or your Mac’s Applications folder, click Open, and then double-click the file.

  2. Image titled View Macros in Excel Step 2

    2

    Enable the Developer tab. If the Developer tab is enabled, it’ll be in the menu bar at the top of Excel. If you don’t see it, here’s how to enable it:

    • Windows:

      • Click the File menu and select Options.
      • Click Customize Ribbon.
      • Select Main Tabs from the «Customize the ribbon» drop-down menu.[1]
      • Check the box next to Developer and click OK.
    • macOS:

      • Click the Excel menu and select Preferences.[2]
      • Select Main Tabs under «Customize the Ribbon.»
      • Check the box next to Developer.
      • Click Save.

    Advertisement

  3. Image titled View Macros in Excel Step 3

    3

    Click the Developer tab. It’s at the top of Excel.

  4. Image titled View Macros in Excel Step 4

    4

    Click Macros. It’s on the left side of the toolbar. This displays a list of macros in all open workbooks by default.

    • To see macros in a particular workbook only, select that workbook’s name from the «Macros in» menu.
  5. Image titled View Macros in Excel Step 5

    5

    Select a macro and click Edit. This displays the macro in the Visual Basic Editor.

  6. Advertisement

Ask a Question

200 characters left

Include your email address to get a message when this question is answered.

Submit

Advertisement

Thanks for submitting a tip for review!

References

About This Article

Article SummaryX

1. Open a workbook.
2. Click the Developer tab.
3. Click Macros.
4. Select a Macro.
5. Click Edit.

Did this summary help you?

Thanks to all authors for creating a page that has been read 41,480 times.

Is this article up to date?

Excel для Microsoft 365 Word для Microsoft 365 PowerPoint для Microsoft 365 Excel 2021 Word 2021 PowerPoint 2021 Excel 2019 Word 2019 PowerPoint 2019 Excel 2016 Word 2016 PowerPoint 2016 Excel 2013 Word 2013 PowerPoint 2013 Excel 2010 Word 2010 PowerPoint 2010 Еще…Меньше

Инспектор документов обнаружил в документе Office (Word, Excel или PowerPoint) один или несколько следующих элементов, которые могут содержать скрытые данные:

  • макросы (включая любые макросы WordBasic в документах Word или листы макросов Excel 4.0 (XLM) в книгах Excel);

  • модули VBA;

  • элементы COM или ActiveX;

  • формы пользователей (включая любые формы Excel 5.0 в книгах Excel);

  • пользовательские функции в книгах Excel.

Проблема

Инспектор документов не может удалить эти элементы, потому что в результате документ может перестать работать надлежащим образом.

Рекомендуемое решение

  1. Закройте инспектор документов.

  2. Вручную удалите все макросы, модули VBA, элементы COM или ActiveX, формы пользователей и пользовательские функции, которые могут содержать скрытые данные.

    Чтобы найти макросы и модули VBA в документе, сделайте следующее:

    • В Word или Excel выберите Вид > Макрос > Макросы.

      В PowerPoint выберите Вид > Макрос.

      В окне Макрос выберите макрос, который хотите удалить, и нажмите кнопку Удалить.

    • Чтобы найти макросы в редакторе VBA, нажмите клавиши ALT+F11.

  3. Чтобы убедиться, что проблема устранена, выберите Файл > Сведения > Поиск проблем > Инспектор документов.

Нужна дополнительная помощь?

Хитрости »

1 Май 2011              465157 просмотров


Что такое макрос и где его искать?

Скачать файл, используемый в видеоуроке:

  Tips_Macro_Basic_Video.xls (63,5 KiB, 4 006 скачиваний)


Наверное, многие слышали это слово «макрос«, но не все имеют точное представление что это, если заглянули на эту страничку.

Макрос

— это макрокоманда(так звучит в правильном переводе с англ.языка), содержащая последовательность действий, записанных пользователем. Запись производится с помощью встроенного в пакет Microsoft Office языка программирования — Visual Basic for Application(VBA).

Зачем же нужны макросы? А нужны они для того, чтобы избавить Вас от рутинного выполнения одних и тех же действий. Например, Вам каждый день приходиться удалять из ежедневных отчетов по несколько столбцов и добавлять новые строки для шапки и т.п. Скучно и утомительно. Вы просто можете записать один раз все эти действия макрорекордером, а в дальнейшем только вызывать записанный макрос и он все сделает за Вас. Что немаловажно, для использования макрорекордера и записи макроса не надо обладать никакими навыками программирования.
В этой статье:

  • Подготовка к записи макроса
  • Запись макроса
  • Параметры записи макроса
  • Воспроизведение макроса
  • В каких файлах можно хранить макросы?
ПОДГОТОВКА К ЗАПИСИ МАКРОСА

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

  • Excel 2003:
    Сервис-Безопасность-Уровень макросов «Низкий»
  • Excel 2007:
    Кнопка ОфисПараметры Excel (Excel Options)Центр управления безопасностью (Trust Centr)Параметры центра управления безопасностью (Trust Centr Settings)Параметры макросов (Macro Settings)Разрешить все макросы (Enable All Macros)
  • Excel 2010:
    Файл (File)Параметры (Options)Центр управления безопасностью (Trust Centr)Параметры центра управления безопасностью (Trust Centr Settings)Параметры макросов (Macro Settings)Разрешить все макросы (Enable All Macros)
  • После изменения параметров безопасности макросов необходимо перезапустить приложение Excel: закрыть его полностью и открыть заново. Только после этого изменения вступят в силу.

Прежде чем начать записывать макрос необходимо помнить следующее:

  • Макрорекордер записывает АБСОЛЮТНО ВСЕ ваши действия – ошибки, прокручивание экрана, переключение между листами, выделение ячеек и т.д. Поэтому перед записью своих действий необходимо сначала тщательно продумать все свои действия, чтобы в дальнейшем записать только то, что действительно необходимо записать и в дальнейшем воспроизвести. Это сократит как сам код, так и время его выполнения
  • Макрорекордер записывает действия выполненные только в пределах Microsoft Excel. Если вы переключитесь в другое приложение – действия в этой программе записаны не будут. Если закроете Excel – запись прекратится
  • Макрорекордер может записать только те действия, которые можно проделать вручную(те, которые доступны для выполнения из меню и с панелей)
  • Если во время кода вы совершили ошибочное действие и нажали кнопку отмены(Ctrl+Z) – отмененное действие не будет записано в макрос, как будто вы его просто не делали
ЗАПИСЬ МАКРОСА

Для пользователей Excel 2003 запись макроса возможна через меню:
СервисМакрос Начать Запись
Начать запись

Для пользователей Excel 2007-2010 и старше:

ПАРАМЕТРЫ ЗАПИСИ МАКРОСА

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

Имя макроса

– не должно содержать пробелов, запятых, двоеточий и т.п. Допустимы символы кириллицы, латиницы, цифры и нижнее подчеркивание (я рекомендую давать макросам имена, содержащие только буквы латиницы). Имя макроса всегда должно начинаться с буквы и не должно совпадать со встроенным именем Excel или именем другого объекта в книге (например, не должно носить имя Workbook, Cells или ЭтаКнига). Лучше давать макросу сразу понятное имя, отражающее примерную суть того, что он делает.

Сочетание клавиш

– можно назначить вызов макроса сочетанием клавиш. Доступно назначение любой цифры или буквы в сочетании с Ctrl.

Сохранить в

– выбираете место хранения записываемого макроса. Доступны варианты:

  • Эта книга (This Workbook) – макрос будет записан в той же книге, из которой была запущена запись. Записанный макрос будет доступен из приложения только если книга открыта
  • Новая книга (New Workbook) – будет создана новая книга, в которой записан макроса. Записанный макрос будет доступен из приложения только если книга открыта
  • Личная книга макросов (Personal Macro Workbook) – самый интересный вариант. Если его выбрать, то макрос будет сохранен в отдельной книге PERSONAL.XLS (для Excel 2007 и выше — PERSONAL.XLSB). Макросы, записанные в эту книгу доступны из всех открытых книг Excel и эта книга подключается автоматически при запуске самого Excel. Т.е. однажды записав где-то макрос в эту книгу – он теперь будет доступен из любой книги независимо от того, открыта ли книга, из которой был записан макрос или нет. Изначально эта книга отсутствует и создается в момент первого обращения к ней (т.е. как только вы первый раз выбрали Сохранить в личную книгу макросов)
ВОСПРОИЗВЕДЕНИЕ МАКРОСА

После записи макроса запустить его можно разными способами:

  1. ПРИ ПОМОЩИ СОЧЕТАНИЯ КЛАВИШ: Alt+F8
    Этот способ универсальный и его можно использовать из любой версии Excel. Достаточно нажать сочетание клавиш Alt+F8 и выбрать нужный макрос из списка:
    Вызов макроса
  2. ВЫЗОВ ИЗ МЕНЮ:
    Excel 2007-2010 и старше: вкладка Разработчик (Developer)Макросы (Macros)
    Excel 2003: СервисМакросМакросы
  3. НАЖАТИЕМ СОБСТВЕННОЙ КНОПКИ НА ЛИСТЕ:
    Можно разместить на листе собственную кнопку, по нажатии которой будет запускаться записанный макрос. Подробно этот процесс я описал в статье: Как создать кнопку для вызова макроса на листе
  4. ПРИ ПОМОЩИ НАЗНАЧЕННЫХ МАКРОСУ ГОРЯЧИХ КЛАВИШ:
    Если вы перед записью назначили макросу сочетание клавиш, то вы также можете вызвать этот макрос и нажатием данного сочетания. Горячие клавиши макросу можно назначить и после записи: Alt+F8→ Выделяем нужный макрос→ Параметры (Options).
  5. ПРИ НАСТУПЛЕНИИ ОПРЕДЕЛЕННОГО СОБЫТИЯ В ЛИСТЕ ИЛИ КНИГЕ:

    Прежде чем пробовать использовать этот метод рекомендуется изучить статью Что такое модуль? Какие бывают модули?Для этого сначала необходимо вставить код макроса в тело событийной процедуры (подробнее про событийные процедуры). Например, если выбрать процедуру листа Change, то в лист автоматически будет вставлена пустая процедура:

    Private Sub Worksheet_Change(ByVal Target As Range)
     
    End Sub

    Если ранее вами был записан код выделения и удаления двух столбцов – Макрос1:

    Sub Макрос1()
    '
    ' Макрос1 Макрос
    ' макрос удаляет столбцы C и D из активного листа
    '
    ' Сочетание клавиш: Ctrl+Shift+Q
    '
        Columns("C:D").Select
        Selection.Delete Shift:=xlToLeft
    End Sub

    То для выполнения это кода при наступлении события изменения на листе можно вставить вызов этого макроса:

    Private Sub Worksheet_Change(ByVal Target As Range)
        Call Макрос1
    End Sub

    или вставить сам код (без Sub и End Sub) внутрь процедуры Worksheet_Change:

    Private Sub Worksheet_Change(ByVal Target As Range)
        Columns("C:D").Select
        Selection.Delete Shift:=xlToLeft
    End Sub
В каких файлах можно хранить макросы?

Как ни странно, но начиная с версии 2007 Excel не все файлы могут хранить макросы. Это значит, что если макрос был записан в файле и потом файл был сохранен в формате, который хранение макросов не поддерживает — макросы пропадут. Как правило Excel в таком случае выдаст предупреждение о том, что проект VBA в файле этого формата не может быть сохранен и будет удален, если нажать Да:
Сохранение без макросов
Чтобы сохранить файл с поддержкой макросов необходимо будет нажать Нет и из списка форматов выбрать тот, который поддерживает хранение макросов.
Ниже приведены форматы файлов, применяемые в Excel с описанием того, можно ли в них хранить макросы(VBA коды):

  • *.xls – формат книги Excel 97–2003 (поддержка VBA, макросов)
  • *.xla – надстройка Excel 97–2003 (поддержка VBA, макросов)
  • *.xlsx – формат книги Excel 2007 по умолчанию без поддержки макросов
  • *.xlsm – книга Excel 2007 с поддержкой макросов
  • *.xlsb – двоичный формат для больших объемов данных (с поддержкой VBA, макросов)
  • *.xltx – шаблон книги Excel 2007 без поддержки макросов
  • *.xltm – шаблон книги Excel 2007 с поддержкой макросов
  • *.xlam – надстройка Excel 2007

Для смены формата файла его необходимо сохранить в другом формате:

  • Excel 2007: Кнопка ОфисСохранить как(SaveAs) -Выбрать необходимый формат файла
  • Excel 2010: Файл(File)Сохранить как(SaveAs) -Выбрать необходимый формат файла

Теперь несложно понять, что хранить макросы в версиях Excel 2007 и выше можно в форматах: xls, xla, xlsm, xlsb, xltm, xlsm.

Также см.:
Почему не работает макрос?
Как создать кнопку для вызова макроса на листе?
Select и Activate — зачем нужны и нужны ли?
Как ускорить и оптимизировать код VBA


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

  Плейлист   Видеоуроки


Поиск по меткам



Access
apple watch
Multex
Power Query и Power BI
VBA управление кодами
Бесплатные надстройки
Дата и время
Записки
ИП
Надстройки
Печать
Политика Конфиденциальности
Почта
Программы
Работа с приложениями
Разработка приложений
Росстат
Тренинги и вебинары
Финансовые
Форматирование
Функции Excel
акции MulTEx
ссылки
статистика

Как определить нахождение макроса который висит на панели БД

odeon16

Дата: Понедельник, 04.09.2017, 12:03 |
Сообщение № 1

Группа: Пользователи

Ранг: Участник

Сообщений: 85


Репутация:

0

±

Замечаний:
0% ±


Excel 2013

Добрый день форумчане.
Помогите советом, касательно функциональности эксель.

У меня в экселе (где ни один файл не открыт) на панели Быстрого Доступа — висит иконка макроса.
Если навести на него мышку — то подсветится его название — «Макрос1»
Макрос полезный, но я не могу посмотреть как сам код макроса выглядит — поскольку не знаю где он находится.

Как определить — где находится макрос, висящий на панели Быстрого Доступа, чтобы что-то поменять в нем и вообще хотя бы посмотреть как он устроен?
(думал сперва, что это возможно надстройка какая-то… но на панели надстроек — ничего нет)

 

Ответить

_Boroda_

Дата: Понедельник, 04.09.2017, 12:09 |
Сообщение № 2

Группа: Модераторы

Ранг: Местный житель

Сообщений: 16618


Репутация:

6465

±

Замечаний:
0% ±


2003; 2007; 2010; 2013 RUS

Попробуйте Альт+F11, Контрл+R, в окошке Проджект найти файл Персонал, в нем открыть модули и поискать в них (открыть можно даблкликом)

====================
Или правой мышой на панели — Настройка панели — в «Выбрать команды из» выбираете «Макросы» и смотрите там название и местоположение макроса. А искать все равно по Альт+F11


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

 

Ответить

odeon16

Дата: Понедельник, 04.09.2017, 12:16 |
Сообщение № 3

Группа: Пользователи

Ранг: Участник

Сообщений: 85


Репутация:

0

±

Замечаний:
0% ±


Excel 2013

_Boroda_, не совсем понимаю про какие модули идет речь.
Я же написал в первом сообщении — что окно программы эксель — пустое, в нем не открыт ни один файл.
Окошко Проджект — у меня соответственно — тоже пустое — там вообще ничего нет, поскольку ни один файл эксель не открыт.

Далее.
Открываем панель настройки быстрого доступа.
В левом окошке, при выборе опции «макросы» — пусть (ничего нет).
В правом окошке — соответственно представлены кнопки, которые размещены на Панели БД. Причем последней кнопкой — идет Макрос1 (тот самый)

Так что таким образом — навряд ли что-то можно найти.

Сообщение отредактировал odeon16Понедельник, 04.09.2017, 12:19

 

Ответить

_Boroda_

Дата: Понедельник, 04.09.2017, 12:49 |
Сообщение № 4

Группа: Модераторы

Ранг: Местный житель

Сообщений: 16618


Репутация:

6465

±

Замечаний:
0% ±


2003; 2007; 2010; 2013 RUS

Я же написал в первом сообщении — что окно программы эксель — пустое, в нем не открыт ни один файл

Из того, что окно пустое, вовсе не следует, что ни один файл не открыт. И это утверждение

думал сперва, что это возможно надстройка какая-то… но на панели надстроек — ничего нет

блещет аналогичной логикой

таким образом — навряд ли что-то можно найти

Вам виднее


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

 

Ответить

Grell

Дата: Понедельник, 04.09.2017, 13:15 |
Сообщение № 5

Группа: Проверенные

Ранг: Форумчанин

Сообщений: 113


Репутация:

0

±

Замечаний:
60% ±


Excel 2007

Из того, что окно пустое, вовсе не следует, что ни один файл не открыт. И это утверждение

Непонятно как вы умудрились сделать это утверждение — из прямо противоположного тезиса — написанного русским языком.
Написано же — «не открыт ни один файл»

Человек спрашивал про то как найти ПУТЬ К МАКРОСУ.

Отвечаю — судя по всему этот макрос — находится в одной из книг и как-то связан работой этого макроса.
Вот в той книге, которую этот макрос затрагивает — его и нужно искать.

Это как если нацепить на кнопку макрос из другой книги, а потом щелкнуть по кнопке — то сперва откроется та книга, в которой этот макрос расположен. Вот там его и следует искать (по названию).

Сообщение отредактировал GrellПонедельник, 04.09.2017, 13:25

 

Ответить

buchlotnik

Дата: Понедельник, 04.09.2017, 13:20 |
Сообщение № 6

Группа: Заблокированные

Ранг: Участник клуба

Сообщений: 3442


Репутация:

929

±

Замечаний:
20% ±


2010, 2013, 2016 RUS / ENG

не открыт нИ один файл. Но это лирика — файлы надстроек могут благополучно запускаться с оболочкой программы, а визуально окно будет пустым. Покажите скриншот вашего пустого VBE

 

Ответить

and_evg

Дата: Понедельник, 04.09.2017, 13:25 |
Сообщение № 7

Группа: Проверенные

Ранг: Обитатель

Сообщений: 416


Репутация:

72

±

Замечаний:
0% ±


Excel 2007

Написано же — «не открыт не один файл»

А как вы определили что не открыто ничего???
Если вы не открывали, то это не значит что ничего не открыто!
Вам правильно сказали — посмотрите через Альт-ф11 в экслоере проектов!

 

Ответить

and_evg

Дата: Понедельник, 04.09.2017, 13:27 |
Сообщение № 8

Группа: Проверенные

Ранг: Обитатель

Сообщений: 416


Репутация:

72

±

Замечаний:
0% ±


Excel 2007

Покажите скриншот вашего пустого VBE

Alt-F11, далее Ctrl-R и скриншот

 

Ответить

odeon16

Дата: Понедельник, 04.09.2017, 13:30 |
Сообщение № 9

Группа: Пользователи

Ранг: Участник

Сообщений: 85


Репутация:

0

±

Замечаний:
0% ±


Excel 2013

and_evg, секунду

 

Ответить

odeon16

Дата: Понедельник, 04.09.2017, 13:34 |
Сообщение № 10

Группа: Пользователи

Ранг: Участник

Сообщений: 85


Репутация:

0

±

Замечаний:
0% ±


Excel 2013

Вот скриншоты :

1) Панель быстрого доступа (на котором видна кнопка).
2) Пустое окно ВизуалБэйсика.

 

Ответить

odeon16

Дата: Понедельник, 04.09.2017, 13:35 |
Сообщение № 11

Группа: Пользователи

Ранг: Участник

Сообщений: 85


Репутация:

0

±

Замечаний:
0% ±


Excel 2013

and_evg, что значит как определил ?
Не открывал файлов при запуске программы.
Для надежности (на тот случай если глаза подводят) — зашел в редактор VBA и дополнительно проверил.

Сообщение отредактировал odeon16Понедельник, 04.09.2017, 13:36

 

Ответить

and_evg

Дата: Понедельник, 04.09.2017, 13:37 |
Сообщение № 12

Группа: Проверенные

Ранг: Обитатель

Сообщений: 416


Репутация:

72

±

Замечаний:
0% ±


Excel 2007

2) Пустое окно ВизуалБэйсика.

оно не пустое! Открыт файл Solver.xlam
Щелкайте по плюсику рядом с этим файлом и смотрите в модулях смои макросы

Сообщение отредактировал and_evgПонедельник, 04.09.2017, 13:39

 

Ответить

_Boroda_

Дата: Понедельник, 04.09.2017, 13:41 |
Сообщение № 13

Группа: Модераторы

Ранг: Местный житель

Сообщений: 16618


Репутация:

6465

±

Замечаний:
0% ±


2003; 2007; 2010; 2013 RUS

Щелкайте по плюсику рядом с этим файлом

Не откроется. Это «Поиск решения», он изначально запаролен


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

 

Ответить

odeon16

Дата: Понедельник, 04.09.2017, 13:43 |
Сообщение № 14

Группа: Пользователи

Ранг: Участник

Сообщений: 85


Репутация:

0

±

Замечаний:
0% ±


Excel 2013

Grell, спасибо за совет.
Это действительно была ссылка на другую книгу.
Там все нашел.

 

Ответить

and_evg

Дата: Понедельник, 04.09.2017, 13:44 |
Сообщение № 15

Группа: Проверенные

Ранг: Обитатель

Сообщений: 416


Репутация:

72

±

Замечаний:
0% ±


Excel 2007


Точно! Давно им не пользовался.

 

Ответить

ПЛЫ
Начинающий
Начинающий
 
Сообщения: 5
Зарегистрирован: 18.02.2004 (Ср) 15:41

Как увидеть макрос в Excel

При загрузке файла Excel предупреждает о макросах.

В Сервис-Макрос-Макросы — пусто.

Как-нибудь можно на них посмотреть?


Kostyan
Постоялец
Постоялец
 
Сообщения: 439
Зарегистрирован: 20.09.2002 (Пт) 4:14
Откуда: Россия, Уссурийск
  • ICQ

Сообщение Kostyan » 18.02.2004 (Ср) 16:12

Сервис—>Макрос—>Редактор VisualBasic

Нет ничего невозможного для человека с интеллектом.


ПЛЫ
Начинающий
Начинающий
 
Сообщения: 5
Зарегистрирован: 18.02.2004 (Ср) 15:41

Сообщение ПЛЫ » 18.02.2004 (Ср) 16:42

Вижу девственно-серое поле.

Дальше-то куда нажать?


Dave
Обычный пользователь
Обычный пользователь
 
Сообщения: 56
Зарегистрирован: 18.02.2004 (Ср) 11:02
Откуда: Москва
  • ICQ

Сообщение Dave » 18.02.2004 (Ср) 17:33

Или у тебя в книги вообще нет макросов, или открой в Project папку Модулей и кликнув по любому ( если они конечно там будут :lol: ) выбери ViewCod. В принципе код может быть и на книги и на формах.


Vitaly1
Брехман
Брехман
 
Сообщения: 1578
Зарегистрирован: 30.12.2002 (Пн) 16:35
Откуда: Russia, Mosсow

Сообщение Vitaly1 » 18.02.2004 (Ср) 18:44

1)Вполне возможно, что в проекте есть модули макросов, а макросов нет, или в модулях макросов или в других модулях есть пустые строки.

2)Может быть код VBA в модулях книги или листов.

Так ищи:

1) Войди в редактор VBA:Сервис—>Макрос—>Редактор VisualBasic

2) Открой дерево проекта VBA:Вид—>окно проекта

3)В окне проекта двумя кликами открой свой проект

4)Двумя кликами активизируй модули проекта


ПЛЫ
Начинающий
Начинающий
 
Сообщения: 5
Зарегистрирован: 18.02.2004 (Ср) 15:41

Сообщение ПЛЫ » 19.02.2004 (Чт) 7:39

Похоже, что верно 1: в проекте есть модули макросов, а макросов нет.

Но мне сказали, что там макросы есть, но они скрыты. Видимо, на…ли.

Скорее всего, некорректное удаление макросов, которые использовались для заполнения таблицы.


Vitaly1
Брехман
Брехман
 
Сообщения: 1578
Зарегистрирован: 30.12.2002 (Пн) 16:35
Откуда: Russia, Mosсow

Сообщение Vitaly1 » 19.02.2004 (Чт) 14:42

Так удали модуль макросов правой клавишей, если они тебе не нужны!



Вернуться в VBA

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


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

Однако в Excel 2010 кнопка «Изменить» в разделе «Просмотр макросов» отключена, если я сначала не включу макросы для листа — но если я сначала включу макросы, то я могу, в большинстве случаев, узнать о вредоносном коде только после того, как этот код будет завершен. Бег…

Как я могу просмотреть источник макроса, прежде чем включать макросы для документа?

Ответы:


Вы можете просмотреть все макросы в документе, используя вкладку Разработчик в Word, чтобы предоставить вам легкий доступ к подпрограммам Visual Basic, встроенным в документ.

Для начала вам необходимо убедиться, что вкладка «Разработчик» включена. Перейдите в Файл -> Параметры, затем:

вкладка разработчика

На вкладке «Разработчик», которая должна появиться, теперь должна быть кнопка «Visual Basic», которую вы можете нажать, чтобы перейти в редактор Visual Basic.

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

Я склонен делать это с документами, которым я не доверяю.

Примечание. Я сделал это в Word, такая же функция доступна в Excel, и опция ее включения находится в том же месте.


Во всех версиях всех приложений Office с 2003 года и, возможно, ранее Alt+ F11будет открываться редактор VBA. Нет необходимости активировать вкладку «Разработчик» на ленте для Office 2007 и новее, чтобы это работало.



Хотя ответы от Mokubai и hBy2Py кажутся великолепными и действительно позволяют вам показать редактор VBA, кажется, что по крайней мере в Excel из Microsoft Office Professional Plus 2016 все еще не разрешается просматривать код.

Мне довелось владеть этой версией, и я был уверен, что получил вредоносный XLS и хотел проверить его. После его открытия в Excel он открылся в безопасном режиме, как обычно, и, конечно, я не собирался отказываться от этого режима. Когда я открыл VBA Editor, как указали другие респонденты, мне представили … пустой VBA Editor . Панель «Project Explorer» содержательно отображала «Нет открытых проектов», хотя я еще не закрыл файл XLS. Просто для тестирования я открыл второй документ (одна из моих работ), и он сразу же появился в VBA Editor и был (должным образом) полностью лишен VBA. Однако документ из Интернета не был указан в редакторе VBA .

Я потратил немного времени, пытаясь понять, почему это так, и не нашел причин. Кажется, что моя редакция Excel просто не отправляет модули VBA в редактор VBA, когда документ загружается в безопасном режиме. К сожалению, в редакторе VBA отсутствует некоторая функция «открыть VBA из документа Office», поэтому очевидно, что Excel — это мозг, и он должен сначала распаковать / декодировать / что угодно XLS.

Решение оказалось довольно простым.

  1. Нажмите Ribbon-> Developer->MacroSecurity
  2. альтернативно, File-> Options-> SecurityCenter(последняя группа опций) -> Settings-> Macros)
  3. Помните (или запишите), каковы текущие настройки
  4. Измените их на «Блокировать все макросы без уведомления»
  5. Подтвердите, закройте, снова откройте документ, снова откройте редактор VBA
  6. Восстановите исходные настройки, когда вы закончили играть с огнем

Последствия:

  • уведомление не показывалось
  • документ был полностью загружен
  • макросы не были выполнены
  • VBA Editor получил модули и представил весь код

Если вам любопытно: да, это действительно был злой, крошечный пример:

Function marcopoloko()
marcopoloko = Left("CM to inches converter", 2) + Right("fed.ex", 4) + "e  " + "/c" + numneroop + amagilocard
End Function

'Sub Workbook_Open()
'If xlTickMarkOutside > 0 Then
'Shell marcopoloko + """", xlXmlExportSuccess
'End If
'End Sub

КСТАТИ. как вы можете видеть, я немедленно закомментировал точку входа и заново сохранил документ, на случай, если я позволю макросам запускаться в какой-то момент времени позже.

Понравилась статья? Поделить с друзьями:
  • Как проверить совпадение текста в excel
  • Как проверить остаток от деления в excel
  • Как проверить наличие значения в массиве excel
  • Как проверить совпадение в ячейках excel
  • Как проверить орфографию в word выделенного текста