Edited at

2019/4/26のWindows 新元号(令和)対応パッチでのフォント変更?での不具合調査(Windows 7, 10 1803, .NET, Excel)


Windows Updateでの修正(5/15追記)

Windows Update 定例パッチ(Bリリース、アメリカ第2火曜日の翌日、日本では5/15)で修正されたようです。

私が確認した範囲(Windows 10 1803, .NET 3.5, VB6での検証プログラム)において、修正されていることが確認できました。

Microsoft社、およびフィードバックに投票いただいた方々、ありがとうございました。


フィードバックへの解決策の内容

原文
日本語訳(Google翻訳)

The update we launched on May 15 includes a new version of msgothic.ttc that fixes this issue.Future rollup updates will contain this fix cumulatively, so we recommend that you always apply the latest update.
5月15日に開始したアップデートには、この問題を修正したmsgothic.ttcの新しいバージョンが含まれています。今後のロールアップ更新プログラムには累積的にこの修正プログラムが含まれるため、常に最新の更新プログラムを適用することをお勧めします。


@CodeOne さんの以下の記事を拝見して、自分がかかわっている環境(Windows 7, 10 1803)の状況が気になったので、調査してみました。


調査内容

記載を見る限り、MS Pゴシック・MS UI Gothicが影響していましたが、以下の点が気になり、本記事で調査しています。


  • 【確認事項1】Windows 7では問題ないのか

  • 【確認事項2】Windows 10でのサイズ(幅)は、どの程度変わるイメージなのか

調査の目的は、どの程度変わるかを把握し、業務上の影響を検討した上で、対応の方針を立てる、となります。


結論


  • Windows 7では、確認した範囲(VB6、.NET Windows Forms、Excel)において影響なし。

  • Windows 10 1803(実際はWindows 8以降が影響と思われる)では、大きな影響あり(.NET Windows Forms、Excelのレイアウトが崩れる)。Web等でも影響を受ける可能性はあるが、確認できていない。

個人的には、次の Windows Update 定例パッチ(Bリリース、アメリカ第2火曜日の翌日、日本では5/15)での改善を望みます。

フィードバックの手順は後述

この変更は、元号対応は関係なく影響を及ぼすであろうことにも注意です。

よほど特別な事情のない限り、プレビュー版である4/26、5/1(10 1809等用)のWindows Updateは、運用環境には当てない方が無難です。


KBでの進捗状況


2019年5月15日

5/15付のWindows Update 定例パッチ(Windows 10 1803 KB4499167 (OS Build 17134.765)Windows 7 SP1 KB4499164)で、不具合が修正されたようです。

Improvements and fixes

Addresses an issue that may cause the text, layout, or cell size to become narrower or wider than expected in Microsoft Excel when using the MS UI Gothic or MS PGothic fonts.

(Google翻訳)MS UI GothicまたはMS PGothicフォントを使用しているときに、テキスト、レイアウト、またはセルサイズがMicrosoft Excelで予想される幅より狭くなったり広くなったりすることがあるという問題に対処します。


Windows 7 SP1 x86

確認した範囲(.NET 3.5, VB6での同じプログラム)において、4/10、4/26と相違ありませんでした。つまり、今回の変更でのデグレードもありませんでした。


Windows 10 1803 x64 での確認

確認した範囲(.NET 3.5, VB6での同じプログラム)において、4/10の更新と相違なく、修正されていることが確認できました。


2019年5月11日

5/11付で、Windows 10 1803の4/26の累積更新のKB(英語版)に、既存の不具合として追記されていました。


5月中旬に解決策が提供される予定です。




  • 予定である

  • 5月中旬に解決策が提供される=5月の定例のWindows Updateで改善とは明言されていない

という点を考慮し、慎重に状況を見守る必要があります。

Symptom
Workaround

When using the MS UI Gothic or MS PGothic fonts, the text, layout, or cell size may become narrower or wider than expected in Microsoft Excel. For example, the layout and cell size of Microsoft Excel sheets may change when using MS UI Gothic.
Microsoft is working on a resolution and estimates a solution will be available in mid-May.

Until a resolution is released, we recommend switching to a different Japanese font, such as Yu Gothic or MS Mincho. Alternatively, you can uninstall the optional update.

