Hiperlinks VBA

Hiperlinks são URLs anexados a um valor que é visto quando passamos o mouse sobre ele e quando clicamos nele o URL é aberto, no VBA temos uma propriedade embutida para criar hiperlinks em VBA e para usar essa propriedade usamos o método Add junto com a instrução de hiperlink para inserir um hiperlink em uma célula.

Hiperlinks no Excel VBA

Mesmo que tenhamos a tecla de atalho Page Up e Page Down no Excel para mover de uma folha para outra. Mas torna-se complexo quando temos que mover entre 10 ou mais planilhas. É aqui que a beleza de “Hyperlinks no Excel” entra em cena. O hiperlink é um URL predeterminado que o leva à respectiva célula ou planilha conforme atribuída.

Todos nós sabemos como criar hiperlinks na planilha para mover rapidamente de uma planilha para outra e você também pode ir para qualquer outra planilha. Mas no artigo de hoje, mostraremos como criar hiperlinks usando a codificação VBA.

Fórmula de hiperlinks VBA

Vejamos a fórmula dos hiperlinks no Excel VBA.

  • Âncora: em qual célula você gostaria de criar um hiperlink.
  • Endereço: qual é o URL do hiperlink para navegar?
  • [Sub Address]: Qual é a localização da página?
  • [Dica de tela]: Qual é o valor a ser mostrado quando você posiciona o ponteiro do mouse sobre o nome do hiperlink ou célula?
  • [Texto para exibição]: Qual é o teste a ser exibido na célula? Por exemplo, nome da planilha.

Como criar hiperlinks no Excel VBA?

Você pode baixar este modelo de hiperlinks VBA aqui - Modelo de hiperlinks VBA

Suponha que você queira criar um hiperlink VBA para a planilha chamada “Planilha principal” da outra planilha “Exemplo 1”.

Na planilha “Exemplo 1” e na célula A1, irei criar o hiperlink usando Código em VBA.

Etapa 1: primeiro selecione a célula A1 da planilha do Exemplo 1.

Código:

 Sub Hyperlink_Example1 () Planilhas ("Exemplo 1"). Selecione Intervalo ("A1"). Selecione End Sub 

Etapa 2: Agora, usando o objeto Active Cell, abra os hiperlinks. adicionar método.

