LoginSignup
1
0

More than 1 year has passed since last update.

Microsoft IMEの句読点の設定をPowerShellで書き換える

Posted at

はじめに

このあたりの資料でも言われているように、句読点の種類は複数あり、仕様書の体裁も取引先のフォーマットに従わなければならない。違うフォーマットを要求している仕様書を、同時並行で書かなければならなくなった際、句読点を切り替えたいと思う時があった。

Windows11のMicrosoft IMEの設定は次の写真のように、4種類の句読点が設定されている。
image.png
もちろん、GUIで設定を変更するのであれば簡単なのだが、いちいちクリックするのは面倒である。そこでコマンドプロンプト等のCUIベースで切り替えられるようにしたいと考えた。

IMEの設定はレジストリにある

このようなサイトを参考にしたところ、HKEY_CURRENT_USER:\Software\Microsoft\IME\15.0\IMEJP\MSIMEにMicrosoft IMEの設定があることが判明した。
また、GUIで設定を変更しながら、レジストリエディタを起動して眺めていると、私の環境ではoption1のデータ値(10進数表記)が「、。」の場合1376768、「,。」の場合1507840であることが分かった。

PowerShellで書き換える

レジストリに書かれてあるならば、コマンドプロンプトだろうとPowerShellだろうと、書き換えられる。そこで、今回はPowerShellを使って句読点を変更できるようにしてみた。

change_punctuation.ps1
Add-Type -AssemblyName System.Windows.Forms;
$now_option1 =  (Get-ItemProperty HKCU:\Software\Microsoft\IME\15.0\IMEJP\MSIME).option1
$text = "現在の句読点が認識できません(Value=$now_option1)。`r`n「、 。」に変更しますか?";
$chenge_to = 1376768;

if($now_option1 -eq 1376768){
	$text = "現在の句読点は「、 。」です。`r`n「,。」に変更しますか?";
	$chenge_to = 1507840;
}elseif($now_option1 -eq 1507840){
	$text = "現在の句読点は「,。」です。`r`n「、 。」に変更しますか?";
	$chenge_to = 1376768;
}

$caption = "句読点の変更確認";
$buttonsType = "OKCancel";
$iconType = "Question";
$result = [System.Windows.Forms.MessageBox]::Show($text, $caption, $buttonsType, $iconType);
if($result -eq [System.Windows.Forms.DialogResult]::OK){
	Set-ItemProperty HKCU:\Software\Microsoft\IME\15.0\IMEJP\MSIME -Name option1 -Value $chenge_to
}

これを適当な場所に設置し、「右クリック」→「PowerShellで実行」を押すと確認ダイアログが出現する。おそらく、似たようなことがbatファイルでも出来る(regコマンド)と思われるが、今回はそこまでは手を出していない。

おわりに

レジストリを無暗に編集するとOSが大変なことになる可能性があるので、実行は自己責任で。
 

以上。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0