Возьмите конкретный документ для почты в VBA на MAC - PullRequest
0 голосов
/ 05 сентября 2018

Я нахожусь на MAC, поэтому даже если я знаю VBA, я не знаю, как перевести его на MAC. У меня есть этот код, но у меня проблема с путем

Я хочу макрос, который присоединяется к определенному документу (уже существует) по этому пути:

Path = "Z:\Reporting\" & ext3 & "\" & ext & " - " & ext2 & ".pdf"

(с ext1 / 2/3 являются значениями ячеек) и отправив его по почте с Outlook MAC.

Это мой код:

Sub SaveMailRangeAsPDFIn2016()
    Dim FilePathName As String
    Dim strbody As String

        FilePathName = ?


'Create the body text in the strbody string
    strbody = "<FONT size=""3"" face=""Calibri"">"
    strbody = strbody & "Hi there" & "<br>" & "<br>" & _
        "This is line 1" & "<br>" & _
        "This is line 2" & "<br>" & _
        "This is line 3" & "<br>" & _
        "This is line 4"
    strbody = strbody & "</FONT>"


MacExcel2016WithMacOutlookPDF _
    subject:="test", _
    mailbody:=strbody, _
    toaddress:="xxxxx@xxxx.xx", _
    ccaddress:="", _
    bccaddress:="", _
    displaymail:="yes", _
    accounttype:="", _
    accountname:="", _
    attachment:=FilePathName

    With Application
        .ScreenUpdating = True
        .EnableEvents = True
    End With
End Sub

с функцией:

Function MacExcel2016WithMacOutlookPDF(subject As String, mailbody As String, _
    toaddress As String, ccaddress As String, _
    bccaddress As String, displaymail As String, _
    accounttype As String, accountname As String, _
    attachment As String)
    Dim ScriptStr As String, RunMyScript As String

    ScriptStr = subject & ";" & mailbody & ";" & toaddress & ";" & ccaddress & ";" & _
                bccaddress & ";" & displaymail & ";" & accounttype & ";" & _
                accountname & ";" & attachment

    'Call the RDBMacOutlook.scpt script file with the AppleScriptTask function
    RunMyScript = AppleScriptTask("RDBMacOutlook.scpt", "CreateMailInOutlook", CStr(ScriptStr))


End Function

1 Ответ

0 голосов
/ 05 сентября 2018

MacOS / OSX использует другой разделитель пути, чем Windows "\".

Так что если у вас есть жестко запрограммированный путь в VBA, как это

Path = "Z:\Reporting\" & ext3 & "\" & ext & " - " & ext2 & ".pdf"

Вы можете проверить операционную систему и использовать

If Application.OperatingSystem Like "*Mac*" Then
    Path = "your mac path"
Else
    Path = "Z:\Reporting\" & ext3 & "\" & ext & " - " & ext2 & ".pdf"
End If

Обратите внимание, что Application.PathSeparator возвращает фактический разделитель пути, используемый операционной системой.

...