В этом руководстве по VBA рассматриваются различные способы работы с гиперссылками в VBA.
Гиперссылки VBA
С помощью VBA вы можете добавлять гиперссылки, удалять гиперссылки, создавать электронные письма с использованием гиперссылок и открывать файлы с помощью гиперссылок в VBA.
Добавить гиперссылку с VBA
Метод Hyperlinks.Add добавляет гиперссылку в ячейку с помощью VBA.
Следующий код добавит гиперссылку в ячейку A1:
123 | Подложка AddHyperlinkToCell ()ActiveSheet.Hyperlinks.Add Range ("A1"), адрес: = "https://www.automateexcel.com/excel/"Конец подписки |
Результат:
Добавление текста для отображения с помощью VBA
Вы можете добавить аккуратный удобный текст для отображения в гиперссылке с помощью VBA. Если вы использовали функциональные возможности рабочего листа, вы бы вставили гиперссылку, а затем добавили текст для отображения в предоставленном диалоговом окне.
В приведенном ниже коде показано, как добавить текст для отображения в гиперссылку с помощью VBA:
123 | Подложка TextToDisplayForHyperlink ()ActiveSheet.Hyperlinks.Add Range ("A1"), Address: = "https://www.automateexcel.com/excel/", TextToDisplay: = "Automate Excel"Конец подписки |
Результат:
Добавление всплывающей подсказки с помощью VBA
Вы можете добавить всплывающую подсказку к своей гиперссылке, которую зритель увидит при наведении курсора на ссылку.
В приведенном ниже коде показано, как добавить всплывающую подсказку к гиперссылке с помощью VBA:
123 | Подсказка для гиперссылки ()ActiveSheet.Hyperlinks.Add Range ("A1"), Address: = "https://www.automateexcel.com/excel/", TextToDisplay: = "Automate Excel", ScreenTip: = "Это ссылка для Automate Excel"Конец подписки |
Результат:
Удалить гиперссылку с помощью VBA
Метод Hyperlinks.Delete можно использовать для удаления гиперссылки из ячейки.
Следующий код удалит гиперссылку из ячейки A1 и текст в ячейке.
Обратите внимание, что простое удаление гиперссылки не приводит к удалению самого текста, поэтому, если вы хотите, чтобы текст был удален, вы также должны использовать метод Clear.
1234 | Sub DeleteHyperlinkinCell ()Диапазон ("A1"). Гиперссылки. УдалитьДиапазон ("A1"). ОчиститьКонец подписки |
Удалить все гиперссылки на листе
Вы также можете удалить все гиперссылки на листе с помощью метода Hyperlinks.Delete.
Следующий код удалит все гиперссылки на первом листе вашей книги:
123 | Sub RemoveAllHyperlinksInASheet ()ThisWorkbook.Sheets (1) .Hyperlinks.DeleteКонец подписки |
Переход по гиперссылке на веб-сайт с помощью VBA
Следующий код позволяет вам открыть адрес веб-сайта в новом окне браузера с помощью метода FollowHyperlink в вашей книге:
123 | Sub FollowHyperlinkForWebsite ()ActiveWorkbook.FollowHyperlink Address: = "https://www.automateexcel.com/excel", NewWindow: = TrueКонец подписки |
Переход по гиперссылке на папку на вашем диске
Следующий код откроет папку ExcelFiles на рабочем столе с помощью метода FollowHyperlink:
123 | Подписка FollowHyperlinkForFolderOnDrive ()ActiveWorkbook.FollowHyperlink Адрес: = "C: \ Desktop \ ExcelFiles"Конец подписки |
Переход по гиперссылке на файл на вашем диске
Следующий код откроет файл Excel с именем WorkbookOne в папке ExcelFiles на рабочем столе с помощью метода FollowHyperlink:
123 | Подписка FollowHyperlinkForFile ()ActiveWorkbook.FollowHyperlink Адрес: = "C: \ Desktop \ ExcelFiles \ WorkbookOne.xlsx", NewWindow: = TrueКонец подписки |
Перейти к ячейке на другом листе той же книги
Вы можете добавить гиперссылку на ячейку на одном листе, которая переводит вас на другой лист в той же книге с VBA. Допустим, вы находитесь на Sheet1, ячейке A1 вашей книги, и вы хотите вставить гиперссылку на Sheet2, ячейку B2 той же книги, вы можете использовать для этого свойство SubAddress.
Следующий код демонстрирует, как это сделать:
123 | Sub GoToAnotherCellInAnotherSheetInTheSameWorkbook ()ActiveSheet.Hyperlinks.Add Range ("A1"), Address: = "", SubAddress: = "'" & Sheet2.Name & "'! B2", TextToDisplay: = "Щелкните здесь, чтобы перейти к Sheet2, ячейке B2 та же рабочая тетрадь "Конец подписки |
Отображение всех гиперссылок на листе
Вы можете получить доступ к коллекции гиперссылок и отобразить все гиперссылки на вашем листе в Промежуточное окно в редакторе VBA. Вы должны сначала нажать CTRL + G на клавиатуре или перейдите в Вид> Промежуточное окно в редакторе VBE, чтобы просмотреть промежуточное окно.
В следующем коде показано, как просматривать гиперссылки на листе в промежуточном окне:
1234567891011 | Подложка ShowAllTheHyperlinksInTheWorksheet ()Dim ws как рабочий листУстановить ws = ThisWorkbook.Sheets (1)Для каждой ссылки в ws.HyperlinksDebug.Print lnk.AddressСледующий линкКонец подписки |
Результаты отображаются в промежуточном окне.
Отображение всех гиперссылок в книге
Вы можете получить доступ к коллекции гиперссылок, чтобы просмотреть и отобразить все гиперссылки в вашей книге в окне сообщения.
В следующем коде показано, как это сделать, и для этого используется вложенный цикл:
1234567891011 | Подложка ShowAllTheHyperlinksInTheWorkbook ()Dim ws как рабочий листДля каждой страницы в ActiveWorkbook.WorksheetsДля каждой ссылки в ws.HyperlinksMsgBox lnk.AddressСледующий линкСледующий wsКонец подписки |
Использование метода FollowHyperlink для создания писем
Вы также можете создавать электронные письма с помощью метода FollowHyperlink.
В приведенном ниже коде показано, как создавать электронные письма с помощью метода FollowHyperlink в VBA:
12345678 | Sub SendEmailUsingHyperlink ()Dim msgLink As StringmsgLink = "mailto:" & "[email protected]" & "?" & "subject =" & "Hello" & "&" & "body =" & "Как дела?"ActiveWorkbook.FollowHyperlink (msgLink)Конец подписки |
Результат:
Добавление гиперссылки к автофигуре в Excel
Вы можете добавить гиперссылку на автофигуру в Excel, чтобы, когда пользователь нажимает на форму, он переходил на адрес веб-сайта.
Следующий код создает прямоугольник с закругленными углами, добавляет текст в прямоугольник и добавляет гиперссылку к прямоугольнику:
12345678910111213 | Sub AddingAHyperlinkToAShape ()Dim myShape As ShapeУстановить myDocument = Worksheets ("Sheet1")Установите myShape = myDocument.Shapes.AddShape (msoShapeRoundedRectangle, 100, 100, 90, 30)С myShape.TextFrame.Characters.Text = "Автоматизировать Excel"Конец сActiveSheet.Hyperlinks.Add Anchor: = myShape, Address: = "https://www.automateexcel.com/excel"Конец подписки |
Результат:
Вставка формулы гиперссылки в ячейку с помощью VBA
Допустим, у вас есть заголовок сообщения в ячейке A4 и ссылка на сообщение в ячейке B4, как показано на изображении ниже.
Краткое напоминание о синтаксисе формулы гиперссылки на листе:
ГИПЕРССЫЛКА (расположение_ссылки, [дружественное_имя])
link_location - это ссылка на документ, файл, место в книге или на сайте.
Дружественное имя - (По желанию) - текстовое или числовое значение, отображаемое в ячейке.
В ячейку C4 вы хотите добавить гиперссылку с понятным текстом для отображения, теперь обычно вы вводите формулу = ГИПЕРССЫЛКА (B4, A4) в C4, чтобы получить следующее:
Вместо этого вы можете использовать VBA для достижения того же результата и вставить эту формулу в ячейку на Sheet1 со следующим кодом:
123 | Подложка InsertHyperlinkFormulaInCell ()ActiveWorkbook.Worksheets ("Sheet1"). Range ("C4"). Formula = "= hyperlink (B4, A4)"Конец подписки |
Добавление гиперссылки к кнопке в Access
VBA также позволяет работать с гиперссылками в Access. Допустим, у нас есть кнопка в форме, и когда пользователь нажимает на нее, мы хотим, чтобы он перешел на веб-сайт. Один из способов сделать это - использовать метод Application.FollowHyperlink.
У нас есть образец формы с кнопкой buttonOne, показанной ниже.
Код для этой кнопки будет:
12345 | Кнопка Private SubOne_Click ()Application.FollowHyperlink («https://www.automateexcel.com/excel/»)Конец подписки |
Создание гиперссылки из выделения в Word
Вы также можете работать с гиперссылками в Word VBA.
Допустим, у нас есть текст в Слово с надписью «Щелкните здесь, чтобы перейти на веб-сайт автоматизации Excel», который выбран, как показано ниже.
Чтобы превратить этот текст в гиперссылку с помощью VBA, вы можете использовать следующий код:
123 | Частный Sub TurnASelectionIntoAHyperlink ()ActiveDocument.Hyperlinks.Add Anchor: = Selection.Range, Address: = "https://www.automateexcel.com/excel/", ScreenTip: = "Щелкните здесь, пожалуйста", Target: = NewWindowКонец подписки |
Результат: