使用适用于Mac Word 2016的VBA下载文件

时间:2018-07-28 18:23:35

标签: vba macos ms-word

我正在尝试为Mac版Word 2016更新模板。

在先前的代码中,我能够运行MacScript()命令来运行AppleScript,而后者又运行了外壳脚本。

现在看来,运行这样一个脚本的唯一方法是使用AppleScriptTask,该脚本要求该脚本已经存在于Application Scripts文件夹中,当我尝试将该脚本分发给其他(非熟练的)用户时会出现问题。

我正在尝试找出替代方法,但是经过数周的研究,我仍然感到困惑。

我正在运行的脚本可以执行各种操作,但是现在最重要的是从网站上下载模板的更新版本。我在Windows上使用ActiveX来执行此操作,但在Mac上无法执行此操作。

任何人都可以使用VBA为Mac Word 2016建议任何替代方法吗?(仅可取)?

谢谢!

2 个答案:

答案 0 :(得分:1)

尝试一下:

ActiveDocument.FollowHyperlink "http://yoursite.com/yourpackage.zip"

答案 1 :(得分:0)

下面是我要做的事情。我设置了一个计时器来等待下载,因为它是在VBA之外完成的。

Function Download(Path As String) As String

On Error GoTo Handler
Dim User, UserPath, dlFile, base_dest, final_dest, FName As String
Dim Timer As Boolean
Timer = False
Dim timeout As Variant

timeout = Now + TimeValue("00:00:10")
User = Environ("USER")
UserPath = "/Users/" & User & "/Downloads/"
base_dest = "/Users/" & User & [move/path/]
final_dest = base_dest & FName
ActiveDocument.FollowHyperlink Address:=Path

If Dir(final_dest) <> "" Then
    Kill final_dest
End If

Timer = True
ReTry:
If Dir(dlFile) <> "" Then
    FileCopy dlFile, final_dest
    Kill dlFile
    Download = final_dest
    Exit Function
End If

Handler:
If Err.Number = 53 And Timer = False Then
    Resume Next
 ElseIf Err.Number = 53 And Timer = True Then
    If Now > timeout Then
        MsgBox "There is a problem downloading the file. Please check your internet connection."
        End
    Else
        Resume ReTry
    End If
Else
    MsgBox Err.Number & vbNewLine & Err.Description
    End
End If
End Function