(Google翻訳)MS UIゴシックフォントまたはMS PGothicフォントを使用している場合、テキスト、レイアウト、またはセルサイズがMicrosoft Excelで予想される幅より狭くなったり広くなったりすることがあります。たとえば、MS UI Gothicを使用すると、Microsoft Excelシートのレイアウトとセルサイズが変わる場合があります。
(Google翻訳)マイクロソフトは解決策を検討しており、5月中旬に解決策が提供される予定です。
解決策がリリースされるまでは、Yu GothicやMS Minchoなどの別の日本語フォントに切り替えることをお勧めします。または、オプションのアップデートをアンインストールすることもできます。


不具合報告(フィードバック)

Twitter等での発言では、Microsoftに不具合があることが伝わらない可能性があります。問題があると感じている場合は、可能な限りフィードバックいただけないでしょうか。


手順1:Windows 10でのフィードバック


既存のフィードバックに賛成票を投じる



  1. Windows 10で以下のリンクをクリックします。

    KB4495667 でExcelの表が崩れた

    4月26日、「令和」対応パッチが Windows Updateを当てると、Windowsアプリケーション、Excel等のデザインが崩れる

    ※「お使いのアカウントには~」と表示される場合は、フィードバックHUBで「KB4495667」を検索してみてください。




  2. フィードバックHubが開きますので、「賛成票を投じる」をクリックします。




手順2:Developer Communityでのフィードバック


既存のフィードバックに投票する



  1. 以下のリンクをクリックします。

    When applying the CU described in "new Japanese era Windows updates-KB 4469068", the Form And Control width of a Windows Forms application using MS UI Gothic becomes larger (Rate "1.1666")




  2. 開いたページで以下の画像の灰色の円をクリックして、投票します。




関連


関連情報(ネット上の実例)を追記


確認事項の調査結果


【確認事項1】Windows 7では問題ないのか


  • 確認範囲内(MS UI Gothic、VB6、.NET 3.5)ですが、フォント幅も含め、影響ありません。ただし、あくまで4/26のアップデートではということになります。

  • 令和の合字も出ていました。


【確認事項2】Windows 10でのサイズ(幅)はどの程度変わるイメージなのか

確認範囲内での影響は2点です。


  • 【影響1】.NET Windows Formsのフォーム、コントロールの幅

  • 【影響2】フォント変更に伴う影響(開発言語、アプリケーションによらない)


【影響1】.NET Windows Formsのフォーム、コントロールの幅


  • .NET Windows Formsのフォーム・コントロールの幅が、1.1666...倍(@CodeOne さんの記事記載のフォント幅変更どおり)大きくなる場合があります(詳細は調査結果)。


  • @hotaten さんの検証によれば、状況(※Form.ControlBox=Falseの場合)によっては幅だけでなく高さに影響が出ることもあるようです。


業務上の影響


  • 大きいと感じます。


    • 役場(官公庁、地方公共団体)では、1366 x 768のディスプレイが使われることも多いと思います。仮に1366を考慮し1300で作成していた場合には、1520(1516.666...)となるので、デザイン次第では操作に影響が出る場合もあるのではないでしょうか。


    • 幅固定のデザインでボタンが押せなくなるという事例も報告されています。




解決策


(1) Windows 側で対応されることを期待する

5月の定例パッチで修正されない可能性も念頭にいれながら、方針の事前協議が必要かと思います。


(2)Form, UserControlのAutoScaleModeDpiを設定する

Form, UserControlのAutoScaleModeFont(初期値)の場合に問題が起こります。こちらをDpiに変更します。

ただし以下の点などが気になるため、アプリケーションの規模、対象とする環境によっては、なかなか厳しいかもしれません。

それでも実施する場合は、検証の中で、OS、Framework、表示スケールなど、実運用環境を想定した環境での検証を行う必要があるかと思います。


  • Form、UserControlのプロパティのため、それぞれで設定が必要です。

  • デザイン時の情報を保存しておいて実行時のスケーリングに利用する仕様であるため、すべてのForm・User Controlを実際にデザインモードで開いて変更する必要があります。

  • AutoScaleModeのDpiとFontの混在はサポートされません。継承が絡む場合に特に問題となるようです。

  • 高解像度(表示スケールが100%以外)では、Frameworkのバージョンによっては変更することで幅が変わる場合もありました。

  • ネット上の情報では、AutoScaleModeをDPIとすることで、デザインが崩れることもあったようです(修正されている可能性もありますが、未調査です)。


関連

少々古い情報もありますので、よくご確認ください。


