Registering an OCX with VBA

V

Viswanath Tumu

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.
 
M

Michel Pierron

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
 
G

Guest

dear Michel,

Many, many thanks for the very helpful comments. I shall
incorporate the same into my code and give it a go.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top