![]() |
Registering an OCX with VBA
Hello. Is there a way to register an OCX control such as
mscomctl.ocx via VBA? As you know, the manual way is to go to 'Run' and type in regsvr32 <path & filename of ocx. In other words, how can I implement the same via Visual Basic Code? I am trying to automate a process of registering an OCX so that I do not receive the 'Could not load an object because it was not found on this machine' error. My other question is even though I am using the Packaging Wizard to package my application, I still receive the error when the program is run on a different os such as Windows NT. Can the Packaging wizard not register the ocx appropriately depending on the OS in which the application is installed? Is there an easy way to register an OCX regardless of the os that the end-user will have on his PC? Many thanks. |
Registering an OCX with VBA
Hi Viswanath Tumu;
Private Declare Function GetSystemDirectory& Lib "kernel32" Alias _ "GetSystemDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) Sub OcxReg(OcxName As String) Dim sPath As String, tPath As String sPath = ThisWorkbook.Path & "\" & OcxName If Dir(sPath) = "" Then MsgBox "File " & sPath & " no found !", 48: Exit Sub tPath = Space(255) tPath = Left(tPath, GetSystemDirectory(tPath, 255)) & "\" If Dir(tPath & OcxName) = "" Then FileCopy sPath, tPath & OcxName Shell tPath & "regsvr32.exe " & OcxName & " /s" End If End Sub MP "Viswanath Tumu" a écrit dans le message de ... Hello. Is there a way to register an OCX control such as mscomctl.ocx via VBA? As you know, the manual way is to go to 'Run' and type in regsvr32 <path & filename of ocx. In other words, how can I implement the same via Visual Basic Code? I am trying to automate a process of registering an OCX so that I do not receive the 'Could not load an object because it was not found on this machine' error. My other question is even though I am using the Packaging Wizard to package my application, I still receive the error when the program is run on a different os such as Windows NT. Can the Packaging wizard not register the ocx appropriately depending on the OS in which the application is installed? Is there an easy way to register an OCX regardless of the os that the end-user will have on his PC? Many thanks. |
Registering an OCX with VBA
dear Michel,
Many, many thanks for the very helpful comments. I shall incorporate the same into my code and give it a go. -----Original Message----- Hi Viswanath Tumu; Private Declare Function GetSystemDirectory& Lib "kernel32" Alias _ "GetSystemDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) Sub OcxReg(OcxName As String) Dim sPath As String, tPath As String sPath = ThisWorkbook.Path & "\" & OcxName If Dir(sPath) = "" Then MsgBox "File " & sPath & " no found !", 48: Exit Sub tPath = Space(255) tPath = Left(tPath, GetSystemDirectory(tPath, 255)) & "\" If Dir(tPath & OcxName) = "" Then FileCopy sPath, tPath & OcxName Shell tPath & "regsvr32.exe " & OcxName & " /s" End If End Sub MP "Viswanath Tumu" a écrit dans le message de ... Hello. Is there a way to register an OCX control such as mscomctl.ocx via VBA? As you know, the manual way is to go to 'Run' and type in regsvr32 <path & filename of ocx. In other words, how can I implement the same via Visual Basic Code? I am trying to automate a process of registering an OCX so that I do not receive the 'Could not load an object because it was not found on this machine' error. My other question is even though I am using the Packaging Wizard to package my application, I still receive the error when the program is run on a different os such as Windows NT. Can the Packaging wizard not register the ocx appropriately depending on the OS in which the application is installed? Is there an easy way to register an OCX regardless of the os that the end- user will have on his PC? Many thanks. . |
All times are GMT +1. The time now is 08:36 AM. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com