描画の過程を表示させない
プログラミングの処理中にその実行過程の画面を見せたくない場合があります。
結果だけを表示させるので、画面のチラツキがなくなり、ユーザーのとまどいがなくなります。
実行過程が長い場合は、フリーズかと思われるのでプログレスバーや「現在実行中です。しばらくお待ちください。」等のメッセージを表示させておく必要があります。
描画を停止させるには
Application.ScreenUpdating = False
描画させるには
Application.ScreenUpdating = true
の構文で切り替えます。
Homeに戻る >
Excel 数値・文字列・検索・印刷のTipsへ
実行画面
「描画の過程を非表示」ボタンをクリックすると、最終画面の下画像が表示されます。
「描画の過程を表示」ボタンをクリックすると、下画像のように矢印シェイプが徐々に回転しているのを見ることができます。
実行VBAコード
'Windowsが起動してからの経過時間 API
Private Declare Function GetTickCount Lib "kernel32" () As Long
'mSecタイマー
Private Sub ExTimer(tim As Long)
Dim st As Long
'開始時間を取得
st = GetTickCount
DoEvents
Do
If GetTickCount - st >= tim Then
'時間が経過した
Exit Do
End If
DoEvents
Loop
End Sub
'テスト用にオートシェイプを作成し回転させる
Private Sub ExShapeMake()
Dim tshape As Shape
Dim i As Double
'元の図形を作成
With ActiveSheet.Range("B7:E14")
Set tshape = ActiveSheet.Shapes.AddShape(Type:=msoShapeLeftArrow, _
Left:=.Left, Top:=.Top, Width:=.Width, Height:=.Height)
'180度まで徐々に回転
For i = 1 To 180
'100mSecタイマー
ExTimer 10
'1度回転
Call tshape.IncrementRotation(1)
Next
End With
Set tshape = Nothing
End Sub
'描画の過程を表示
Private Sub CommandButton1_Click()
Application.ScreenUpdating = True
ExShapeMake
End Sub
'描画の過程を非表示
Private Sub CommandButton2_Click()
Application.ScreenUpdating = False
ExShapeMake
Application.ScreenUpdating = True
End Sub
Homeに戻る >
Excel 数値・文字列・検索・印刷のTipsへ
■■■
このサイトの内容を利用して発生した、いかなる問題にも一切責任は負いませんのでご了承下さい
■■■
当ホームページに掲載されているあらゆる内容の無許可転載・転用を禁止します
Copyright (c) Excel-Excel ! All rights reserved