- •Объектная модель
- •Полная и неявная ссылка на объект
- •Ссылка на активную рабочую книгу, лист, ячейку, диаграмму и принтер
- •Загрузка инсталлированной надстройки
- •Управление уровнем безопасности
- •Семейство встроенных диалоговых окон
- •Объект FileDialog
- •Методы объекта Application
- •Установка выполнения специфицированной процедуры при нажатии заданной комбинации клавиш
- •Переопределение горячих клавиш приложения
- •Проверка правописания отдельного слова
- •Симулирование ячеек рабочего листа
- •Электронные часы в ячейке рабочего листа
- •Получение данных из закрытой рабочей книги
- •События объекта Application
- •IgnoreReadOnlyRecommended — необязательный параметр, указывающий надо ли отображать предупреждение о том, что книга была сохранена в режиме "только для чтения";
- •Установка и снятие защиты книги
- •Методы объекта Worksheet
- •Объект Protection
- •События объекта Worksheet
- •Добавление к графическому объекту обработчика события Click
- •Примечание
- •Свойства объекта Range
- •Управление стилем границы диапазона и объекта Border
- •Функции rgb и qbColor
- •Доступ к отдельным ячейкам диапазона
- •Выбор элементов на рабочем листе или в книге
- •Объект Characters
- •Объект Comment
- •Определение текущего диапазона
- •Объект Font
- •Объект Interior
- •Установка числового формата
- •Переопределение размеров диапазона
- •Методы объекта Range
- •Табуляция функции
- •Заполнение диапазона по одному значению
- •Специальная вставка
- •Вставка диапазона с транспонированием
- •Бегущая картинка
- •Поиск значения в диапазоне
- •Повторный поиск и поиск всех значений
- •Поиск по формату
- •Замена значений
- •Ввод в диапазон неповторяющихся значений
- •Озвучивание текста
- •Построение графа
- •Пользовательские функции
- •Математические функции
- •Надстройки
- •Где хранятся макросы?
Бегущая картинка
В качестве примера копирования в буфер обмена изображения диапазона приведем следующий код (листинг 5.53). В нем в диапазон А1 вставляется текст, у которого задается стиль шрифта. Затем текст поворачивается на угол 45° и содержимое ячейки копируется в буфер обмена, а потом снова вставляется в документ, но уже как рисунок. После чего рисунок начинает передвигаться по рабочему листу.
Листинг 5.53. Бегущая картинка
Sub RunningPicture()
Dim txt As String, angle As Single, st As Single
Dim pic As Object
txt = "Hello, World!"
angle =45
With Application
.ScreenUpdating = False
With Range("A1")
.Value = txt
.Font.Bold = True
.Font.Color = RGB(233, 113, 229)
.Font.Size = 16
.Orientation = angle
.EntireColumn.AutoFit
.Copy
Set pic = ActiveSheet.Pictures.Paste(Link:=False)
.Clear
With pic
.Top = 0
.Left = 0
End With
End With
.CutCopyMode = False
.ScreenUpdating = True
MsgBox "Start!"
With pic
For st = 0 To 100
.Top = st
.Left = st Next
.Delete
End With
End With
Set pic = Nothing
End Sub
Поиск значения в диапазоне
Метод Find объекта Range производит поиск специфицированной информации в указанном диапазоне и возвращает ссылку на первую найденную ячейку, в которой искомая информация найдена. В случае необнаружения искомых данных метод возвращает значение Nothing.
Find(What, After, Lookln, LookAt, SearchOrder, SearchDirection, MatchCase, MatchByte, SearchFormat)
Здесь:
What — обязательный параметр, задающий искомые данные;
After — необязательный параметр, указывающий на ячейку, после которой надо производить поиск;
Lookin — необязательный параметр, специфицирующий, где производить поиск. Допустимыми значениями являются следующие постоянные XlFindLookln:
xlComments, xlFormulas и xlValues;
LookAt — необязательный параметр, указывающий, как надо искать. Допустимыми значениями являются следующие постоянные xlLookAt:
xlWhole и xlPart;
D Searchorder — необязательный параметр, задающий порядок просмотра диапазона. Допустимыми значениями являются следующие постоянные XlSearchOrder:
xlByRows и xlByColumns;
SearchDirection — необязательный параметр, определяющий направление просмотра. Допустимыми значениями являются следующие постоянные XlSearchDirection:
xlNext и xlPrevious;
MatchCase — необязательный параметр, указывающий, надо ли при поиске учитывать регистр букв;
MatchByte — необязательный параметр, применяется редко;
SearchFormat — необязательный параметр, задающий формат поиска.
Например, следующий код производит поиск значения 17 в диапазоне А1:А10. В случае его обнаружения на экране отображается окно с адресом найденной ячейки.
Dim rng As Range
Set rng = Range("A1:A10").Find(What:=17, LookIn:=xlValues)
If Not (rng Is Nothing) Then
MsgBox rng.Address
Else
MsgBox "He найдено значение"
End If
Следующий код (листинг 5.54) производит поиск подстроки "BHV" без учета регистра в диапазоне А1:А10. В случае успешного поиска на экране отображается окно со значением свойства Value обнаруженной ячейки.
Sub DemoFindNoMatchCase()
Dim rng As Range
Set rng - Range("A1:A10").Find(What:="BHV", LookIn:=xlValues, _
LookAt:=xlPart, MatchCase:=False)
If Not (rng Is Nothing) Then
MsgBox rng.Value
Else
MsgBox "He найдено подходящее значение"
End If
End Sub
