Sub AutoADDAutoCADTypeLib()
Dim Ref As Variant
Dim hasAutoTypeLib As Boolean, hasAXDBLib As Boolean, acadName As String
hasAutoTypeLib = False: hasAXDBLib = False
For Each Ref In ThisWorkbook.VBProject.References
If Ref.Name = "AutoCAD" Then hasAutoTypeLib = True
If Ref.Name = "AXDBLib" Then hasAXDBLib = True
Next Ref
Dim wshell As Object
Set wshell = CreateObject("WScript.Shell")
Dim strAcadShardFd As String, acadCurVer1 As String, acadCurVer2 As String, acadLanguage As String
'读取cad的版本
acadCurVer1 = wshell.regread("HKEY_CURRENT_USER\Software\Autodesk\AutoCAD\CurVer")
'读取cad的语言版本
acadCurVer2 = wshell.regread("HKEY_CURRENT_USER\Software\Autodesk\AutoCAD\" & acadCurVer1 & "\CurVer")
'读取cad的最后一次启动的语言版本
acadLanguage = wshell.regread("HKEY_CURRENT_USER\Software\Autodesk\AutoCAD\" & acadCurVer1 & "\" & acadCurVer2 & "\AllUsersFolder")
Dim LanguagePath As Variant, acadVer As String
LanguagePath = VBA.Split(acadLanguage, "\")
acadVer = VBA.Mid(acadCurVer1, , ) & LanguagePath(UBound(LanguagePath) - )
acadName = LanguagePath(UBound(LanguagePath) - )
'读取cad的64位类型库的路径
strAcadShardFd = wshell.regread("HKEY_CURRENT_USER\Software\Autodesk\AutoCAD\" & acadCurVer1 & "\" & acadCurVer2 & "\AutodeskSharedFolder") '读取cad的32位类型库的路径
'strAcad32ShardFd = wshell.regread("HKEY_CURRENT_USER\Software\Autodesk\AutoCAD\" & acadCurVer1 & "\" & acadCurVer2 & "\AutodeskShared32Folder") Set wshell = Nothing If hasAutoTypeLib = False Then
ThisWorkbook.VBProject.References.AddFromFile (strAcadShardFd & "acax" & acadVer & ".tlb")
MsgBox acadName & " AutoCAD Type Lib Already add to referecne scucces"
Else
MsgBox "AutoCAD Type Lib Already add to referecne, no need add aagin"
End If
If hasAXDBLib = False Then
ThisWorkbook.VBProject.References.AddFromFile (strAcadShardFd & "axdb" & acadVer & ".tlb")
MsgBox acadName & " AXDBLib Already add to referecne scucces"
Else
MsgBox "AXDBLib Already add to referecne, no need add aagin"
End If
End Sub

EXCEL 引用autocad vba,自动加载其类型库的更多相关文章

  1. 启动AutoCAD时自动加载.NET开发的DLL

    程序组织,建立名为*.bundle的文件夹,创建Contents子文件夹,并将dll,ico等文件放进Contents中,在*.bundle中创建PackageContents.xml文件,内容如下: ...

  2. Composer概述及其自动加载探秘

    composer概述 一开始,最吸引我的当属 Composer 了,因为之前从没用过 Composer . Composer 是PHP中用来管理依赖关系的工具,你只需在自己的项目中声明所依赖的外部工具 ...

  3. phper必知必会之类库自动加载的七种方式(三)

    ## php自动加载 下面显示例子的文件目录结构图 一.没有使用命名空间的几种实现 test/oneClass.php class oneClass{ public function show(){ ...

  4. Composer 自动加载(autoload)机制

    自动加载的类型 总体来说 composer 提供了几种自动加载类型 classmap psr-0 psr-4 files 这几种自动加载都会用到,理论上来说,项目代码用 psr-4 自动加载, hel ...

  5. 让Lua自己把文件夹下面的所有文件自动加载起来吧

    没有想到我也做了一回标题党.其实这里边说的自动还是有夸大其词的部分.其实只是指定文件夹,然后根据指定文件夹数据,加载目录下边的内容而已. 怎么来进行Lua文件的加载 一般情况下,相关的功能需要给他创建 ...

  6. 如何实现一个php框架系列文章【3】支持psr4的自动加载类

    psr4自动加载规范https://github.com/PizzaLiu/PHP-FIG/blob/master/PSR-4-autoloader-cn.md 我们把第三方使用psr规范的类库放在v ...

  7. 速战速决 (5) - PHP: 动态地创建属性和方法, 对象的复制, 对象的比较, 加载指定的文件, 自动加载类文件, 命名空间

    [源码下载] 速战速决 (5) - PHP: 动态地创建属性和方法, 对象的复制, 对象的比较, 加载指定的文件, 自动加载类文件, 命名空间 作者:webabcd 介绍速战速决 之 PHP 动态地创 ...

  8. 【php】命名空间 和 自动加载的关系

    目的 本文的目的主要是说明 命名空间的 use 关键词 和 new ClassName 这两个步骤,哪个步骤才会执行自动加载,这是逻辑有点混乱的表现,这种想法也是很正常的,让我们来解密吧 命名空间(n ...

  9. 关闭WordPress自动加载的Open Sans字体-WP访问过慢原因

    序言 wordpress大概从wp-3.8开始会自动加载Open Sans字体,并引用Google上面的CSS样式.而最近谷歌经常打不开,导致网站访问速度过慢,严重的会拖慢几十秒.Open Sans字 ...

随机推荐

  1. JavaScript动画实例:圆点的衍生

    考虑如下的曲线方程: R=S*sqrt(n) α=n*θ X=R*SIN(α) Y=R*COS(α) 其中,S和θ可指定某一个定值.对n循环取0~999共1000个值,对于每个n,按照给定的坐标方程, ...

  2. Redis服务之常用数据类型

    上一篇博客我们聊了下redis的主从复制.aof持久化.集群.慢日志相关配置指令的说明,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/13416534.html ...

  3. html标签知识(无表单、表格)

    <meta> : 定义在head中 <hgroup></hgroup> : 标题分组标签 <br>: 换行标签 !  : 空行 <p>< ...

  4. 提交项目到码云上git的使用

    git clone .. cd 到项目目录 git branch   查看当前的所有分支 git branch shanshan    创建一个属于自己的分支 git checkout shansha ...

  5. qt中使用dll库的方法

    使用dll文件时首先通过dll文件导出符号表,如下面介绍 1. 制作def 直接调用 pexports mylib.dll > mylib.def 2. 生成a 需要mylib.dll和myli ...

  6. 8 Java 条件逻辑语句

    生活中,我们经常需要先做判断,然后才决定是否要做某件事情.例如,在上学的时候,如果期末考试成绩在全校能拿到前100名,则奖励一个 iPhone 11 .对于这种“需要先判断条件,条件满足后才执行的情况 ...

  7. [机器学习 ]PCA降维--两种实现 : SVD或EVD. 强力总结. 在鸢尾花数据集(iris)实做

    PCA降维--两种实现 : SVD或EVD. 强力总结. 在鸢尾花数据集(iris)实做 今天自己实现PCA,从网上看文章的时候,发现有的文章没有搞清楚把SVD(奇异值分解)实现和EVD(特征值分解) ...

  8. JS学习第二天

    数组: var arr1=[2,5,6];    定义时直接给数组元素赋值 var arr2=[];   定义一个空数组 var arr3=new Array();     定义一个空数组并通过索引来 ...

  9. Vue Element-UI 中列表单选的实现

    el-table中单选的实现 引用场景: 选择单条数据进行业务操作 实现方式: 给el-table-column设置el-radio Template 代码 <div class="r ...

  10. JavaScript基础-06-正则表达式

    正则表达式 1. 正则表达式用于定义一些字符串的规则:计算机可以根据正则表达式,来检查一个字符串是否符合规则,将字符串中符合规则的内容提取出来. 2. 创建正则表达式对象: var reg=new R ...