 - 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, 2, 2) & LanguagePath(UBound(LanguagePath) - 1)
- acadName = LanguagePath(UBound(LanguagePath) - 3)
- '读取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
|