Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.07.2017, 13:25   #1
Maksim_V
Пользователь
 
Регистрация: 06.07.2017
Сообщений: 21
По умолчанию Гиперссылка в буфере обмена

Добрый день!

Подскажите пожалуйста по работе с буфером обмена. Задача у меня в том чтобы передать в буфер текст (ActiveWorkbook.FullName) в виде гиперссылки, при этом не внося изменений в открытой книге.
Передать текст в буфер сделал:
Код:
    Dim objClpb As New DataObject, sStr As String
    Dim s As String
    sStr = ActiveWorkbook.FullName
    objClpb.SetText sStr
    objClpb.PutInClipboard
Но как трансформировать его в вид гиперссылки, чтобы потом в других программах офиса можно было нажать ctrl+v и увидеть гиперссылку, не могу ни найти, ни придумать..?
Maksim_V вне форума Ответить с цитированием
Старый 07.07.2017, 13:02   #2
Maksim_V
Пользователь
 
Регистрация: 06.07.2017
Сообщений: 21
По умолчанию

Пробовал через пустую ячейку в открытой книге - вставить туда, скопировать из нее в буфер, получается, текст в виде гиперссылки попадает в буфер, но условие в том чтобы эту ячейка потом очистить, а после удаления, очистки, буфер тоже очищается...
Maksim_V вне форума Ответить с цитированием
Старый 07.07.2017, 13:31   #3
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Сложно это, как мне кажется
Я за много лет работы с VBA подобного кода не видел (чтобы в буфер обмена не текст помещать, а объект другого типа)

Если ваш код выполняется из надстройки, можно создавать ячейку с гиперссылкой (которую потом будете копировать) на листе надстройки (который не виден), или на скрытом листе ActiveWorkbook (если код там расположен, и других файлов нет)
Т.е. очистка ячейки не будет требоваться (ибо ячейку все равно не видно)
Не пробовал, - но должно сработать.
EducatedFool вне форума Ответить с цитированием
Старый 07.07.2017, 15:54   #4
Maksim_V
Пользователь
 
Регистрация: 06.07.2017
Сообщений: 21
По умолчанию

Уффф. Спасибо!!! Сделал через лист надстройки.
Может кому пригодится:
Код:
Public Sub HL(control As IRibbonControl)

Dim iSht As Worksheet
Dim sStr

sStr = ActiveWorkbook.FullName
     
With Workbooks("ПроверкаИПР.xlam")
     With .Worksheets("Лист2")
            .Hyperlinks.Add Anchor:=.Range("a5"), _
             Address:=sStr, _
             TextToDisplay:="Ссылка"
     .Range("a5").Copy
     End With
End With
     
End Sub
Maksim_V вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Автозамена в буфере обмена Егор Александрович Microsoft Office Word 1 27.02.2016 03:36
PasteLink - простой макрос на VBA для Excel для вставки в ячейку гипперссылки на файл в буфере обмена. wyfinger Microsoft Office Excel 4 22.05.2013 14:10
Кодировка в буфере обмена dacorp Общие вопросы Delphi 3 14.05.2011 16:46
Выловить в буфере обмена даные с значением http -=Virus=- Помощь студентам 13 20.02.2010 23:14
Что у тебя в буфере обмена? Hollander Свободное общение 26 18.02.2010 16:55