Office
 Computer >> コンピューター >  >> ソフトウェア >> Office

Excelで5秒間隔の自動更新を実現する方法|VBAを使った4つの実例

Microsoft Excelは、データ管理や分析に欠かせない強力な表計算ソフトです。豊富なExcel関数やツールを活用すれば、さまざまな操作を効率的に行えます。教育機関や企業でも、重要なデータの保存にExcelファイルが広く使われています。そのような環境では、「一定間隔ごとに値を自動的に再計算して、常に最新の結果を表示したい」というニーズが出てくることもあります。

分単位の更新であれば標準機能でも対応できますが、秒単位の自動更新を実現するにはVBA(マクロ)を利用する必要があります。この記事では、Excelで5秒間隔の自動更新を行うための4つの実用的な例を、具体的なコード付きで解説します。

5秒間隔の自動更新に必要な準備

指定した秒数ごとにデータを自動更新するには、Excel VBAの力を借りるしかありません。特に「OnTime」メソッドを使うと、指定した時刻に関数を繰り返し実行できるため、秒単位の定期更新が可能になります。

ここでは、次のようなサンプルデータを例に説明します。RAND関数を使って生成した値1値2を用意し、これらが定期的に変化する様子を確認します。

Excelで5秒間隔の自動更新を実現する方法|VBAを使った4つの実例

まず、セルC6にはNOW関数を入力して現在の時刻を表示します。

Excelで5秒間隔の自動更新を実現する方法|VBAを使った4つの実例

さらに、セルC7にはTODAY関数を入力して日付を表示させます。

Excelで5秒間隔の自動更新を実現する方法|VBAを使った4つの実例

1. 単一セルを5秒ごとに自動更新するVBA

最初の例では、特定の1つのセルを5秒ごとに自動更新する方法を紹介します。以下の手順に従って進めてください。

手順:

  • まず、リボンの「開発」タブを開きます。
  • 次に、「Visual Basic」を選択します。

Excelで5秒間隔の自動更新を実現する方法|VBAを使った4つの実例

  • VBAエディターの画面が開きます。
  • 上部メニューの「挿入」タブを選びます。
  • ドロップダウンから「標準モジュール」をクリックします。

Excelで5秒間隔の自動更新を実現する方法|VBAを使った4つの実例

  • モジュールウィンドウが表示されます。
  • 以下のコードをコピーして貼り付けます。
Sub UpdateCell()
   Worksheets(1).Calculate
   Range("C4").Calculate
   Application.OnTime DateAdd("s", 5, Now), "UpdateCell"
End Sub

Excelで5秒間隔の自動更新を実現する方法|VBAを使った4つの実例

  • ファイルを保存します。
  • F5キーを押してコードを実行します。
  • これで、セルC45秒ごとに再計算・更新されるようになります。

Excelで5秒間隔の自動更新を実現する方法|VBAを使った4つの実例

ポイントは、Application.OnTimeメソッドの中で自分自身(UpdateCell)を再度呼び出している点です。これにより、処理が無限に繰り返され、継続的な自動更新が実現します。

2. セル範囲を5秒間隔で更新するVBAコード

次に、単一セルではなくセル範囲全体を更新したい場合のコードを紹介します。以下の手順で実装しましょう。

手順:

  • まず、開発 ➤ Visual Basicを開きます。
  • 続いて、挿入 ➤ 標準モジュールをクリックします。
  • モジュールウィンドウが表示されます。
  • 以下のコードをコピーして貼り付けます。
Sub UpdateCellRange()
    Worksheets(2).Range("C4:C7").Calculate
   Application.OnTime DateAdd("s", 5, Now), "UpdateCellRange"
End Sub

Excelで5秒間隔の自動更新を実現する方法|VBAを使った4つの実例

  • コードを保存してF5キーを押すと実行されます。
  • これにより、セル範囲C4:C75秒ごとに更新されるようになります。

Excelで5秒間隔の自動更新を実現する方法|VBAを使った4つの実例

ここではWorksheets(2)としているため、2番目のシートの範囲が対象になります。実際に使用する際は、対象シートの番号や範囲を自分の環境に合わせて変更してください。

3. ワークシート全体を自動更新するVBA

