Excelとフリーソフトで作るデータ提供システム

 Excel 2000(または2000以降)を購入するだけで、定期的に配信されるデータを自動処理し、必要な人に提供するシステムを作ってみました。
 また、今回メルマガにも挑戦してみました。バックナンバーはこちら

Topへ
 1.作業内容
 2.前提条件
 3.今までの方法
 4.改善 その1
 5.改善 その2
 6.改善 その3
 7.改善 最終形
 8.まとめ
 9.応用

<インストール手順>
 1.Apache
 2.PHP
 3.MySQL
 4.War FTP Daemon
   (+自動実行設定)

<バッチファイル>
 1.FTP転送
 2.SQL文実行
 3.PHP実行

<サンプルデモ>
 1.テキストファイル取り込み
 2.PHPデータ取り込み

<その他>
 1.Excel VBA

当サイトの情報をご利用になる場合は、全て自己責任でお願いします
6.改善 その3<処理の無人化を考えてみました>
 さらなる改善のために、Windowsのタスク機能を使って、決められた時間に自動的に処理をする方法を考えてみました。
無人化するためには、Excelのデータ整形処理をVBAで自動化し、batファイルに組み込んで、タスクに登録するだけで良いのですが、動作の安定性が 心配だったので(Excelはパソコンへの負荷が大きそうなので)

  ・処理にかかるパソコンへの負荷ができるだけ少ないこと
  ・安定性および処理時間短縮のために、処理手順ができるだけ少ないこと

を前提に考えることにしました。

 データ処理で最低限必要な処理は、MySQLによるテキストファイル作成までですので、Excelの処理を無くすことができれば非常にシンプルな処理 になります。そこで、Windows共有フォルダにMySQLで作成されたテキストファイルを保存し、それをデータを提供される側がExcelで読み込 むことを考えました。供給される側にはあらかじめデータの取込・整形をするVBAを組み込んだExcelファイルを提供しておきます。
 ただし、このやり方には

・データを提供される側の全てのパソコンに対して、共有フォルダにアクセスできるように設定しなければならない。
・共有フォルダの共有設定によっては、データを間違って削除や変更をされる可能性がある。

という共有フォルダの問題があります。

 それに対して、Webページならデータを削除・変更されることもなく、Excelが直接アクセスすることが出来ますので、Webのページでデータを 提供することにしました。そのためには、Webサーバーソフトのインストールが必要です。 Webサーバーで有名なのは、Apache(アパッチ)とIISですが、Apacheはフリーソフトですし、IISはWindowsに標準でついてきますの で、どちらも費用がかかりません。手間を考えてWindowsに標準でついているIISを使おうと思ったのですが、Windows2000proや WindowsXpについているIISはサーバー用のWindowsについているIISよりも機能がだいぶん制限されていることがわかりました。
 制限されている中で問題なのは

・同時に接続される要求が10まで(XpHomeは5まで)
・IPアドレスやドメイン名でアクセス制限ができない

です。同時アクセス数が10まででは少なすぎますし、Webサーバーにデータを置くと、誰でも見られてしまいますのでアクセス制限機能は必要です。
Apacheでは上記の問題はありませんので、IISをあきらめてApacheを使うことにしました。ちなみに世界で一番使われているWebサーバーはApacheだそうなので安心して使えます。

Windowsのタスク機能を使って、決められた時間に自動的に処理ができるようにしてみました。

<結果>

良い点
  • 完全に無人化できた

  • Webサーバーがあるので、データ取込用のExcelファイルを掲載しておける。(あらかじめ送っておく必要がなくなる)

  • Webサーバーがあるので、データのアクセス記録の解析もできる。


悪い点
  • FTPサーバーのデータの更新時間が決まった時間でない場合は、定期的に何度も処理をしなければならないため、無駄な処理とデータ提供時間の遅れが生じる

  • アクセス制限はフォルダ毎またはファイル毎に設定できるが、IPアドレスで設定するので提供される側のIPアドレスが固定でないと正しく制限設定ができない。

<サンプルデモ>1.テキストファイル取り込み
前へ 次へ
Copyright©2004 Sing-Ken-Ken.com All Right Reserved. info@sing-ken-ken.com