Перейти к содержимому

Как посмотреть что делает макрос

  • автор:

Макрос работает, а кода не видать. Как посмотреть код?

Есть excell файл (.xlsm) в котором срабатывает программа: генерация случайных чисел в определенных ячейках при сохранении документа. Возникла необходимость внести изменения в программу. Но не могу никак вывести код. Вкладка Разработчик есть, параметр «Включить все макросы (не рекомендуется, возможен запуск опасной программы)» выбран. Но в окне макросов пусто. И при Alt F11 тоже пустое окно открывается. Подскажите, пожалуйста, как открыть код?
Знания экселя на самом примитивном уровне.

  • Вопрос задан более трёх лет назад
  • 7089 просмотров

Комментировать
Решения вопроса 0
Ответы на вопрос 2

BasiC2k

.NET developer (open to job offers)

Нужно нажать Alt+F11, потом слева дважды кликнуть по названию файла. Может запроситься пароль или сразу открыться дерево структуры файла (книга, листы, модули, формы и тд). Затем нужно двойным кликом последовательно выбирать элементы структуры. При наличии кода у элемента, Вы его увидите. Если кода нет, значит он может быть в другой книге, надстройке или персональной книге с макросами.

Ответ написан более трёх лет назад
Нравится 1 6 комментариев
NataliaCh @NataliaCh Автор вопроса

5cbecb05dd1a1799572640.png

А где именно слева? Слева ничего нет. Есть название файла на самом верху окна. Клик по нему просто раширяет/сужает само окно. И меню плюс набор иконок.

NataliaCh @NataliaCh Автор вопроса

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

Если код где-то в другом месте, то как макрос работает в этой книге? Он же реально отрабатывается.
И как понять где все-таки код?

BasiC2k

NataliaCh, включите в View отображение нужных окон.
NataliaCh @NataliaCh Автор вопроса

5cbee000d4566409276459.png

BasiC2k, добралась вот до такого:

перебрала всё, что в правом селекте. Пусто. Там даже нет выбора опции, похожей на то что надо: типа BeforeSave 🙁

NataliaCh, попробуйте взглянуть
5cc061a3bd288713069607.png
и
5cc061ab2e5c5078966183.png

NataliaCh @NataliaCh Автор вопроса

5cc2d09f94575243155830.jpeg

Удалось найти код в списке «ЭтаКнига»

Как посмотреть что делает макрос

Загружаю книгу, пишет, что есть макросы Excel 4.0. Но
Сервис -> Макрос -> Макросы (нечего нет)
Сервис -> Макрос -> Редактор Visual Basic (нечего нет)
при загрузки отключил книгу в ячейках появилось #ИМЯ? (как я понимаю это следствие невыполнения макроса)
Поискал также опять с отключенным макросом
Сервис -> Макрос -> Макросы (нечего нет)
Сервис -> Макрос -> Редактор Visual Basic (нечего нет)
В ячейке формула:
=ЕСЛИ(ПРОВЕРКА;ГИПЕРССЫЛКА(ЛИСТ.СПИ СОК&»‘!A1″;ЛИСТ.ИМЯ);»»)
ПРОВЕРКА — это какаято переменная, так как в VBA такой команды нет
Есть надпись в книге «Для обновления нажать F9; SHIFT+F9 или изменить любое значение»
Помогите добраться до макроса и переменных?

Участник клуба
Регистрация: 10.08.2009
Сообщений: 1,796

Здравствуйте Dosugx.
Вы испугались «динозавра»?
макросы VBA применяются начиная с 5 версии Excel, до него макрокоманды записывались на Макро лист командами подобными используемым сегодня функциям — «=КОМАНДА(. )»
скорее всего в файле (документе) есть скрытый Макро лист на котором и расположено то, что Вы ищите.
Евгений.

Teslenko_EA
Посмотреть профиль
Найти ещё сообщения от Teslenko_EA

Регистрация: 01.10.2009
Сообщений: 5

Teslenko_EA спасибо вам за ответ, а нельзя ли еще поподробней. Где найти эти скрытые Macro листы
Я смотрю:
Формат -> Лист -> Отобразить (неактивна-значит скрытых листов нет)
Где еще искать?

Участник клуба
Регистрация: 10.08.2009
Сообщений: 1,796

