人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

お気持ちのみですが合計120P程度差し上げます。自宅サーバーについて知識がある方にお伺いします。

やりたいことは、クライアント側からの簡単なキーワード(例:1192)の入力に対して、サーバーマシンが受け取ったデータを適当にVBAを使って加工して(これをCGIやJavaScriptで表現するのは難しいので、VBAで。)、それをレスポンス(例:鎌倉幕府)にして送り返すだけというものです。

クライアント側には特別なものをインストールしたくないので、ブラウザで簡素なレスポンス画面兼入力画面が表現できればそれでよいです(結果テキスト1行+入力ボックス+送信ボタン)。

質問はコメント欄に示します。

お力お貸しください。よろしくお願いします。


●質問者: ReoReo7
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:CGI JavaScript VBA インストール キーワード
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● deflation
●40ポイント

大前提として、VBAだけではWebアプリを記述することはできません。VB.Netなどで記述する必要があります。


Q1:VB.Netプログラムが動作するマシンをWebサーバにする必要があります。つまり、IISが必要ということです。

レスポンスタイムは、マシン性能、ネットワークトラフィック、プログラムの記述の仕方によって変わってくるので、何とも言えません。

◎質問者からの返答

ありがとうございます。

うーん・・データだけサーバーのように受けてCSVとかに蓄積しといて、動作だけCSVから取り出したデータでもって普通のPCのようにVBAを動かして、またCSVに格納・・・とかってできないですかね?要は、リアルタイムでCSVの内容に関連してWebページが動作できれば良いのですが・・・。


2 ● niwa-mikiho
●80ポイント ベストアンサー

perl であれば、

データは

キーワード[TAB]レスポンスデータ[改行]

となってるものと仮定した例です。

#/usr/bin/perl

use strict;

use CGI;

my $in = new CGI;

my $inputkey = $in->param('keyword');

open(INFH, '<', 'data.csv');

while(my $line = <INFH>){

chomp $line;

my ($keyword, $keydata) = split(/\t/, $line);

if($inputkey eq $keyword){

print $keydata; # 見つかったデータを返す

last; # もう探す必要が無いので終了

}

print ''; # 見つからなかったので空を返す

}

close(INFH);

こんな感じで大体完成です。

キーワードが何回呼ばれたかなどのアクセス解析をするならもっと必要ですが、

キーワードに対してレスポンスを返すだけで、エラー処理を加えなければこれだけで済みます。


HTML を返す場合は

print $keydata;

の行で HTML を返せば OK です。


ちなみに、Apache や IIS などのサーバーを導入せずにネットワークでレスポンスを返すには、

ネットワークを勉強しなくてはなりません。

要はサーバーソフトを作ることになります。

◎質問者からの返答

ありがとうございます。具体的なプログラムまで記述して下さって、大変参考になりました。プログラムは、サーバーがCSVからデータを探ってきて返すというものでしょうか。尚、CSVが更新された際にもWebページ閲覧者がそれを知るということを希望しています。質問があいまいだったのですが、少し具体化してきたので http://q.hatena.ne.jp/1285596171 の回答4の返信にもやりたいことを書いておきました。

今後はこちらの質問に統合したいと思います。ありがとうございました!

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