
这个脚本通过查找所有包含 "terminal.app" 的进程,并使用 kill 命令终止它们,从而达到关闭 terminal 的目的。
2. 创建 AppleScript 脚本 myscript.scpt
接下来,创建一个 AppleScript 脚本,用于接收命令字符串并在 Terminal 中执行。将以下代码保存为 myscript.scpt,并放置在 /Users/<username>/Library/Application Scripts/com.microsoft.Excel 目录下。请将 <username> 替换为你的用户名。
on myAppleScriptHandler(paramString)
tell application "Terminal"
activate
do script paramString
end tell
end myAppleScriptHandler这个 AppleScript 脚本定义了一个名为 myAppleScriptHandler 的处理程序,该处理程序接收一个字符串参数 paramString,并使用 do script 命令在 Terminal 中执行该字符串。
3. 在 VBA 中调用 AppleScript 脚本
立即学习“Python免费学习笔记(深入)”;
最后,在 Excel Mac 的 VBA 编辑器中,创建一个 Sub 过程,用于调用 AppleScript 脚本并将 Python 命令作为参数传递。以下是一个示例:
Sub test()
Dim myScriptResult As String
Dim myparams As String
myparams = "source /Users/<username>/anaconda3/bin/activate base; python /Users/<username>/Documents/<workingfolder>/<pythoncode>.py; /Users/<username>/Documents/<workingfolder>/closeterminal.sh"
myScriptResult = AppleScriptTask("myscript.scpt", "myapplescripthandler", myparams)
End Sub请根据你的实际情况修改以下参数:
- <username>: 你的用户名
- /Users/<username>/anaconda3/bin/activate base: Anaconda 环境激活命令。如果未使用 Anaconda,请替换为你的 Python 环境激活命令。
- /Users/<username>/Documents/<workingfolder>/<pythoncode>.py: 你的 Python 脚本的完整路径。
- /Users/<username>/Documents/<workingfolder>/closeterminal.sh: closeterminal.sh 脚本的完整路径。
- AppleScriptTask("myscript.scpt", "myapplescripthandler", myparams): 调用AppleScript的函数,第一个参数是脚本名称,第二个参数是handler名称,第三个参数是传递的参数。
代码解释:
- Dim myScriptResult As String: 声明一个字符串变量用于存储 AppleScript 的执行结果(如果需要)。
- Dim myparams As String: 声明一个字符串变量用于存储要传递给 AppleScript 的命令字符串。
- myparams = ...: 构建包含 Python 命令和关闭 Terminal 命令的完整命令字符串。
- myScriptResult = AppleScriptTask(...): 调用 AppleScript 脚本,并将命令字符串作为参数传递。
注意事项
- 权限问题: 确保你的 Python 脚本具有执行权限。可以使用 chmod +x <pythoncode>.py 命令授予执行权限。
- 路径问题: 确保所有路径都是正确的,包括 Python 解释器、Python 脚本、closeterminal.sh 脚本以及 AppleScript 脚本的路径。
- 环境变量: 确保 Python 脚本所需的任何环境变量都已正确设置。可以通过在 myparams 字符串中添加 source 命令来激活 Python 环境。
- 安全性: 考虑到安全性,请谨慎处理传递给 AppleScript 的命令字符串,避免执行恶意代码。
- 错误处理: 在实际应用中,建议添加错误处理机制,以便在出现问题时能够及时发现并解决。
总结
通过以上步骤,你就可以在 Excel Mac 中成功调用 Python 脚本,并实现自动化任务。这种方法可以有效解决直接从 AppleScript 调用 Python 脚本时遇到的问题,并提供更大的灵活性和控制力。记住,根据你的实际情况调整代码中的参数,并确保所有路径和权限都正确设置。希望本教程能帮助你解决问题,并顺利完成你的自动化任务。










