VBA - ярлыки для редактора Visual Basic

Этот туториал покажет вам множество действительно полезных ярлыков в VBA.

Используйте Alt + F11, чтобы открыть VBE

Обычно, чтобы перейти в редактор Visual Basic, вам нужно нажать кнопку Visual Basic на ленте Excel. Однако вы можете нажать Alt + F11 вместо!

Быстрые клавиши в VBE

Ctl + r- показывает Обозреватель проекта.

Ctl + g - показывает Немедленное окно.

F4 - показывает Окно свойств.

F2 - показывает Обозреватель объектов.

F5 - работает Процедура ты внутри.

F8 - позволяет пошагово выполнять код в Перерыв режим.

Запись макроса

Один из лучших способов изучить VBA - записать макрос, а затем проанализировать код. Это также очень быстрый способ написания кода, но регистратор будет записывать КАЖДОЕ нажатие клавиши, поэтому вам может потребоваться отредактировать код, чтобы удалить лишние строки.

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

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 Sub TestFormat ()'Макрос TestFormat'Сочетание клавиш: Ctrl + Shift + T'ActiveCell.FormulaR1C1 = "Applese"Диапазон ("D3"). ВыберитеActiveCell.FormulaR1C1 = "Груши"Диапазон ("E3"). ВыберитеActiveCell.FormulaR1C1 = "Персики"Диапазон ("C4"). ВыберитеActiveCell.FormulaR1C1 = "12"Диапазон ("D4"). ВыбратьActiveCell.FormulaR1C1 = "14"Диапазон ("E4"). ВыберитеActiveCell.FormulaR1C1 = "16"Диапазон ("C5"). ВыберитеActiveCell.FormulaR1C1 = "20"Диапазон ("D5"). ВыбратьActiveCell.FormulaR1C1 = "25"Диапазон ("E5"). ВыберитеActiveCell.FormulaR1C1 = "26"Диапазон ("C6: E6"). ВыберитеДиапазон ("E6"). АктивироватьSelection.FormulaR1C1 = "= СУММ (R [-2] C: R [-1] C)"Selection.Borders (xlDiagonalDown) .LineStyle = xlNoneSelection.Borders (xlDiagonalUp) .LineStyle = xlNoneSelection.Borders (xlEdgeLeft) .LineStyle = xlNoneС Selection.Borders (xlEdgeTop).LineStyle = xlContinuous.ColorIndex = 0.TintAndShade = 0.Weight = xlThinКонец сС Selection.Borders (xlEdgeBottom).LineStyle = xlDouble.ColorIndex = 0.TintAndShade = 0.Weight = xlThickКонец сSelection.Borders (xlEdgeRight) .LineStyle = xlNoneSelection.Borders (xlInsideVertical) .LineStyle = xlNoneSelection.Borders (xlInsideHorizontal) .LineStyle = xlNoneДиапазон ("C4: E6"). ВыберитеSelection.NumberFormat = _"_- [$$ - en-US] * #, ## 0.00_; _- [$$ - en-US] * - #, ## 0.00; _- [$$ - en-US] *" » - "" ?? _; _- @ _ "Диапазон ("C3: E3"). ВыберитеSelection.Font.Bold = TrueДиапазон ("C3"). ВыберитеActiveCell.FormulaR1C1 = "Яблоки"Конец подписки

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

123456789101112131415161718192021 Sub TestFormat ()Сочетание клавиш: Ctrl + Shift + TRange ("C3") = "Яблоки"Range ("D3") = "Груши"Range ("E3") = "Персики"Диапазон ("C4") = 12Диапазон ("D4") = 14Диапазон ("C4") = 16Диапазон ("C5") = 20Диапазон ("D5") = 25Диапазон ("E5") = "26"Диапазон ("C6: E6"). ВыберитеSelection.FormulaR1C1 = "= СУММ (R [-2] C: R [-1] C)"Selection.Borders (xlEdgeTop) .LineStyle = xlContinuousSelection.Borders (xlEdgeBottom) .LineStyle = xlDoubleДиапазон ("C4: E6"). ВыберитеSelection.NumberFormat = _"_- [$$ - en-US] * #, ## 0.00_; _- [$$ - en-US] * - #, ## 0.00; _- [$$ - en-US] *" » - "" ?? _; _- @ _ "Диапазон ("C3: E3"). ВыберитеSelection.Font.Bold = TrueКонец подписки

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

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

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

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

Код отступа

Когда вы делаете отступ в своем коде, вы сразу же делаете его более удобным для чтения и для кого-то другого. Чтобы сделать отступ для нескольких строк кода, вы можете выделить их и нажать клавишу TAB.

Точно так же, чтобы превзойти код, нажмите Shift + Tab и код снова переместится влево.

Устали искать примеры кода VBA? Попробуйте AutoMacro!

Комментирующий код

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

Запись строчными буквами

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

Использование Intellisense

Intellisense появляется, когда вы пишете код, и предоставляет вам список всех свойств, методов и событий, доступных для объекта, с которым вы работаете. Обычно оно появляется автоматически после того, как вы вводите точку при вводе кода.

Вы также можете заставить его появиться, нажав Ctl + j.

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

Вы можете заставить их появиться, нажав Ctl + i.

Автозаполнение

Вы можете использовать Ctrl + Пробел комбинация клавиш для использования автозаполнения при написании кода.

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

Явный вариант и код компиляции

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

Немедленное окно и отладка

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

12345678 Sub TestVariables'объявить переменнуюDim strName как строка'заполнить переменнуюstrName = "Энн Смит"'используйте F8 для пошагового выполнения кода и отправки значения переменной с помощью debug.print в непосредственное окноDebug.Print strNameКонец подписки

Вы поможете развитию сайта, поделившись страницей с друзьями

wave wave wave wave wave