Здравствуйте Dosugx.
у листа Excel может быть три уровня у состояния Visible (видимости)
в редакторе VBA отображаются все листы книги, задав свойству Visible значение -1, Вы сможете увидеть скрытый лист в Excel‘е, значение 0 — меню Формат / Лист / Отобразить станет доступно (в случае если я прав с версией о скрытом листе).
При неудачной попытке решить проблему и если информация не конфиденциальна выложите архив с файлом, посетители форума окажут помощь.
Евгений.

Teslenko_EA
Посмотреть профиль
Найти ещё сообщения от Teslenko_EA

Форумчанин
Регистрация: 26.11.2006
Сообщений: 584

Dosugx,
CTRL+F3 Вам в помощь.
2 года назад меня это тоже заинтересовало:
http://www.programmersforum.ru/showthread.php?t=10771

Последний раз редактировалось ZORRO2005; 03.10.2009 в 00:44 .
Регистрация: 12.05.2007
Сообщений: 2,339
Сообщение от Dosugx
Загружаю книгу, пишет, что есть макросы:
А в Безопастности, какой уровень, стоит?
Надо, низкий.
Регистрация: 01.10.2009
Сообщений: 5

Здраствуйте все. Попорядку:
Teslenko_EA
Вы правы у листа 3 вида видимости свойство XlSheetVisibility значения:
xlSheetHidden скрытый
xlSheetVisible видимый
xlSheetVeryHidden очень скрытый (тоесть неотображается Формат -> Лист -> Отобразить) можно отобразить только через макрос.
Вот макрос для полного отображения всех листов:
Public Sub ShowAll()
Dim sh As Worksheet
For Each sh In Application.Worksheets
sh.Visible = xlSheetVisible
Next
End Sub
Это непомогло
valerij
Уровень безопасности толком нечего неменяет:
Низкий-открывает документ без предупреждения о макросах
Средний-перед открытием сообщает о нахождении макросов
Это непомогло
ZORRO2005
Большое Вам спасибо CTRL+F3 — рулит
Так как я сам макрос не нашел, то понял что есть гдето присвоение переменным функций это я то и искал, но некак немог найти.
Спасибо всем если интересно вот файлик
http://programmersforum.ru/attachmen. 1&d=1254732053

ЛистыГиперссылка.zip (10.0 Кб, 114 просмотров)
Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как посмотреть температуру в Bios subbota Компьютерное железо 8 30.08.2009 15:45
Как посмотреть файл в бинарном виде? JamS007 Assembler — Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 2 12.05.2009 21:58
Как посмотреть исходный код exe’ника bamer Помощь студентам 6 10.11.2008 23:42
как присвоить значение ячейки R1C1 из 1.xls, допустим какой-нибудь любой ячейке из 2.xls ? diabloskrk Microsoft Office Excel 3 08.10.2007 12:27

Как посмотреть что делает макрос

Argument ‘Topic id’ is null or empty

Сейчас на форуме

© Николай Павлов, Planetaexcel, 2006-2023
info@planetaexcel.ru

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

ООО «Планета Эксел»
ИНН 7735603520
ОГРН 1147746834949
ИП Павлов Николай Владимирович
ИНН 633015842586
ОГРНИП 310633031600071

Макрос

Макрос, или макрокоманда — это небольшая программа, которая выполняет заданный набор действий в офисном документе. Чаще всего макросами пользуются в Microsoft Office Excel для работы с таблицами. Создать и запустить их можно внутри Excel.

Освойте профессию «Аналитик данных»

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

Кто пользуется макросами в работе

Макросами желательно уметь пользоваться всем, кто активно работает с Excel. Это экономисты, разные категории менеджеров, аналитики и специалисты по маркетингу или рекламе. Им приходится обрабатывать табличные данные, иногда в больших количествах.

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

Профессия / 12 месяцев
Аналитик данных

Находите закономерности и делайте выводы, которые помогут бизнесу

Group 1321314279 (1)

Для чего нужны макросы

  • упростить и ускорить работу с документами;
  • автоматизировать рутину и сконцентрироваться на интеллектуальных задачах;
  • избежать человеческих ошибок в ряде задач, таких как, например, форматирование данных в таблице;
  • быстро находить нужную информацию среди большого объема данных;
  • объединять работу в нескольких продуктах Microsoft Office, потому что один макрос может работать с разными программами офисного пакета;
  • создавать дополнительные функции, которых нет в программе изначально, но которые могут понадобиться пользователю.

