zoukankan      html  css  js  c++  java
  • EXCEL 引用autocad vba,自动加载其类型库


    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_USERSoftwareAutodeskAutoCADCurVer")
        '读取cad的语言版本
        acadCurVer2 = wshell.regread("HKEY_CURRENT_USERSoftwareAutodeskAutoCAD" & acadCurVer1 & "CurVer")
        '读取cad的最后一次启动的语言版本
        acadLanguage = wshell.regread("HKEY_CURRENT_USERSoftwareAutodeskAutoCAD" & 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_USERSoftwareAutodeskAutoCAD" & acadCurVer1 & "" & acadCurVer2 & "AutodeskSharedFolder")
        
        '读取cad的32位类型库的路径
        'strAcad32ShardFd = wshell.regread("HKEY_CURRENT_USERSoftwareAutodeskAutoCAD" & 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
    

     

     

  • 相关阅读:
    Python——读取大文件(GB)
    Flask——实现上传功能
    Python-模块XlsxWriter将数据写入excel
    Python-利用xlrd模块操作excel
    并发环境下,先操作数据库还是先操作缓存?
    深入浅出了解CDN
    Python——格式化GMT时间
    Python——数据库like模糊查询
    全面了解HTTP和HTTPS
    Http-请求过程
  • 原文地址:https://www.cnblogs.com/NanShengBlogs/p/13606109.html
Copyright © 2011-2022 走看看