Excel макрос создать гиперссылку

Создание гиперссылки в VBA Excel методом Hyperlinks.Add для перехода на другой лист, на интернет-сайт, для открытия любого файла в программе по умолчанию.

Hyperlinks.Add — это метод, который добавляет новую гиперссылку к указанному объекту Range (диапазону, ячейке) или объекту Shape (фигуре).

Синтаксис

Expression.Add (Anchor, Address, SubAddress, ScreenTip, TextToDisplay)

Expression — выражение (переменная), возвращающее объект Hyperlinks.

Параметры

Параметр Описание
Anchor Объект Range или объект Shape, к которому привязывается (добавляется) новая гиперссылка. Обязательный параметр. Тип данных — Object.
Address Адрес гиперссылки. Обязательный параметр. Тип данных — String.
SubAddress Субадрес гиперссылки. Необязательный параметр. Тип данных — Variant.
ScreenTip Всплывающая подсказка, отображаемая при наведении указателя мыши на текст гиперссылки. Необязательный параметр. Тип данных — Variant.
TextToDisplay Текст гиперссылки. Необязательный параметр. Тип данных — Variant.

Если текст гиперссылки (TextToDisplay) не указан, будет отображен текст параметров Address и SubAddress.

Создание гиперссылки на рабочий лист другой книги:

ActiveSheet.Hyperlinks.Add Anchor:=Range(«A4»), Address:=«C:UsersEvgeniyDesktopКнига2.xlsx», _

    SubAddress:=«Лист3!D5», ScreenTip:=«Гиперссылка на Лист3!D5 в Книга2», TextToDisplay:=«Книга2 — Лист3!D5»

Создание гиперссылки на другой лист текущей книги:

ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:=«», _

    SubAddress:=«Лист4!D6», TextToDisplay:=«Эта книга — Лист4!D6»

Создание гиперссылки на другую ячейку того же листа:

Worksheets(«Лист1»).Hyperlinks.Add Anchor:=Range(«A1»), Address:=«», _

    SubAddress:=«Лист1!D6», TextToDisplay:=«Перейти к D6»

Создание гиперссылки на документ Word:

ActiveSheet.Hyperlinks.Add Anchor:=Range(«A1»), Address:=«C:UsersEvgeniyDocumentsДокумент 1.docx», _

    TextToDisplay:=«Ссылка на Документ 1»

Создание гиперссылки на точечный рисунок:

ActiveSheet.Hyperlinks.Add Anchor:=Range(«A1»), Address:=«C:UsersEvgeniyDocumentsРисунок 1.bmp», _

    TextToDisplay:=«Ссылка на Рисунок 1»

Пример добавления гиперссылки на рубрику «VBA Excel» сайта «Время не ждёт»:

ActiveSheet.Hyperlinks.Add Anchor:=Range(«A1»), Address:=«https://vremya-ne-zhdet.ru/category/vba-excel/», _

    TextToDisplay:=«Рубрика VBA Excel»

Поиск первой ячейки с гиперссылкой в заданном диапазоне:

Sub Primer()

Dim myRange As Range, n As Integer, i As Integer, s As String

‘Задаем диапазон поиска

Set myRange = Range(«A1:G10»)

‘Вычисляем количество ячеек в заданном диапазоне

n = myRange.Cells.Count

‘Ищем первую ячейку с гиперссылкой

    For i = 1 To n

        If myRange.Cells(i).Hyperlinks.Count > 0 Then

            s = myRange.Cells(i).Address

            Exit For

        End If

    Next

MsgBox s

End Sub

Для поиска последней ячейки с гиперссылкой в заданном диапазоне следует заменить строку
For i = 1 To n
на
For i = n To 1 Step -1.


Создание гиперссылок макросом

nick7zmail

Дата: Понедельник, 13.05.2013, 14:18 |
Сообщение № 1

Группа: Пользователи

Ранг: Прохожий

Сообщений: 6


Репутация:

0

±

Замечаний:
0% ±


Вообщем дело в следующем…есть табличка с названиями файлов…есть файлы (в первом случае в одной папке с файлом excel, во втором — раскиданы по разным папкам…)…нужно чтобы макрос присвоил гиперссылки ячейкам с названиями файлов на сами файлы…для первого случая находил макрос для 2003 офиса…в 2007 убрали функцию которая там использовалась, адаптировать так и не смог. Если это не сложно — сделайте набросок макроса….у меня не получилось.

 

Ответить

Serge_007

Дата: Понедельник, 13.05.2013, 14:32 |
Сообщение № 2

Группа: Админы

Ранг: Местный житель

Сообщений: 15888


Репутация:

2623

