Windows の游ゴシック Regular・Light を Medium フォントに差し替えて太く見せる VBScript

Windows で游ゴシックフォントが細く見える問題に終止符。

Windows に搭載されている「游ゴシック Regular」と「游ゴシック Light」について、フォント名とフォントファイルの関連付けを行っているレジストリを書き換えてしまい、どちらの場合も 「游ゴシック Medium」フォントで表示させてしまおう、という目論見。

手作業での手順は以下の記事で紹介したが、今回はコレを VBScript にした。

以下がその VBScript だ。コレを ForceYuGothicMedium.vbs とかいう名前で保存しよう。

Option Explicit

' 「游ゴシック Regular」「游ゴシック Light」のフォントを「游ゴシック Medium」のフォントファイルに差し替えて
' Windows 環境の游ゴシックを太めにするスクリプト
' 
' - 「游ゴシック Medium」のフォントファイルをコピーして用意してレジストリを書き換えます
' - 実行後、一度サインアウトして再度サインインすると変更が反映されます
' - 管理者権限がないと WScript.Shell の regWrite 関数で「レジストリ キー "…" のルートが無効です。」エラーが出るので
'   管理者権限で開いたコマンドプロンプトより `cscript ForceYuGothicMedium.vbs` と実行してください

' Object の用意
Dim shell : Set shell = WScript.CreateObject("WScript.Shell")
Dim fs    : Set fs    = WScript.CreateObject("Scripting.FileSystemObject")

' レジストリキーの宣言
Dim fontsKey           : fontsKey           = "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts\"
Dim yuGothicRegularKey : yuGothicRegularKey = fontsKey & "Yu Gothic Regular & Yu Gothic UI Semilight (TrueType)"
Dim yuGothicLightKey   : yuGothicLightKey   = fontsKey & "Yu Gothic Light & Yu Gothic UI Light (TrueType)"

' 変更前のレジストリ値を読んでおく
Dim yuGothicRegularValue : yuGothicRegularValue = shell.RegRead(yuGothicRegularKey)
Dim yuGothicLightValue   : yuGothicLightValue   = shell.RegRead(yuGothicLightKey)

WScript.Echo("変更前の YuGothic Regular フォントファイル名 : " & yuGothicRegularValue)
WScript.Echo("変更前の YuGothic Light フォントファイル名   : " & yuGothicLightValue)

' YuGothic Medium フォント
Dim fontsPath          : fontsPath      = "C:\Windows\Fonts\"
Dim yuGothicMediumFile : yuGothicMedium = "YuGothM.ttc"
' 以下のファイル名でコピーを配置する
Dim yuGothicMediumForRegular : yuGothicMediumForRegular = "YuGothM2.ttc"
Dim yuGothicMediumForLight   : yuGothicMediumForLight   = "YuGothM3.ttc"

' ファイルコピー実行
On Error Resume Next
Call fs.CopyFile(fontsPath & yuGothicMediumFile, fontsPath & yuGothicMediumForRegular)
Call fs.CopyFile(fontsPath & yuGothicMediumFile, fontsPath & yuGothicMediumForLight)
On Error GoTo 0
WScript.Echo(yuGothicMediumForRegular & " ファイルのコピー生成完了")
WScript.Echo(yuGothicMediumForLight   & " ファイルのコピー生成完了")

' レジストリ値を変更する
shell.RegWrite yuGothicRegularKey, yuGothicMediumForRegular, "REG_SZ"
shell.RegWrite yuGothicLightKey  , yuGothicMediumForLight  , "REG_SZ"
WScript.Echo("ファイルコピー・レジストリ変更完了")

次に、管理者権限でコマンドプロンプトか PowerShell を開く。Win + X キーを押下して現れるメニューから選択すると早いだろう。

ForceYuGothicMedium.vbs ファイルを保存したディレクトリに移動し、cscript コマンドで実行する。管理者権限がないと、RegWrite 関数でエラーが発生してしまう。

> cscript ForceYuGothicMedium.vbs

コレで OK。あとは一度サインアウトしてから再度サインインすれば、游ゴシック Regular・游ゴシック Light が使われていたところに、游ゴシック Medium が適用されるようになっているはずだ。OS 環境からまるっと Regular・Light フォントを葬ってしまうので、ブラウザやソフトを問わず効果がある。

スクリプトを見てもらえば分かるが、参照するフォントファイル名を切り替えているだけで、Regular・Light ウェイトのフォントファイル自体は残してあるので、レジストリをイジれば元に戻せる。