"Чистка" кода макроса
При автоматической записи макроса в программном коде фиксируются все действия пользователя, отчего код "разбухает" и становится запутанным и трудным для восприятия. Поэтому после записи макроса необходимо "чистить" код, удаляя ненужные команды и оптимизируя его структуру. В результате объем кода может сократиться в несколько раз, при этом он становится значительно легче для понимания и возможной последующей доработки.
В данном уроке показан пошаговый алгоритм "чистки" программного кода от "мусорных" строк. Кроме того, рассматривается конструкция With...End With - ее назначение и структура записи.
зарегистрироваться на сайте
обновите страницу по этой ссылке или кнопкой F5
Комментарии
Супер, Дмитрий!
Впечатляет. я могу постичь это...и только благодаря Вам, Дмитрий.
Все таки нет ничего непостижимого.
Спасибо большое.
супер! я много чего узнала!спасибо огромное
Очень, очень благодарна за ваши уроки!!!
Восхищает лаконичность и доступность изложения материала.
О макросах подозревала давно, но толщина умных книжек по подобным темам вызывала уныние, столько не живут, чтобы их прочитать, да еще и понять. Казалось без второго высшего эту тему не осилить, а тут с разбегу за вечер нашлепала парочку макросов и еще хочу. Понравилось одним непринужденным движением делать то, на что уходили часы работы.
Моя мечта готовить документы силой мысли близка к воплощению. Начинала уже чувствовать себя обезьянкой "копировать-вставить", а тут силы появились, творческий интерес.
Спасибо Вам огромное и успехов в Ваших проектах.
А-БАЛ-ДЕТЬ как все просто, Макросы это мечта ЛЕНТЯЕВ нажал кнопочку и не потей все за тебя сделает, ее многие искали а МЫ нашли! Хоть я вроде давно пытаюсь постичь макросы и давно работаю с ними, но хочется знать больше. СпасиБ, я восхищен доступностью в изложения материала
Юрий писал "нажал кнопочку и не потей все за тебя сделает"
Только Руководству своему не говорите что нашли такой клад,
а то подумает что Вы приходите на работу, что бы жмакнуть волшебную кнопочку и сидеть потом ... целый день балдеть ))))))))
Олег, все правильно, это комп должен работать на тебя а не ты за него а чтоб так было надо потеть и потеть (т.е. учиться и постигать новое) и находить нужные кнопки и облегчать и свой труд и коллег а их так тяжело подвинуть к чему-то новому и прогрессивному. Вот и постигаем(поглощаем с жадностью) то что Дмитрий показал в своих УРОКАХ
Все очень понятно рассказано и показано. Очень полезный материал
Чем больше изучаю, тем интереснее. Отлично и доступно изложено. Еще прихожу к выводу, что Иксель без макросов это тупо текстовый редактор
с excel работаю 20 лет. сожалею, что раньше не нашел тебя. СПАСИБО ДМИТРИЙ.
Очень доходчиво,Большое Вам СПАСИБО!
Спасибо Вам, Дмитрий! Необыкновенно ясно, прозрачно!
Супер! У меня получилось отредактировать! Даже с установлением границ ячеек! Спасибо, Дмитрий!
Дмитрий,огромное спасибо за отличный материал.
Очень полезный урок. Сразу же хочется пересмотреть свои макросы и сделать их лучше.Большое спасибо за полезную информацию
Дмитрий,огромное спасибо за отличный материал. Просто и со вкусом!!! Спасибо
СПАСИБО ОГРОМНОЕ!!! ВСЕ ПОНЯТНО И ДОХОДЧИВО.
Спасибо! Очень интересно и занимательно.
Хотел спросить где ошибка? Но убрав "Index" макрос заработал...Почему?
Sub Макрос2()
Range("A3".FormulaR1C1 = "Сотрудник"
Range("B3".FormulaR1C1 = "Заработная плата"
Range("C3".FormulaR1C1 = "Премия"
With Range("A3:C3"
.Interior.ColorIndex = 65535
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
.Font.Color = 3
End With
Columns("A:A".EntireColumn.AutoFit
Columns("B:B".EntireColumn.AutoFit
Columns("B:B".EntireColumn.AutoFit
End Sub
Стасу:
В строке - ".Interior.ColorIndex = 65535" некорректно указан цвет.
Sub мактос2()
Range("A3".FormulaR1C1 = "Сотрудник"
Range("B3".FormulaR1C1 = "Зароботная плата"
Range("C3".FormulaR1C1 = "Премия"
With Range("A3:C3"
.Interior.ColorIndex = 4
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
.Font.Color = 3
End With
Columns("A:C".EntireColumn.AutoFit
End Sub
Добрый вечер, Стас.
ColorIndex - это индекс конкретного цвета в цветовой палитре (ее Вы можете видеть, если в Excel кликните в меню на пиктограмму "Цвет заливки". Цветов в палитре не слишком много и цвета с индексом 65535 там попросту нет. Отсюда и ошибка.
Color - это значение свойства "цвет". Оттенков существует большое количество, и число 65535 соответствует цвету "желтый".
Поэтому в Вашем случае без "Index" программный код будет работать, а с "Index" - нет.
Очень ОЧЕНЬ полезный урок! Для меня сейчас - самое то. Спасибо, Дмитрий!
Отличные уроки. Спасибо автору. Exel становится понятней!
Урок понятен, спасибо. Надеюсь теперь сама смогу попробовать редактировать без подсматривания сюда
Отличный урок. Большое спасибо!!!
Спасибо за Ваши уроки. Очень интересный, а главное доступный для восприятия материал.
Доброе время суток, первые 3 урока прошла часа за 2, сейчас уже усвоила 4-5. Поэтому, чтобы в скором времени освоить оставшиеся уроки заполню заранее вашу анкету)))
Спасибо, за уроки, лаконично , доступно, а главное возможность дистанционно изучить интересующийся материал. Если не эти уроки я наверное и не дотронулся к написанию макросов. Каждый раз заниматься рутинной работой когда можно немного автоматизировать это просто класс. Дмитрий большое Вам спасибо.
Почему не вижу кнопки для скачивания №5? Ссылку получил на №№ 4-6.
Уроки хорошие)))
Наверно потому что его нельзя скачать )))
Я скачаю вместе с сайтом)))
Не гневи Дмитрия!
Не буду, не хорошо)))
уроки 4-5 обрываются на 13 минуте, это что? Так задумано?
Добрый день, Оксана.
Нет, с уроками все в порядке - обрываться не должны (сам проверил сейчас). По крайней мере, остальные пользователи сайта на это не жалуются.
Причина в сбое - где-то на Вашем компьютере. Попробуйте перезагрузиться или посмотреть это видео в другом браузере (для этого в другом браузере нужно будет повторно ввести те же имя и e-mail, которые Вы указали при регистрации).
Большое спасибо за уроки, пока еще не встречал ничего подобного по макросах!!!
Что бы не работать нужно очень много работать
Большое спасибо, Дмитрий, за уроки. Все понятно. Красиво и увлекательно. Чувствуешь красоту программы Ексель, радуешься возможностью ее более широкого применения. Только... Чуть-чуть мало. Скажем, очень хотелось бы узнать имеется ли возможность с помощью макроса проанализировать содержание диапазона ячеек, и заменить их конкретное чисельное значение на конкретное буквенное. ХОТЬ ЧТО НИБУДЬ ПОДСКАЖИИТЕ!!!
Добрый день, Александр.
Спасибо на добром слове.
"Чуть-чуть мало" - так Вы еще и половины видеоуроков на сайте не просмотрели
"заменить их конкретное чисельное значение на конкретное буквенное" - в уроке №6 это как раз показано, смотрите 6-й урок
Здравствуйте, Дмитрий! Вы так доступно всё объясняете! Спасибо Вам большое.
То что надо!
Спасибо Вам, Дмитрий! очень признателен.
С уважением,
Дмитрий спасибо за предоставленные уроки. Очень полезны и понятны.
Здравствуйте, Дмитрий! Очень доступно и интересно выложен материал. Спасибо, Вам, большое.
Но и конечно у меня есть вопрос (может неуместний) но я задам.
Возможно ли запустить из программы на VB макрос в Access.
Если это возможно подскажите, пожалуйста, как это сделать програмно в виде кода.
Заранее благодарен.
Вопросы задаете на целый семестр!
Добрый день, Тая.
По Вашему вопросу: да, макрос, записанный в Access, запустить из Excel можно.
Но Антон прав - для выполнения подобных действий требуется изучить возможности взаимодействия Excel с другими приложениями (в Вашем случае - с Access). Сильно далеко вперед забегаете.
Спасибо!
Даже не знал и не думал о таких возможностях.
Огромное спасибо! Очень интересно и доступно. Постараюсь использовать полученные знания в своей работе. Еще раз спасибо!!!
Спасибо за урок. Смотрела и слушала с удовольствием.
Спасибо за урок. Очень много полезной информации. Все подробно и доходчиво.
Материал супер!!!
Доводилось как то записывать макрорекодером большую последовательность действий и уже тогда на подсознательном уровне понимал что код можно оптимизировать и удалить лишние визуальные передвижение по книге, и что то даже у меня получилось =)
Но после этого урока, я точно уверен, что код можно было еще сократить в несколько раз =)
Действительно сайт один из лучших!Даже не знаю как ВАМ поблагодарить Дмитрий. Я сам давно осознал что после записи макросов макрорекордером (к большому моему сожалению я не так силен самостоятельно создать макрос)надо кое что редактировать и упростить , но как это делать,наверно долго не знал бы если бы не посещал ВАШ сайт!Огромное спасибо ВАМ Дмитрий.
Спасибо! Очень интересный урок.
Огромное спасибо за внимание и заботу, с которыми Вы вводите меня в доселе неизведанный и пугающий своей таинственностью мир Exel.
Вы - обыкновенный гений, Дмитрий! и очень хороший ЧЕЛОВЕК. Низкий поклон.
могут только зарегистрированные пользователи.
Ваше имя и тот e-mail, который был указан при регистрации)
В любой момент времени вы можете отказаться от получения сообщений.
Полезно, наглядно, понятно, существенно расширила свои знания благодаря данным урокам - спасибо, Дмитрий)
Добрый день, Анатолий.
Подробнее о создании программы для тестирования было рассказано в специальном платном мастер-классе "Создание программы по тестированию". Приобрести его можно по этой ссылке.
Что касается счетчика времени - в мастер-классе такого функционала не было, но позднее я доработал созданную в нем программу и добавил в нее такой счетчик - при приобретении мастер-класса я вместе с ним предоставлю и доработанную версию программы.
Спасибо! Классно. Где можно списать Вашу программу для шаблона? Счетчик времени на тестирование как вставить?
Здравствуйте. Подскажите, а можно ли сделать Q-код в таблице, но чтоб там было видно наименование упаковки, вес, дата прихода, наименование контрагента и тд. И при каждом изменении данных, автоматически делался Q-код?
Добрый день, Дмитрий. Я случайно увидела ваши видео в ютубе. Посмотрела и мне стало интересно изучить макросы. Перешла по ссылке и просмотрела часть бесплатных видео и мне очень понравилась ваша манера преподавать просто без лишних слов. Скажите, пожалуйста, а как сделать выпадающий...
Здравствуйте В видео "Автоматизация заполнения бланка документа (платежного поручения)" говориться, что можно скачать файлы с макросами, о которых идет речь. Не могу найти. Подскажите, пожалуйста,где скачать Файл?
Благодарю Вас хотя у меня оффис 97 все полчается
здравствуйте, Дмитрий... подскажите пожалуйста такой момент, для того, чтобы сделать макрос с фамилиями, я сделала перечень с фамилиями и суммами.. так вот у меня слово фамилия при сортировке улетает в самый низ))) то есть оно тоже сортируется... что не так в моей таблице?
Спасибо большое.Очень полезная информация
Замечательные уроки, большое спасибо автору. Все очень доходчиво, без лишних заморочек.