明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1860|回复: 4

请问怎么才能在命令行里输函数名或过程名就能动行VBA程序

[复制链接]
发表于 2003-4-4 12:10 | 显示全部楼层 |阅读模式
本帖最后由 mccad 于 2003-4-4 12:10:22 编辑

我是一个新手,VB还可以,对VBA不太在行,我发觉你们可以直接在
COMMAND:   中运行VBA工程,我就是不行,我每次用都是先进入VBA界面,然后按F5运行,可是这样很,能告诉我怎么才能在命令行里输函数名或过程名就能动行VBA程序吗,下面是个例子:
  Public Sub a1()
Dim aa As Integer
aa = MsgBox("fals;jkdf;alksd", vbInformation, "jfkladsjdl;")

End Sub
发表于 2003-4-2 22:28 | 显示全部楼层

关于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

这四种方法都是要通过LISP程序来辅助完成,你看哪种简单一点。
 楼主| 发表于 2003-4-4 18:37 | 显示全部楼层

多谢指教,但是:

可能我太笨了,用你的方法老是说找不到宏,能不能给我一个例子,我好依样而为,最好是有VBA源代码的,谢谢您了
发表于 2003-4-4 18:52 | 显示全部楼层

找不到宏主要是你的工程没有放到支持目录下,如果这样必须加上完整路径

发表于 2003-4-12 20:38 | 显示全部楼层

我感觉还是autovbaload简单!

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

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-5-6 22:56 , Processed in 1.378706 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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