乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 89|回复: 4

[编程交流] 仅加载Vba程序一次

[复制链接]

170

主题

347

帖子

174

银币

中流砥柱

Rank: 25

铜币
870
发表于 2022-7-6 10:12:42 | 显示全部楼层 |阅读模式
使用AutoCad 2010。
 
我已使用以下过程加载VBA rounines。
我在启动时运行proceedure,在我想使用may例程时输入命令。
 
如果我两次使用该命令,vba程序将加载两次。
 
有没有办法测试vba程序,看看它是否已准备好加载,然后再加载
仅当程序未加载时才启动。
 
程序如下:
(定义C:opn()
(vl vbaload“C:/PgCADvba/OpenDrawing.dvb”)
(vl vbarun“opn”)
)
 
非常感谢。
回复

使用道具 举报

3

主题

61

帖子

58

银币

初来乍到

Rank: 1

铜币
16
发表于 2022-7-6 10:39:28 | 显示全部楼层
我不知道是否有办法做到这一点,但加载VBA,然后运行,然后在完成后卸载,怎么样。
 
(命令“_vbaload”“myfile.dvb”)
(命令“filedia”1)
(命令“-vbarun”“mf”)
(命令“_vbaunload”“myfile.dvb”)
 
希望这有帮助
回复

使用道具 举报

170

主题

347

帖子

174

银币

中流砥柱

Rank: 25

铜币
870
发表于 2022-7-6 10:47:32 | 显示全部楼层
我正在寻找一个程序,检查是否VBA程序已全部就绪加载。
如果已加载,请勿再次加载。如果没有加载,程序需要加载它。
有没有办法做到这一点?
非常感谢。
回复

使用道具 举报

44

主题

3166

帖子

2803

银币

中流砥柱

Rank: 25

铜币
557
发表于 2022-7-6 11:10:06 | 显示全部楼层
这可能就是你想要的。。。
 
命令宏:
  1. ^C^C^P(if (not c:[color=red][i]FOO[/i][/color]) (load "[color=red][i]<FilePath>[/i][/color]\\[color=red][i]FOO[/i][/color].lsp")) c:[color=red][i]FOO[/i][/color]

 
 
 
LISP命令:
  1. (defun c:[color=red][i]FOO[/i][/color] (/ appName)
  2. (vl-load-com)
  3. (setq appName (strcat "[color=red][i]<FilePath>[/i][/color][color=#000000]\\[color=red][i]<FileName>[/i][/color].dvb" "![color=red][i]<MacroName>[/i][/color].lrb"))[/color]
  4. (vl-vbarun appName)
  5. (princ))

 
 
现在,要卸载VBA宏。。。
 
在宏的末尾包含子函数调用,或使用命令反应器(参考开发人员文档中的:vlr commandend事件)运行:
 
  1. (vla-unloaddvb [color=red][i]<ApplicationObject>[/i][/color])

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

使用道具 举报

54

主题

3755

帖子

3583

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
438
发表于 2022-7-6 11:22:49 | 显示全部楼层
??
  1. (if c:CommandName
  2. blah blah
  3. )
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-7-5 21:30 , Processed in 1.060844 second(s), 69 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表