Visualizzazione post con etichetta Tema. Mostra tutti i post
Visualizzazione post con etichetta Tema. Mostra tutti i post

venerdì 29 maggio 2020

MS Office: Modificare il tema di Office mediante registro di sistema

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.

Tema di Office
FIG 1 - Tema di Office


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

Tema di Office, valore binario DATA
FIG 2 - Tema di Office, valore binario DATA


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.