VBAで時間ごとにHTMLを出力・更新するプログラムを考える

PR

当サイトではアフィリエイト広告を利用しています。

PR

当サイトではアフィリエイト広告を利用しています。

エクセル
スポンサーリンク

とある業務で状況を確認する必要があったため、サーバに格納したデータを別室のブラウザにHTML形式で出力するプログラムを組んでみました。

下記のサンプルデータを用意して、CSV形式にした表を読み取りHTMLに置き換える。

サンプルデータ

全体図

必要となる物を書き出す

  1. 一定時間ごとに更新
  2. データが追加されても全てを配列に格納
  3. HTMLファイルを作成
  4. HTMLも時間ごとに更新
  5. HTMLヘッダーの設定
  6. HTMLテーブルに追加

プログラム全体

一定時間ごとに更新

目的を達成するために一番必要となる一定時間ごとに更新するプロシージャを作成、Now(現在の日時)にTimeValueで1分ごとにHTMLを実行するように設定します。

最後にUpdateを呼び出す事でプロシージャ同志がループするため、一定時間ごとの更新作業が可能となる。

可視化しないと動いてるのか判りにくいため、Debug.Printで実行時間を表示してみたところ、1分間隔で実行できていることが確認できます。

出力されるHTMLファイル

meta文のrefreshが更新、contentが秒の設定なので、これで60秒毎に更新となる。

CSVの管理番号11、12のリストを追加しVBAとHTMLが60秒後にどうなるかを確認する。

無事更新できている様ですね。あとはWebサーバ上にこれを送って別ブラウザで表示することが出来れば今回行いたかった作業は一旦完了です。

追加・改良すべき点が何点かあります。

  1. VBA上で動いている為、Excelファイルがタスクバー上に常駐している
  2. HTMLが必要最低限しか書いていないため、言語指定などをしっかりする
  3. CSVを追加中に60秒経つと更新するため、中途半端なデータが飛ぶ

フォームの追加や勉強中のC#を使用する事で解決できそうですが、少し先の話になりますね。

お読みいただきありがとうございました。

タイトルとURLをコピーしました