Código:

 Sub Hyperlink_Example1 () Planilhas ("Exemplo 1"). Selecione Intervalo ("A1"). Selecione ActiveCell.Hyperlinks.Add (End Sub 

Etapa 3: O primeiro  argumento é “Âncora”, ou seja, em qual célula faríamos o link para criar o hiperlink VBA. Neste caso a célula A1 e uma vez que já selecionamos a célula A1 para mencioná-la como “Seleção”.

Código:

 Sub Hyperlink_Example1 () Planilhas ("Exemplo 1"). Selecione Intervalo ("A1"). Selecione ActiveCell.Hyperlinks.Add (Selection, End Sub 

Etapa 4: Não estamos criando nenhum endereço aqui, portanto, ignore o Endereço a partir de agora.

Código:

 Sub Hyperlink_Example1 () Worksheets ("Example 1"). Selecione Range ("A1"). Selecione ActiveCell.Hyperlinks.Add Anchor: = Selection, Address: = "", End Sub 

Etapa 5: o próximo é o sub-endereço. Aqui, precisamos mencionar a qual folha estamos nos referindo e a primeira célula dessa folha.

Código:

 Sub Hyperlink_Example1 () Worksheets ("Example 1"). Selecione Range ("A1"). Selecione ActiveCell.Hyperlinks.Add Anchor: = Selection, Address: = "", SubAddress: = "'Main Sheet'! A1", End Sub 

Mencionei o nome da planilha como “Planilha principal” e o endereço da célula dessa planilha é “A1”.

Etapa 6: Ignore a dica da tela também. Para que o Texto seja exibido, mencione o nome da folha.

Código:

 Sub Hyperlink_Example1 () Worksheets ("Example 1"). Selecione Range ("A1"). Selecione ActiveCell.Hyperlinks.Add Anchor: = Selection, Address: = "", SubAddress: = "'Main Sheet'! A1", TextToDisplay : = "Folha Principal" End Sub 

Ok, acabei de rodar este código usando a tecla F5 ou manualmente então, vai criar um hyperlink na célula A1 da planilha “Exemplo 1”.

Quando você clica no hiperlink “Folha Principal”, ele redireciona para a folha principal.

Hiperlinks de várias planilhas com loops

Vimos a criação de um hiperlink VBA para uma folha. Quando temos muitas planilhas, é difícil criar um hyperlink VBA para cada planilha com a mesma linha de código para cada planilha.

Suponha que você tenha 11 planilhas conforme mostrado na imagem abaixo.

Você deseja criar um hiperlink para cada planilha na planilha de índice usando o código VBA.

Etapa 1: defina a variável como uma planilha.

Código:

 Sub Create_Hyperlink () Dim Ws As Worksheet End Sub 

Passo 2: A primeira coisa é selecionar o índice da planilha e selecionar a célula A1.

Código:

 Sub Create_Hyperlink () Dim Ws As Worksheet Worksheets ("Index"). Selecione Range ("A1"). Selecione End Sub 

Etapa 3: Agora abra For Each Loop no VBA.

Código:

 Sub Create_Hyperlink() Dim Ws As Worksheet Worksheets("Index").Select Range("A1").Select For Each Ws In ActiveWorkbook.Worksheets Next Ws End Sub 

Step 4: Since we have already selected the cell A1 it is now an active cell. So start the hyperlink with the active cell.

Code:

 Sub Create_Hyperlink() Dim Ws As Worksheet Worksheets("Index").Select Range("A1").Select For Each Ws In ActiveWorkbook.Worksheets ActiveCell.Hyperlinks.Add( Next Ws End Sub 

Step 5: Anchor is a hyperlink cell. So it is the active cell.

Code:

 Sub Create_Hyperlink() Dim Ws As Worksheet Worksheets("Index").Select Range("A1").Select For Each Ws In ActiveWorkbook.Worksheets ActiveCell.Hyperlinks.Add Anchor:=ActiveCell, Next Ws End Sub 

Step 6: Address is nothing mention it as “”.

Code:

 Sub Create_Hyperlink() Dim Ws As Worksheet Worksheets("Index").Select Range("A1").Select For Each Ws In ActiveWorkbook.Worksheets ActiveCell.Hyperlinks.Add Anchor:=ActiveCell,Address:="", Next Ws End Sub 

Step 7: Subaddress is when we loop through the sheet it should be the sheet name. To refer the sheet name we need a single quote “” with sheet name and “! Cell Address” and close the sheet name with a single quote “”.

Code:

 Sub Create_Hyperlink() Dim Ws As Worksheet Worksheets("Index").Select Range("A1").Select For Each Ws In ActiveWorkbook.Worksheets ActiveCell.Hyperlinks.Add Anchor:=ActiveCell,Address:="",SubAddress:=""& Ws.Name&"!A1"&"", Next Ws End Sub 

Step 8: Ignore Screen tip and for Text to display you can enter the worksheet name.

Code:

 Sub Create_Hyperlink() Dim Ws As Worksheet Worksheets("Index").Select Range("A1").Select For Each Ws In ActiveWorkbook.Worksheets ActiveCell.Hyperlinks.Add Anchor:=ActiveCell, Address:="", SubAddress:="" & Ws.Name & "!A1" & "", ScreenTip:="", TextToDisplay:=Ws.Name Next Ws End Sub 

Step 9: To store the hyperlink of each sheet in a different cell every time hyperlink created for one sheet we need to move down one cell from the active cell.

Code:

 Sub Create_Hyperlink() Dim Ws As Worksheet Worksheets("Index").Select Range("A1").Select For Each Ws In ActiveWorkbook.Worksheets ActiveCell.Hyperlinks.Add Anchor:=ActiveCell, Address:="", SubAddress:="" & Ws.Name & "!A1" & "", ScreenTip:="", TextToDisplay:=Ws.Name ActiveCell.Offset(1, 0).Select Next Ws End Sub 

This will create a hyperlink of all the sheets in the Index sheet. This code is dynamic, whenever there is any addition or deletion of sheets we just need to run this code to have an updated hyperlink.