±

Замечаний:
±


Excel 2016

[vba]

Код

Sub nick7zmail()
     Dim cells As Range
         For Each cells In Range(«a1:a10»)
         cells.Hyperlinks.Add Anchor:=cells, Address:=cells.Value, TextToDisplay:=cells.Value
     Next cells
End Sub

[/vba]

ЗЫ Смотрите в какой раздел постите!
Тему перенёс


ЮMoney:41001419691823 | WMR:126292472390

 

Ответить

nick7zmail

Дата: Понедельник, 13.05.2013, 16:57 |
Сообщение № 3

Группа: Пользователи

Ранг: Прохожий

Сообщений: 6


Репутация:

0

±

Замечаний:
0% ±


Цитата (Serge_007)

ЗЫ Смотрите в какой раздел постите!

Прошу прощения. Это был первый пост. Увидел в той ветке вопрос про макрос, запостил туда же.
Для 1го варианта помогло) благодарю.
А для 2го есть что нить столь же простенькое? Связанное с функцией поиска по фс, и нахождения в именах файлов текста ячейки?

 

Ответить

Serge_007

Дата: Понедельник, 13.05.2013, 17:05 |
Сообщение № 4

Группа: Админы

Ранг: Местный житель

Сообщений: 15888


Репутация:

2623

±

Замечаний:
±


Excel 2016

Цитата (nick7zmail)

ля 2го есть что нить столь же простенькое?

Это Вы о чём? Расположение файлов не играет никакой роли, макрос тупо присваивает ссылку тексту не обращаясь к самим файлам


ЮMoney:41001419691823 | WMR:126292472390

 

Ответить

RAN

Дата: Вторник, 14.05.2013, 00:33 |
Сообщение № 5

Группа: Друзья

Ранг: Экселист

Сообщений: 5645

Цитата (Serge_007)

Расположение файлов не играет никакой роли

Это ты погорячился! smile

Цитата (Serge_007)

макрос тупо присваивает ссылку

если в ячейке FullName.
А если просто Name, то не тупо, а Thisworkbook.Path & Name


Быть или не быть, вот в чем загвоздка!

 

Ответить

nick7zmail

Дата: Вторник, 14.05.2013, 06:33 |
Сообщение № 6

Группа: Пользователи

Ранг: Прохожий

Сообщений: 6


Репутация:

0

±

Замечаний:
0% ±


Цитата (Serge_007)

Это Вы о чём?

Цитата (nick7zmail)

в первом случае в одной папке с файлом excel, во втором — раскиданы по разным папкам…

пример -в ячейках а1:а3 текст 1, 2, 3, файлы в папках Thisworkbook.Path111.txt Thisworkbook.Path122.doc Thisworkbook.Path223.jpg…нужно чтобы в ячейках а1:а3 были гиперссылки на эти файлы…т.е. использовать поиск по фс (желательно с выставлением папки поиска…точнее скорее всего это обязательный параметр для функции будет), скопировать путь файла, выставить его в гиперссылке.
(для моего случая мне бы хватило варианта, если бы расширения были одинаковыми…но с разными расширениями интереснее)) — просто узнать на будущее)

Сообщение отредактировал nick7zmailВторник, 14.05.2013, 08:08

 

Ответить

Serge_007

Дата: Вторник, 14.05.2013, 07:06 |
Сообщение № 7

Группа: Админы

Ранг: Местный житель

Сообщений: 15888


Репутация:

2623

±

Замечаний:
±


Excel 2016

Цитата (RAN)

если в ячейке FullName.
А если просто Name, то не тупо, а Thisworkbook.Path & Name

Верно! Я взял случайный файл — в нём были полные названия. Автор сам виноват — не соблюдает правила форума, отсюда и результат. Зарекался не помогать в таких случаях, да вот забыл…


ЮMoney:41001419691823 | WMR:126292472390

 

Ответить

nick7zmail

Дата: Вторник, 14.05.2013, 07:51 |
Сообщение № 8

Группа: Пользователи

Ранг: Прохожий

Сообщений: 6


Репутация:

0

±

Замечаний:
0% ±


Цитата (Serge_007)

Автор сам виноват — не соблюдает правила форума

Простите, чем же? Вопрос задал вполне конкретно, на что получил конкретный ответ который полностью устроил для решения 1ой ситуации, за что очень благодарен. Сделать полные ссылки вместо относительных не проблема. Вторую проблему расписал конкретнее в предыдущем посте. Буду еще более благодарен форумчанам если и это решится.

 

Ответить

Serge_007

Дата: Вторник, 14.05.2013, 08:59 |
Сообщение № 9

Группа: Админы

