VBA 在打开的对话框中输入文件名,然后单击“输入”

问题描述 投票:0回答:1

我正在尝试添加一个宏来与我们最近为 Inventor 添加的插件交互,该插件以特定于另一个程序的格式保存文件。它没有使用 Inventor 中的“另存为”界面,但触发时弹出的窗口看起来就像标准的“另存为”。它还几乎没有与 Inventor 对话以便在 VBA 中使用的内容。我能做的最好的事情就是模仿插件使用的“按下宏按钮”并在那里输入文件名/路径。

我可以使用以下代码让 VBA 实质上“按下按钮”,但到目前为止我尝试过的任何方法都无法将文本输入到出现的“另存为”框中。我必须相信这是我所缺少的一件非常简单的事情,但是 sendkeys 和我尝试过的任何变体都不起作用。我想我需要首先告诉它将密钥发送到“什么”窗口?我发现的所有内容都是 Excel 特定的,并且命令/语法不适用于 Inventor。

Dim OpenXMLExporter As CommandManager
Set OpenXMLExporter = ThisApplication.CommandManager

Dim OpenXMLExporterForReals As ControlDefinition
Set OpenXMLExporterForReals = OpenXMLExporter.ControlDefinitions.Item("Autodesk:InventorFlat:ExportCmdBtn")

Call OpenXMLExporterForReals.Execute

此时 Inventor 打开了插件的“另存为”对话框,但我无法让它填写名称/路径,更不用说单击 Enter 按钮了。

vba plugins autodesk-inventor
1个回答
0
投票

如果插件使用标准的另存为对话框,您可以使用绕过它们 CommandManager.PostPrivateEvent 方法

您可以准备路径和文件名,然后 FileDialog 使用它们

ThisApplication.CommandManager.PostPrivateEvent(PrivateEventTypeEnum.kFileNameEvent, "C:\Temp\01.ipt")

© www.soinside.com 2019 - 2024. All rights reserved.