はじめに
このあたりの資料でも言われているように、句読点の種類は複数あり、仕様書の体裁も取引先のフォーマットに従わなければならない。違うフォーマットを要求している仕様書を、同時並行で書かなければならなくなった際、句読点を切り替えたいと思う時があった。
Windows11のMicrosoft IMEの設定は次の写真のように、4種類の句読点が設定されている。
もちろん、GUIで設定を変更するのであれば簡単なのだが、いちいちクリックするのは面倒である。そこでコマンドプロンプト等のCUIベースで切り替えられるようにしたいと考えた。
IMEの設定はレジストリにある
このようなサイトを参考にしたところ、HKEY_CURRENT_USER:\Software\Microsoft\IME\15.0\IMEJP\MSIME
にMicrosoft IMEの設定があることが判明した。
また、GUIで設定を変更しながら、レジストリエディタを起動して眺めていると、私の環境ではoption1
のデータ値(10進数表記)が「、。」の場合1376768
、「,。」の場合1507840
であることが分かった。
PowerShellで書き換える
レジストリに書かれてあるならば、コマンドプロンプトだろうとPowerShellだろうと、書き換えられる。そこで、今回はPowerShellを使って句読点を変更できるようにしてみた。
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が大変なことになる可能性があるので、実行は自己責任で。
以上。