Ранг: Местный житель

Сообщений: 15888


Репутация:

2623

±

Замечаний:
±


Excel 2016

Цитата (nick7zmail)

чем же?

А Вы их почитайте и тогда у Вас подобных вопросов возникать не будет. Да и решения будете получать через несколько минут, а не дней


ЮMoney:41001419691823 | WMR:126292472390

 

Ответить

nick7zmail

Дата: Среда, 15.05.2013, 16:40 |
Сообщение № 10

Группа: Пользователи

Ранг: Прохожий

Сообщений: 6


Репутация:

0

±

Замечаний:
0% ±


Цитата (Serge_007)

А Вы их почитайте

Я их читал еще при создании темы, и все же в своих словах не нашел ничего не соответствующее…поэтому и прошу указать пункт который нарушен хотя бы…
1) поиском пользовался…находил пару отлично сделанных макросов и файлов excel по созданию списка файлов…очень понравились, но не то (как я уже говорил хотелось бы и в первом макросе сравнение с фс добавить (т.е. смотрим что написано в ячейке > ищем, есть ли такой файл в папке > если есть, делаем на него гиперссылку)…
2) тема вполне конкретная, точнее не назовешь…
3) задачи описаны полностью (для второго случая привел полнейшее разьяснение, первый в принципе решен, но см.выше, так было бы гораздо продуктивнее и интереснее))…кстати этот же макрос решил бы и 2ю задачу, т.к. глубина поиска задается)

прикладывать файлы никакие не вижу смысла…т.к. ситуация описана в общем случае в полном объеме, и смоделировать ее не проблема…могу конечно приложить excel файлик с ячейками a1:a3 с надписями 1,2,3 и заархивированый кусок дерева фс, но это помоему бессмысленно.

Дальнейший спор на эту тему я считаю — глупость и оффтоп. Зачем ссорится граждане форумчане =). Да и решения до сих пор нет…
Как я уже говорил, пару лет назад находил макрос для 2003 офиса, и желающих увидеть его адаптацию под 2007+ (там он не работал, ибо убрали какую то функцию) было очень много судя по просьбам, комментам на форумах и тп…у меня это не получилось…и к сожалению повторно я его не смог найти. Но работал по той же схемке

Цитата (Я)

смотрим что написано в ячейке > ищем, есть ли такой файл в папке > если есть, делаем на него гиперссылку)

Пишите, у кого есть идеи, жду ответа.
Заранее благодарен.

Сообщение отредактировал nick7zmailСреда, 15.05.2013, 16:41

 

Ответить

AndreTM

Дата: Четверг, 16.05.2013, 07:16 |
Сообщение № 11

Группа: Друзья

Ранг: Старожил

Сообщений: 1762


Репутация:

498

±

Замечаний:
0% ±


2003 & 2010

Я так понимаю, что проблема 2003->2007 была в использовании метода .FileSearch.
Теперь для совместимости при работе с ФС используют функцию Dir, а также FileSystemObject.
Примеры


Skype: andre.tm.007
Donate: Qiwi: 9517375010

Сообщение отредактировал AndreTMЧетверг, 16.05.2013, 07:17

 

Ответить

nick7zmail

Дата: Четверг, 16.05.2013, 07:30 |
Сообщение № 12

Группа: Пользователи

Ранг: Прохожий

Сообщений: 6


Репутация:

0

±

Замечаний:
0% ±


Цитата (AndreTM)

.FileSearch

Да, с ним проблемка была)…спс за пример, время будет, посмотрю…но я пробовал эти функции юзать в том макросе, что то там не выходило вроде…как попробую, отпишусь вообщем

 

Ответить

ortan

Дата: Среда, 09.09.2015, 19:23 |
Сообщение № 13

Группа: Пользователи

Ранг: Новичок

Сообщений: 10


Репутация:

0

±

Замечаний:
0% ±


Excel 2010

Нужна помощь в похожей ситуации. Стоит ли создать новый топик?
[moder]Да, создайте новую тему[/moder]

К сообщению приложен файл:

3504971.xlsx
(10.4 Kb)

Сообщение отредактировал PelenaСреда, 09.09.2015, 19:45

 

Ответить

Хитрости »

31 Январь 2013              17460 просмотров


Как сделать гиперссылку на процедуру?

В своих статьях я часто прикладываю примеры с кодами. Т.к. мой сайт ориентирован как на знающих программирование в Visual Basic for Application(VBA), так и на начинающих, я в примерах почти всегда на первом листе делаю кнопку, по нажатию которой можно сразу же перейти в редактор VBA на нужный код без каких-либо лишних телодвижений. Как-то меня уже просили разъяснить каким способом я это делаю. Вот сегодня на одном из форумов попросили в очередной раз, что и побудило меня сесть и написать эту статью. Итак, к сути.

