I have the following piece of VB code to get the registry subkey (NOT the key or the value of a registry). I just need to list out applications in Microsoft subkey (e.g. Office, Notepad, Keyboard etc.).
It worked in VB.NET but I’m trying to apply the same code to VBA in Macro, I get a run time error saying "Object variable or With block variable not set" on the line of GetOBject and EmumKey. I though the following code should be compatible for both VB.NET and VBA.
Can anyone please explain?
Dim temp As Object
'On Error Resume Next
Const HKEY_CURRENT_USER = &H80000001
temp = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & "." & "\root\default:StdRegProv")
Dim rPath As String
rPath = "Software\Microsoft\IdentityCRL\UserExtendedProperties"
Dim arrSubKeys(5) As Object
temp.EnumKey(HKEY_CURRENT_USER, rPath, arrSubKeys)
For Each ask In arrSubKeys
MsgBox(ask.ToString)
Next
For VBA try it like this
tempis an object and needs to be used with Settemp.Enumsyntax istemp.EnumKey HKEY_CURRENT_USER, rPath, arrSubKeysnottemp.EnumKey(HKEY_CURRENT_USER, rPath, arrSubKeys)Dimyour variables at the top of your code for neatness 🙂This code lists all the folders under
HKEY_CURRENT_USER\Software\Microsoft\to the Immediate window of the VBE