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)の状況が気になったので、調査してみました。
-
【警鐘】[改元][Windows][.NET] 「令和」対応パッチで画面が横に伸びる、文字が見切れる ― Windows Update 手動更新はちょっと待った方がいい
- 各フォントごとの確認結果なども記載されています。
調査内容
記載を見る限り、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でのフィードバック
既存のフィードバックに賛成票を投じる
-
Windows 10で以下のリンクをクリックします。
・KB4495667 でExcelの表が崩れた
・4月26日、「令和」対応パッチが Windows Updateを当てると、Windowsアプリケーション、Excel等のデザインが崩れる※「お使いのアカウントには~」と表示される場合は、フィードバックHUBで「KB4495667」を検索してみてください。
-
フィードバックHubが開きますので、「賛成票を投じる」をクリックします。
手順2:Developer Communityでのフィードバック
既存のフィードバックに投票する
-
以下のリンクをクリックします。
-
開いたページで以下の画像の灰色の円をクリックして、投票します。
関連
関連情報(ネット上の実例)を追記
- Excelの表が崩れてしまいました
- KB4496878適用後、Excelシートのレイアウトが崩れる
- Win8.1 KB4493443 Excel ワークシート表示異常
- ROのフォントの字間が詰まった原因を探る
- 緊急のお知らせ
- 令和対応のWindows Updateは適用しないでください
- KB4495667あてるとさいでんかさんさんのC#ツールが動かなくなります
- Windows 新元号対応アップデートでフォームのレイアウトが崩れる原因と、影響のあるフォントの調査方法
確認事項の調査結果
【確認事項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のAutoScaleMode
にDpi
を設定する
Form, UserControlのAutoScaleMode
がFont
(初期値)の場合に問題が起こります。こちらをDpi
に変更します。
ただし以下の点などが気になるため、アプリケーションの規模、対象とする環境によっては、なかなか厳しいかもしれません。
それでも実施する場合は、検証の中で、OS、Framework、表示スケールなど、実運用環境を想定した環境での検証を行う必要があるかと思います。
- Form、UserControlのプロパティのため、それぞれで設定が必要です。
- デザイン時の情報を保存しておいて実行時のスケーリングに利用する仕様であるため、すべてのForm・User Controlを実際にデザインモードで開いて変更する必要があります。
- AutoScaleModeのDpiとFontの混在はサポートされません。継承が絡む場合に特に問題となるようです。
- 高解像度(表示スケールが100%以外)では、Frameworkのバージョンによっては変更することで幅が変わる場合もありました。
- ネット上の情報では、AutoScaleModeをDPIとすることで、デザインが崩れることもあったようです(修正されている可能性もありますが、未調査です)。
関連
少々古い情報もありますので、よくご確認ください。
- Windows フォームにおける自動スケーリング - Microsoft
- .NET & Control > 自動スケーリング IT@NET塾
- Windowsのディスプレイ文字サイズ変更時の問題 - C# と VB.NET の質問掲示板
- 高DPIのサポート - GrapeCity
【影響2】フォント変更に伴う影響(開発言語、アプリケーションによらない)
- 試した限りでは、VB6、.NET、Excelで影響がありました。ただし、他(Web、他のOffice製品)については、検証していません。影響を受ける可能性は捨てきれないため、ネイティブ/Webによらず、実際の業務範囲内において確認するべきと思います。
- .NET Windows Forms、およびVB6フォームのフォント幅
- VB6、.NETでは文字によってフォント幅が変わっていました。ただし、変化量は小さいものでした。
- Excelのレイアウト崩れ
- Excelでは画面表示のフォント間、セル幅が縮小していました。この影響で、確認した(MS Pゴシック、MS UI Gothic、MS ゴシック)中では、MS ゴシックを使用した帳票で、レイアウトが崩れと印刷での影響が確認できました。他フォントでも印刷時に2mmほど全体的な幅が変わっていました。
- .NET Windows Forms、およびVB6フォームのフォント幅
業務上の影響
- 業務上支障が出るのは、限定的(シビアなデザイン設計)と思われます。ただExcelは、日本特有のシビアな帳票デザインも多いと想定されるため注意が必要そうです。
- .NET Windows Forms、およびVB6フォームのフォント幅
- ラベルで、AutoSize=Falseの場合文字が見切れるかもしれません。VB6の既定値はAutoSize=Falseのため注意が必要です。.NETの既定値はAutoSize=Trueです。
- テキストボックスでは、問題とならない可能性が高いです。(MS UI Gothicを使用している、ということは文字入力が収まる必要はない想定が多いと思われるため)
- Excelのレイアウト崩れ
- Excel、およびExcelを書式として使用する帳票では、レイアウト崩れもありえます。実際の印刷、またはPDF出力での確認が必要かと思います。
- .NET Windows Forms、およびVB6フォームのフォント幅
解決策
(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))
比較
-
合成するまでもなく、画面の幅、コントロールの幅が変わっています(単純な合成比較結果は非常に見づらいため載せていません)。高さは相違ありません。
-
フォントの幅(正確には文字間かもしれませんが)に違いがあり、4/26では文字によっては幅が広くなっているようです。ただし、小文字のyの後の間隔は小さくなっているようにも見え、よくわかりません(フォントに詳しい方がいらっしゃったらご教授ください)
(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 Pゴシック、MS UI Gothicはフォントの幅(間?)も小さくなっていました。
- 印刷
- MS ゴシックでレイアウトが崩れていました。
- 他のフォントも含め、用紙全体で、印刷幅は2mmほど広くなっていました。