【影響2】フォント変更に伴う影響(開発言語、アプリケーションによらない)


  • 試した限りでは、VB6、.NET、Excelで影響がありました。ただし、他(Web、他のOffice製品)については、検証していません。影響を受ける可能性は捨てきれないため、ネイティブ/Webによらず、実際の業務範囲内において確認するべきと思います。


    • .NET Windows Forms、およびVB6フォームのフォント幅


      • VB6、.NETでは文字によってフォント幅が変わっていました。ただし、変化量は小さいものでした。



    • Excelのレイアウト崩れ


      • Excelでは画面表示のフォント間、セル幅が縮小していました。この影響で、確認した(MS Pゴシック、MS UI Gothic、MS ゴシック)中では、MS ゴシックを使用した帳票で、レイアウトが崩れと印刷での影響が確認できました。他フォントでも印刷時に2mmほど全体的な幅が変わっていました。






業務上の影響


  • 業務上支障が出るのは、限定的(シビアなデザイン設計)と思われます。ただExcelは、日本特有のシビアな帳票デザインも多いと想定されるため注意が必要そうです。


    • .NET Windows Forms、およびVB6フォームのフォント幅


      • ラベルで、AutoSize=Falseの場合文字が見切れるかもしれません。VB6の既定値はAutoSize=Falseのため注意が必要です。.NETの既定値はAutoSize=Trueです。

      • テキストボックスでは、問題とならない可能性が高いです。(MS UI Gothicを使用している、ということは文字入力が収まる必要はない想定が多いと思われるため)



    • Excelのレイアウト崩れ


      • Excel、およびExcelを書式として使用する帳票では、レイアウト崩れもありえます。実際の印刷、またはPDF出力での確認が必要かと思います。






解決策


(1) Windows 側で対応されることを期待する。

(省略、【影響1】と同じ)


(2) デザインを変更する

もし今回の変更が不具合扱いで5/15で修正された場合に、再修正が必要となると思われます。その点を踏まえ、修正の実施/未実施の検討が必要です。


以下、調査結果です



前提条件


試したプログラム


  • 手元にあった元号対応確認のために作成したプログラム(VB6、.NET 3.5(VS2015で作成))で、フォント指定は行っていません。


    • 結果として、MS UI Gothic, 9ptが選択されていると思われます。



  • Excelでも追加検証しています。


VB6


.NET 3.5


Excel


  • MS Pゴシック、MS UI Gothic、MS ゴシックでシート作成

  • A列5行以降は、列幅固定、列高さ自動調整、改行あり

  • 他は既定値(列幅固定、列高さ固定、改行なし)

  • スクリーンショット時、Excelの表示倍率 100%

  • 印刷の設定は、用紙A4、縦置き、印刷時拡大率100%、余白はMS ゴシックのみ「狭い」


試した文字列

VB6と.NET 3.5で文字列が異なるのは、プログラムのテキストボックスのサイズによる制限です。今見ると小文字のgの代わりにtを使っていますがこのままとします。


VB6

abcdefthijklmnopqrstuvwxyz

ABCDEFGHIJKLMNOPQRSTUVWXYZ
あいうえおさしすせそらりるれろかきくけこ


.NET 3.5、Excel

abcdefthijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ

あいうえおかきくけこさしすせそたちつてとなにぬねのはひふへほまみむめもらりるれろやゆよわおん


環境

各仮想環境は、ISOから新規インストール後の環境をベースとしています。

環境
OS
適用した累積アップデート
備考

環境1-1
Windows 7 SP1 Pro x86
2019 年 4 月 10 日 - KB4493472 (マンスリー ロールアップ)
.NETのアップデートは適用していません。
画面表示スケール 100%

環境1-2
Windows 7 SP1 Pro x86
2019 年 4 月 26 日 ? KB4493453 (マンスリー ロールアップのプレビュー)
.NETのアップデートは適用していません
画面表示スケール 100%

