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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.09.2016, 16:28   #1
GfiFer
Новичок
Джуниор
 
Регистрация: 05.10.2014
Сообщений: 1
По умолчанию Помогите скопировать гиперссылку в буфер обмена

Добрый день! Так как класс Hyperlinks разработан для Exel - пишу сюда. В некоторые документы мне нужно вставлять ссылки на письма в outlook. Для получения ссылок написал такой макрос, он копирует внутренний ID письма и создает верную ссылку, никак не могу сделать так, чтобы в буфер копировалась именно гиперссылка

Работающий макрос, копирующий обычную ссылку и тему письма:
Код:
Sub CopyLink()
   Dim objMail As Outlook.MailItem
   Dim doClipboard As DataObject
   Set doClipboard = New DataObject
 
   If Application.ActiveExplorer.Selection.Count <> 1 Then
       MsgBox ("Можно выбрать только одно письмо")
       Exit Sub
   End If
 
   Set objMail = Application.ActiveExplorer.Selection.Item(1)
   doClipboard.SetText "[[outlook:" + objMail.EntryID + "][MESSAGE: " + objMail.Subject + " (" + objMail.SenderName + ")]]"
   doClipboard.PutInClipboard
End Sub
Попытка сделать копирование гиперссылки:
Код:
Sub CopyLink()
   Dim objMail As Outlook.MailItem
   Dim doClipboard As DataObject
   Set doClipboard = New DataObject
 
   If Application.ActiveExplorer.Selection.Count <> 1 Then
       MsgBox ("Можно выбрать только одно письмо")
       Exit Sub
   End If
   Set objMail = Application.ActiveExplorer.Selection.Item(1)
   ActiveDocument.Hyperlinks.Add Anchor:=Selection.Range, Address:= _
        "outlook:" + objMail.EntryID, SubAddress:="", ScreenTip:="", TextToDisplay:=objMail.SenderName
   Selection.Copy
End Sub
На последней строке выдаёт ошибку: 4605 "Метод или свойство недоступны, поскольку выделенный текст отсутствует"
Подскажите, как победить
GfiFer вне форума Ответить с цитированием
Старый 23.09.2016, 17:19   #2
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

возможно так:
ActiveDocument.Hyperlinks(Hyperlink s.Count).Copy
или
ActiveDocument.Hyperlinks(Hyperlink s.Count).Select
Selection.Copy
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Скопировать текст между тегами в буфер обмена daaa Общие вопросы Delphi 2 08.08.2013 14:17
Скопировать файл в буфер обмена cw_o Microsoft Office Word 2 31.08.2012 14:17
скопировать файл в буфер обмена Rolls Общие вопросы Delphi 15 17.02.2012 01:03
Как скопировать текст в буфер обмена с одного edit-a и вставить в другой SeRhy Общие вопросы Delphi 2 26.07.2008 23:02
Скопировать в буфер обмена Dj_smart JavaScript, Ajax 8 15.05.2008 19:16