概要
Word には、マクロの実行を遅延する組み込みメソッドはありませんが、この効果を実現する回避策を使用することができます。
詳細
マイクロソフトでは解説することのみを目的としてプログラミング例を提供しています。暗示あるいは明示していることに対しての保証はしておりません。ここで言う保証とは、特定の目的に対する商品性や適合性の暗示的保証を含んでいますが、それに限定されるわけではありません。この資料では、例示されているプログラミング言語およびプロシージャの作成やデバッグに使用するツールにお客様が精通していることを前提としています。マイクロソフトのサポート エンジニアは、特定のプロシージャの機能を説明することができますが、機能の追加またはお客様固有の要件を満たすようにプロシージャを作成するこれらの例は変更されません。
この資料のサンプル コードを使用する方法については、マイクロソフト サポート技術情報の記事を表示するのには以下の記事番号をクリックします。
212536 [off2000]: サポート技術情報のサンプル コードを実行する方法
次の方法のいずれかを使用するには Visual Basic for Applications を使用して、マクロの実行を遅延させる。
方法 1: は、空を使用してください.Next ループ
この方法の欠点は、プログラムは、ループの実行に要する時間の正確な量を判断する直接的な方法はありません。時間は、お使いのコンピューターの速度によって異なります。次のコードでループを何も実行しませんが、いくつかの時間がかかります。
Sub MyDelayMacro
For iCount = 1 to 1000
Next iCount
End Sub
方法 2: Word の実行を中断するのには API 呼び出しを使用します。
一定期間の Word の実行を中断するのにには、API 呼び出しを使用します。
Kernel32 には、一定の時間をミリ秒単位で指定されているため、プログラムの実行を一時停止する関数が含まれています。関数を使用するにする必要があります最初に宣言する使用はモジュールの一般宣言セクションで。
Declare Sub Sleep Lib "kernel32" Alias "Sleep" _
(ByVal dwMilliseconds As Long)
Sleep関数を呼び出すには、次の構文を使用します。
Sub Sleep()
Sleep 1000 'Implements a 1 second delay
End Sub
OnTime メソッドを使用する方法 3。
一時停止するのに時間の量を設定するのには、 OnTimeメソッドを使用します。OnTimeメソッドでは、次の構文を使用します。
式です。OnTime (時、名前、許容範囲)引数Nameを実行するマクロの名前が必要であるため 2 つのマクロを作成する必要があります: 最初のOnTimeメソッドの呼び出しと、マクロに関連する他のコマンドが含まれているマクロと 2 番目のマクロに割り当てられた時間が経過したときに実行します。2 番目のマクロは何も実行しない"dummy"マクロをできます。
この例では、この例を実行してから 15 秒間の"MyDelayMacro"をという名前のマクロを実行します。
Sub MyMainMacro()
' Pause for 15 seconds.
Application.OnTime When:=Now + TimeValue("00:00:15"), _
Name:="MyDelayMacro"
End Sub
Public Sub MyDelayMacro()
' Place your delayed macro commands here.
MsgBox "This macro runs after 15 seconds."
End Sub
OnTime メソッドでは、Visual Basic エディターでの使用の詳細については、[ヘルプ] メニューの [ Microsoft Visual Basic のヘルプ] をクリックしてください、Office アシスタントまたはアンサー ウィザードでは、 OnTime メソッドを入力し、検索を表示する] をクリックしてくださいトピックです。
関連情報
Visual Basic for Applications のヘルプの詳細については、マイクロソフト サポート技術情報の記事を表示するのには以下の記事番号をクリックします。
212623 wd 2000: マクロ プログラミングのリソース
226118 off 2000: Visual Basic for Applications のプログラミング リソース