PDA

View Full Version : Disable OUTLOOK spellcheck using VBA



Varun.Dandona
10-24-2011, 07:11 PM
Hi,

I have been trying this with no success.

Could any 1 please help me with Disabling the OUTLOOK Spellcheck using Excel VBA. The problem here is that the Macros for OUTLOOK have been diabled by the ADMIN here.

Regards
Varun Dandona

Admin
10-24-2011, 07:55 PM
Hi Varun,

Welcome to ExcelFox !!

Couldn't you disable the spell checking via Tools > Options > Spelling and uncheck 'Always check spelling before sending' ?

Varun.Dandona
10-24-2011, 08:03 PM
Hi Admin,

I have made a tool where user can send query to me. So cant go to each and every user and do the above process. I want it to be done automatically through a VBA CODE. eg. using some application.sendkeys or something else.

Regards
Varun

Admin
10-24-2011, 09:29 PM
Hi Varun,

In a standard module


'// Original code from : http://vba-corner.livejournal.com/3054.html
'reads the value for the registry key i_RegKey
'if the key cannot be found, the return value is ""
Function RegKeyRead(i_RegKey As String) As String

Dim myWS As Object

On Error Resume Next
'access Windows scripting
Set myWS = CreateObject("WScript.Shell")
'read key from registry
RegKeyRead = myWS.RegRead(i_RegKey)

End Function
Function RegKeyExists(i_RegKey As String) As Boolean

Dim myWS As Object

On Error GoTo ErrorHandler
'access Windows scripting
Set myWS = CreateObject("WScript.Shell")
'try to read the registry key
myWS.RegRead i_RegKey
'key was found
RegKeyExists = True
Exit Function

ErrorHandler:
'key was not found
RegKeyExists = False

End Function

'Saving a Registry key:
'sets the registry key i_RegKey to the
'value i_Value with type i_Type
'if i_Type is omitted, the value will be saved as string
'if i_RegKey wasn't found, a new registry key will be created
Sub RegKeySave(i_RegKey As String, i_Value As String, _
Optional i_Type As String = "REG_SZ")

Dim myWS As Object

'access Windows scripting
Set myWS = CreateObject("WScript.Shell")
'write registry key
myWS.RegWrite i_RegKey, i_Value, i_Type

End Sub

'Deleting a key from the Registry:
'deletes i_RegKey from the registry
'returns True if the deletion was successful,
'and False if not (the key couldn't be found)
Function RegKeyDelete(i_RegKey As String) As Boolean

Dim myWS As Object

On Error GoTo ErrorHandler
'access Windows scripting
Set myWS = CreateObject("WScript.Shell")
'delete registry key
myWS.RegDelete i_RegKey
'deletion was successful
RegKeyDelete = True
Exit Function

ErrorHandler:
'deletion wasn't successful
RegKeyDelete = False

End Function

Again in a standard module. (Better to insert new one)


'HKEY_CURRENT_USER\Software\Microsoft\Office\12.0\ Outlook\Options\Spelling\Check"
'0 = disabled
'1 = enabled

Sub DisableSpellCheckRegistryChange()

Dim strRegKey As String
Dim strValue As String
Dim strAnswer As Long

'MS Outlook 2007
strRegKey = "HKEY_CURRENT_USER\Software\Microsoft\Office\12.0\O utlook\Options\Spelling\Check"

'check if key exists
If RegKeyExists(strRegKey) = True Then
If RegKeyRead(strRegKey) = 1 Then
RegKeySave strRegKey, 0
End If
Else
MsgBox "Unable to edit the Registry", vbInformation
End If

End Sub

HTH

coldbeersoldhere
10-25-2011, 03:23 PM
Do we have any option other than tampering the registry. The reason for that is:
Sometimes because of group policies applied on the computer it impossible to change anything in the registry.
It will give any error "Permission Denied"

Regards
Gurpreet Singh

Admin
10-25-2011, 10:06 PM
Hi Gurpreet,

Welcome to ExcelFox !!!

Unfortunately I'm not aware of any other method :(