Finite le prove e questa è la situazione:
Dunque ho provato l'istruzione che mi hai fornito e queste sono i risultati ottenuti:
codice:
my_Path = "D:\documenti_miei\nome_file.doc"
Shell (my_Path) ' con e senza parentesi
mi da questo errore
errore di run-time 5
chiamata di routine o argomento non validi
Con l'istruzione mostrata prima il documento viene aperto regolarmente con l'applicazione a cui è associato
codice:
my_Path = "D:\documenti_miei\nome_file.doc"
Shell ("rundll32.exe url.dll,FileProtocolHandler " & my_Path)
Il test l'ho eseguito con excel 2003 ed excel 2010
Non so se funziona con excel 2007.
Per completezza posto l'intera funzione così come ora è stata modificata: rispetto alla prima versione mi sembra molto più chiara
codice:
Function Open_file(my_Path)
Dim Extension, NomeProgramma, Ret
Extension = LCase(Mid(my_Path, InStrRev(my_Path, ".") + 1))
Select Case Extension
Case "htm", "html", "php", "php", "js", "php4", "asp", "css", "inc", "SQL", "sql"
NomeProgramma = "C:\Program Files\Adobe\Adobe Dreamweaver CS5\Dreamweaver.exe"
Shell (NomeProgramma & " " & my_Path & ""), 1
Case "doc", "mdb", "gif", "jpg", "png", "txt"
Shell ("rundll32.exe url.dll,FileProtocolHandler " & my_Path)
' Shell (my_Path)
Exit Function
Case Else
MsgBox "Il file selezionato non è idoneo all'apertura"
Exit Function
End Select
End Function
La funzione viene così chiamata
codice:
Dim NomeFile As String
NomeFile = TextBox1 & ListBox2.Text ' D:\documenti_miei\nome_file.doc
Open_file (NomeFile)
NB:
ho messo i 2 case perchè
col primo voglio che i files indicati vengano aperti con Dreamweaver, anche se non sono associati ad esso
nel secondo indico solo i files che voglio siano aperti dal programma predefinito, per gli altri files non desidero l'apertura