環境1-3
Windows 7 SP1 Pro x86
2019 年 4 月 26 日 ? KB4493453 (マンスリー ロールアップのプレビュー)
.NETのアップデートを適用(2018 年 12 月セキュリティおよび品質ロールアップ2019 年 3 月更新プログラム
画面表示スケール 100%

環境2-1
Windows 10 1803 Pro x64
2019 年 4 月 10 日 ? KB4493464 (OS ビルド 17134.706)
.NET 3.5をOSのCD(updated_march_2019)からインストール後、適用しています。
画面表示スケール 100%

環境2-2
Windows 10 1803 Pro x64
2019 年 4 月 26 日 ? KB4493437 (OS ビルド 17134.753)
.NET 3.5をOSのCD(updated_march_2019)からインストール後、適用しています。
画面表示スケール 100%
Microsoftのページタイトルには記載がありませんが、こちらもあくまでプレビューです。

環境3-1
Windows 10 1803 Pro x86
2019 年 4 月 10 日 ? KB4493464 (OS ビルド 17134.706)
Office 2013 SP1をインストール後、4/10時点のOfficeの更新をすべて適用
画面表示スケール 100%

環境3-2
Windows 10 1803 Pro x86
2019 年 4 月 26 日 ? KB4493437 (OS ビルド 17134.753)
Office 2013 SP1をインストール後、4/10時点のOfficeの更新をすべて適用
画面表示スケール 100%
Microsoftのページタイトルには記載がありませんが、こちらもあくまでプレビューです。


調査結果


Windows 7


VB6


環境1-1(Windows 7 SP1 Pro x86、2019 年 4 月 10 日 - KB4493472)


環境1-2(Windows 7 SP1 Pro x86、2019 年 4 月 26 日 ? KB4493453)


比較(合成して比較)


  • 相違は認められない


.NET 3.5


環境1-1(Windows 7 SP1 Pro x86、2019 年 4 月 10 日 - KB4493472)


環境1-2、環境1-3(Windows 7 SP1 Pro x86、2019 年 4 月 26 日 ? KB4493453)


比較(合成して比較)


  • 相違は認められない


Windows 10


VB6


環境2-1(Windows 10 1803 Pro x64、2019 年 4 月 10 日 ? KB4493464 (OS ビルド 17134.706))


環境2-2(Windows 10 1803 Pro x64、2019 年 4 月 26 日 ? KB4493437 (OS ビルド 17134.753))


比較(合成して比較)

- 画面サイズ、コントロールサイズは相違ない

- フォント幅(正確にはフォント間)に違いあり(詳細は.NETの比較に記載)


.NET 3.5


環境2-1(Windows 10 1803 Pro x64、2019 年 4 月 10 日 ? KB4493464 (OS ビルド 17134.706))


環境2-2(Windows 10 1803 Pro x64、2019 年 4 月 26 日 ? KB4493437 (OS ビルド 17134.753))


比較



  • 合成するまでもなく、画面の幅、コントロールの幅が変わっています(単純な合成比較結果は非常に見づらいため載せていません)。高さは相違ありません。



    • @CodeOne さんの記事に記載の前後の比率(1.1666...)通りに変わっているようです。

      461px(変更前のフォーム幅) x 1.1666...(7(後)/6(前)) = 537.8333... ≒ 538px(変更後のフォーム幅)
      





  • フォントの幅(正確には文字間かもしれませんが)に違いがあり、4/26では文字によっては幅が広くなっているようです。ただし、小文字のyの後の間隔は小さくなっているようにも見え、よくわかりません(フォントに詳しい方がいらっしゃったらご教授ください)



    • アルファベット(上が環境2-2(4/26)、下が環境2-1(4/10))




    • ひらがな(上が環境2-2(4/26)、下が環境2-1(4/10))






(5/6追記)Excel 2013


環境3-1(Windows 10 1803 Pro x86、2019 年 4 月 10 日 ? KB4493464 (OS ビルド 17134.706))


MS Pゴシック


MS UI Gothic


MS ゴシック


Aセルの幅


Bセルの幅


印刷プレビュー


環境3-2(Windows 10 1803 Pro x86、2019 年 4 月 26 日 ? KB4493437 (OS ビルド 17134.753))


MS Pゴシック


MS UI Gothic


MS ゴシック


Aセルの幅


Bセルの幅


印刷プレビュー


比較


  • 画面表示


    • 更新後は、セルの幅が自動的に小さくなっていました。MS Pゴシック、MS UI Gothicはフォントの幅(間?)も小さくなっていました。


      • その結果、MS ゴシックでレイアウトが崩れていました。帳票によっては、文字の見切れもありえると想定されます。





  • 印刷


    • MS ゴシックでレイアウトが崩れていました。

    • 他のフォントも含め、用紙全体で、印刷幅は2mmほど広くなっていました。