muck 发表于 2022-7-6 10:12:42

仅加载Vba程序一次

使用AutoCad 2010。
 
我已使用以下过程加载VBA rounines。
我在启动时运行proceedure,在我想使用may例程时输入命令。
 
如果我两次使用该命令,vba程序将加载两次。
 
有没有办法测试vba程序,看看它是否已准备好加载,然后再加载
仅当程序未加载时才启动。
 
程序如下:
(定义C:opn()
(vl vbaload“C:/PgCADvba/OpenDrawing.dvb”)
(vl vbarun“opn”)
)
 
非常感谢。

Grant 发表于 2022-7-6 10:39:28

我不知道是否有办法做到这一点,但加载VBA,然后运行,然后在完成后卸载,怎么样。
 
(命令“_vbaload”“myfile.dvb”)
(命令“filedia”1)
(命令“-vbarun”“mf”)
(命令“_vbaunload”“myfile.dvb”)
 
希望这有帮助

muck 发表于 2022-7-6 10:47:32

我正在寻找一个程序,检查是否VBA程序已全部就绪加载。
如果已加载,请勿再次加载。如果没有加载,程序需要加载它。
有没有办法做到这一点?
非常感谢。

BlackBox 发表于 2022-7-6 11:10:06

这可能就是你想要的。。。
 
命令宏:

^C^C^P(if (not c:FOO) (load "<FilePath>\\FOO.lsp")) c:FOO

 
 
 
LISP命令:

(defun c:FOO (/ appName)
(vl-load-com)
(setq appName (strcat "<FilePath>\\<FileName>.dvb" "!<MacroName>.lrb"))
(vl-vbarun appName)
(princ))

 
 
现在,要卸载VBA宏。。。
 
在宏的末尾包含子函数调用,或使用命令反应器(参考开发人员文档中的:vlr commandend事件)运行:
 

(vla-unloaddvb <ApplicationObject>)

 
 
希望这有帮助!
 
编辑:
确保使用
tags.

alanjt 发表于 2022-7-6 11:22:49

??
(if c:CommandName
blah blah
)
页: [1]
查看完整版本: 仅加载Vba程序一次