Как программно создать кнопку на панели инструментов, которая будет действовать как гиперссылка?

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

code: #vba
Private Sub CreateButtonHyperlink()
    With Application.CommandBars(1).Controls.Add(Type:=msoControlButton)
         .FaceId = 2083
         .OnAction = "MyHyperlink"
         .Caption = "Microsoft Excel"
         .TooltipText = "Посетить сайт"
         .Style = msoButtonIconAndCaption
    End With
End Sub
 
Private Sub MyHyperlink()
    On Error Resume Next
    ThisWorkbook.FollowHyperlink _
    Address:="http://samplecode.ru", NewWindow:=True
End Sub

Актуально только для MS Excel 2000, XP:

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

code: #vba
Private Sub CreateButtonHyperlink_XP()
    With Application.CommandBars(1).Controls.Add(Type:=msoControlButton)
         .FaceId = 2083
         .Caption = "Microsoft Excel"
         .Style = msoButtonIconAndCaption
         .TooltipText = "http://www.msoffice.nm.ru"
         .HyperlinkType = msoCommandBarButtonHyperlinkOpen
    End With
End Sub
  • В качестве примера выбрана стандартная панель инструментов ("Строка меню листа")
  • Вместо номера/индекса панели Вы можете использовать её имя, и заменить (1) на ("Worksheet Menu Bar")
  • При использовании этих примеров убедитесь, что панель инструментов не защищена
Поделиться:

Похожие статьи: