Телефон: +7 (495) 649-0526

DataObject и VBA

Картинка к странице

Следующая статья:

Содержание

Описание объекта DataObject

В этом объекте одновременно могут храниться несколько текстовых данных в разных форматах. Когда в DataObject помещается новый текст с имеющимся в нем форматом, то прежний текст с этим форматом заменяется на новый.

Поведение DataObject похоже на поведение буфера обмена. Однако DataObject существует только в момент работы приложения и исчезает после ее завершения, а данные в буфере обмена при этом не теряются, DataObject может хранить только текстовые данные, а буфер обмена – и графические. С другой стороны, DataObject – настоящий OLE-объект и поддерживает, в отличие от буфера обмена, операции перетаскивания текста.

Текст заносится в DataObject методом SetText, а извлекается оттуда методом GetText:объект. SetText(StoreData [, format]) и Строка=объект. GetText([format]),

где объект – объект – владелец метода;

StoreData – текст, который надо запомнить в объекте;

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

Если параметр format в вызове SetText явно не указан, то запоминаемому тексту присваивается формат стандартного текста 1. Так как для каждого формата DataObject содержит лишь один текст с этим форматом, то фактически формат играет роль ключа, с помощью которого текст заносится и извлекается из DataObject. Метод GetFormat позволяет узнать, имеется ли в объекте DataObject текст определенного формата:

BooleanVar=объект. GetFormat(format)

Переменная BooleanVar получит значение True, если данные с указанным форматом входят в объект. Объект DataObject может обмениваться данными с буфером обмена посредством методов GetFromClipboard и PutInClipboard. Оператор String=объект.GetFromClipboard() помещает содержимое буфера обмена в DataObject, а вызов объекта PutInClipboard переносит данные из DataObject, имеющие текстовый формат 1, в буфер обмена.

Пример.

Форма содержит два текстовых поля, в одном из них программно отображается текст, который при помощи методов объекта dataobject необходимо перенести (перекопировать) во второе текстовое поле. Данное действие происходит после нажатия на кнопку «Копировать», причем все производимые действия программы отображаются в соответствующей метке на форме.

Форма примера в режиме конструктора и в рабочем режимеФорма примера в режиме конструктора и в рабочем режиме

Технология выполнения

  • Активизируйте приложение Word и сохраните документ.
  • Перейдите в редактор VBA и создайте форму.
  • Пропишите при инициализации окна в поле TextBox1 текстовую информацию и проинициализируйте глобальные переменные:

Public NewData As DataObject

Public NumClick As Integer

Private Sub UserForm_Initialize()

Set NewData=New DataObject 'инициализация объекта

NumClick=0

'число щелчков

TextBox1.Text="Пример переноса данных с помощью DataObject»

End Sub

  • При последовательных щелчках по командной кнопке будут происходить последовательно действия, описанные в программе:

Private Sub CommandButton1_Click()

Select Case NumClick

Case 0

NewData.SetText TextBox1.Text

Label1.Caption=«Из первого поля в DataObject»

Case 1

NewData.PutInClipboard

Label1.Caption=«Из DataObject в буфер обмена»

Case 2

TextBox2.Paste

Label1.Caption=«Из буфера обмена во второе поле»

End Select

NumClick=NumClick + 1

If NumClick=3 Then NumClick=0

End Sub

  • Откомпилируйте программу и запустите форму на выполнение.

Примечание. Перенос информации из одного поля в другое можно осуществить и через буфер обмена, минуя DataObject. Для копирования данных из поля ввода в буфер обмена можно использовать метод Сору.

Видео: «Ох уж эти девушки»

Ох уж эти девушки
Интересное в интернете: Цены на имплантация зубов в стоматологическом центре. Имплантация зубов цены в Москве.

Статья: DataObject и VBA

Раздел: VBA программирование (office)

Сайт: SD Company » Все разделы статей

Последнее изменение: 2010.11.18 в 08:47

Теги: dataobject, объект данных, vba

Следующая статья:

Drag and Drop в VBA
Drag and Drop в VBA
Описание, как работать средствами Visual Basic (VBA) с данными и событием Drag and Drop
Циклы в VBA
Циклы в VBA
Описание основных принципов, как работать с циклами в Visual Basic Application (VBA) и их возможности
Объекты Range и Selection в VBA
Объекты Range и Selection в VBA
Описание, как работать с текстовой информацией класса document при помощи методов Range и Selection
Введение в VBA
Введение в VBA
Изучение и применение на практике языка программирования Visual Basic for Application (VBA) и особенностей его применения с такими приложениями, как Microsoft Word и Microsoft Excel
ListBox VBA + Excel
ListBox VBA + Excel
Описание, как правильно и удобно формировать выпадающий список (listbox) средствами Visual Basic (VBA) + пример для Excel