Refedit vba excel свойства и методы

Обновлено: 07.07.2024

Элемент управления RefEdit (Поле со свёртыванием) аналогичен полю ввода, но позволяет вводить в него ссылку на диапазон выбором на рабочем листе. Свойство Value возвращает эту ссылку.

В качестве примера[1] использования элемента управления RefEdit используем проект, определяющий некоторые статистические параметры диапазона, а именно максимальное, минимальное значения и сумму всех значений ячеек этого диапазона. Создаётся форма, на которой расположены две кнопки: CommandButton1 и CommandButton2 и элемент управления RefEdit (рис. 30). Кнопка CommandButton1 предназначена для задания значения диапазона элемента управления RefEdit, а кнопка CommandButton2 – для выгрузки формы. Форма, приведённая на рис. 31, загружается при выполнении процедуры СТАТИСТИКА2:

находящейся в стандартном модуле Module1.


Рис. 28. Проект формы Рис.29. Загруженная форма

Для задания диапазона необходимо сделать активным окно элемента управления RefEdit и выделить нужный диапазон Лист1!$A$14:$A$17
(рис. 30). При выделении диапазона размер формы уменьшается, открывая ячейки для его выделения. Отсюда название элемента “Поле со свёртыванием”.



Рис. 30. Выделение диапазона

При нажатии на кнопку ok выполняется следующая процедура модуля формы.

Private Sub CommandButton1_Click()

Dim r As String

Dim min As Double, max As Double, s As Double

Dim rgn As Range

MsgBox RefEdit1.Value & vbCr & _

В этой процедуре инструкция r = RefEdit1.Value присваивает переменной r значение ссылки на диапазон, инструкция Dim rgn As Range объявляет переменную rgn как объект Range, а инструкция Set rgn = Range присваивает значение ячеек выбранного диапазона переменной rgn.

Значения свойства Caption формы (Статистика), кнопки CommandButton1 (ok) и кнопки CommandButton2 (Выйти) задаются при инициализации следующей процедуры модуля формы:

Private Sub UserForm_initialize()

Удаление формы из памяти осуществляется при нажатии кнопки “Выйти”. При этом возникает событие Click, обрабатываемого следующей процедурой формы:

Private Sub CommandButton2_Click()

При использовании данного приложения действия производятся в следующем порядке.

1. Запускается (пользователем или программно) процедура СТАТИСТИКА2.

2. Эта процедура загружает форму СТАТИСТИКА, при инициализации которой выполняется процедура UserForm_initialize.

3. Пользователь выделяет на рабочем листе диапазон значений, на который ссылается элемент управления RefEdit.

4. При нажатии на кнопку ok вызывается процедура CommandButton1_Click, в результате выполнения которой осуществляется подсчёт минимума, максимума и суммы величин выбранного диапазона при помощи свойств Min, Max и Sum объекта WorksheetFunction, представляющие собой одноименные функции рабочего листа и которые выводятся на экран при помощи функции MsgBox (рис. 33).


Рис. 31. Результаты выполнения приложения СТАТИСТИКА

5. При нажатии на кнопку Выйти выполняется процедура CommandButton2_Click,в результате чего форма СТАТИСТИКА выгружается.

32 комментария для “VBA Excel. Содержание рубрики”

Здравствуйте! У Вас нет темы по работе с фильтром. Можно проконсультироваться на этот счёт?

Здравствуйте, Сергей!
Задавайте вопрос, постараюсь ответить.

Спасибо, Евгений! Имеется в Excel столбец с включённым автофильтром. Можно ли программно запустить окно фильтра для выбора значений? Т.е. не руками нажимать на иконку фильтра, а заставить окно открываться с помощью макроса. Спасибо за ответ.

Да, это возможно:

Сергей, уточните вопрос: нужно программно нажать кнопки Ok и Отмена или отследить, какая из них была нажата?

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

Пример отслеживания нажатий кнопки «OK» автофильтра. На нажатие кнопки «Отмена» код не реагирует.

myString = Range ( "A1" ) . CurrentRegion . SpecialCells ( xlCellTypeVisible ) . Address myString1 = Range ( "A1" ) . CurrentRegion . SpecialCells ( xlCellTypeVisible ) . Address If Not Intersect ( ActiveCell , Range ( "A1" ) ) Is Nothing Then

Range("A1").CurrentRegion можно заменить на имя таблицы.

Евгений, а формулу в поле B2 оставлять или её можно удалить?

Сергей, событие Worksheet_Calculate() не зависит от команды SendKeys "%" . Ограничение стоит здесь:

If Not Intersect ( ActiveCell , Range ( "A1" ) ) Is Nothing Then

Код в процедуре Worksheet_Calculate() срабатывает только когда активна ячейка Range("A1") . Если заменить в этой строке Range("A1") на диапазон строки заголовков таблицы, тогда код будет срабатывать при любой активной ячейке в заголовке.

