vba - 在 PowerPoint for Mac 中安排 VBA 代码
问题描述
我需要安排一段 VBA 代码在 Microsoft PowerPoint for Mac(版本 16)中每 500 毫秒运行一次。
在 Word 和 Excel 中,我可以使用该Application.OnTime
方法来安排代码,但该方法在 PowerPoint 中不存在,并且无论如何都有 1 秒的粒度。
SetTimer
在 Windows 上,我可以使用对库中函数的外部调用user32
,例如在这个问题中所做的那样。但是,我似乎在 macOS 上找不到等效的库方法。
我最好的选择似乎是编写一个实用程序库,其接口类似于SetTimer
在 Windows 上使用例如NSTimer、Grand Central Dispatch或 Pthread 实现的接口,安装它,然后从 VBA 调用它并让它在一段时间内回调。
我的 Mac 开发经验是有限的,我从 VBA 编写和调用外部库的经验是不存在的,但我设法获得了一个往返调用/回调到 C/Objective-C 库的工作(基本上void CallFunction(void (*function_pointer)(void)) { function_pointer(); }
称为 as CallFunction(AddressOf Callback)
),但是当我尝试通过 Grand Central Dispatch 或 Pthread 推迟该回调,一旦回调发生EXC_BAD_ACCESS
异常和我无法轻易破译的日志,PowerPoint 就会崩溃。我可以想象问题是回调发生在另一个线程中,或者回调函数不在调用时所在的地址AddressOf
。
是否有现成的解决方案可以在 PowerPoint for Mac 中安排 VBA 代码?或者,是否有任何资源可以帮助我调试回调崩溃?
解决方案
推荐阅读
- vue.js - 赛普拉斯没有针对和更改 Vuetify v-data-table 组件的“每页行数”
- c++ - CLION:如何从 C++ 源代码生成类图
- reactjs - 为什么防止默认不起作用?handleSubmit 已绑定并且传播不起作用
- android - 高尔夫记分卡界面的最佳布局/容器是什么?
- apache-kafka - 不使用 Kafka Connect 复制架构更改
- r - R代码仅将列从日期时间更改为时间
- django - 我从贝宝获取账单时遇到问题
- javascript - 用 Vite 将 JS 和 CSS 打包成一个文件
- java - demo.war 文件不会在 Tomcat 服务器上运行
- javascript - 在烛台 Google 图表上添加星形图标