Outlookのオートコンプリート | ITビジネス + 旅とグルメ

ITビジネス + 旅とグルメ

特に IT関連のビジネスのことについて、調べたり、気がついたりしたら、報告します。
英語、フランス語、旅行のこと、グルメレポートなども書きますね。
ラーメン、スイーツ(モンブラン、タルト、どら焼など)、お好み焼き、フランス料理、パスタ

ひさびさの投稿です。

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