Vba excel selection методы и свойства
Метод EndOf() здесь для того, чтобы не перезаписывать один и тот же текст 100 раз, поскольку после ввода текст остается выделенным.
- Type — еще одно проверочное свойство, которое позволяет предупредить ошибку, если пользователь выделил что-то неположенное. Например, при обычном выделении значение этого свойства будет равно 1, а если выделены несмежные участки текста — 2.
- Words — аналогично такому же свойству Document.
Методов у объекта Selection гораздо больше, чем свойств:
- Calculate() — возможность посчитать математическое выражение прямо в процессе ввода текста и вернуть его результат (только используя тип данных Single).
- ClearFormatting() — очистить форматирование (и на уровне текста, и на уровне параграфа). Свойство можно применять не только для объекта Selection, но и для объектов Find и Replace.
- Collapse() — превратить выделение в точку вставки. Можно использовать два варианта: точка вставки на начало выделения и на конец выделения. Очень удобно, если вам требуется только вставить новый текст без удаления старого.
- Copy(), CopyAsPicture(), Cut(), Paste() и Delete() — комментировать эти методы, видимо, необходимости нет.
- EndKey() — этот метод так называется, поскольку он очень похож по функциональности на нажатие клавиши <End>. Он позволяет (в зависимости от переданных параметров) перейти на конец DocumentStory, строки, столбца или записи в таблице (по умолчанию — на конец строки) и либо выделить до этого момента, либо установить на нем точку вставки. Чтобы вставить перевести курсор вставки на конец текста документа, можно воспользоваться командой
Selection.EndKey Unit:=wdStory, Extend:=wdMove
Если же нужно перейти на начало элемента, используется аналогичный метод HomeKey().
Представляет текущий выделенный фрагмент в окне или области. Выделенный фрагмент представляет выбранную (или выделенную) область в документе или представляет точку вставки, если в документе ничего не выбрано. В области окна документа может быть только один объект Selection, а в приложении только один объект Selection может быть активным.
Этот метод изменился. При использовании команд выделения VBA, таких как Selection.BoldRun , для выделения пользователей с примечаниями больше не применяется полужирное форматирование для текста, выделенного пользователем, или для команды Selection.TypeTxt ; также при выделении пользователей с примечаниями больше не вставляется текст.
Примечания
Используйте свойство Selection, чтобы возвратить объект Selection. Если для свойства Selection не используется квалификатор объекта, Microsoft Word возвращает выделение из активной области окна активного документа. В следующем примере копируется текущий выделенный фрагмент из активного документа.
В следующем примере удаляется выделенный фрагмент из третьего документа в коллекции Documents. Документ необязательно должен быть активен для доступа к текущему выделенному фрагменту.
В следующем примере показано, как скопировать выделенный фрагмент из первой области активного документа и вставить его во вторую область.
Свойство Text является свойством по умолчанию объекта Selection. Используйте это свойство, чтобы задать или вернуть текст в текущем выделенном фрагменте. В следующем примере текст в текущем выделенном фрагменте назначается переменной strTemp , после чего удаляется последний символ, если он является знаком абзаца.
Объект Selection содержит различные методы и свойства, с помощью которых можно свернуть, развернуть или иным способом изменить текущий выделенный фрагмент. В следующем примере точка вставки перемещается в конец документа и выбираются последние три строки.
Объект Selection содержит различные методы и свойства, с помощью которых можно редактировать выделенный текст в документе. В следующем примере показано, как выделить первое предложение в активном документе и заменить его новым абзацем.
В следующем примере удаляется последний абзац первого документа в коллекции Documents, который затем добавляется в начало второго документа.
Объект Selection содержит различные методы и свойства, с помощью которых можно изменить форматирование текущего выделенного фрагмента. В следующем примере показано, как изменить шрифт текущего выделения с Times New Roman на Tahoma.
Используйте такие свойства, как Flags, Information и Type, чтобы получить сведения о текущем выделенном фрагменте. Следующий пример можно использовать в процедуре, чтобы определить, есть ли в активном документе выделенный фрагмент; при его отсутствии оставшаяся часть процедуры пропускается.
Даже если выделенный фрагмент свертывается в точку вставки, он не обязательно должен быть пустым. Например, свойство Text будет по-прежнему возвращать символ справа от точки вставки; этот символ также отображается в коллекции Characters объекта Selection. Однако вызов методов, таких как Cut или Copy, из свернутого выделения приводит к ошибке.
Пользователь может выделить область в документе, не представляющую смежный текст (например, при использовании клавиши ALT с кнопкой мыши). Так как поведение такого выделения может быть непредсказуемым, можно включить в код шаг, который проверяет свойство Type выделенного фрагмента перед выполнением каких-либо операций над ним ( Selection.Type = wdSelectionBlock ).
Аналогично, выделенный фрагмент, включающий ячейки таблицы, также может привести к непредсказуемому поведению. Свойство Information сообщит, находится ли выделенный фрагмент в таблице ( Selection.Information(wdWithinTable) = True ). В следующем примере определяется, является ли выделенный фрагмент нормальным (например, это не строка или столбец в таблице, не является вертикальным блоком текста); его можно использовать для тестирования текущего выделенного фрагмента перед выполнением каких-либо действий над ним.
Объекты Range используют много таких же методов и свойств, что и объекты Selection, поэтому использование объектов Range предпочтительнее для управления документом, если нет причин физически изменять текущий выделенный фрагмент. Дополнительные сведения об объектах Selection и Range содержатся в статьях Работа с объектом Selection и Работа с объектами Range.
Методы
Свойства
См. также
Поддержка и обратная связь
Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.
Range и Selection — основные объекты, которые предоставляют разработчику доступ к объектам нижнего уровня вплоть до конкретной ячейки. Объект Range (диапазон) используется для работы с ячейками, строками, столбцами, а также их группами. Все объекты MS Excel (Application, Worksheet и сам объект Range) имеют свойство Range. Синтаксис этого свойства следующий:
Property Range (Cell_B [,Cell_E]) As Range.
Если указываются оба аргумента CellB и Cell E, то они определяют прямоугольную область, заданную наименьшим левым верхним углом (параметр Cell В) и максимальным правым углом (параметр Cell_ Е) диапазонов. В этом случае аргументами могут быть переменные класса Range. Объект Range может представлять одну ячейку, одну строку, один столбец рабочего листа или их множество.
Рассмотрим первый (простой) случай, когда используется один аргумент. Тогда в качестве аргумента указывается любая допустимая в Excel ссылка только в формате А1 (см. параграф 8.1). Если имя листа не указывается, то используется активный лист, например:
'Ячейке А5 листа Лист1 присваивается значение 5
Worksheets( "Лист1").Range("А5").Value = 5
'Ячейке А5 текущего листа присваивается значение 4
Range("А5").Value = 4
'Диапазону ячеек D3.D6 текущего листа присваивается формула А1+4
Range("D3:D6”).Formula = "-А1+4"
Во втором случае (два аргумента) в качестве аргументов можно использовать переменные, выражения, свойства или методы объекта Range. Примеры:
Range ("ВЗ", "Е20") 'интервал ВЗ.Е20.
Range (Rows (1), Rows (6) ) 'интервал, содержащий первые шесть строк
'рабочего листа.
Полезным является объект Selection (выделение), который позволяет работать не только с выделенными (активными) ячейками, но и другими объектами. Напомним, что объект Selection создается при вызове метода Select либо свойства Selection. Тип созданного объекта определяется типом выделенного объекта (диапазон ячеек, рисунок, диаграмма и т.д.). Нас будет интересовать объект Selection, принадлежащий классу Range. В этом случае при работе с ним можно использовать все свойства и методы класса Range.
Selection.cells(1,1).Value =3
Selection.Range("d2").Value = 8
Selection.Range("A3:A4").Formula = "=bl+d2"
Для удобства изложения разделим свойства объекта Range па две группы. К первой группе отнесем свойства, отвечающие за реализацию доступа к содержимому объекта, а ко второй — свойства, реализующие его оформление.
Свойства первой группы (доступ к объекту). Важные свойства первой группы объекта Range приведены в табл. 8.14.
Таблица 8.14
Свойства объекта Range первой группы (доступ к объекту)
Описание и допустимые значения
Возвращает строку со ссылкой на объект Range в формате А1 или R1C1
Определяет семейство ячеек диапазона. Подробно опишем позже
Определяет семейство столбцов в диапазоне (объект Range). Синтаксис: Columns (ind), где ind — индекс колонки в объекте. Если индекс не задан, то выбираются все колонки объекта. Пример: Range ("В2: С4") . Columns (1) — возвращает указанную колонку В в заданном интервале, т.е. ячейки В2:В4
Возвращают значение (целое число) индекса соответственно первого столбца или первой строки для заданного объекта. Пример: Range ("В4") .Column — возвращает число 2
Определяет количество элементов в диапазоне. Используется со всеми объектами типа коллекции.
Пример: Range ("al :сЗ") .Rows.Count — возвращает значение, равное 3
Возвращает объект Range с интервалом ячеек, содержащим заданную ячейку.
Возвращают один или несколько охватывающих объект Range столбцов, соответственно, строк
Определяет строку с формулой в формате А1.
Пример:Range("В5").Formula
Определяет строку с формулой в формате R1C1 (рекомендуется использовать).
Пример: Range("В2").FormulaRICl = "=R1C1+1"
Описание и допустимые значения
Определяет имя диапазона.
Пример: Range ("В1 :В4") .Name
Возвращает объект Range, смещенный относительно выбранной ячейки. Подробно опишем позже
Возвращает объект Range
Определяет семейство строк в диапазоне (объект Range)). Синтаксис: Rows (ind), где ind — индекс строки в объекте. Если индекс не задан, то выбираются все строки объекта.
Пример: Worksheets (1) .Range ("В2:С4") .Rows (2) — возвращает вторую строку заданного интервала, т.е. ячейки ВЗ:СЗ
Содержит значение из ячейки или диапазона. Пример: X=Range("А2").Value
Свойство Offset. К первой группе свойств, обеспечивающих доступ к объекту, относится и свойство Offset. Оно позволяет задавать диапазон (ячейку), смещенный относительно выбранной ячейки.
Offset ([RowOf] , [ColumnOf] ),
где RowOf — целое число, указывающее смещение ячейки по строкам; ColumnOf — целое число, указывающее смещение ячейки по столбцам. Если какой-то аргумент не задан, то соответствующее смещение равно нулю.
Range ("В6") . Offset (-2,1) 'возвращает ячейку С4.
Worksheets(1).Range("d5").Offset(3,3).Value=3
' возвращает ячейку G8 и задает ее значение, равное 3.
Worksheets(1).Range("d5").Offset(-3,-3).Value=4
' возвращает ячейку A2, в которой записано число 4.
Свойство Cells является семейством (двумерным массивом) ячеек и используется для доступа к отдельной или группе ячеек. Cells является объектом типа Range и обладает тем же набором свойств и методов, что и объект Range. Для доступа к конкретной ячейке объекта Cells нужно в синтаксисе обращения к элементу Cells(r,c) в качестве аргументов указать целыми числами номер строки (г) и столбца (с). Например:
Worksheets (1) .Cells (5,1) .Value = 5 ' присвоение значения 5 ячейке
'с адресом А5 первого рабочего листа.
ActiveSheet .Cells . Font .Name = "Courier New" 'установка шрифта
' для всех ячеек активного листа.
'установка цвета заливки для ячейки В2.
Можно также использовать свойство Cells для альтернативного указания диапазона. Например, Range ("Л2;СЗ") и Range (Cells (2,1) , Cells (3,3) ) определяют один и тот же диапазон.
Свойства второй группы (оформление содержимого объекта). Свойство — участник Font (шрифт) возвращает объект Font, устанавливающий характеристики шрифта в области объекта Range. Объект Font в своем составе имеет такие основные свойства, как Name (гарнитура шрифта), Color (цвет), Size (размер), Bold (полужирность) и Italic (курсив).
With Worksheets("Лист1") .Range("В5").Font .Name = "Times New Roman"
. Color=vbred .Size = 14 .Bold = True .Italic = True
.Underline = xlUnderlineStyleNone
Свойства ColumnWidth, RowHeight возвращают ширину столбцов и соответственно высоту строк диапазона. Свойство WrapText определяет возможность переноса текста в диапазоне (True — разрешает, False — запрещает).
Свойство NumberFormat задает формат отображения данных в объекте с использованием шаблона. Синтаксис:
объект. NuiHberFormat^'fflafitfOH".
Примеры допустимых шаблонов приведены в табл. 8.15.
Шаблоны отображения данных
Таблица 8.15
Вывод даты в формате 11.01.99 («d» — день; «т» — месяц; «уу» — две последние цифры года)
Вывод даты в формате 01.01.1999
Вывод даты в формате 1 янв. 99 (шшш — сокращение месяца)
Вывод даты в формате 1 января 99 (mmmm — полное название месяца)
Время в формате 1:23 (h — часы, mm — минуты)
Время в формате 1:23:00 (ss — секунды)
Экспоненциальный формат числа
Range("А1:Д1О").Select Selection .NumberForтаt B1:BIO").Selection.NumberFormat
Range("Cl:CIO").Selection.NumberFormat
Range("D1:DIO").Selection.NumberFormat="@"
Свойство Orientation определяет ориентацию (расположение) текста в ячейке. Допустимые значения свойства: xlHorizontal (горизонтальное расположение), xlVertical (вертикальное расположение), -90 до 90 (направление текста в градусах).
Свойства выравнивания содержимого объекта: HorizontalAlignment (горизонтальное выравнивание) может принимать значения, указанные в табл. 8.16, VerticalAlignment (вертикальное выравнивание) может принимать значения, указанные в табл. 8.17.
Выбор VBA используется для выбора диапазона из таблицы Excel. Мы можем делать что угодно и что угодно с выбранным диапазоном. Но при использовании VBA Selection мы не увидим список функций, которые мы хотим выполнять, из которых мы можем выбрать любую в соответствии с нашими потребностями. Для этого нам нужно набрать эту вещь вручную, и она должна быть правильной. Поэтому, используя VBA Selection, мы должны убедиться, что будем использовать правильную функцию, чтобы избежать любых ошибок.
Как использовать свойство Selection в Excel VBA?
Ниже приведены различные примеры использования свойства Selection в Excel с использованием кода VBA.
Вы можете скачать этот шаблон Excel VBA Selection здесь - Шаблон Excel VBA Selection
В этом примере мы увидим очень простой метод применения VBA Selection. Для этого выполните следующие шаги:
Шаг 1: Перейдите в окно VBA и откройте новый модуль из списка меню «Вставка», как показано ниже.
Шаг 2: Теперь во вновь открытом модуле напишите подкатегорию VBA Selection, как показано ниже.
Код:
Шаг 3: Выберите любой диапазон ячеек. Это может быть любой случайный или определенный диапазон ячеек с помощью команды Select .
Код:
Шаг 4: Теперь мы попытаемся вставить текст в выбранный диапазон ячеек. Для этого в следующей строке кода напишите Selection.Value. Это используется для выбора ячеек для ввода значения.
Код:
Шаг 5: Наконец, мы напишем любой текст, который хотели бы видеть в выбранном диапазоне ячеек. Пусть этот текст будет «Excel VBA Selection».
Код:
Шаг 6: Теперь запустите код, нажав на кнопку Play, которая находится под строкой меню, как показано ниже.
Мы увидим, что от ячейки A1 до C3 наше выбранное текстовое значение было вставлено, и целое также выбрано.
Выбор Excel VBA - Пример № 2
В этом примере мы увидим, как функция Offset будет работать вместе с VBA Selection. Для этого выполните следующие шаги:
Шаг 1: Запишите подкатегорию VBA Selection, как показано ниже.
Код:
Шаг 2: Выберите диапазон ячеек в соответствии с вашими потребностями, иначе мы можем не использовать тот же диапазон ячеек, который мы видели в приведенном выше примере.
Код:
Шаг 3: Теперь выберите функцию Offset вместе с Selection, как показано ниже. С помощью этой функции смещения мы будем пытаться сместить или переместить выделение из следующей матрицы.
Код:
Шаг 4: После этого выберите место смещения, куда мы хотим переместить поле выбора из ячеек диапазона от А1 до С3. Давайте попробуем переместить его на 1 строку и 1 столбец от текущей позиции.
Код:
Шаг 5: Теперь снова запустите код, нажав клавишу F5 или нажав кнопку Play.
Мы увидим, теперь наш новый выбор будет от ячейки B2 до D4, как показано ниже. И мы использовали команду Select, чтобы диапазон находился в текущем выбранном режиме.
Выбор Excel VBA - Пример № 3
В этом примере мы увидим, как мы можем использовать и изменять цвет интерьера ячейки с помощью VBA Selection. Для этого выполните следующие шаги:
Шаг 1: Напишите подкатегорию VBA Selection или под любым именем согласно вашему выбору, как показано ниже.
Код:
Опять же, мы будем продолжать использовать тот же диапазон ячеек, который мы видели ранее с тем же вставленным текстом.
Шаг 2: Выберите диапазон требуемой ячейки, который находится здесь от ячейки A1 до C3.
Код:
Шаг 3: Теперь для изменения цвета интерьера любой ячейки нам нужно использовать функцию Interior.Color вместе с Selection. Это позволит нам использовать все доступные цвета VB, которые есть в VBA.
Код:
Шаг 4: Здесь у нас есть множество цветов, но все они являются базовыми цветами. Для выбора любого основного цвета мы будем использовать vb, за которым следует название цвета. Давайте рассмотрим зеленый цвет интерьера, как показано ниже.
Код:
Шаг 5: Теперь снова запустите код, нажав клавишу F5 или нажав кнопку Play.
Мы увидим, что выбранный диапазон ячеек окрашен в зеленый цвет.
Выбор Excel VBA - Пример № 4
В этом примере мы вставим текст в любой диапазон ячеек и одновременно изменим цвет шрифта для этого текста ячейки. Для этого выполните следующие шаги:
Шаг 1: Запишите подкатегорию VBA Selection, как показано ниже.
Код:
Шаг 2: Снова выберите диапазон ячеек, где мы хотим, чтобы все это происходило. Здесь мы снова рассматриваем тот же диапазон.
Код:
Шаг 3: Снова вставьте любой текст, как мы видели в примере 1. Мы снова будем использовать ту же строку кода здесь.
Код:
Шаг 4: Теперь с помощью Selection используйте функцию Font.Color вместе, как показано ниже. Таким образом, мы сможем выбрать цвет, который мы хотим дать выбранным шрифтам ячейки.
Код:
Шаг 5: Опять же, мы будем использовать базовые цвета VBA для цветов шрифта ячейки. Давайте на этот раз будем использовать красный цвет, начиная с vb, как показано ниже.
Код:
Шаг 6: Теперь снова запустите код, нажав клавишу F5 или нажав кнопку воспроизведения.
Мы увидим, что в выбранном диапазоне ячеек у нас будет вставлен наш текст, и цвет этих ячеек теперь красный, а не черный по умолчанию.
Плюсы и минусы выбора Excel VBA
- Это прямой способ выбора любой функции.
- Это применимо ко всем типам функций.
- Выбор VBA - намного более легкий способ кодирования по сравнению с другими формами.
- Поскольку он не позволяет список возможных функций после него, становится немного сложнее использовать VBA Selection.
То, что нужно запомнить
- Убедитесь, что вы используете точную функцию после выбора VBA, чтобы избежать ошибки.
- Легко и возможно использовать сложную структуру кода VBA Selection.
- Как только реализация будет завершена, сохраните файл в Macro с включенным Excel, чтобы вы никогда не потеряли написанный код.
Рекомендуемые статьи
Это руководство по выбору VBA. Здесь мы обсудим, как использовать свойство selection в Excel с помощью кода VBA, а также на практических примерах и загружаемом шаблоне Excel. Вы также можете просмотреть наши другие предлагаемые статьи -
Читайте также: