- •Объектная модель
- •Полная и неявная ссылка на объект
- •Ссылка на активную рабочую книгу, лист, ячейку, диаграмму и принтер
- •Загрузка инсталлированной надстройки
- •Управление уровнем безопасности
- •Семейство встроенных диалоговых окон
- •Объект FileDialog
- •Методы объекта Application
- •Установка выполнения специфицированной процедуры при нажатии заданной комбинации клавиш
- •Переопределение горячих клавиш приложения
- •Проверка правописания отдельного слова
- •Симулирование ячеек рабочего листа
- •Электронные часы в ячейке рабочего листа
- •Получение данных из закрытой рабочей книги
- •События объекта Application
- •IgnoreReadOnlyRecommended — необязательный параметр, указывающий надо ли отображать предупреждение о том, что книга была сохранена в режиме "только для чтения";
- •Установка и снятие защиты книги
- •Методы объекта Worksheet
- •Объект Protection
- •События объекта Worksheet
- •Добавление к графическому объекту обработчика события Click
- •Примечание
- •Свойства объекта Range
- •Управление стилем границы диапазона и объекта Border
- •Функции rgb и qbColor
- •Доступ к отдельным ячейкам диапазона
- •Выбор элементов на рабочем листе или в книге
- •Объект Characters
- •Объект Comment
- •Определение текущего диапазона
- •Объект Font
- •Объект Interior
- •Установка числового формата
- •Переопределение размеров диапазона
- •Методы объекта Range
- •Табуляция функции
- •Заполнение диапазона по одному значению
- •Специальная вставка
- •Вставка диапазона с транспонированием
- •Бегущая картинка
- •Поиск значения в диапазоне
- •Повторный поиск и поиск всех значений
- •Поиск по формату
- •Замена значений
- •Ввод в диапазон неповторяющихся значений
- •Озвучивание текста
- •Построение графа
- •Пользовательские функции
- •Математические функции
- •Надстройки
- •Где хранятся макросы?
Специальная вставка
Метод PasteSpecial объекта Range производит специальную вставку (special paste) из буфера обмена. Этот метод программирует выполнение на рабочем листе команды Правка►Специальная вставка.
expression.PasteSpecial(Paste, Operation, SkipBlanks, Transpose)
Здесь:
expression — объект типа Range, задающий диапазон или ссылку на верхнюю левую ячейку диапазона, в который вставляются данные из буфера обмена;
Paste — необязательный параметр. Определяет ту часть содержания буфера обмена, которая должна быть вставлена в диапазон. Допустимыми значениями являются следующие постоянные xlPasteType: xlPasteAll, xlPasteAllExceptBorders, xlPasteColumnWidths, xlPasteComments, xlPasteFormats, xlPasteFormulas, xlPasteFormulasAndNumberFormats, xlPasteValidation, xlPasteValues и xlPasteValuesAndNumberFormats;
Operation — необязательный параметр. Определяет операцию над вставляемыми данными и теми, которые содержатся в диапазоне. Допустимыми значениями являются следующие постоянные XIPasteSpecialOperation:
xlPasteSpecialOperationAdd, xlPasteSpecialOperationDivide, xlPasteSpecialOperationMultiply, xlPasteSpecialOperationNone и xlPasteSpecialOperationSubtract;
SkipBlanks — необязательный параметр. Принимает логические значения и устанавливает, учитываются ли пустые ячейки при вставке;
Transpose — необязательный параметр. Принимает логические значения и устанавливает, вставляется ли диапазон транспонированным.
В приведенном ниже коде данные из диапазона С1:С5 рабочего листа Лист1 вставляются в диапазон D1:D5 того же листа, причем они не заменяют уже существующие данные, а прибавляют к ним данные из диапазона С1:С5.
With Worksheets("Лист1") .Range("C1:C5").Copy
.Range("D1:D5")
.PasteSpecial Operation:=xlPasteSpecialOperationAdd
End With
Тот же результат можно получить при помощи следующих инструкций, где метод применяется не ко всему диапазону, а только к его верхней левой ячейке:
With Worksheets("Лист1")
.Range("C1:C5").Copy
.Range("Dl").PasteSpecial Operation:=xlPasteSpecialOperationAdd
End With
Следующий код копирует данные из диапазона А1:С1 в буфер обмена и затем вставляет только значения в диапазон А5:С5.
Range("A1:C1").Сору
Range("A5").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone
Вставка диапазона с транспонированием
Вставка диапазона с транспонированием осуществляется методом PasteSpecial при значении его параметра Transpose равном True. Например, в следующем коде значения из диапазона А1:С2 копируются с транспонированием в диапазон D1:E3:
Range("A1:C2").Copy
Range("D1).PasteSpecial Paste:=xlPasteAll, _
Operation:=xlNone, _
Transpose:=True
Копирование диапазона в буфер обмена как растровое изображение
Метод СopyPicture объекта Range копирует в буфер обмена содержимое указанного диапазона как растровое изображение.
CopyPicture(Appearance, Format)
Здесь:
Appearance — необязательный параметр, специфицирующий способ копирования диапазона. Допустимыми значениями являются следующие XlPictureAppearance - постоянные: xlPrinter и xlScreen;
Format — необязательный параметр, задающий формат изображения. Допустимыми значениями являются следующие XlCopyPictureFormat - постоянные: xlPrinter и xlPicture.
Например, в представленном далее коде диапазон А1:С2 копируется в буфер обмена как растровое изображение, затем он вставляется в лист, но уже как графический объект, левый верхний угол которого совпадает с соответствующим углом ячейки С7, после чего это изображение поворачивается на 45° против часовой стрелки.
Range("А1:С2").CopyPicture
Range("C7").Select
ActiveSheet.Paste
Selection.ShapeRange.IncrementRotation -45