セル単位ではなく、ワークシート全体をまとめて更新することも可能です。ここでは、3番目のワークシートを更新する例を紹介します。

手順:

  • まず、例1または例2と同じ手順でモジュールウィンドウを開きます。
  • 以下のコードをコピーして貼り付けます。
Sub UpdateSheet()
    Worksheets(3).Calculate
   Application.OnTime DateAdd("s", 5, Now), "UpdateSheet"
End Sub

Excelで5秒間隔の自動更新を実現する方法|VBAを使った4つの実例

  • ファイルを保存したらF5キーを押します。
  • これで、3番目のワークシート5秒ごとに再計算されるようになります。

Excelで5秒間隔の自動更新を実現する方法|VBAを使った4つの実例

シート全体をCalculateメソッドで更新すると、そのシート内のすべての数式が再計算されるため、RAND関数など揮発性の関数を使っている場合に値が更新されます。

4. ブック全体を5秒間隔で自動更新するVBA

最後に、ブック全体(すべてのシート)をまとめて更新したい場合のコードを紹介します。

手順:

  • まず、例1と同じ手順でモジュールウィンドウを開きます。
  • 以下のコードをモジュールに入力します。
Sub UpdateWorkbook()
Worksheets(1).Calculate
Worksheets(2).Calculate
Worksheets(3).Calculate
Worksheets(4).Calculate
Application.OnTime DateAdd("s", 5, Now), "UpdateWorkbook"
End Sub

Excelで5秒間隔の自動更新を実現する方法|VBAを使った4つの実例

  • このコードは、ブック内にある4つのワークシートすべてを順番に再計算します。

シートの数が異なる場合は、Worksheetsの行を追加または削除して調整してください。より汎用的にしたい場合は、For Eachステートメントを使って全シートをループ処理する方法もおすすめです。

まとめ

この記事では、Excelで5秒間隔の自動更新を実現するための4つのVBAコード例を紹介しました。単一セルから始まり、セル範囲、ワークシート、そしてブック全体まで、目的に応じて使い分けることができます。

どの例でも核となるのはApplication.OnTimeメソッドです。DateAdd関数で5秒後の時刻を指定し、自分自身を再帰的に呼び出すことで、継続的な定期更新を実現しています。ぜひ実際の業務やデータ分析に活用してみてください。

関連記事

  • Excelでグラフを更新する2つの効果的な方法
  • Excelのバックグラウンド更新を無効にする2つの便利な方法
  • Excel VBA:画面の更新をオフにする方法
  • 【解決済み】Excelの数式が保存するまで更新されないときの6つの対策
  • Excelでピボットテーブルを更新する4つの効果的な方法
  1. Excelで「変更履歴の記録」を有効にする方法|リボンへの追加とカスタマイズ手順を徹底解説

    Excelでは、大量のデータセットを分析に使うことが多く、その中でデータを頻繁に修正・更新する必要があります。変更内容の記録を残しておけば、後の分析や確認が格段に楽になります。Excelには「変更履歴の記録(Track Changes)」という便利な機能があり、ワークシート上で行われたすべての変更を記録・表示できます。本記事では、この変更履歴の記録機能をExcelで有効化する方法を、ステップごとにわかりやすく解説します。 Excelで変更履歴の記録を有効にする基本手順 Excelの変更履歴の記録機能は、ワークシートに対して行われた変更を追跡し、必要に応じて一覧として確認できる便利なツールです

  2. Excelで列データを区切り文字付きテキストに変換する5つの方法

    Excelのシートで、縦方向(列)に入力されたリストを横並びのテキストとして整理したい場面はよくあります。その際、各項目をつなぐために区切り文字が必要になります。最も一般的なのはカンマ(,)ですが、セミコロンなどを使う場合もあります。残念ながら、Excelには列を区切り文字付きテキストへ一発で変換する専用機能は用意されていません。そこで本記事では、5つの簡単な方法で列データを区切り文字付きテキストに変換する手順を詳しく解説します。 Excelで列を区切り文字付きテキストに変換する5つの方法 この記事では、以下の5つのアプローチを順番に紹介します。 TEXTJOIN関数を使う方法 CONCAT