Макрос копирования содержимого объектов textbox или combobox в буфер обмена.
Порой для копирования информации в программе «Excel» недостаточно воспользоваться пунктом контекстного меню «копировать» или сочетанием клавиш ctrl+C.
Необходим макрос, который после активации будет копировать содержимое элементов vba textbox или combobox для дальнейшего использования.
Написать такой макрос довольно просто. Занимает он всего 3-4 строчки кода.
Рассмотрим два способа копирования содержимого:
Первый способ прост, но не всегда работает. Суть данного способа копирования информации заключается в программном переносе курсора мыши в нужный элемент, например, textbox и активации сочетания клавиш на клавиатуре ctrl+A и ctrl+C.
Выглядит данный макрос следующим образом:
Private Sub CommandButton4_Click().
Me.TextBox1.SetFocus ‘ перенос курсора в textbox
VBA.SendKeys «^A», True ‘выделение всего текста в textbox активация клавиш ctrl+A.
VBA.SendKeys «^C», True ‘копирование выделенного текста, ctrl+C.
SendKeys «^V», True
End Sub
Работает он только при включенной латинской раскладке клавиатуры, поэтому требует программного перевода раскладки в режим «En.».
Второй способ прост и безотказен.
В этом способе для копирования используется оператор «Copy»
И макрос имеет вид:
Private Sub CommandButton4_Click()
TextBox1.SelStart = 0
TextBox1.SelLength = TextBox1.TextLength
TextBox1.Copy
End Sub
Какой из перечисленных способов окажется наиболее эффективен для решения Ваших задач, решать конечно же Вам.
Я протестировал оба и мне больше понравился второй вариант решения.