View Single Post
  #2   Report Post  
Posted to microsoft.public.excel.programming
Michel Pierron Michel Pierron is offline
external usenet poster
 
Posts: 214
Default 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.