Utilizzare Explorer.exe per aprire un file o URL

Zer0Kelvin

VBA Expert
Staff
19 Novembre 2016
2.019
115
60
Teramo (Provincia)
2010
171
Se avete la necessità di aprire, da VBA, un qualunque file col programma predefinito associato, si può utilizzare questa sintassi
Visual Basic:
    Const DQ = """"
    Dim ExecString As String
  
    ExecString = Environ("UserProfile") & "\Documents\Doc1.docx"
    Shell "Explorer.exe " & DQ & ExecString & DQ
questo codice aprirà il file Word (ma funziona con qualunque tipo di file che abbia un programma predefinito associato) Doc1.docx
situato nella cartella Documenti dell'utente corrente.

La costante DQ serve a racchiudere fra doppi apici la stringa che viene passata ad Explorer.exe; questo è indispensabile nel caso in cui il percorso contenga degli spazi, altrimenti Explorer.exe interpreterà la stringa in maniera errata.
I doppi apici possono anche essere inseriti direttamente senza usare la costante DQ
Visual Basic:
    ExecString = Environ("UserProfile") & "\Documents\Doc1.docx"

    Shell "Explorer.exe " & """" & ExecString & """"
Lo stesso metodo si può usare per aprire una pagina Web col browser predefinito
Visual Basic:
    Const DQ = """"
    Dim URL As String
  
    URL = "https://www.forumexcel.it"
    Shell "Explorer.exe " & DQ & URL & DQ
Se questa operazione deve essere eseguita in più punti del vostro programma, può essere utile creare una piccola sub
Visual Basic:
Sub ShellExecute1(ExecString As String)
  
    Const DQ = """"
  
    Shell "Explorer.exe " & DQ & ExecString & DQ
  
End Sub

Sub test1()
          
    'apre la homepage di questo forum
    ShellExecute1 "https://www.forumexcel.it"

    'apre il file Doc1.docx
    ShellExecute1 Environ("UserProfile") & "\Documents\Doc1.docx"
  
End Sub
 

3enne

Nuovo utente
22 Settembre 2020
5
1
2016
0
ciao, ho visto questo argomento e forse potrebbe aiutarmi ad ottenere ciò che mi serve:
-devo creare un dvd con all’interno diversi file pdf. nello stesso dvd risiede il file excel da utilizzare come indice, con link per ciascuna riga ad un diverso file contenuto sempre nello stesso dvd. è fattibile?
 

alfrimpa

VBA Expert
Supermoderatore
18 Dicembre 2015
31.012
1.845
67
Napoli
2019 Pro Plus
870
3 @3enne

Devi aprire una nuova discussione; questo è un tutorial cui non dovevi accodarti.
 
  • Like
Reactions: 3enne

Sostieni ForumExcel

Aiutaci a sostenere le spese e a mantenere online la community attraverso una libera donazione!