Как скопировать в буфер текст строковой переменной?

Весь MS Office, программирование на Visual Basic for Applications и MS VB

Модератор: Naeel Maqsudov

Ответить
Orca
Сообщения: 4
Зарегистрирован: 24 окт 2009, 17:34

Собственно сабж. Как скопировать в буфер текст строковой переменной (String). Хочу использовать в простеньком макросе в Word'е.
Аватара пользователя
Busine2009
Сообщения: 322
Зарегистрирован: 18 июл 2009, 15:34
Контактная информация:

Вставь код, как ты это делаешь.
А вообще, копирование производится методом Copy. Если хочешь скопировать несколько вещей, то открой сначала буфер обмена. Программно, чтобы открыть буфер обмена, используй Макрорекордер.
Orca
Сообщения: 4
Зарегистрирован: 24 окт 2009, 17:34

В том и дело что - никак.
Допустим код типа:
Sub макрос()
Dim Str As String
Str = "text"
End Sub
Как передать text в буфер обмена?
Если написать Str.Copy ругается "Compile error:Invalid Qualifier"
Так что метод Copy тут не работает.
Teslenko_EA
Сообщения: 526
Зарегистрирован: 04 фев 2007, 18:37
Откуда: Сургут
Контактная информация:

Здравствуйте Orca.
Возможно Вам это будет интересно.
Евгений.
Вложения
la_api.zip
(56.24 КБ) 66 скачиваний
Аватара пользователя
EducatedFool
Сообщения: 197
Зарегистрирован: 06 апр 2008, 14:03
Откуда: Россия, Урал
Контактная информация:

Для копирования текста в буфер обмена можно обойтись и без WinAPI:
http://www.programmersforum.ru/showpost ... ostcount=4
Макросы для Excel, Word, CorelDRAW. Быстро, профессионально, недорого. http://ExcelVBA.ru/

Благодарности принимаются на кошелёк WebMoney: R318574877619 и Яндекс.Деньги: 41001335672216
Orca
Сообщения: 4
Зарегистрирован: 24 окт 2009, 17:34

Всем спасибо!
Аватара пользователя
Busine2009
Сообщения: 322
Зарегистрирован: 18 июл 2009, 15:34
Контактная информация:

Orca
Вот можно как поместить переменную в буфер обмена:

Код: Выделить всё

Sub макрос()
Dim Str As String
Str = "text text"
Selection.InsertAfter Str
Selection.Cut
End Sub
Orca
Сообщения: 4
Зарегистрирован: 24 окт 2009, 17:34

Ещё раз спасибо! Самый простой вариант.
Ответить