Enterprise Watch
連載バックナンバー
西川和久の不定期コラム特別編
[2005/05/25]


西川和久の不定期コラム特別編

「“Excelで作るWebシステム” XCuteを使ってみました!」

XCute
 インタラクティブなWebサイトを構築する場合、PerlやPHP、Javaなどをベースに開発し、運営する必要がある。Microsoft Officeの知識レベルのユーザーが自らサイトを作るのは困難だ。そこに登場したのが、株式会社マイクロラボが開発しているXCute。

 キャッチコピーによると、"Excelで作るWebシステム"。本当にそんなことが出来るのだろうか!? 筆者はちょうどそのユーザー層に近い(加えてPerlやPHPが少し触れる程度)。今回はその真相を探るべく、いろいろ触った結果をレポートしたい。


XCuteの概要

XCuteの作動イメージ図

XCuteの作動イメージ図
 同社のHPによると、XCuteはデータベース連動型のアプリケーションサーバーとしての位置づけであり、Access以外のデータベースはODBC経由での接続が可能となっている。特徴としては、

  1. データベース<->Webブラウザの入出力作業をノンプログラミングで実現
  2. データベースの内容をExcelに関連づけ、その結果をWebブラウザに表示
  3. 開発環境がそのまま実行環境に移行できる

このように、これまでPerlやJavaなどを使いプログラミングしていた部分をExcelに置き換え、画面イメージそのままにデータベースと連動したWebアプリケーションを素早く開発できる。この手法であれば、専門の知識が無くてもデータベースと連動したWebサイトを構築できるという訳だ。

 実際、同社のサイト自体がXCuteを使い運営しているので、何ができるのか?事前にサイト内を見て回るのもいいだろう。


インストール

 何をするにもとりあえず評価する環境が無いと試すに試せない。幸い、XCuteの無償開発版がここからダウンロードできるのでゲットした。無償開発版の制限事項は、「上下にバナーが付く」、「6時間以上連続稼働できない」、「3接続ライセンス」、この3点。機能的には製品版と同じであり、開発するにあたっての問題は無い。

 インストールは、以下の画面キャプチャを参考にして欲しいが、ご覧の様にいたって簡単な手順だけでXCuteの実行環境が整う。


インストーラのメニュー インストール開始 使用許諾契約
インストーラのメニュー
インストール開始
使用許諾契約

インストールする内容の確認 インストール中 インストール完了
インストールする内容の確認
インストール中
インストール完了

 加えてローカルマシンで、XCuteの作動をチェックする場合、何だかのhttpdサーバーが必要になるが、インストーラにはあらかじめXCute用にチューニングされたApacheも入っているので続けてセットアップする。XCute本体と同じくウィザードに答えていくだけでOKだ。標準設定では"C:\Program Files\Apache Group\Apache"フォルダに一式インストールされる。*.confに関しては、インストーラが用意した環境を使う限り編集しなくてもよい。


まずは簡単なところから

 付属のマニュアルをザッと流し読みし(量が多いので全て読むのには時間がかかる)、手始めに最も簡単なパターンでXCuteを動かしてみる。単にExcelで背景付きの文字や表、グラフを書き、それを表示してみたい。

 手順はXCuteを起動しプロジェクトファイルに相当する*.PLSファイルを作り、その上で表示されるExcelを使って文字などを編集する。これで準備は整ったので、httpdサーバーのApacheとExcel→Web変換(proles.exe)の負荷分散管理するProWebを起動。WebブラウザへURLを入力すれば、Excelで定義した文字がそのまま表示されるハズである。


XCuteを起動しtest.plsを作る test.xlsに文字を入力 Apache起動
XCuteを起動しtest.plsを作る

ファイルメニューから新規PLSファイルを作る。*.PLSファイルはプロジェクトファイルの一種と思えば解り易い
test.xlsに文字を入力

シートに文字を入れ、印刷範囲の指定を使い、実際表示する範囲を決める。ワークシート名は「Menu」とした
Apache起動

Excel側の準備が出来たので、プログラムメニューからApacheを起動し、ローカルでhttpdサーバーを動かす

ProWebを起動 問題なく表示された CGIとして動いているExcel
ProWebを起動

ProWebを起動し、test.plsを登録、起動ボタン[凸]を押しアクティブにする。この黄色い状態が作動中だ
問題なく表示された

URLは、 http://localhost/procgi7/procgi.exe?P=test&writesheet=menuとなる
CGIとして動いているExcel

test.plsがアクティブになると、Excelが起動しCGIとして実行する。これをApacheが受け取り表示している

範囲指定をしなかった場合 表計算の実験 グラフの実験
範囲指定をしなかった場合

表示領域を印刷範囲で指定しなかった場合、この様なエラーメッセージが出る
表計算の実験

