エクセルで繰り返し作業を効率よくするためにVBAを活用している時に、コマンドボタンを押したら画面が一瞬スクロールしたりシートが切り替わったりして目障りに思ったことありませんか?
そこでチラつきを解消する「ScreenUpdatingプロパティ」をご紹介しますので、たった1行付け加えれば書き込んだVBAの手順に従ってセルやシートが移動する時に起きるチラつきを防止してくれますよ。
ScreenUpdatingプロパティ
Excel-VBAの画面の操作系のプログラムとして分類されて、VBAに記載した処理手順に合わせてセルやシートが移動するので、画面表示も同じように更新されるので画面がチラついて見え、さらに処理も遅くなります。
この画面更新処理を停止させたり、稼働させたりすることができるのが「ScreenUpdatingプロパティ」です。
ScreenUpdatingプロパティの使い方
使い方は簡単で、既存のVBAコード「Sub()の直後と~End Sub直前に「ScreenUpdatingプロパティ」を使ってあげるだけなので、それぞれ1行ずつ記入するだけなのでとても簡単です。
例えば、シート1を表示していてシート2のセルAA1~AZ1000に「1」を入力したら、シート1のセルA1に移動するというコードだけを書くと、下記のようになります。
Sub 画面更新停止()
Sheets(“sheet2”).Select
Range(“AA1:AZ1000”).Value = “1”
Sheets(“sheet1”).Select
Range(“A1”).Select
End Sub
- 画面更新停止という名のプログラムを実行する
- シート2を選択
- セルAA1~AZ1000の範囲内に「1」を入力したら
- シート1を選択
- セルA1を選択
- マクロ記録終了
実際にこのようなVBAコードは使いませんが、一瞬画面がちらつきますので、ScreenUpdatingプロパティを使うとちらつきが防止できます。
Sub 画面更新停止()
Application.ScreenUpdating = False
Sheets(“sheet2”).Select
Range(“AA1:AZ1000”).Value = “1”
Sheets(“sheet1”).Select
Range(“A1”).Select
Application.ScreenUpdating = True
End Sub
- 画面更新停止という名のプログラムを実行する
- 画面更新処理を停止する
- シート2を選択
- セルAA1~AZ1000の範囲内に「1」を入力したら
- シート1を選択
- セルA1を選択
- 画面更新処理を再開する
- マクロ記録終了
このようにSub()の直後にApplication.ScreenUpdating = Falseと付け足すと、画面更新処理を停止してから記述したVBAコードに従ってプログラムが作動して、全てのプログラムの作業が終わったらEnd Subの直前にApplication.ScreenUpdating = Trueと付け足して、停止させた画面更新処理を再開(元に戻す)します。

Falseが停止、Trueが再開です。
ScreenUpdatingを使うことにより、ちらつき防止のついでに無駄な更新もなくなるので、VBAコードの処理も早くなるのでセルやシートの移動を伴うVBAコードを記述する時は必ず「ScreenUpdatingプロパティ」を使うほど使用頻度が高いVBAコードです。
ネット情報ではTrueを省略可(マクロ実行終了で自動的に戻る)となっている情報もあり、使い始めた当初は省略していましたが時々フリーズすることがあったので、今は省略せずに必ず記載するようにしてからはフリーズしていません。



使用しているエクセルでは、ほぼすべて画面更新処理を扱う時はこのVBAコードは必ず入れていますので、処理も早くなるのでおススメ処理ですよ。
関連記事
-
エクセルワークシート下にあるシート名の部分を非表示化する方法
苦労してExcel-VBAを組み込んだエクセルファイルを他人に渡して使ってもらうと、エラー表示になったと言われたことありませんか? 原因は簡単で、エクセル操作をオリジ… -
エクセルシートで指定した範囲を自動的に画面最大化させるVBA方法
エクセルで作成した表がいつも画面いっぱいに表示されるならばいいのですが、スクロールしないと見られない範囲外ってことありませんか? Excel-VBAを使えばいつも指定… -
エクセルVBAで改ページプレビューと標準モード切替ボタンを作る方法
エクセルで表を作成して印刷をする前に用紙の範囲に印刷できるか気になるので、改ページプレビューで確認することありませんか? ボタン一つで標準モードにも切り替えら… -
エクセルのメニューリボン(操作パネル)をVBAで非表示にする方法
苦労してExcel-VBAを組み込んだエクセルファイルを他人に渡して使ってもらうと、エラー表示になったと言われたことありませんか? 原因は簡単で、エクセル操作をオリジ… -
指定したセルを画面左上にスクロールする
【画面左上は移動はscrollrowとscrollcolumnを組み合わせる】 ボウリング場のリーグ戦の成績表でも使っているエクセルで、リーグ戦参加者の成績表を入力する為の専用フ… -
VBAの画面のちらつきがたった1行で解決して処理高速化する方法
エクセルで繰り返し作業を効率よくするためにVBAを活用している時に、コマンドボタンを押したら画面が一瞬スクロールしたりシートが切り替わったりして目障りに思ったこ… -
ワークシートサイズは常に最大化してエクセル画面を表示するVBA
エクセルファイルを開いたら中途半端なサイズで表示されるようになってしまった事ありませんか? 作業するのにはフルサイズでの画面最大化の方が良いので、VBAを使って… -
エクセルVBAコマンドボタンでON/OFF切替スイッチを作る方法
ワークシート上にある罫線やリボンなど7つの項目を表示したり非表示することができる切替ボタンがあったら便利だと思いませんか? 不要な項目をワンクリックで切り替え… -
エクセルVBAでセルの枠線の表示を表示・非表示を切り替えるボタン
エクセルのワークシート上にはセルの仕切り「枠線」が表示されていますが、消したいこと(非表示化)ありませんか? ホームページやブログに画像として取り込む時に、枠…
紅葉スポット
-
奥日光湯滝や湯ノ湖へ東武バスの湯元温泉フリーパス終点の観光名所へ
【紅葉見頃】 10月中旬~10月下旬 紅葉時期の日光なのに空いている穴場スポットの湯滝や湯ノ湖をご存知ですか? 中禅寺湖周辺から戦場ヶ原を通り過ぎてさらに奥へ進む… -
日本三名瀑・袋田の滝は紅葉ライトアップの名所で袋田駅からバス
日本三名瀑でもある袋田の滝は、高さ120m幅70mの大きさを誇りトンネル横の展望台からは、目の前に迫った滝を見ることができます。 そしてエレベーターで昇った展望台… -
中禅寺湖を上から見られる絶景ポイント半月山展望台へ滞在時間50分
【紅葉見頃】10月中旬~11月上旬 最近インターネットや雑誌などで日光を紹介する時によく見る機会がある、中禅寺湖を上から撮った写真の場所ってどこだろうって思いま… -
成田山公園の紅葉へ新勝寺隣接の日本庭園を楽めて駅から徒歩圏内
成田と言えば成田空港と成田山新勝寺が有名で、旅行や初詣で訪れたことがあると思いますが、紅葉スポットになっていることは、地元の方以外はあまり知られていませんね… -
フリーパスで12月の茨城紅葉スポットへ
【茨城県内の人気紅葉スポット】 関東地方で紅葉名所といえばなんといっても日光ですが、紅葉シーズンになると平日でもいろは坂は大渋滞なのに休日ともなると日光駅周辺… -
片品村「菅沼」の紅葉へ奥日光湯元温泉から無料バスで紅葉穴場へ
全国屈指の透明度を誇る菅沼に周囲の山々の色づいた木々が鏡のように反射する紅葉絶景が見られる、穴場紅葉スポットです。 菅沼には電車とバスを利用していくことができ…