На самом деле это не так уж и сложно. Для начала необходимо создать хоть какой-то код(макрос) внутри книги(предполагается, что это вы умеете уже. Если нет — статья в помощь). Предположим, что наш макрос расположен в модуле Module1 и называется он Макрос1. Теперь создадим кнопку для вызова этого макроса, если необходимо. А после этого создадим еще одну кнопку(я использую для этих целей автофигуры), по нажатию на которую мы и будем попадать сразу в тело нужного нам макроса.


Способ 1:
Жмем на созданной фигуре правой кнопкой мыши. Выбираем в появившемся меню Гиперссылка:
Добавить гиперссылку
Выбираем «Файлом, веб-страницей»(этот пункт открывается по умолчанию) и вписываем в поле Адрес:: #Module1.Макрос1
Создание гиперссылки
Вот и все. Наша ссылка готова.
Решетка(#) перед именем модуля указывает, что ссылка ведет на путь внутри документа. Она обязательна. После имени модуля(Module1) ставится точка, после которой указывается имя процедуры(Макрос1) или функции, на которую должна перейти гиперссылка. Никаких пробелов или иных символов быть не должно.

С прочими возможностями гиперссылок и методах из создания можно ознакомиться в статье: Что такое гиперссылка?


Способ 2:
Этот способ кажется мне более «замороченным» и не эстетичным. Я его практически не использую. Создаем еще одну процедуру(можно в отдельном модуле), в которой и прописываем переход в нужный модуль и в нужную процедуру:

Sub GoTo_Sub()
    Application.Goto "Module1.Макрос1"
End Sub

А созданной кнопке назначаем выполнение именно этого макросаGoTo_Sub. Главный недостаток этого метода в том, что придется для каждой процедуры либо создавать новую процедуру с переходом, либо действовать через всевозможные конструкции типа If...Then, Select Case, что не очень удобно. Но данный метод может быть использован и в других целях. Например, для перехода в конкретную процедуру при возникновении ошибки в другой процедуре.

Также см.:
Что такое гиперссылка?
Что такое макрос и где его искать?
Что такое модуль? Какие бывают модули?
Как создать кнопку для вызова макроса на листе?


Статья помогла? Поделись ссылкой с друзьями!

  Плейлист   Видеоуроки


Поиск по меткам



Access
apple watch
Multex
Power Query и Power BI
VBA управление кодами
Бесплатные надстройки
Дата и время
Записки
ИП
Надстройки
Печать
Политика Конфиденциальности
Почта
Программы
Работа с приложениями
Разработка приложений
Росстат
Тренинги и вебинары
Финансовые
Форматирование
Функции Excel
акции MulTEx
ссылки
статистика

Содержание

  1. VBA Excel. Метод Hyperlinks.Add (создание гиперссылки)
  2. Метод Hyperlinks.Add
  3. Синтаксис
  4. Параметры
  5. Создание гиперссылок
  6. Гиперссылка на другой лист
  7. Гиперссылка на любой файл
  8. Гиперссылка на интернет-сайт
  9. Поиск гиперссылок в диапазоне
  10. 12 комментариев для “VBA Excel. Метод Hyperlinks.Add (создание гиперссылки)”
  11. Как сделать кнопку перехода на другой лист в excel?
  12. Файл примера
  13. Скачать
  14. Метод гиперссылок
  15. Макросом
  16. Процедура создания
  17. Способ 1: автофигура
  18. Способ 2: стороннее изображение
  19. Способ 3: элемент ActiveX
  20. Способ 4: элементы управления формы
  21. Помогла ли вам эта статья?
  22. Способ 1. Горячие клавиши
  23. Способ 2. Переход мышью
  24. Способ 3. Оглавление
  25. Ссылки по теме
  26. Как сделать кнопку на листе Excel
  27. Как в Excel сделать кнопку с макросом
  28. Другие варианты использования кнопок
  29. Как сделать кнопку сортировки в Excel для таблиц

Создание гиперссылки в VBA Excel методом Hyperlinks.Add для перехода на другой лист, на интернет-сайт, для открытия любого файла в программе по умолчанию.

Метод Hyperlinks.Add

Синтаксис

Expression — выражение (переменная), возвращающее объект Hyperlinks.

Параметры

Параметр Описание
Anchor Объект Range или объект Shape, к которому привязывается (добавляется) новая гиперссылка. Обязательный параметр. Тип данных — Object.
Address Адрес гиперссылки. Обязательный параметр. Тип данных — String.
SubAddress Субадрес гиперссылки. Необязательный параметр. Тип данных — Variant.
ScreenTip Всплывающая подсказка, отображаемая при наведении указателя мыши на текст гиперссылки. Необязательный параметр. Тип данных — Variant.
TextToDisplay Текст гиперссылки. Необязательный параметр. Тип данных — Variant.

Если текст гиперссылки (TextToDisplay) не указан, будет отображен текст параметров Address и SubAddress.

Создание гиперссылки на рабочий лист другой книги:

Создание гиперссылки на другой лист текущей книги:

Создание гиперссылки на другую ячейку того же листа:

Создание гиперссылки на документ Word:

Создание гиперссылки на точечный рисунок:

Пример добавления гиперссылки на рубрику «VBA Excel» сайта «Время не ждёт»:

Поиск первой ячейки с гиперссылкой в заданном диапазоне:

Для поиска последней ячейки с гиперссылкой в заданном диапазоне следует заменить строку
For i = 1 To n
на
For i = n To 1 Step -1 .

12 комментариев для “VBA Excel. Метод Hyperlinks.Add (создание гиперссылки)”

Здравствуйте, Евгений.
Подскажите пожалуйста, как можно определить адрес ячейки, которая содержит гиперссылку? А если ячеек с гиперссылками несколько, то как определить адрес последней (нижней правой) из них?

Здравствуйте, Юрий!
Ответ добавил в конец статьи.

Добрый день!
Скажите, пожалуйста, как сделать, чтобы в переменную Address:= вставлять не конкретный адрес, а скопированную ссылку из буфера обмена?
Заранее спасибо!

Решил проблему вот так вот:

Добрый день!
У меня в очередной раз «зачудила» книга Excell. Сама поменяла родные адреса гиперссылок в Инет во многих ячейках на один, которые понравившейся ей, меняя лишь концовку 1649, 1650, …. .
В отладчике VBA вышел на этот список подмены: Range(«L10»). Hyperlinks.Items 1.Formyla[1…5] содержащий 5 вставляемых ею адресов. В VBA не удалось добраться до этих формул.
Скажите, пожалуйста, можно ли программно восстановить стоящие ранее адреса? И как это сделать? И можно ли ей запретить так своевольничать?

Здравствуйте, Павел!
Я не знаю, как восстановить предыдущую версию файла Excel. Есть что-то у разработчиков, но это не программно.
Код, который перезаписывает гиперссылки, поищите в модулях книги и листа. Процедуры, размещенные в этих модулях, могут запускаться самостоятельно при совершении определенных событий, к которым они привязаны.

Здравствуйте, Евгений!
Спасибо за ответ. Отрицательный ответ, когда книга шибко нужна, лишь стимулирует поиск решения. Буду делать ей “костыли”, гиперссылки превращу в обычный текст и, как лучший вариант, хотел бы запускать их программно без привязки к конкретной ячейке конкретного листа конкретной книги.
Скажите, пожалуйста, есть ли возможность программно запускать гиперссылку на открытие страницы в Инете? Без привязки к конкретной ячейке.

Здравствуйте, Павел!
Открыть страницу сайта можно методом FollowHyperlink. Этот метод может не работать в старых версиях Excel.

Здравствуйте, Евгений!
Спасибо за ответ. Предложенный Вами метод работает в моей версии.

Источник

Как сделать кнопку перехода на другой лист в excel?

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

Файл примера

Скачать

Вместо того, чтобы использовать стандартные унылые кнопки с ленты Разработчик, хотелось бы обратить ваше внимание, что, вообще говоря, любой графический объект Excel может послужить вам кнопкой.

Это может быть фигура (группа фигур) или рисунок. Надо ли говорить, что с эстетической точки зрения стандартные кнопки тихо курят в сторонке в сравнении со своими графическими собратьями?

Для добавления фигуры или рисунка на лист воспользуйтесь меню Вставка:

После этого отредактируйте объекты по своему вкусу. Например, я добавил тень.

Я хочу, чтобы при нажатии на кнопку, к примеру, Материалы, табличный курсор вставал на ячейку B6 вне зависимости от того, где он находился до этого момента. Для этого я собираюсь использовать функционал гиперссылок.

Для вставки гиперссылки щёлкните на вашем графическом элементе правой кнопкой мыши и в контекстном меню выберите пункт Гиперссылка… В открывшемся диалоговом окне надо выбрать слева раздел Место в документе, выбрать нужный нам лист (в нашем случае он называется Гиперссылки) и ввести адрес ячейки, на которую должен встать табличный курсор (у нас B6). Нажмите OK. Протестируйте работу кнопки.

После того, как я проделаю это со всеми кнопками, вводя разные адреса ячеек, можно будет насладиться возможностью быстро перескакивать на нужные разделы нашего листа. Очень удобно. Ваши пользователи будут довольны. Однако, есть небольшая ложка дёгтя. Когда вы идёте последовательно по разделам вниз, то табличный курсор встаёт так, что не очень ясно, какой сейчас раздел текущий. Посмотрите:

Чтобы избавиться от этого эффекта можно использовать очень простой трюк на основе макросов

Макросом

Вместо того, чтобы добавлять гиперссылку можно назначить очень простой VBA обработчик события нажатия мыши на нашем графическом объекте. Если вы уже добавили гиперссылку, то удалите её через контекстное меню фигуры. Я рекомендую дать вашим фигурам какие-то более благозвучные имена. Надо выделить фигуру и через адресную строку присвоить ей новое имя:

После этого нужно в контекстном меню фигуры выбрать Назначить макрос…

В открывшемся окне Назначить макрос объекту нажать кнопку Создать:

После этого вы переноситесь в VBA редактор, где система предлагает вам написать программный код обработчика события. Когда вы проделаете вышеописанное для всех шести кнопок, то это должно выглядеть так:

Теперь можно ввести VBA код, который очень прост. Мы будем использовать метод Goto объекта Applications, который имеет 2 параметра:

Ссылку на ячейку, в которую необходимо перейти табличному курсору

Параметр, который предписывает (или нет) данной ячейке занимать в окне левый верхний угол. True или False.

Так будет выглядеть наш код для файла примера:

Вот такой простой, но полезный трюк 🙂

Excel является комплексным табличным процессором, перед которым пользователи ставят самые разнообразные задачи. Одной из таких задач является создание кнопки на листе, нажатие на которую запускало бы определенный процесс. Данная проблема вполне решаема с помощью инструментария Эксель. Давайте разберемся, какими способами можно создать подобный объект в этой программе.

Процедура создания

Как правило, подобная кнопка призвана выступать в качестве ссылки, инструмента для запуска процесса, макроса и т.п. Хотя в некоторых случаях, данный объект может являться просто геометрической фигурой, и кроме визуальных целей не нести никакой пользы. Данный вариант, впрочем, встречается довольно редко.

Способ 1: автофигура

Прежде всего, рассмотрим, как создать кнопку из набора встроенных фигур Excel.

  1. Производим перемещение во вкладку «Вставка». Щелкаем по значку «Фигуры», который размещен на ленте в блоке инструментов «Иллюстрации». Раскрывается список всевозможных фигур. Выбираем ту фигуру, которая, как вы считаете, подойдет более всего на роль кнопки. Например, такой фигурой может быть прямоугольник со сглаженными углами.
  2. После того, как произвели нажатие, перемещаем его в ту область листа (ячейку), где желаем, чтобы находилась кнопка, и двигаем границы вглубь, чтобы объект принял нужный нам размер.
  3. Теперь следует добавить конкретное действие. Пусть это будет переход на другой лист при нажатии на кнопку. Для этого кликаем по ней правой кнопкой мыши. В контекстном меню, которое активируется вслед за этим, выбираем позицию «Гиперссылка».
  4. В открывшемся окне создания гиперссылки переходим во вкладку «Местом в документе». Выбираем тот лист, который считаем нужным, и жмем на кнопку «OK».

Теперь при клике по созданному нами объекту будет осуществляться перемещение на выбранный лист документа.

Урок: Как сделать или удалить гиперссылки в Excel

Способ 2: стороннее изображение

В качестве кнопки можно также использовать сторонний рисунок.

  1. Находим стороннее изображение, например, в интернете, и скачиваем его себе на компьютер.
  2. Открываем документ Excel, в котором желаем расположить объект. Переходим во вкладку «Вставка» и кликаем по значку «Рисунок», который расположен на ленте в блоке инструментов «Иллюстрации».
  3. Открывается окно выбора изображения. Переходим с помощью него в ту директорию жесткого диска, где расположен рисунок, который предназначен выполнять роль кнопки. Выделяем его наименование и жмем на кнопку «Вставить» внизу окна.
  4. После этого изображение добавляется на плоскость рабочего листа. Как и в предыдущем случае, его можно сжать, перетягивая границы. Перемещаем рисунок в ту область, где желаем, чтобы размещался объект.
  5. После этого к копке можно привязать гиперссылку, таким же образом, как это было показано в предыдущем способе, а можно добавить макрос. В последнем случае кликаем правой кнопкой мыши по рисунку. В появившемся контекстном меню выбираем пункт «Назначить макрос…».
  6. Открывается окно управление макросами. В нем нужно выделить тот макрос, который вы желаете применять при нажатии кнопки. Этот макрос должен быть уже записан в книге. Следует выделить его наименование и нажать на кнопку «OK».

Теперь при нажатии на объект будет запускаться выбранный макрос.

Урок: Как создать макрос в Excel

Способ 3: элемент ActiveX

Наиболее функциональной кнопку получится создать в том случае, если за её первооснову брать элемент ActiveX. Посмотрим, как это делается на практике.

  1. Для того чтобы иметь возможность работать с элементами ActiveX, прежде всего, нужно активировать вкладку разработчика. Дело в том, что по умолчанию она отключена. Поэтому, если вы её до сих пор ещё не включили, то переходите во вкладку «Файл», а затем перемещайтесь в раздел «Параметры».
  2. В активировавшемся окне параметров перемещаемся в раздел «Настройка ленты». В правой части окна устанавливаем галочку около пункта «Разработчик», если она отсутствует. Далее выполняем щелчок по кнопке «OK» в нижней части окна. Теперь вкладка разработчика будет активирована в вашей версии Excel.
  3. После этого перемещаемся во вкладку «Разработчик». Щелкаем по кнопке «Вставить», расположенной на ленте в блоке инструментов «Элементы управления». В группе «Элементы ActiveX» кликаем по самому первому элементу, который имеет вид кнопки.
  4. После этого кликаем по любому месту на листе, которое считаем нужным. Сразу вслед за этим там отобразится элемент. Как и в предыдущих способах корректируем его местоположение и размеры.
  5. Кликаем по получившемуся элементу двойным щелчком левой кнопки мыши.
  6. Открывается окно редактора макросов. Сюда можно записать любой макрос, который вы хотите, чтобы исполнялся при нажатии на данный объект. Например, можно записать макрос преобразования текстового выражения в числовой формат, как на изображении ниже. После того, как макрос записан, жмем на кнопку закрытия окна в его правом верхнем углу.

Теперь макрос будет привязан к объекту.

Способ 4: элементы управления формы

Следующий способ очень похож по технологии выполнения на предыдущий вариант. Он представляет собой добавление кнопки через элемент управления формы. Для использования этого метода также требуется включение режима разработчика.

  1. Переходим во вкладку «Разработчик» и кликаем по знакомой нам кнопке «Вставить», размещенной на ленте в группе «Элементы управления». Открывается список. В нем нужно выбрать первый же элемент, который размещен в группе «Элементы управления формы». Данный объект визуально выглядит точно так же, как и аналогичный элемент ActiveX, о котором мы говорили чуть выше.
  2. Объект появляется на листе. Корректируем его размеры и место расположения, как уже не раз делали ранее.
  3. После этого назначаем для созданного объекта макрос, как это было показано в Способе 2 или присваиваем гиперссылку, как было описано в Способе 1.

Как видим, в Экселе создать функциональную кнопку не так сложно, как это может показаться неопытному пользователю. К тому же данную процедуру можно выполнить с помощью четырех различных способов на свое усмотрение.

Мы рады, что смогли помочь Вам в решении проблемы.

Задайте свой вопрос в комментариях, подробно расписав суть проблемы. Наши специалисты постараются ответить максимально быстро.

Помогла ли вам эта статья?

У вас бывают файлы, где много листов? Реально много — несколько десятков? Переход на нужный лист в такой книге может напрягать — пока найдешь нужный ярлычок листа, пока по нему щелкнешь…

Способ 1. Горячие клавиши

Сочетания Ctrl+PgUp и Ctrl+PgDown позволят вам быстро пролистывать вашу книгу вперед-назад.

Способ 2. Переход мышью

Просто щелкните правой кнопкой мыши по кнопкам прокрутки, находящимся слева от ярлычков листов и выберите нужный лист:

Просто и изящно. Работает во всех версиях Excel.

Способ 3. Оглавление

Это способ трудоемкий, но красивый. Суть его в том, чтобы создать специальный лист с гиперссылками, ведущими на другие листы вашей книги и использовать его как «живое» оглавление.

Вставьте в книгу пустой лист и добавьте на него гиперссылки на нужные вам листы, используя команду Вставка — Гиперссылка (Insert — Hyperlink):

Можно задать отображаемый в ячейке текст и адрес ячейки, куда приведет щелчок по ссылке.

Если листов много и не хочется делать кучу ссылок вручную, то можно воспользоваться готовым макросом создания оглавления.

Ссылки по теме

  • Как создать лист-оглавление книги Excel для быстрого перехода на нужный лист
  • Автоматическое создание оглавления книги на отдельном листе с гиперссылками (надстройка PLEX)

Кнопка в Excel как ссылка на ячейку, какой-либо инструмент, созданный макрос значительно упрощает работу в программе. Чаще всего это графический объект с назначенным макросом или гиперссылкой. Рассмотрим, как сделать такую кнопку.

Как сделать кнопку на листе Excel

Суть работы: создать графический объект и назначить для него макрос или гиперссылку. Рассмотрим подробнее.

Способы создания графического объекта:

  1. Кнопка – элемент ActiveX. Переходим на вкладку «Разработчик». Нажимаем кнопку «Вставить». Открывается меню с набором элементов для вставки. Выбираем первый элемент ActiveX – «кнопку» (в виде серого кирпичика). Теперь рисуем курсором кнопку необходимого размера.
  2. Кнопка – элемент управления формы. Снова переходим на вкладку «Разработчик». Открываем меню инструмента «Вставить». Теперь выбираем элемент «кнопка» из первой группы (такой же серый кирпичик). Рисуем кнопку. Сразу открывается окно для назначения макроса: можно сделать сразу, а можно попозже.
  3. Кнопка – автофигура. Переходим на вкладку «Вставка». В меню «Иллюстрации» выбираем подходящую фигуру. Рисуем. По готовой фигуре можно щелкнуть правой кнопкой мыши и изменить оформление.
  4. Кнопка – рисунок. Переходим на вкладку «Вставка». В меню «Иллюстрации» выбираем инструмент «Рисунок». Для выбора будут предложены варианты, которые имеются на компьютере.

Графический объект создан. Теперь нужно сделать его «рабочим».

Как в Excel сделать кнопку с макросом

К примеру, написали макрос для выполнения определенной задачи. Чтобы запускать его, нужно каждый раз заходить в меню «Разработчик». Что неудобно. Гораздо проще создать «рабочую» кнопку.

Если мы использовали элемент ActiveX, то:

Для других графических объектов макрос назначается так же. Процедура еще проще. Нужно щелкнуть правой кнопкой мыши по нарисованной кнопке или картинке и выбрать инструмент «Назначить макрос».

Другие варианты использования кнопок

С помощью кнопок в Excel можно не только выполнять созданные макросы, но и переходить в определенную ячейку, другой документ, на другой лист. Рассмотрим подробнее.

Нарисуем графический объект и выделим его. На вкладке «Вставка» найдем кнопку «Гиперссылка».

После нажатия открывается окно для создания связи кнопки с файлом, веб-страницей, электронной почтой, новым документом, местом в текущем документе.

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

Подобные задачи можно выполнять и с помощью макросов. Например, чтобы при нажатии, пользователь попадал в определенную ячейку (М6), прописываем следующий код:

Sub Макрос 1()
Range(«M6»).Select
End Sub

Точно так же можно назначить макрос диаграмме, объектам WordArt, SmartAtr.

Как сделать кнопку сортировки в Excel для таблиц

Для показательного примера создайте тестовую таблицу как на рисунке:

  1. Вместо заголовков колонки таблицы добавим автофигуры, которые будут служить кнопками для сортировки по столбцам таблицы.
  2. В режиме Visual Basic — ALT+F11 в папке Modules вставляем новый модуль Module1. Для этого делаем по папке правый щелчок мышкой и выбираем: Insert-Module.
  3. Делаем двойной щелчок по Module1 и вводим в него следующий код:
  4. Назначаем каждой автофигуре свой макрос: для «Наименование» – Макрос1, а для «Май» – Макрос2 и т.д.

Все теперь достаточно только кликнуть по заголовку и таблица отсортирует данные относительно определенного столбца. Для удобства столбец «Наименование» Макрос1 сортирует по возрастанию благодаря параметру Order:=xlAscending. Во всех остальных столбцах присвоены макросы (2,3,4) с параметром Order:=xlDescending, который задает тип сортировки по убыванию. Чтобы видно было, в каком месяце было больше продано товара.

Скачать пример кнопки сортировки

Примечание. Такие простые макросы можно создать в автоматическом режиме без программирования или без написания VBA-кода, с помощью инструмента «Запись макроса».

Источник

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

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

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

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

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

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

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

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

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

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

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

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», нажимаем «Выполнить».

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

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

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

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

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

Вас может заинтересовать урок — Поменять строки местами.

Понравилась статья? Поделить с друзьями:
  • Excel макрос снятие пароля с макроса
  • Excel макрос скрыть пустые строки в excel
  • Excel макрос скрыть кнопку
  • Excel макрос скрывает лист
  • Excel макрос скопировать только значения