Найти тему
Иван Карпов

Вставка гиперссылок на листы в Excel макрос

Добрый день уважаемые читатели блога! После небольшого перерыва возобновляю работу по Excel. Вопросов накопилось довольно много — буду отвечать на них по очереди. 

Сегодня речь пойдёт о гиперссылках в Excel, точнее об их автоматической вставке на лист. Представим ситуацию, когда в нашей книге листов огромное количество, бухгалтерские расчёты, к примеру. 

Вставить вручную гиперссылки можно, пусть для этого и понадобится чуть больше времени. Обычно мы вставляем гиперссылки через вкладку «Вставка» и кнопку «Гиперссылка», а затем переходим на пункт «Место в документе».

-2

Видите, уже сложнее. Проделать такую операцию с точки зрения лени времени будет слишком затратно.  Поэтому напишем небольшой макрос. 

Вставим в наш документ новый модуль:

  • Вкладка «Разработчик», блок кнопок «Код», кнопка «Visual Basic»;
  • Далее «Insert» — > «Module».
-3

Поместим в поле кода следующий текст:

Sub SheetNamesAsHyperLinks()
Dim sheet As Worksheet
Dim cell As Range
With ActiveWorkbook
‘ Для каждого листа (имени) создадим свою ссылку
For Each sheet In ActiveWorkbook.Worksheets
Set cell = Worksheets(1).Cells(sheet.Index, 1)
.Worksheets(1).Hyperlinks.Add Anchor:=cell, Address:=»», _
SubAddress:=» » & sheet.Name & «!A1»
cell.Formula = sheet.Name
Next
End With
End Sub

Немного подробностей:

  • у нас есть две переменные «sheet» и «cell», лист и ячейка;
  • «With activeWorkbook» — показывает, что макрос будет оперировать пространством всей книги;
  • «For Each sheet In ActiveWorkbook.Worksheets
    Set cell = Worksheets(1).Cells(sheet.Index, 1)
    .Worksheets(1).Hyperlinks.Add Anchor:=cell, Address:=»», _
    SubAddress:=» » & sheet.Name & «!A1» «
     » — для каждого листа в рабочей книге мы будем использовать первую ячейку (А1);
  • «cell.Formula = sheet.Name» — формула для макроса будет помещение в ячейку A1 названия первого листа книги, далее в A2 второго и т.д.

Таким образом, мы экономим себе время на переходах, так как не отвлекаемся на нижнюю часть экрана с именами листов, а имеем список листов в виде гиперссылок. Понаблюдаем за результатами работы. Нажимаем сочетание клавиш ALT+F8 или переходим на вкладку «Разработчик», нажимаем кнопку «Макросы», у нас единственная строка «SheetNamesAsHyperLinks», нажимаем «Выполнить».

-4

На листе «Оглавление» появится список всех существующих листов в нашей рабочей книге.

-5

Теперь мы можем просто щёлкать ячейку с именем листа для перехода. 

Если что-то было непонятно, посмотрите наше видео!