Come aprire ogni link in una scheda diversa del browser

Stefano ha un intervallo di celle (A1:A10) che contiene indirizzi di siti Web, ad esempio www.esempio.com. Si chiede se sia possibile, all’interno di una macro, aprire ciascuno di questi indirizzi contemporaneamente in un browser, in schede separate del browser.

Esistono un paio di modi in cui puoi affrontare questa attività e quello che scegli dipende in gran parte dalla natura dei dati nel tuo foglio di lavoro. Se le celle contengono collegamenti ipertestuali attivi (quelli su cui se si fa clic su di essi, l’indirizzo viene aperto in un browser), è possibile utilizzare una macro piuttosto semplice:

 

Sub ApriLink1()
    Dim MyRange As Range
    Dim hl As Hyperlink
    On Error Resume Next
    Set MyRange = Range("A1:A10")
    For Each hl In MyRange.Hyperlinks
        hl.Follow
    Next hl
End Sub

 

 

La macro esamina semplicemente tutti i collegamenti ipertestuali nell’intervallo A1: A10 e utilizza il metodo Follow per aprirli ciascuno nel browser predefinito. A causa del modo in cui il tuo sistema operativo trasferisce le informazioni da Excel al browser, è consigliabile aprire il browser prima di eseguire la macro. Il motivo è che, durante i test, abbiamo scoperto che potresti ritrovarti con due istanze del browser aperte, con alcuni indirizzi aperti in un’istanza e altri nell’altra. Apparentemente ciò si verifica a causa del ritardo nell’apertura della prima istanza del browser. Se il browser è aperto prima dell’esecuzione della macro, non vi è alcun ritardo e ciascun indirizzo si apre in una scheda diversa della stessa istanza del browser.

Se gli indirizzi nel foglio di lavoro potrebbero non essere collegamenti ipertestuali attivi, non puoi fare affidamento sull’utilizzo della collezione Hyperlinks. Devi invece rivolgerti al valore di ciascuna cella nell’intervallo:

 

Sub ApriLink2()
    Dim MyRange As Range
    Dim cell As Range
    Dim sTemp As String
    On Error Resume Next
    Set MyRange = Range("A1:A10")
    For Each cell In MyRange
        sTemp = cell.Value
        ThisWorkbook.FollowHyperlink Address:=sTemp
    Next cell
End Sub

 

 

Questo approccio utilizza il metodo FollowHyperlink per caricare l’indirizzo nella variabile sTemp. In questo caso non ha importanza se il contenuto delle celle è un collegamento ipertestuale attivo oppure no; il codice tenta sempre di aprirli in un browser.

Infine, se i tuoi dati potrebbero non contenere indirizzi completamente qualificati, dovrai comunque utilizzare un approccio diverso. Ad esempio, Stefano ha menzionato indirizzi come www.esempio.com nel foglio di lavoro, ma tale indirizzo non funzionerà con gli esempi. Se nei tuoi dati manca http:// all’inizio (o qualche variante, come https://), il codice non aprirà l’indirizzo nel browser. Se i tuoi dati hanno questa particolarità allora è opportuna una leggera modifica alla macro:

 

Sub ApriLink3()
    Dim MyRange As Range
    Dim cell As Range
    Dim sTemp As String
    On Error Resume Next
    Set MyRange = Range("A1:A10")
    For Each cell In MyRange
        sTemp = cell.Value
        If InStr(sTemp, "://") = 0 Then
            sTemp = "http://" & sTemp
        End If
        ThisWorkbook.FollowHyperlink Address:=sTemp
    Next cell
End Sub

 

 

Tieni presente che questo esempio esamina il contenuto di sTemp per vedere se contiene i caratteri “://” al suo interno. In caso contrario, il prefisso “http://” viene aggiunto al contenuto della cella ed Excel tenta di utilizzare il metodo FollowHyperlink per aprire l’indirizzo modificato.

 

 

Tags: , , , , , , , , ,

Ti è stato utile?