rosko, совсем из головы вылетело, вот так должно быть, и забыл сказать, что после установки нужно перезапустить excel [vba]
Код
#If Win64 Then Private Const d$ = "%windir%\syswow64\" Private Const b$ = "wow6432node\Microsoft" #Else Private Const d$ = "%windir%\system32\" Private Const b$ = "Microsoft" #End If Sub install_msflxgrd() With CreateObject("WScript.Shell") .RegWrite "HKLM\SOFTWARE\" & b$ & "\Internet Explorer\ActiveX Compatibility\{6262D3A0-531B-11CF-91F6-C2863C385E30}\Compatibility Flags", 0, "REG_DWORD" .RegWrite "HKCR\Licenses\72E67120-5959-11cf-91F6-C2863C385E30\", "ibcbbbebqbdbciebmcobmbhifcmciibblgmf", "REG_SZ" .Run "regsvr32 /s " & d & "msflxgrd.ocx " & d & "msstkprp.dll" End With End Sub
[/vba] если разрядность ОС отличается от разрядности Excel, то можно [vba]
Код
Sub install_msflxgrd() Dim d$, b$ If Len(Environ("ProgramW6432")) > 0 Then d = "%windir%\syswow64\" b = "wow6432node\Microsoft" Else d = "%windir%\system32\" b = "Microsoft" End If With CreateObject("WScript.Shell") .RegWrite "HKLM\SOFTWARE\" & b$ & "\Internet Explorer\ActiveX Compatibility\{6262D3A0-531B-11CF-91F6-C2863C385E30}\Compatibility Flags", 0, "REG_DWORD" .RegWrite "HKCR\Licenses\72E67120-5959-11cf-91F6-C2863C385E30\", "ibcbbbebqbdbciebmcobmbhifcmciibblgmf", "REG_SZ" .Run "regsvr32 /s " & d & "msflxgrd.ocx " & d & "msstkprp.dll" End With End Sub
[/vba][p.s.]если включен UAC, то excel должен быть запущен с правами администратора
rosko, совсем из головы вылетело, вот так должно быть, и забыл сказать, что после установки нужно перезапустить excel [vba]
Код
#If Win64 Then Private Const d$ = "%windir%\syswow64\" Private Const b$ = "wow6432node\Microsoft" #Else Private Const d$ = "%windir%\system32\" Private Const b$ = "Microsoft" #End If Sub install_msflxgrd() With CreateObject("WScript.Shell") .RegWrite "HKLM\SOFTWARE\" & b$ & "\Internet Explorer\ActiveX Compatibility\{6262D3A0-531B-11CF-91F6-C2863C385E30}\Compatibility Flags", 0, "REG_DWORD" .RegWrite "HKCR\Licenses\72E67120-5959-11cf-91F6-C2863C385E30\", "ibcbbbebqbdbciebmcobmbhifcmciibblgmf", "REG_SZ" .Run "regsvr32 /s " & d & "msflxgrd.ocx " & d & "msstkprp.dll" End With End Sub
[/vba] если разрядность ОС отличается от разрядности Excel, то можно [vba]
Код
Sub install_msflxgrd() Dim d$, b$ If Len(Environ("ProgramW6432")) > 0 Then d = "%windir%\syswow64\" b = "wow6432node\Microsoft" Else d = "%windir%\system32\" b = "Microsoft" End If With CreateObject("WScript.Shell") .RegWrite "HKLM\SOFTWARE\" & b$ & "\Internet Explorer\ActiveX Compatibility\{6262D3A0-531B-11CF-91F6-C2863C385E30}\Compatibility Flags", 0, "REG_DWORD" .RegWrite "HKCR\Licenses\72E67120-5959-11cf-91F6-C2863C385E30\", "ibcbbbebqbdbciebmcobmbhifcmciibblgmf", "REG_SZ" .Run "regsvr32 /s " & d & "msflxgrd.ocx " & d & "msstkprp.dll" End With End Sub
[/vba][p.s.]если включен UAC, то excel должен быть запущен с правами администратораkrosav4ig
rosko, видимо у вас ограниченная учетная запись, попробуйте так [vba]
Код
#If VBA7 Then Private Declare PtrSafe Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" ( _ ByVal hWnd As LongPtr, _ ByVal lpOperation As String, _ ByVal lpFile As String, _ ByVal lpParameters As String, _ ByVal lpDirectory As String, _ ByVal nShowCmd As Long _ ) As LongPtr #Else Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" ( _ ByVal hWnd As Long, _ ByVal lpOperation As String, _ ByVal lpFile As String, _ ByVal lpParameters As String, _ ByVal lpDirectory As String, _ ByVal nShowCmd As Long _ ) As Long #End If
Public Sub install_msflxgrd() Dim d$, b$ If Len(Environ("ProgramW6432")) > 0 Then d = "%windir%\syswow64\" b = "wow6432node\Microsoft" Else d = "%windir%\system32\" b = "Microsoft" End If ShellExecute 0, "runas", "cmd.exe", "/c " & _ "REG ADD ""HKLM\SOFTWARE\" & b & "\Internet Explorer\ActiveX Compatibility\{6262D3A0-531B-11CF-91F6-C2863C385E30}\Compatibility Flags"" /f /t REG_SZ /d 0&&" & _ "REG ADD ""HKCR\Licenses\72E67120-5959-11cf-91F6-C2863C385E30"" /f /t REG_SZ /d ibcbbbebqbdbciebmcobmbhifcmciibblgmf&&" & _ "regsvr32 /s " & d & "msflxgrd.ocx " & d & "msstkprp.dll", "", 0 End Sub
[/vba]
rosko, видимо у вас ограниченная учетная запись, попробуйте так [vba]
Код
#If VBA7 Then Private Declare PtrSafe Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" ( _ ByVal hWnd As LongPtr, _ ByVal lpOperation As String, _ ByVal lpFile As String, _ ByVal lpParameters As String, _ ByVal lpDirectory As String, _ ByVal nShowCmd As Long _ ) As LongPtr #Else Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" ( _ ByVal hWnd As Long, _ ByVal lpOperation As String, _ ByVal lpFile As String, _ ByVal lpParameters As String, _ ByVal lpDirectory As String, _ ByVal nShowCmd As Long _ ) As Long #End If
Public Sub install_msflxgrd() Dim d$, b$ If Len(Environ("ProgramW6432")) > 0 Then d = "%windir%\syswow64\" b = "wow6432node\Microsoft" Else d = "%windir%\system32\" b = "Microsoft" End If ShellExecute 0, "runas", "cmd.exe", "/c " & _ "REG ADD ""HKLM\SOFTWARE\" & b & "\Internet Explorer\ActiveX Compatibility\{6262D3A0-531B-11CF-91F6-C2863C385E30}\Compatibility Flags"" /f /t REG_SZ /d 0&&" & _ "REG ADD ""HKCR\Licenses\72E67120-5959-11cf-91F6-C2863C385E30"" /f /t REG_SZ /d ibcbbbebqbdbciebmcobmbhifcmciibblgmf&&" & _ "regsvr32 /s " & d & "msflxgrd.ocx " & d & "msstkprp.dll", "", 0 End Sub