VBA技術解説
Excel2013におけるScreenUpdatingの問題点

ExcelマクロVBAの問題点と解決策、VBAの技術的解説
最終更新日:2015-01-23

Excel2013におけるScreenUpdatingの問題点

今現在、Excelの最新バージョンであるExcel2013ですが、
Application.ScreenUpdating
の動作が、それまでとは違ったものになっています。


Microsoftサポートにも掲載されています。
Excel 2013 で複数のブックを開き Appliction.ScreenUpdating プロパティ使用中にアクティブ ブックが切り替わるとウィンドウが点滅しデスクトップが見えることがある

つまりは、複数ブックを開いて、ウインドウが切り替わるときは、
Application.ScreenUpdating = False
を入れていても、画面がチラつくというものです。

対策としてまず考えられるのが、
DoEvents
を入れる事になりますし、上記でも対策として書かれています。
が、しかし、上手くいくときもあるようですが、ほとんどの場合はダメですね。
そもそも、
ThisWorkbook.Activate
とかで、ウインドウが正しく切り変わりません。
個別の対応方法はあったとしても、こうすれば良いというものが存在していないようです。
少なくとも、私のテストでは統一的な解決策は見つけられませんでした。

結論を言うと、諦めましょうということになります。

どうしても、チラつくのが嫌だということなら、
Application.WindowState = xlMinimized
で最小化してしまうとかの方が早いと思います。
もしくは、
New Excel.Application
で新規インスタンスを生成して、そこに別ブックを読み込むとかでしょうか。
しかし、余程の事情がない限り、あまり余計なことをしない方が良いでしょうね、
逆にドツボにはまる可能性もありますから。

できれば、Microsoftが変更してくれることを願いますが、
先のページの文章を見る限り、これは仕様なのでしようがないということらしいです。



同じテーマ「マクロVBA技術解説」の記事

入力規則のドロップダウンが消えてしまうマクロ(Shapes内のDrop Down)

シートのShapeを全削除すると、入力規則のリストのドロップダウンが消えてしまいます。入力規則のリストのドロップダウンの設定については、エクセル入門.入力規則.リスト こちらを参照して下さい。入力規則のリストのドロップダウンが消えてしまう具体的なマクロは、以下のようなVBAコードになります。
実行時にトラップ可能なエラー番号一覧
マクロVBA実行時に発生するエラーのエラー番号とエラーメッセージおよび簡単な理由と対策の一覧です。以下の表にあるエラーはトラップ(捕捉)できるエラー一覧になります。OnErrorステートメントおよびErrオブジェクトのNumberロパティを使用して、エラーへの対処を行うことができます。
フォルダー・ファイル・ブック・シートの文字制限
フォルダーの作成、ファイルの作成、ブックの作成、シートの作成、これらには指定できない文字があります、使用可能な文字に制限があります、特にシートの文字制限について間違った解説が結構見受けられます。フォルダ・ファイル・ブックの文字制限 フォルダ・ファイル・ブックの使用不可文字は以下になります。
Excel2013におけるScreenUpdatingの問題点
Dir関数の制限について
Dir関数は、VBAでフォルダ・ファイルの存在確認や一覧取得において使われる関数ですが、いくつかの使用上の注意点、制限事項があります。3桁拡張子の指定時の問題 このように指定した場合、xlsxやxlsmも対象となります。3桁の拡張子を指定した場合は、4桁の拡張子も対象となります。
よくあるVBA実行時エラーの解説と対応
VBAを書き終えて、いざ実行したら意味不明なメッセージが… ここでは初心者向けに、代表的な実行時エラーの解説とその対応について説明します。中級者以上の方は、実行時にトラップ可能なエラー番号一覧と対処 こちらを参考に、エラー対応(OnError等)を実装してください。
Application.Goto使用時の注意
Applicationのメソッドに、Gotoメソッドがあります、Application.Gotoメソッドは、指定ブックの、指定シートの、指定セル範囲を選択します、そのブック・シートがアクティブでなければアクティブにします。最初に、Application.Gotoの一般的な文法説明をします。
ScreenUpdating=False時にエラー停止後にシートが固まったら
VBAでは、処理の高速化や画面チラつきを防ぐために、Application.ScreenUpdating=False これを入れていることが多いと思います。これが入っていると、VBAがエラーで停止して、そこで「リセット」した場合に、Excelシートをクリック出来なくなったり、シートタブの切り替えができなくなってしま…
標準スタイル違いの問題点:標準フォント複写、列幅をピクセルで合わせる
VBAでスタイルの標準フォントが違うブック間のコピー等の処理では、列幅や行高の違いが問題となる場合があります。列幅や行高は、標準スタイルの1文字分を基本としているためです。上の画像は、標準フォントが違うブックにおいて、同じ列幅20の時の、列幅の表示です。
VBAでエラー行位置(行番号)を取得できるErl関数
VBAのデバッグでエラーが発生した行位置を特定する方法はいくつかあります。エラーが発生したVBAソースの行ラベルを取得することができる関数がErl関数です。Erl関数は、VB6に存在しVBAにも引き継がれ実装されているものです。


新着記事NEW ・・・新着記事一覧を見る

キーボード操作だけで非表示列を表示|エクセル雑感(2021-05-11)
変数を考えることはロジックを考える事|エクセル雑感(2021-04-11)
RangeオブジェクトのFor EachとAreasについて|VBA技術解説(2021-04-08)
PropertyのSetはLetでも良い|VBA技術解説(2021-03-31)
エクセル麻雀ミニゲーム|VBAサンプル集(2021-03-09)
VBA100本ノック 100本目:WEBから100本ノックのリストを取得|VBA練習問題(2021-03-03)
VBA100本ノック 魔球編:2桁の最小公倍数|VBA練習問題(2021-02-02)
Select Caseでの短絡評価(ショートサーキット)の使い方|VBA技術解説(2021-01-03)
VBA100本ノック 迷宮編:巡回セル問題|VBA練習問題(2020-12-31)
VBA100本ノック 魔球編:閉領域の塗り潰し|VBA練習問題(2020-12-16)


アクセスランキング ・・・ ランキング一覧を見る

1.最終行の取得(End,Rows.Count)|VBA入門
2.Excelショートカットキー一覧|Excelリファレンス
3.RangeとCellsの使い方|VBA入門
4.マクロって何?VBAって何?|VBA入門
5.変数宣言のDimとデータ型|VBA入門
6.繰り返し処理(For Next)|VBA入門
7.ひらがな⇔カタカナの変換|エクセル基本操作
8.Range以外の指定方法(Cells,Rows,Columns)|VBA入門
9.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
10.セルに文字を入れるとは(Range,Value)|VBA入門




このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。


記述には細心の注意をしたつもりですが、
間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
掲載のVBAコードは動作を保証するものではなく、あくまでVBA学習のサンプルとして掲載しています。
掲載のVBAコードは自己責任でご使用ください。万一データ破損等の損害が発生しても責任は負いません。



このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。
本文下部へ