В столбце «B» не должно быть пустых ячеек до последней строки таблицы.

Как определить в VBA есть узор в ячейке?

If ActiveCell . Interior . Pattern = xlPatternNone Then

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

Set ws = ThisWorkbook . Sheets ( 1 ) 'можно указать любой лист книги 'устанавливаем защиту на все ячейки рабочего диапазона листа 'снимаем защиту только с пустых ячеек рабочего диапазона листа Set rr = ws . UsedRange . SpecialCells ( xlCellTypeBlanks ) Private Sub Workbook_BeforeClose ( Cancel As Boolean )

Добрый день, Владислав!
Замените строку

Добрый день, Евгений!
ОГРОМНОЕ СПАСИБО. :))

Здравствуйте, помогите, пожалуйста, решить задачу((

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

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

Здравствуйте, Ева! Для перемещения фокуса в ячейку справа код VBA не нужен: используйте для этого клавишу «Tab» или настройте клавишу «Enter» для перехода вправо (Файл >> Параметры >> Дополнительно).

Спасибо за ответ! Да, но это надо делать вручную; речь идёт об автоматическом перемещении курсора.

Кнопка справа от поля ввода и редактирования ссылок предназначена для сворачивания пользовательской формы в «одну строку». На свернутой форме остается только элемент управления RefEdit и становится доступным ввод адреса диапазона путем выделения ячеек на рабочем листе.

В стандартном наборе инструментов пользовательской формы Toolbox элемента управления RefEdit нет. Чтобы его добавить, кликните правой кнопкой мыши на Toolbox и выберите ссылку «Additional Controls…»:


В окне Additional Controls найдите строку RefEdit Ctrl:


Выберите строку RefEdit Ctrl и нажмите кнопку «OK». Значок элемента управления RefEdit будет добавлен на Toolbox (последний в списке):


Свойства элемента RefEdit

Почти все свойства элемента управления RefEdit аналогичны свойствам текстового поля (TextBox). Со всеми доступными свойствами редактора ссылок вы можете ознакомиться в окне Properties элемента управления RefEdit.

Основное свойство RefEdit, являющееся свойством по умолчанию, – это Text. Как и у текстового поля, свойство Text элемента RefEdit дублируется свойством Value. Если в окне Properties начать набор символов в поле свойства Text, ввод будет автоматически дублироваться в поле свойства Value.

Использование редактора ссылок

Открываем пользовательскую форму с элементом управления RefEdit:


Нажимаем на кнопку справа и выбираем диапазон на рабочем листе:


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


Проверяем, что свойство Text редактора ссылок является свойством по умолчанию:

Элементы управления VBA, добавление элементов управления на форму

июня 8, 2015 admin

Элементы управления — это специализированные объекты, которые можно размещать на формах VBA (и непосредственно в документах), используемые для организации взаимодействия с пользователем. В VBA вы можете использовать как стандартные элементы управления (CommandButton, CheckBox, OptionButton), так и нестандартные (любые другие, которые есть на вашем компьютере, например, Internet Explorer, Calendar и т.п.) Элементы управления реагируют на события, которые генерирует пользователь (нажатие на кнопку, ввод значения, перемещение ползунка и т.п.)

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


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

Обобщеную информацию об элементах управления (название, значок, описание) можно прочитать здесь

Элемент управления Label

Это — самый простой элемент управления.

Надпись — это просто область формы, в которой выводится какой-то текст.

Пользователь не может изменять этот текст. Чаще всего элемент управления Label используется как строка состояния с объяснением того, что сейчас произошло/происходит/должен сделать пользователь и т.п.


рис .1.1 Элемент управления Label на панели ToolBox


рис. 1.2 Элемент управления Label на форме

Подробнее можете прочитать здесь

Элемент управления TextBox

Текстовое поле (TextBox) — один из самых часто используемых элементов управления

Текстовое поле используется:

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


рис . 2.1 Элемент управления Textbox на панели ToolBox


рис. 2.2 Элемент управления Textbox на форме

Подробнее можете прочитать здесь

Элемент управления ComboBox

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


рис . 3.1 Элемент управления Combobox на панели ToolBox


рис. 3.2 Элемент управления Combobox на форме


рис. 3.3 Пример элемента управления Combobox на форме

Подробнее можете прочитать здесь

Элемент управления ListBox

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

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


рис . 4.1 Элемент управления Listbox на панели ToolBox


рис. 4.2 Элемент управления Listbox на форме


рис. 4.3 Пример элемента управления Listbox на форме

Подробнее можете прочитать здесь

Элементы управления CheckBox (флажок) и OptionButton (переключатель)

Флажки (пользователи часто называют их “галками” или “птичками”) и кнопки с фиксацией используются для выбора невзаимоисключающих вариантов (если этих вариантов немного).


рис . 5.1 Элемент управления Checkbox на панели ToolBox


рис. 5.2 Элемент управления Checkbox на форме

рис. 5.3 Пример элемента управления Checkbox на форме

Подробнее можете прочитать здесь

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


рис . 6.1 Элемент управления OptionButton на панели ToolBox


рис. 6.2 Элемент управления OptionButton на форме


рис. 6.3 Пример элемента управления OptionButton на форме

Подробнее можете прочитать здесь

Элементы управления Frame (рамка)

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


рис . 7.1 Элемент управления Frame на панели ToolBox


рис. 7.2 Элемент управления Frame на форме

рис. 7.3 Пример элемента управления Frame на форме

Подробнее можете прочитать здесь

Элемент управления CommandButton (кнопка) и ToggleButton (кнопка с фиксацией)

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


рис . 8.1 Элемент управления CommandButton на панели ToolBox


рис. 8.2 Элемент управления CommandButton на форме


рис. 8.3 Пример элемента управления CommandButton на форме

Подробнее можете прочитать здесь

ToggleButton выглядит как кнопка, которая при нажатии становится “нажатой”, а при повторном нажатии отключается.

Свойства и методы — те же самые. Единственное отличие — в восприятии их пользователем. Обычно ToggleButton воспринимается пользователем как переход в какой-то режим или начало выполнения продолжительного действия.


рис . 9.1 Элемент управления ToggleButton на панели ToolBox


рис. 9.2 Элемент управления ToggleButton на форме


рис. 9.3 Пример элемента управления ToggleButton на форме

Подробнее можете прочитать здесь

Элементы управления ScrollBar (полоса прокрутки) и SpinButton (счетчик)

Полосы прокрутки (ScrollBars) чаще всего встречаются в текстовых полях, когда введенный текст полностью на экране не умещается. Однако ничего не мешает вам использовать ScrollBar как отдельный элемент управления (пользователи часто называют его “ползунок”) — для выбора пользователем какого-то значения из диапазона. Обычно такой элемент управления используется для выбора плавно меняющихся значений — например, уровня громкости, яркости, сжатия, приоритета и т.п.


рис . 10.1 Элемент управления ScrollBars на панели ToolBox


рис. 10.2 Элемент управления ScrollBars на форме


рис. 10.3 Пример элемента управления ScrollBars на форме

Подробнее можете прочитать здесь

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


рис . 11.1 Элемент управления SpinButton на панели ToolBox


рис. 11.2 Элемент управления SpinButton на форме


рис. 11.3 Пример элемента управления SpinButton на форме

Подробнее можете прочитать здесь

Элементы управления TabStrip и MultiPage

Оба этих элемента управления применяются в одной и той же ситуации — когда элементов управления слишком много, чтобы уместить их на одной странице формы. Эти элементы управления позволяют создавать на форме несколько вкладок (Page, страниц), между которыми сможет переходить пользователь. Принципиальное отличие между этими элементами управления заключается в том, что на вкладках TabStrip всегда располагаются одинаковые элементы управления, а MultiPage — разные.


рис . 12.1 Элемент управления TabStrip на панели ToolBox


рис. 12.2 Элемент управления TabStrip на форме

Подрообнее о TabStrip можно прочитать здесь


рис . 13.1 Элемент управления MultiPage на панели ToolBox


рис. 13.2 Элемент управления MultiPage на форме

Подробнее о MultiPage можно прочитать здесь

Элемент управления Image

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


Рис. 14.1 Элемент управления Image на панели ToolBox


Рис. 14.2 Элемент управления Image на форме

Некоторые замечания по использованию Image:

  1. в качестве альтернативы можно использовать свойство Picture для формы (особенно если вам нужен фоновый рисунок для всей формы);
  2. еще две альтернативы — применение свойства Picture для элементов управления Label или CommandButton. Функциональность получается практически одинаковая;
  3. при использовании этого элемента управления само изображение копируется внутрь документа и внешний его файл больше не нужен.

Подробнее можете прочитать здесь

Дополнительные элементы управления VBA: Microsoft Web Browser, Calendar, RefEdit

Мы рассмотрели стандартные элементы управления, которые изначально помещены в ToolBox и доступны для размещения в формах. Однако, конечно, возможности форм VBA этим не ограничиваются. В вашем распоряжении — сотни и тысячи элементов управления, встроенных в Windows, в другие продукты или поставляемые отдельно (в том числе третьими фирмами). Для того, чтобы можно было разместить их на форме, щелкните правой кнопкой мыши по пустому пространству в ToolBox и выберите пункт Additional Controls — а далее выберите нужный элемент. Правда, при применении нестандартных элементов управления необходимо помнить, что при переносе программы (файла Office) на другой компьютер вам потребуется обеспечить на нем наличие необходимых библиотек.

Читайте также: