找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 707|回复: 8

[VBA程序]:VBA程序在命令行中的加载及运行

[复制链接]
发表于 2004-3-16 14:50:55 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
关于VBA程序在命令行中的加载及运行  
不利用LISP程序页直接在命令行中简单加载运行VBA程序的可能性是没有的。
通过一个简短的LISP程序来加载运行是最简单的,方法有以下几种:
(例中假设VBA工程为:addtol.dvb,模块为:mouldaddtol,过程为:subaddtol
1.定义并使用-vbarun来运行:如
(defun c:addtol()
    (setvar "cmdecho" 0)
    (command "-vbarun" "addtol.dvb!mouldaddtol.subaddtol")
    (setvar "cmdecho" 1)
(princ)
)
2.通过定义使用vl-vbaload和VL-VBARUN函数来运行,如:
(vl-vbaload (findfile "AddTol.dvb"))
(defun c:addtol()
    (setvar "cmdecho" 0)
; (vl-vbarun "mouldaddtol.subaddtol")
(princ)
)
3.通过自定义的加载函数及相关词句来完成,如:
(vl-load-com)
;;自动加载VBA程序的函数
(defun AutoVBALoad (cmdname project macro)
  (eval
    (list 'defun
  (read (strcat "C:" cmdname))
  nil
  (list
    'vl-vbarun
    (strcat
      project
      "!"
      (if macro
macro
cmdname
      )
    )
  )
  (princ)
    )
  )
)
;;自动加载VBA程序
(AutoVBALoad "AD" "addtol.dvb" "mouldaddtol.subaddtol")
4.还有一种就是通过VBA中的事件结合定义一个空的LISP程序来完成,如:
;;一些VBA程序的触发程序(LISP程序)
(defun c:ad()(princ))
'VBA事件:
Private Sub AcadDocument_BeginLisp(ByVal FirstLine As String)
Select Case UCase(FirstLine)
       Case "(C:AD)"
             subaddtol
End Select
End Sub
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2004-3-16 18:21:55 | 显示全部楼层
第四个例子的“(c:ad)"能不能写为"ad"?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-3-22 10:06:08 | 显示全部楼层

Re: [VBA程序]:VBA程序在命令行中的加载及运行

最初由 shiqiang 发布
[B]关于VBA程序在命令行中的加载及运行  
不利用LISP程序页直接在命令行中简单加载运行VBA程序的可能性是没有的...[/B]


不会吧?
如何理解命令行: (vl-vbaload (findfile "AddTol.dvb")) ?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-3-22 13:03:21 | 显示全部楼层
3楼问的是?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-3-23 07:37:05 | 显示全部楼层
最初由 自由的鱼 发布
[B]3楼问的是? [/B]


对1楼 "不利用LISP程序页直接在命令行中简单加载运行VBA程序的可能性是没有的"  提出不同意见.
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-4-8 23:13:19 | 显示全部楼层
找了很久了,精!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 488个

财富等级: 日进斗金

发表于 2004-4-10 18:03:33 | 显示全部楼层
最初由 lsjjm 发布
[B]

对1楼 "不利用LISP程序页直接在命令行中简单加载运行VBA程序的可能性是没有的"  提出不同意见. [/B]


可是  "vl-vbaload " " findfile "都是lisp函数呀.
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-4-15 21:20:04 | 显示全部楼层
不利用LISP程序页直接在命令行中简单加载运行VBA程序的可能性是没有的。
???
VB.net可以
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-4-16 15:17:08 | 显示全部楼层
真好,非常感谢!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-9-29 11:41 , Processed in 0.263297 second(s), 48 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表