Excel 2013 で複数のブックを開き Appliction.ScreenUpdating プロパティ使用中にアクティブ ブックが切り替わるとウィンドウが点滅しデスクトップが見えることがある

現象
Microsoft Excel 2013 で複数のブックを開き Appliction.ScreenUpdating プロパティ使用中にアクティブブックが切り替わるとウィンドウが点滅したように見えたり、デスクトップが見えることがあります。
原因
Excel 2013 から、ウィンドウの管理方法は SDI (Single Document Interface) に仕様変更されました。

複数のブックを開き、アクティブ ウィンドウ (ブック) を切り替えると、それぞれのウィンドウがトップレベルのウィンドウになりうるため、一般的なウィンドウの選択動作と同じように、選択されたウィンドウ (ブック) がトップ レベルのウィンドウとなり、直前にアクティブだったウィンドウ (ブック) は非アクティブ ウィンドウとなる動作が発生します。
また、Excel 2013 では、画面の更新処理は最後に行われるように動作変更が行われました。

そのため、画面の更新処理を抑止したい場合、Application.ScreenUpdating プロパティに False を設定しても、トップ レベルのウィンドウが切り替わる動作と画面の更新処理が最後に行われるため、デスクトップが見えるなど画面がちらついたように見えることがあります。
この動作は、Excel 2013 の実装上の制限です。
回避策
DoEvents と Window.Activate メソッドを併用し、画面表示の更新処理を強制的に行うことで改善できる場合があります。
ただし、どの程度画面のちらつきが発生するかは、マクロの処理内容やコード量に依存するため、DoEvents と Window.Activate メソッドを追加するタイミングは、実際のシステムにあわせ十分なテストを実施し追加してください。
以下のマクロのコード例は、問題の再現手順のマクロを改善する場合の対処策の一例です。

Private Sub Sample()    Dim wb As Workbook    Application.ScreenUpdating = False    Set wb = Workbooks.Open(ActiveWorkbook.Path & "\Book1.xlsx")        DoEvents    wb.Windows(1).Activate    DoEvents    ThisWorkbook.Windows(1).Visible = False    DoEvents    Application.ScreenUpdating = TrueEnd Sub


詳細
問題の再現手順:

  1. Excel 2013 を起動します。
  2. A1 セルに book1 と入力し、[F12] キーを押下し、[名前を付けて保存] ダイアログで任意のファイル名を指定し、ファイルの種類では "Excelブック (*.xlsx)" を選択し、[保存] を行います。例として、Book1.xlsx ファイルとして保存します。
  3. Book1.xlsx ファイルを閉じます。
  4. 再度、Excel 2013 を起動します。
  5. [開発]-[挿入]-[フォーム コントロール]-[ボタン (フォーム コントロール)] をクリックします。
  6. Sheet1 上にドラッグします。
  7. [マクロの登録] ダイアログが表示されたら、マクロ名が "ボタン1_Click" となっていることを確認し、[新規作成] ボタンをクリックします。
  8. Visual Basic Editor が起動したら、以下のコードを挿入します。

    Sub ボタン1_Click()    Application.ScreenUpdating = False    Workbooks.Open ActiveWorkbook.Path & "\Book1.xlsx"    Application.ScreenUpdating = True    ThisWorkbook.Windows(1).Visible = FalseEnd Sub

  9. [ファイル]-[終了して Microsoft Excel へ戻る] をクリックします。
  10. [F12] キーを押下し、[名前を付けて保存] ダイアログで任意のファイル名を指定し、ファイルの種類では "Excel マクロ有効ブック (*.xlsm)" を選択し、[保存] を行います。
  11. [ボタン 1] をクリックします。

結果:

デスクトップが一瞬見えてからBook1.xlsx が表示されます

注意 : これは、マイクロソフトのサポート組織内で直接作成された "緊急公開" の資料です。 この資料には、確認中の問題に関する現状ベースの情報が記載されています。 情報提供のスピードを優先するため、資料には誤植が含まれる可能性があり、予告なしに随時改定される場合があります。 その他の考慮事項については、使用条件を参照してください。
プロパティ

文書番号:2861288 - 最終更新日: 09/29/2016 10:32:00 - リビジョン: 3.0

Microsoft Excel 2013

  • kbdeployment kbsetup kbhowto kbtshoot KB2861288
フィードバック