怎样在一打开AUTOCAD就可以自动加载VBA?
怎样在一打开就可以自动加载VBA? 把VBA文件加入启动组或者在AutoCad200?Doc.lsp文件中加载,
或者引用时给全,以"路径名!模块名.过程名"的形式调用 详细一点,好吗? 用 自动加载 搜索一下就一大堆
解释一下这个程序的使用方法:
“你把函数复制到acad2000doc.lsp文件中,以后每写一个VBA程序,就可以通过写入一行: (AutoVBALoad )
来自动调用
每写一个VBA程序,把”(AutoVBALoad ) “写到什么地方?我看不懂,谢谢!
http://www.mjtd.com/a2/list.asp?id=285 写到Acad200?Doc。lsp文件里 改进一下,做成命令,:)
(defun C:Sub2Cmd( / subname cmdname)
(setq subname (getstring "\n输入宏名:")
cmdname (getstring "\n输入命令名:"))
(eval
(list 'defun
(read (strcat "C:" cmdname))
nil
(list 'vl-vbarun subname)
(princ)
))
)
(vlax-add-cmd "Sub2Cmd" 'C:Sub2Cmd) 我的看法不用那么复杂,在ACAD.DVB的ThisDriwing模块里的ACADStartup过程里加上如下一句
AcadApplication.LoadDVB "d:\acad2000\support\User.dvb"
即可 不做成命令总是很复杂的,:)下面的代码可以把工程的所有Sub注册为命令,前提是工程未加密,:)Lisp代码
(defun C:Sub2Cmd( / subname cmdname)
(setq subname (getstring T "\n输入宏名:")
cmdname (getstring T "\n输入命令名:"))
(eval
(list 'defun
(read (strcat "C:" cmdname))
nil
'(setvar "cmdecho" 0)
(list 'vl-vbarun subname)
'(setvar "cmdecho" 1)
(princ)
))
)
(vlax-add-cmd "Sub2Cmd" 'C:Sub2Cmd)Vba代码
Public Sub RegAllSub()
On Error Resume Next
Dim pVbe As Object, pCode As Object
Dim i, j, k
Set pVbe = Application.VBE
For Each i In pVbe.VBProjects
For Each j In i.VBComponents
If j.Type = 1 Or j.Type = 100 Then
Set pCode = j.CodeModule
For k = 1 To pCode.CountOfLines
pCodeLine = pCode.Lines(k, 1)
If (InStr(Trim(pCodeLine), "Public Sub ") = 1 Or InStr(Trim(pCodeLine), "Sub ") = 1) And InStr(pCodeLine, ")") = InStr(pCodeLine, "(") + 1 Then
pSubName = Trim(RightStr(LeftStr(pCodeLine, "()"), "Sub "))
ThisDrawing.SendCommand "Sub2Cmd" & vbCr & i.FileName & "!" & j.Name & "." & pSubName & vbCr & pSubName & vbCr
End If
Next k
End If
Next j
Next i
End Sub
页:
[1]