Categorie
Automazione Excel

Aprire file Excel che hanno percorsi OneDrive non raggiungibili

OneDrive è un servizio cloud offerto da Microsoft, tramite il quale è possibile archiviare i propri file online e condividerli con altri utenti. OneDrive offre inoltre la possibilità di accedere ai propri file da qualsiasi dispositivo, ovunque ci si trovi.

I percorsi locali e di rete OneDrive sono un modo per accedere ai file e alle cartelle archiviati in OneDrive da un computer, un dispositivo mobile o un’altra app. I percorsi locali e di rete OneDrive consentono di accedere ai file e alle cartelle archiviati in OneDrive come se fossero archiviati in un’unità disco locale o in una rete. È possibile aprire, modificare, salvare e condividere i file archiviati in OneDrive senza dover prima scaricarli sul computer.

I percorsi locali e di rete OneDrive sono disponibili per tutti gli utenti di OneDrive di una stessa organizzazione. Per accedere ai percorsi locali e di rete OneDrive, è necessario effettuare l’accesso a OneDrive con le proprie credenziali. Una volta effettuato l’accesso, i file e le cartelle archiviati in OneDrive saranno visualizzati come se fossero archiviati in un’unità disco locale o in una rete.

I percorsi locali sono quei percorsi che indicano una posizione specifica sul computer, mentre i percorsi one drive indicano una posizione specifica sul servizio one drive. I percorsi locali sono utilizzati per accedere ai file e alle cartelle presenti sul computer, mentre i percorsi one drive sono utilizzati per accedere ai file e alle cartelle presenti sul servizio one drive. I percorsi locali sono sempre visibili, mentre i percorsi one drive possono essere nascosti.

I percorsi locali possono essere utilizzati per copiare i file da e verso il computer, mentre i percorsi one drive possono essere utilizzati per copiare i file da e verso il servizio one drive. I percorsi locali possono essere modificati, mentre i percorsi one drive non possono essere modificati.

E’ possibile risalire ai due percorsi con la voce Informazioni dal menu File

Cliccando su i due pulsanti possiamo riferirci al file o con il percorso completo di one drive o con il percorso locale.

Il problema nasce quando dobbiamo aprire dei file provenienti da una organizzazione diversa dalla nostra e alla quale non abbiamo accesso per eseguire delle elaborazioni via codice VBA.

Ecco come eliminare dai percorsi dei file Excel i riferimenti ai OneDrive lasciando i percorsi locali. La funzione descritta di seguito restituisce il percorso locale prendendo in input il percorso di un file Excel: se è presente il riferimento a OneDrive lo elimina.

Function GetDocLocalPath(docPath As String) As String
‘restituisce il percorso locale del file, sia esso un file locale che un file OneDrive
Const strcOneDrivePart As String = “https://d.docs.live.net/”
Dim strRetVal As String, bytSlashPos As Bytestr
RetVal = docPath & “\”
If Left(LCase(docPath), Len(strcOneDrivePart)) = strcOneDrivePart Then ‘yep, it’s the OneDrive path
‘locate and remove the “remote part”
bytSlashPos = InStr(Len(strcOneDrivePart) + 1, strRetVal, “/”)
strRetVal = Mid(docPath, bytSlashPos)
‘legge la parte ‘locale’ del registro e concatenastr

RetVal = RegKeyRead(“HKEY_CURRENT_USER\Environment\OneDrive”) & strRetVal

‘strRetVal = My.Computer.Registry.GetValue(“HKEY_CURRENT_USER\Environment\OneDrive”) & strRetVal
strRetVal = Replace(strRetVal, “/”, “\”) ‘slashes in the right direction
strRetVal = Replace(strRetVal, “%20″, ” “) ‘a space is a space once more
End If
LocalPath = strRetVal

End Function