Как это работает

Работа с макросами выглядит так: сначала пользователь создает набор команд с помощью инструментов внутри Excel, потом запускает выполнение одной кнопкой. В результате то, что вручную пришлось бы делать несколько минут, выполняется автоматически и не требует усилий со стороны человека. Так автоматизируют рутинные процессы.

Сохранить макрос можно локально — для конкретного документа, или глобально — для всех документов.

Когда макрос запускают, Excel выполняет его код — совершает действия, которые в нем описаны. Это похоже на написание и запуск программы при разработке скриптов, но для создания макросов не обязательно уметь программировать.

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

Читайте также Востребованные IT-профессии 2023 года: на кого учиться онлайн

VBA: язык для макросов

«Изнутри» макрос — код на языке программирования VBA, который принадлежит Microsoft. Аббревиатура расшифровывается как Visual Basic Application. Язык основан на Visual Basic, но адаптирован для использования внутри офисного пакета. Код описывает команды, которые нужно выполнить.

VBA встроен в Excel и другие программы Microsoft Office. Это значит, что они распознают язык и могут выполнять написанные на нем команды, если те поступят в программу. Писать на нем можно изнутри офисного пакета в окне Visual Basic — оно открывается через меню.

Пользователь, досконально знающий VBA, может создавать сложные макросы. Но разбираться в языке и уметь программировать для решения большинства задач не нужно. Создать макрос можно без написания кода вручную.

Как создать макрос в Excel

Создать новую макрокоманду можно двумя способами: написать код на языке VBA или записать действия с помощью специального встроенного модуля — макрорекордера.

Для обоих способов нужно открыть панель макросов. Это можно сделать через меню: вкладка «Разработчик», кнопка «Макросы». Если у вас в интерфейсе нет вкладки разработчика, кнопку можно найти в разделе «Вид» справа. А можно настроить окно так, чтобы вкладка появилась:

включаем вкладку Разработчик в excel для макросов

  1. перейти по пути «Файл — Параметры» или кликнуть правой кнопкой по меню;
  2. выбрать «Параметры Excel» и «Настроить ленту»;
  3. в списке «Основные вкладки» поставить галочку напротив пункта «Разработчик».

Теперь подробнее поговорим об обоих способах создания макроса.

Написать код вручную. Для этого понадобится открыть окно набора кода. Можно сделать это из вкладки «Разработчик»: там есть кнопка, которая называется Visual Basic. Если вы нажмете на нее, откроется окно. Оно будет пустым: редактор для написания кода надо открыть самостоятельно с помощью меню слева. Там есть кнопка View Code.

макрос в excel

Второй способ открыть интерфейс для написания кода — нажать на кнопку «Макросы», ввести название нового макроса в верхней строке и нажать «Создать». В этом случае окно VBA откроется уже с пустой «заготовкой» под макрос и открытым редактором, где прописаны начало и конец команды. Останется только написать код в этом редакторе и сохранить.

Станьте аналитиком данных и получите востребованную специальность

Мы не будем углубляться в синтаксис и правила написания кода на Visual Basic: если человек только начинает работать с макросами, поначалу он редко пользуется этой возможностью. Хотя в будущем она может серьезно ему помочь.

Записать действия с таблицей. Второй вариант, более простой и не требующий уметь программировать, — воспользоваться макрорекордером. Так называется встроенный инструмент Excel, который «записывает» действия пользователя и потом на их основе автоматически генерирует код. Это похоже на запись видео или звука, только «пишутся» не кадры, а действия.

Кнопка записать макрос

Выглядит это так: человек нажимает во вкладке «Разработчик» на кнопку «Записать макрос», вводит для него название, а потом выполняет действия с таблицей. Макрорекордер записывает эти действия и переводит их в код на Visual Basic, который сохраняется в виде макроса. Потом пользователь нажимает кнопку «Остановить запись», и рекордер прекращает записывать. Макрос готов, и им можно пользоваться

Пользоваться макрорекордером удобнее и быстрее для большинства действий. Его иногда рекомендуют как инструмент «для чайников», но вообще-то им пользуются и профессионалы, когда хотят сэкономить время.

Ограничения в использовании макрорекордера