表計算を指定した場合もうまく行くか?実験した。Excelの表がそのままWebに表示された
グラフの実験

グラフエリアを作って、そのまま出来るか試した。これも全く問題無く表示できる

 いかがだろうか? いとも簡単にExcelの画面をWeb展開することが出来た。URLのパラメータは、test =*.pls名、menu =ワークシート名、writesheet(|readreport|writereport) =作動オプションとなる。

 もちろん、このサンプル程度であればHTMLを直接書いた方が早いものの、もう少し複雑になれば、単に文字を書いたり、URLを埋め込みメニュー化するだけでもExcelに慣れた人であれば、こちらの環境の方が楽な作業となる。上下に表示しているバナーは、無償開発版の制限事項であり、筆者が意図して組み込んだものではない。製品版ではこの制限は解除される。


もう少し高度なWebページを構築する

 何となくXCuteの動きも解ってきたので、DBを操作するアプリケーションを作りたい。ただ、いろいろネタを考えたが、DB使ってWebで何をするのか?なかなか良い案が思い浮かばない。考えた末、簡単な投票システムを作ってみることにした。

 内容は非常に単純で、投票とその結果を表示するメニュー、DBから一旦データを取得、ラジオボタンにより五段階の投票、該当するDBのカウントを+1、DBへ書出し、結果を円グラフで表示……と、こんな流れになる。処理的にDBを持つまでも無いのだが、ありがちな住所録など作っても面白くないので、簡単な例ということでお許し願いたい。


DBのテーブルを作る トップメニューを作る 投票の項目を入れる
DBのテーブルを作る

Excel上で適当にデータを作り、XCuteを使ってテーブルとレポートを作成する。ご覧の様に実質使うのはcountだけ。これ以上件数も増えない
トップメニューを作る

htmlの埋め込み機能を使い、普通にtagを書いていく。;htmltagは表示エリアの一行上、一列右へ入れるのが基本となっている
投票の項目を入れる

この画面では解らないが、あらかじめシート上にデータを書き出し、countに+1したものをパラメータへ渡している

DBレポート用画面 テーブルへ書き込むハンドラ 入力エラー処理
DBレポート用画面

このシートでDBからの読み込みと書き込みをどちらも行っている上に、自分で自分を呼んでいる。下にみえるflagはそれを制御するものだ
テーブルへ書き込むハンドラ

DBへの書き込み部分はここであるが、先のflagの値を見てメニューへ戻るか書き込むかの判断をしている。セットするのはcountだけである
入力エラー処理

五択の投票画面で何も選ばなかった場合に、ここへ飛ぶ様考えていた。ただ現状ではその機能は組み込んでいない

トップメニュー 投票画面 結果のグラフ表示
トップメニュー

さっそく動かしてみた。予想通りの画面が表示され、動きも問題ない。Excelがベースなので簡単だ
投票画面

実際の投票画面。ラジオボタンが5つ並んでいる。[選択]ボタンを押すと、右のグラフが表示される
結果のグラフ表示

XCuteはExcelのグラフ機能が全て使えるので、なかなか強力かつ簡単である。形状なども即変更可能だ

ひな型の設定

 XCuteをインストールしてから約一日で、とりあえずこの程度のアプリケーションは書ける様になった。はじめ、ひな型のR1~R3はXCuteのシステムが使い、また、XCute専用のいろいろなコマンドを置くことができるなど、特有な作法があり、ちょっと手間取った部分はあるが、マニュアルを見ながら理解してしまえば後は早かった。住所録などであれば、数時間で出来そうである。

 一ヶ所筆者がはまったのが、右のパネルにある"ひな型の設定"の「2件目以降のレコードを書出す時に、読書範囲を追加」の部分である。これが標準では上の「ひな型から書出し側のシートに読書範囲を行コピー」になっており、この状態でDBを読込むと、読込んだ件数分行挿入され、参照している変数がコピー後の移動した先のセルを参照するので予期しない作動になってしまうのだ。下の「行コピーせず」に変更し一件落着した。


総論

 以上短期間であるがXCuteを使った感想だ。手馴れたExcelを使い、画面設計、DB操作ができ、実行環境もExcelでデバッグも楽。本当に他のツールを一切使わずにExcelだけでWebサイトを構築することが可能だ。今回は使わなかったが、CookieやVBAに対応、エラートラップ機能など、本格的なアプリケーションにも十分対応できる。無償開発版があるので興味のある人は是非試して欲しい。熱中し過ぎて無償開発版の制限事項である6時間連続駆動できない件にひっかからない様に!



URL
  株式会社マイクロラボ
  http://www.xcute.jp/
  XCute
  http://www.xcute.jp/xcute/


西川和久
2005/05/25 00:10

Enterprise Watch ホームページ
Copyright (c) 2005 Impress Corporation, an Impress Group company. All rights reserved.