MS Office permette all'utente di impostare il tipo di tema preferito selezionandolo tra i quattro messi a disposizione: A colori, Grigio scuro, Nero, Bianco. Per modificare il tema basta cliccare sul menu File -> Opzioni da un'applicazione del pacchetto Office (come Word, Excel, Outlook ecc) e, nella scheda Generale, all'interno della sezione Personalizzazione della copia di Microsoft Office in uso selezionare dalla casella combinata Tema di Office il tema desiderato.
Per eseguire la stessa operazione tramite registro di sistema è necessario agire su 2 valori:
il valore DWORD nominato UI Theme presente in
HKEY_CURRENT_USER\Software\Microsoft\Office\xx.0\Common\
e sul valore binario DATA presente in
HKEY_CURRENT_USER\Software\Microsoft\Office\xx.0\Common\Roaming\Identities\{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx-ADAL}\Settings\1186\{00000000-0000-0000-0000-000000000000}\
dove al posto xx.0 va indicata la versione di Office (ad es. 15.0 per Office 2013, 16.0 per Office 2016 e 2019) mentre al posto di xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx è presente una stringa alfanumerica (GUID) che varia in base all'utenza e la versione di office installata.
I valori corrispondenti ai temi selezionabili in Office sono:
0 per il tema A colori.
3 per il tema Grigio scuro.
4 per il tema Nero.
5 per il tema Bianco.
Supponendo di voler impostare il tema Grigio scuro
ad UI THEME va assegnato il valore 3
mentre a DATA il valore binario 03 00 00 00
Di seguito un semplice script PowerShell che modifica il tema per Office 2016
Do{
cls
Write-Host "================ Seleziona tema Office 2016 ================"
Write-Host "0: Premi '0' per il tema 'A colori'."
Write-Host "3: Premi '3' per il tema 'Grigio scuro'."
Write-Host "4: Premi '4' per il tema 'Nero'."
Write-Host "5: Premi '5' per il tema 'Bianco'."
Write-Host "Q: Premi 'Q' per uscire."
Write-Host
$officeThemeValue = Read-Host "Scegli";
Write-Host
}While($officeThemeValue -notin 0,3,4,5,'q')
if ($officeThemeValue -ne 'q'){
$OfficeThemeRegKey = 'HKCU:\Software\Microsoft\Office\16.0\Common'
Set-ItemProperty -Path $OfficeThemeRegKey -Name 'UI Theme' -Value $officeThemeValue -Type DWORD
Get-ChildItem -Path ($OfficeThemeRegKey + "\Roaming\Identities\") | ForEach-Object {
$identityPath = ($_.Name.Replace('HKEY_CURRENT_USER', 'HKCU:') + "\Settings\1186\{00000000-0000-0000-0000-000000000000}");
if (Get-ItemProperty -Path $identityPath -Name 'Data' -ErrorAction Ignore) {
Write-Verbose $identityPath
Set-ItemProperty -Path $identityPath -Name 'Data' -Value ([byte[]]($officeThemeValue, 0, 0, 0)) -Type Binary
}
}
Write-Host "Modifica effettuata. Riavviare le applicazioni Office."
}
Dal seguente link è possibile scaricare il file PS1 contenente lo script.