待機処理
オフィススクリプトを使用する際、外部のプロセスの影響を受けるようなプログラムを作った場合、特定の時間だけ処理を待機させたいケースもあるかと思います。
今回はオフィススクリプトを使って、指定した秒数分待機する処理を実装する方法を解説します。
非同期処理について
待機処理を実装するにあたって、async/await
を用いた非同期関数を使用します。
非同期関数の詳細については、以下のページをご覧ください。
📄️ 非同期処理
async/await、Promiseそれぞれについて、非同期処理の概要と、Office スクリプトにおける非同期処理の実装方法をサンプルコードと併せて解説します。
指定した秒数待機する関数を定義する
指定した秒数が経過後に結果を得られるPromise
オブジェクトを返す関数を定義します。
指定した秒数待機する関数
/**
* @param ms 待機する時間(ミリ秒)
*/
function wait(ms: number) {
return new Promise<void>((resolve) => setTimeout(() => resolve(), ms));
}
サンプルコード
async/await
を使って、前述した待機関数を呼び出します。
一定時間待機後に処理を続行するサンプル
async function main(workbook: ExcelScript.Workbook) {
console.log('処理が開始されました');
await wait(1000);
console.log('1秒が経過しました');
}
📄️ ループ処理
for文やwhile文、forEachを使ってオフィススクリプトを使って、ループ処理を実装する方法をサンプルコードと併せて解説します。