Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > VB6 > Вставка из буфера обмена


Автор: Nikomed 26.1.2005, 11:49
Я делаю макрос для вставки числа, прочитанного из текстового файла в ячейку Excell 2003.
Через ActiveSheet.Paste мне не очень нравится, хотел сразу занести это число в переменную, используя Clipdoard, но не нашел как это сделать.
Может посоветуете, как использовать буфер обмена (Clipboard).

smile

Автор: amt 26.1.2005, 19:49
smile Не совсем понятно.
Тебе нужно присвоить переменной число из текстового файла?
Если это конечная цель, зачем вообще число писать в ячейку?
Открой текстовый файл, прочитай число, записав его в переменную.
А может я че не понял?
Тады по-понятнее напиши.

Автор: Gannibal 26.1.2005, 20:06
Работа с буфером обмена

…Многие приложения, относящиеся к категории редакторов, активно используют буфер обмена Windows. В данной статье я расскажу о том, как при помощи Visual Basic(а) можно использовать буфер обмена в ваших приложениях.

Запись данных

Существует два типа данных, которые можно записать в буфер обмена Windows - это текстовые и графические.
Для записи текстовых данных используется функция SetText объекта Clipboard:

Clipboard.SetText "Данные", | vbCFText | vbCFRTF | vbCFLink | , где

vbCFText - неформатированный текст;
vbCFText - форматированный RTF-текст;
vbCFLink - текст в формате DDE;

Например, чтобы записать в буфер обмена текст "VB 6.0 - хороший журнал", код будет иметь следующий вид:

Код

Clipboard.SetText " VB 6.0 - хороший журнал", vbCFText
, а для записи форматированного текста "VB 6.0 - хороший журнал":

Код

Clipboard.SetText "VB 6.0 - хороший журнал", vbCFRTF


Для записи графических данных используется функция SetData:

Clipboard.SetData Графический_объект, | vbCFBitmap | vbCFMetafile | vbCFDIB | vbCFPalette | , где

vbCFBitmap
- картинка в формате BMP;
vbCFMetafile - картинка в формате Windows-метафайлов;
vbCFDIB - формат DIB;
vbCFPalette - цветовая палитра;

Например, чтобы поместить данные из Picture1 (PictureBox) в буфер обмена, код будет таким:

Код

Clipboard.SetData Picture1.Picture, vbCFBitmap


Чтение данных

Для чтения текстовых данных используется функция GetText, а для графических, соответственно, GetData.
Например, код сообщения показывающего текстовые данных, находящиеся в буфере обмена, будет иметь следующий вид:

Код

MsgBox Clipboard.GetText


Примерно так же будет выглядеть код загрузки графических данных из буфера в Picture1 (PictureBox):

Код

Picture1.Picture = Clipboard.GetData


Формат данных

Для того чтобы узнать какой формат данных находится в буфере, используется метод Clipboard.GetFormat
Например, если буфер содержит данные в тестовом формате, то ниже написанный код возвратит значение True:

Код

MsgBox Clipboard.GetFormat(vbCFText)


Очистка

Для очистки буфера используется метод Clipboard.Clear


Автор: Exception 2.2.2005, 16:00
M.E.G.U.S, зря старался.
Цитата
Excell 2003
.
В VBA нет объекта Clipboard smile . имхо нужно юзать апи smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)