ひさびさの投稿です。
Outlookのオートコンプリートは、便利です
メールの送信相手の名前の一部を入れると候補が出てきて、そこから選択することができるようにする機能です。
しかし、これをチェックするツールが入っています。
そのツールでは、オートコンプリートをONにすると、禁止ではないが、注意と判定されます。
禁止でないので、気にしなくてよいのですが、注意すらいやです。
このツールは、どうやってチェックしているかと考えたところ、おそらく、レジストリだろうと思うのです。
手動でレジストリを修正して、オートコンプリートできなくしたのですが、なんと、Outlookでは引き続きオートコンプリートが使えるのです。
このとき、ツールでは、オートコンプリートはOffになっていると判定されました。
それなら、手動でレジストリを修正したままにすれば、問題なく、これで解決です。
実は、VBSで、設定を変更するものを作りました。結果的には不要です。
今、ONなら、Offにし、今、OffならOnにします。もちろん、メッセージを出して、今の状態を表示して、変更するかどうかの確認をします。
以下を拡張子.vbsとして保存すれば実行できます。
Const HKEY_CLASSES_ROOT = &H80000000
Const HKEY_CURRENT_USER = &H80000001
Const HKEY_LOCAL_MACHINE = &H80000002
Const HKEY_USERS = &H80000003
Const HKEY_CURRENT_CONFIG = &H80000005
Dim strComputer
Dim strKeyPath
Dim strValueName
Dim dwValue
Dim strMsg
Dim rc
Dim Ws
Dim oSh
If WScript.Arguments.Count = 0 Then
Set oSh = CreateObject("Shell.Application")
oSh.ShellExecute "wscript.exe", """" & WScript.ScriptFullName & """ xxxxx", "", "runas", 1
WScript.Quit
End if
strComputer = "."
Set oReg = GetObject("winmgmts:\\" & strComputer & "\root\default:StdRegProv")
strKeyPath = "SOFTWARE\Microsoft\Office\16.0\Outlook\Preferences"
strValueName = "ShowAutoSug"
oReg.GetDWORDValue HKEY_CURRENT_USER,strKeyPath,strValueName,dwValue
If IsNull(dwValue) Then
WScript.Echo "No registry key exists for AutoComplete,"
WScript.Quit
End If
If dwValue = 0 then
strMsg = "Current AutoComplete is OFF" & vbCrLf & "Do you make it ON?"
Else
strMsg = "Current AutoComplete is ON" & vbCrLF & "Do you make it OFF?"
end if
rc = MsgBox(strMsg, vbYesNo, "AutoComplete")
If rc = vbYes Then
Set Ws = WScript.CreateObject("WScript.Shell")
If dwValue = 0 Then
Ws.RegWrite "HKCU\SOFTWARE\Microsoft\Office\16.0\Outlook\Preferences\ShowAutoSug", 1, "REG_DWORD"
Else
Ws.RegWrite "HKCU\SOFTWARE\Microsoft\Office\16.0\Outlook\Preferences\ShowAutoSug", 0, "REG_DWORD"
End if
Set Ws = Nothing
End if
WScript.Quit