Скачать файл с веб-сайта по гиперссылке в Outlook - PullRequest
0 голосов
/ 10 июля 2020

Итак, я использовал следующий код, чтобы открыть гиперссылку из электронного письма. Эта гиперссылка открывает веб-страницу и открывает окно загрузки, чтобы выбрать, где загрузить CSV и с каким именем (все это в Chrome). Я хочу иметь возможность выбирать, где и с каким именем будет загружен указанный файл. Я был бы очень признателен за помощь :)

Private Declare PtrSafe Function ShellExecute _
  Lib "shell32.dll" Alias "ShellExecuteA" ( _
  ByVal hWnd As Long, _
  ByVal Operation As String, _
  ByVal Filename As String, _
  Optional ByVal Parameters As String, _
  Optional ByVal Directory As String, _
  Optional ByVal WindowStyle As Long = vbMinimizedFocus _
  ) As Long

Public Sub OpenLinks(olMail As Outlook.MailItem)

 Dim Reg1 As RegExp
 Dim M1 As MatchCollection
 Dim M As Match
 Dim strURL As String
 Dim lSuccess As Long

Set Reg1 = New RegExp

With Reg1
 .Pattern = "(https?[:]//([0-9a-z=\?:/\.&-^!#$%;_])*)>"
 .Global = False
 .IgnoreCase = True
 End With

If Reg1.Test(olMail.Body) Then

Set M1 = Reg1.Execute(olMail.Body)
 For Each M In M1
   strURL = M.SubMatches(0)
   Debug.Print strURL

lSuccess = ShellExecute(0, "Open", strURL)

  Next
  End If

Set Reg1 = Nothing
Set oApp = Nothing

 End Sub

Я искал на других сайтах, но не нашел ничего похожего.

1 Ответ

0 голосов
/ 10 июля 2020

Вы можете выбрать один из следующих способов:

  1. Использовать Windows API, см. Функцию URLDownloadToFile:
Private Declare Function URLDownloadToFile Lib "urlmon" Alias "URLDownloadToFileA" (ByVal pCaller As Long, ByVal szURL As String, ByVal szFileName As String, ByVal dwReserved As Long, ByVal lpfnCB As Long) As Long

Public Function DownloadFile(URL As String, LocalFilename As String) As Boolean
Dim lngRetVal As Long
lngRetVal = URLDownloadToFile(0, URL, LocalFilename, 0, 0)
If lngRetVal = 0 Then 
    If Dir(LocalFileName) <> vbNullString Then 
        DownloadFile = True
    End If
End If
End Function

Private Sub Form_Load()
If Not DownloadFile("http://www.test.come", "c:\\file.doc") Then
    MsgBox "Unable to download the file, or the source URL doesn't exist."
End If
End Sub
Нажимайте кнопки программно, используя Windows функции API, см. VBA - Go на веб-сайт и загрузите файл из приглашения для получения дополнительной информации.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...