Excel Web App открывает файлы из OneDrive, поэтому сохранение файла в папке OneDrive на локальном компьютере выполнит то, что вы просите.
Все три из следующих примеров предполагают, что цель состоит в том, чтобы сохранить книгу с макросами как книгу с макросами с тем же именем в расположении папки OneDrive по умолчанию "C: \ Users \ user \ OneDrive"
Первые два примера сохраняют копию активной книги в OneDrive; напротив, третий пример перемещает файл без создания копии и не может использоваться, если файл открыт.
Пример 1: сохранить копию активной книги в OneDrive. Оригинальная рабочая книга остается активной рабочей книгой. Последующие изменения остаются с оригиналом и не применяются к копии в OneDrive.
Sub SaveCopyToOneDrive()
Dim destinationFolder As String
destinationFolder = Environ("USERPROFILE") & "\OneDrive\"
ActiveWorkbook.SaveCopyAs destinationFolder & ActiveWorkbook.Name
End Sub
Пример 2: сохранить активную книгу в OneDrive. Файл в OneDrive становится активной книгой, а оригинальная книга закрывается без сохранения.
Sub SaveToOneDrive()
Dim destinationFolder As String
destinationFolder = Environ("USERPROFILE") & "\OneDrive\"
ActiveWorkbook.SaveAs destinationFolder & ActiveWorkbook.Name, FileFormat:=xlOpenXMLWorkbookMacroEnabled
End Sub
Пример 3: переместить файл из явно определенного местоположения в OneDrive. Целевой файл не может быть хостом VBA для этого макроса.
Sub MoveToOneDrive()
Dim shortFileName As String
Dim fullFileName As String
Dim destinationFolder As String
fullFileName = "C:\MyDataFiles\File.xlsm"
Name fullFileName As destinationFolder & shortFileName
destinationFolder = Environ("USERPROFILE") & "\OneDrive\"
shortFileName = Mid(fullFileName, InStrRev(fullFileName, Chr(92)) + 1, Len(fullFileName))
End Sub