Запись макроса – мощный, но не всемогущий инструмент. У нее есть ряд ограничений. С ее помощью нельзя:

  • создавать сложные конструкции, например условные, когда какое-то действие выполняется, только если справедливо некоторое условие, или циклы;
  • придумывать команды, которых нет в Excel изначально, и писать их с нуля;
  • выполнять действия, при которых не нужно выбирать ячейку таблицы — макрорекордер работает только с ячейками, а например, открыть другой лист не сможет.

Но все перечисленное можно сделать вручную с помощью VBA. Более того: код пишется на Visual Basic, и «понимать» его может не только Excel — практически все программы офисного пакета. Поэтому макрос, написанный самостоятельно, может взаимодействовать поочередно с несколькими программами, например загружать в Excel данные из Access. Возможность работы «за пределами» Excel специфична для кода, написанного вручную.

выбор объекта в макросе

Что лучше: писать код или записывать действия

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

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

В начале работы с макросами пользователь обычно не знаком с VBA или знаком, но слабо. Поэтому использование макрорекордера на этом этапе вполне оправдано и закономерно, помогает разобраться с тем, как работают макросы. Умение писать код на VBA приходит со временем, если человек постепенно учится.

Станьте аналитиком данных и получите востребованную специальность

Расширение файлов с макросами

Обычный файл Excel не может сохранить внутри себя макрос. Чтобы тот остался в документе и его можно было пересылать вместе с таблицей, понадобится сохранить файл с расширением .xslm — он поддерживает макросы. Файлы с расширением .xlsx их не поддерживают.

форматы файлов с макросами

Абсолютные и относительные значения

Как и при написании функций в Excel, в макросах можно задавать абсолютные и относительные значения ячеек. По умолчанию макрос работает с абсолютными значениями — то есть, если вы кликнете в макрорекордере на ячейку B5, он при выполнении всегда будет выбирать B5. Чтобы макрос пользовался относительными значениями, то есть мог работать с разными ячейками, понадобится включить режим «Относительные ссылки». Кнопка для его включения находится прямо под кнопкой записи макроса.

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

Создание макроса через запись: пошаговая инструкция

Разберем использование макрорекордера пошагово. Это довольно просто: можно с ходу создать несложный макрос и потом пользоваться им, даже если вы раньше не имели дел с макрокомандами.

    Подготовка Понадобится перейти в панель «Разработчик». Если вы хотите, чтобы макрокоманда работала не с жестко зафиксированными ячейками, а с теми, которые вы выберете, нажмите на кнопку «Относительные ссылки». Кнопка включит относительный режим. Если вам нужна работа с абсолютными значениями, проигнорируйте этот шаг.

После этого нужно будет нажать на кнопку «Запись макроса».
Параметры макроса Откроется окно, в котором надо будет придумать уникальное имя для макрокоманды, а по желанию — комбинацию клавиш, которая будет запускать макрос. Там же надо будет:

1. Выбрать, где сохранится макрос — внутри открытого документа, внутри новой таблицы или в «личной книге», то есть глобально для всего Excel;
2. Придумать короткое описание, которое объясняет, что делает команда.

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

Кстати, личную книгу тоже можно передавать другим: это специальный файл внутри Excel, где хранится написанный пользователем код. В офисном пакете есть инструменты, позволяющие делиться этим файлом.
Запись действий После того как вы настроите будущий макрос, понадобится нажать «ОК». Запустится запись. Макрорекордер начнет фиксировать действия, которые вы выполняете.

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

Проверить, что макрорекордер работает, можно в левом нижнем углу окна Excel. Когда он записывает действия, там отображается значок в виде квадратика.
Особенности выполнения действий Помните, что рекордер записывает все выделения, клики или переходы по ячейкам, поэтому старайтесь не совершать лишних действий. Если вы сделали что-то лишнее, отменить это можно, только если отредактировать код в редакторе Visual Basic — или записать макрос с самого начала.

— если вы создали его для конкретной книги — из этой книги;
— если вы сохранили его в личную книгу — из любого документа Excel.

Как пользоваться созданным макросом

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

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

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

Узнайте больше о макросах и использовании Excel на наших курсах менеджмента: мы поможем научиться современным инструментам и освоить востребованную профессию.

Аналитик данных

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

картинка (73)

Статьи по теме:

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *