お気持ちのみですが合計で100ポイント程。Webページ製作の知識がある方にお伺いします。


あるWebページで送信されたデータに応じて、表示するページを動的に生成して返したいのですが、次のアルゴリズムで可能ですか?

即ち、Aが1.htmlからリクエスト送信→1.htmlは1秒に3回くらい2.htmlというページを再読み込みしようとするがそのようなページは存在しない→同時に、1.htmlはパソコンBに向けてメール送信→パソコンBはメールの内容を反映した2.htmlというファイルを作って、FTPでアップロード→Aは無事動的に生成された2.htmlを得る

みたいな。どうしてもサーバーで動くプログラムを作りたくないので、メールとFTPだけで処理したいんです(笑)よろしくお願いします。

回答の条件
  • 1人2回まで
  • 13歳以上
  • 登録:2010/09/27 23:02:54
  • 終了:2010/10/04 23:05:03

ベストアンサー

id:kia_44 No.6

きあ回答回数396ベストアンサー獲得回数302010/09/28 22:13:08

ポイント18pt

おそらくやりたいことをVBAでやる場合をまじめに考えてまとめてみました。


大まかな要件

・WEBサーバー

CGIで特定のファイルに対して読み書きを行う(表示&入力フォーム)

(CGIで吐き出されたファイルをA.HTMLとする。)

参考↓

http://q.hatena.ne.jp/1183967501


・処理する側(VBAのマシン)

1.VBAでFTP接続し、A.HTMLを読み込む。↓参考

http://officetanaka.net/excel/vba/tips/tips47.htm

3.特定の処理を行い、FTP接続し、ファイルをアップロード。上記のページを参考に。

上記を定期的に行うようにする。たとえば5分間隔とか(必要に応じてペースを変える。1秒以下は厳しいと思いますよ。)


取得したファイルををVBAで自動的に書き換えること。

CGIを利用し、WEBサーバー上の特定のファイルを書き換えるようにすること。

この2点クリアできればいけますね。

あとは表示する側のブラウザを更新できるように作っておく。

特定の相手を選べませんが、パスワードかけるなりして使えるんじゃないでしょうか。

効率とかは別にしてやってみるのはアリだとおもいます。

id:ReoReo7

ありがとうございます!ちょっと望み(?)がみえてきました!

効率悪ければVBAマシンをサーバーにするかもしれませんが、とりあえずレンタルサーバーでやってみたいと思います!

ちょっと要件で理解できているか分からない箇所があるのですが、

・WEBサーバー

B.HTMLというページで入力を受ける→CGIで「メール送信」と「A.HTMLへの遷移」を行う

A.HTMLは自分自身を更新し続ける。

・処理する側(VBAのマシン)

VBAでFTP接続し、新着メールを読み込む。

新着メールの件名にデータがあるので、それに対して特定の処理を行い、

あらかじめVBAマシンが持っているA.HTMLという雛形を加工してA'.HMTLにする。

FTP接続し、A.HTMLをA'.HTMLと置き換えてしまう。(HTMLはファイル名が一緒で中身が違う。)

・WEBサーバー

A.HTMLが自分自身を更新してA'.HTMLになったら、更新が終わって結果が表示される。

(ちなみに、A'.HTMLは入力フォームを含み、何かデータを送信すると、CGIでメール送信とB.HTMLへの遷移を行う。B.HTMLはA.HTMLがA'.HTMLに更新されるのと同時にB'.HTMLに更新されており、このページは自分自身を更新し続ける。ブラウザはA'.HTMLとB'.HTMLへ交互に遷移するという無限ループで、「ブラウザを通じてデータをVBAマシンに送り、結果を受け取ったらそれを表示させる」という機能を実現。)

みたいな感じでどうでしょう?

2010/09/29 10:51:34

その他の回答(5件)

id:yossiy7 No.1

勇者よっしー回答回数778ベストアンサー獲得回数962010/09/27 23:11:45

ポイント19pt

AやBはサーバですか?

だとしたら、Aはメールを送る時点で「サーバで動くアプリケーション」ですよね。

htmlを表示するのは、httpdというプログラムがサーバで動くことで可能になるのです。

これだとhttpdに手を入れて、メールを送受信する仕組みを作ったり、Bのメールサーバも普通のものではなく、メールを受信して即ページを生成する複雑なプログラムにせざるを得ません。

可能は可能ですが、普通にwebサーバを作る100倍以上の手間がかかります。

id:ReoReo7

ありがとうございます!!

AもBもクライアントマシンです。

書き忘れていましたが、Aが1.htmlというアドレスにあるメール投稿フォームに何か入力してボタンをクリックするということです!すると、1.htmlは2.htmlへの遷移を1秒に3回くらいトライします。一方で、Bが1.htmlを通じて送信されたメールを解析して、2.htmlを作り、FTPでアップロードします!

FTPのソフトでレンタルサーバーに接続することを想定しています。

httpdですか・・・javascriptじゃダメですか?

Bの「メールを受信して即ページを生成する」のは大丈夫そうなんですが。。。

やっぱりきついですかね?

2010/09/27 23:17:31
id:deflation No.2

deflation回答回数1036ベストアンサー獲得回数1262010/09/27 23:31:02

ポイント19pt

サーバで動くプログラムを作りたくないということであれば、クライアント側でVBScript(Windows限定)またはAdobeFlexを使うことで対応可能です。


VBScriptであれば、以下のようなフローで実現できます。

  1. ページの存在可否をHTTPリクエストで判断する。参考:VBSでHTTPリクエストを投げて、レスポンスを受け取る
  2. CDOを使ってメール送信する。参考:Windows標準機能とWSHを使ってメールを送信する
  3. FTPアップロードする。参考:vbs で ftp memo
id:ReoReo7

ありがとうございます。

整理できていなかったのですが、クライアント側には、「ブラウザを使ってテキスト入力、ボタンを押下」以外にアプリ使用はNGにしたいと思っています。アプリインストールをしても良いのですが、最終的にはWindows以外のパソコンでもクライアントにしたいと思っていますので、なるべくブラウザだけで実現したいと考えています。

(尚、4の回答にやりたいことを整理しました。)

2010/09/28 04:14:13
id:yossiy7 No.3

勇者よっしー回答回数778ベストアンサー獲得回数962010/09/27 23:34:12

ポイント18pt

すいません、AもBもクライアントとなると、AとB以外のCがいますか?

つまり、CがサーバXにあるhtmlを読み込む。Aはそれを感知して、Bとメール&FTPで連携して、Cが読み込んでる間に割り込んでページを送る、という事ですか?

AがCの動作を感知する方法が全くありません。CがサーバXにアクセスする前にAに要求を送るとなると、Aはサーバにならざるを得ないのですが、Aはクライアントと明記されています。

また、Bはメールを受信しているので、明らかにメールサーバです。

Aも、FTPサーバですよね?

クライアントだと言い切ってますが、サーバだらけに見えます。

Bをクライアントとするとなると、中間にメールサーバがきっといるんでしょう。結局サーバの開発は必須っぽいです。

AがCのPC上で動く常駐ソフトだったと仮定しても、PCから勝手にメール送ったりFTPサーバになったりと、プライベート上の問題が多すぎますし、ものすごい負荷がかかる上にやはり開発量も並の量じゃないと思います。

id:ReoReo7

ありがとうございます。やっぱりサーバーだらけになりますかね。。

メールサーバーは無料のものを利用して、サーバーはレンタルサーバーで結果の表示は非常に簡素なもの(テキスト行1行+ビープ音でも鳴れば十分)で済ませないのですが、結果データの作成にはどうしてもクライアントというか、サーバー言語でできない処理をVBAにさせたい、という希望があります。

やはり開発量も膨大になりますかね・・・レスポンス作成が最も大変なのですが、この部分の膨大な処理はVBAでほとんど実現しつつあるのですが・・・これをサーバー言語に翻訳してサーバーに移植した方が早いですか?

(尚、4の回答にやりたいことを少し整理しました。)

2010/09/28 04:21:47
id:kia_44 No.4

きあ回答回数396ベストアンサー獲得回数302010/09/27 23:54:07

ポイント18pt

こっちの質問はわかりやすいかも。


送る側:

テキストボックスに入力。

ボタンを押下。

特定のアドレスにFTPで送る。


読み取る側:

自動的にブラウザを更新。


をお互いが行えばいいんですよね。


「ひまわり」とか「なでしこ」っていう日本語のプログラミング言語があります。

ちょこっといじってみたのですが、ブラウザもFTPも両方あるんで調べてみてください。

ローカルにアプリ入れる形にはなりますが、実現できます。


ほかの質問も見てみたのですが

>あるWebページで送信されたデータに応じて

この段階でCGI組まなきゃだめです。

それに、ブラウザは勝手に動かないので、更新ボタンを押す必要があります。

どちらかというと「取りに行く」ためのものです。


できること、できないことをしっかり整理することで、どの技術を使えばいいかって固まってきますよ。

それぞれの質問みてるとごちゃごちゃになってるように思えます。

でも頑張ったらできるので頑張ってください。

id:ReoReo7

ありがとうございます。お陰さまで少しずつやりたいことが見えてきたので、質問がシンプルになってきたのだと思います。

正確には

送る側(アプリインストール不可):

テキストボックスに入力。

ボタンを押下。

特定のアドレスにFTPで送る。

約0.1秒後~1分後にサーバーのデータが更新されるので、自動的にブラウザを更新してそれを表示。

読み取る側(アプリインストール可):

FTPでメールを受け取る

メールの内容に応じてデータ生成(0.1秒~1分)

送る側に結果通知(FTPでサーバーにデータまたはデータが格納されたhtmlをアップロードすることを想定)

です。送るデータは10桁の数字、0.1秒~1分後に帰ってくるデータは結果(成功 or 不成功)+メッセージ(成功しました+成功した音(flashを読み込ませる?) or 失敗しました。理由:あsdふぁdfふじこ)程度のイメージです。確かに何ができて何ができないのか、全然分かっていません。

いろいろとサポートして頂きまして大変参考になっております。ありがとうございます。

2010/09/28 04:53:27
id:tezcello No.5

tezcello回答回数459ベストアンサー獲得回数692010/09/28 09:38:54

ポイント18pt

> どうしてもサーバーで動くプログラムを作りたくない

残念ながら、全く作らないのは不可能かもしれません。


> テキストボックスに入力。

> ボタンを押下。

> 特定のアドレスにFTPで送る。

FTPからダウンロードするのはリンクで簡単に出来ます。(id & password を記述すると丸見えになるので anonymous でやる必要があるでしょう)

でもアップロードは少々難しいと思います。

こんな記事もありますが、環境を選ぶようですね。

http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1226628...


まだ、「メールを送る」の方が汎用的で現実的だと思います。

サーバサイドのスクリプトを書いてやれば、テキストボックスの値を受け取ったり、FTPでのアップロードやメールの送信も可能です。(どのレンタルサーバでも出来るわけではありません。環境依存です。)


> 約0.1秒後~1分後にサーバーのデータが更新されるので、自動的にブラウザを更新してそれを表示。

サーバ側で何も処理をしないと、ファイルが見つからない時点で「ファイルが見つからない」というメッセージを返して終わってしまうでしょう。

> 遷移を1秒に3回くらいトライします

何度も繰り返して探すとか、時間制限内で待つとかの動作は動作は、勝手にしてくれる訳ではありません。プログラムでの処理が必要でしょう。

(時々見かける「サーバの応答を待っています」というような状態は、存在しないファイルを何回もスキャンしているのとは違います。)


> FTPでメールを受け取る

FTPではメールは送れません。

メールと同じ内容のデータを送る事は出来ますが、送り先はFTPサーバ限定ですし、データが届いた事を感知する仕掛けを仕込まないとダメですね。


> メールの内容に応じてデータ生成(0.1秒~1分)

メールサーバだけでは実現は不可能でしょう。ましてやメールクライアントでは。

「何らかの判断が必要=プログラムが必要」です。

> レスポンス作成が最も大変なのですが、この部分の膨大な処理はVBAでほとんど実現

実現できているのが、「メールを受信して必要なデータを作成する」であれば問題ありませんが、単に「必要なデータを作成する」部分のみであれば、メールの受信をきっかけにその部分を起動するような仕組みが必要です。


この辺りは、ローカルのWin機でやる事を念頭においての事(VBAなので)と思いますが、外部から「直接メールを受け取る」のは案外面倒ですよ?(ローカルにメールサーバ設置が不可避では?)


> サーバー言語に翻訳してサーバーに移植した方が早いですか?

そんな気がします。システム開発も、実行速度も。

単なるテキスト処理なら、サーバサイドの処理の方がかなり早いのでは?

「膨大な処理」が何なのか分かりませんが

> サーバー言語でできない処理をVBAにさせたい

サーバサイドで出来ない処理は、そんなに多くないと思いますけど?


一般的に使われるメールサーバなどでメール受信をきっかけにサーバサイドのプログラムを起動するのはそれ程難しい事ではないです。

.forward や .mailfilter でいろいろ情報が見つかるでしょう。(メールの転送の情報が圧倒的に多いので、探し難いですが)

しかし、それを許しているレンタルサーバはあまり多くないです。


色々考えると、やはりサーバサイドでプログラムを組み動的なページを返すのが理に適っているように感じます。

id:ReoReo7

ありがとうございます。FTPでメールを受け取るのは無理なんですね。もちろん、ある程度のサーバーで動くプログラムは作っても良いのですが、メインの処理をVBAマシンで行いたい、という希望があります。

うまく説明できないところがあり、伝えられていないところがあると思うのですが、

登場マシンは3台あります。まず前提としては

クライアント⇔レンタルサーバー⇔VBAマシン

という接続で、

クライアント側(Windowsに限定しない、ブラウザーの操作のみ、その他のアプリインストール不可、結果を受け取ってページ遷移)

レンタルサーバー(ごく簡単なCGIやメールサーバーを設置するのは全然構わない、クライアント側からのデータ送信に答えてメール送信したり、VBAマシンからのデータ送信に答えてクライアント側へ、ページ遷移という形で結果を送信したりする)

VBAマシン(Windowsで動かす、レンタルサーバーから投げられたメールを確認する、レンタルサーバーに何らかの形でデータを返す、サーバーに移植するのは難しい特殊なアプリをインストールしてあってそれをVBAで動かす。)

という動作をしたいのです。レンタルサーバーにある、ある一つのページに同時にアクセスする可能性があるのは、最大1名だけという仮定で構いません。

同じ機能が実現できる/その方が0.5秒以上早いというのであれば、クライアント側から直接VBAマシンにアクセスしても良いです。その場合、何と言う知識を身につければとっかかりがつかめるかページ等を示して頂ければ幸いです。

2010/09/28 12:59:35
id:kia_44 No.6

きあ回答回数396ベストアンサー獲得回数302010/09/28 22:13:08ここでベストアンサー

ポイント18pt

おそらくやりたいことをVBAでやる場合をまじめに考えてまとめてみました。


大まかな要件

・WEBサーバー

CGIで特定のファイルに対して読み書きを行う(表示&入力フォーム)

(CGIで吐き出されたファイルをA.HTMLとする。)

参考↓

http://q.hatena.ne.jp/1183967501


・処理する側(VBAのマシン)

1.VBAでFTP接続し、A.HTMLを読み込む。↓参考

http://officetanaka.net/excel/vba/tips/tips47.htm

3.特定の処理を行い、FTP接続し、ファイルをアップロード。上記のページを参考に。

上記を定期的に行うようにする。たとえば5分間隔とか(必要に応じてペースを変える。1秒以下は厳しいと思いますよ。)


取得したファイルををVBAで自動的に書き換えること。

CGIを利用し、WEBサーバー上の特定のファイルを書き換えるようにすること。

この2点クリアできればいけますね。

あとは表示する側のブラウザを更新できるように作っておく。

特定の相手を選べませんが、パスワードかけるなりして使えるんじゃないでしょうか。

効率とかは別にしてやってみるのはアリだとおもいます。

id:ReoReo7

ありがとうございます!ちょっと望み(?)がみえてきました!

効率悪ければVBAマシンをサーバーにするかもしれませんが、とりあえずレンタルサーバーでやってみたいと思います!

ちょっと要件で理解できているか分からない箇所があるのですが、

・WEBサーバー

B.HTMLというページで入力を受ける→CGIで「メール送信」と「A.HTMLへの遷移」を行う

A.HTMLは自分自身を更新し続ける。

・処理する側(VBAのマシン)

VBAでFTP接続し、新着メールを読み込む。

新着メールの件名にデータがあるので、それに対して特定の処理を行い、

あらかじめVBAマシンが持っているA.HTMLという雛形を加工してA'.HMTLにする。

FTP接続し、A.HTMLをA'.HTMLと置き換えてしまう。(HTMLはファイル名が一緒で中身が違う。)

・WEBサーバー

A.HTMLが自分自身を更新してA'.HTMLになったら、更新が終わって結果が表示される。

(ちなみに、A'.HTMLは入力フォームを含み、何かデータを送信すると、CGIでメール送信とB.HTMLへの遷移を行う。B.HTMLはA.HTMLがA'.HTMLに更新されるのと同時にB'.HTMLに更新されており、このページは自分自身を更新し続ける。ブラウザはA'.HTMLとB'.HTMLへ交互に遷移するという無限ループで、「ブラウザを通じてデータをVBAマシンに送り、結果を受け取ったらそれを表示させる」という機能を実現。)

みたいな感じでどうでしょう?

2010/09/29 10:51:34
  • id:t-wata
    サーバサイドでページを生成するならなんて事なさそうな処理を、すごいスケールの大きい方法で実装しようとしてるんですね。
    どう見ても、仕様策定も実装もデバッグもテストもすべてがサーバサイドのプログラムでやる場合に比べ数倍から数十倍のコストがかかりそうな上、
    ユーザー側からみてもレスポンス時間が数桁ほど遅くなるわけですが、本気でしょうか?
  • id:ReoReo7
    ご指摘ありがとうございます。
    データ生成にVBAを使用した膨大な計算を行ないますので、これを通知する必要があるんです。
    もし無茶なことであれば、止めておこうと思っています。
    素人のため,どのようなことが無茶なのか分かっていない中での質問となってしまっています。
  • id:tasklight
    「データ生成にVBAを使用した膨大な計算を行ないます」ということはWindows限定ですよね。
    であれば、VBScriptを使うことに何ら問題はないのではありませんか?
  • id:ReoReo7
    ありがとうございます。ご指摘の通り、回答5の返答に書かせて頂いたようにVBAマシンはWindowsです。クライアント側がブラウザ以外は何も条件を必要としない、というのが前提でした。
  • id:kia_44
    またまた乱暴な説明ですが、
    WEBって基本的にどんな環境でも同一の動作しますよ。
    HTMLやPHPやJAVAや~それぞれいろいろありますが、ブラウザで動作する用に作られてます。
    なので、WEBベースで構築したシステムは、ローカル環境に依存せず、実行することができます。

    通常、このようなシステムを組む場合、データはSQLを使用します。
    データベース事態をWEBサーバーに持ってもらいます。

    ユーザーがブラウザから入力した値を、そのデータベースに書き込んだり変換したり読み出したりの処理を、サーバー側で行います。

    クライアント側は読み込むか送信するか。です。
    呼び出すっていう方法はないです。

    また、1秒以下のリロードにかかる負荷も気になります。
    画面描写は追いつくでしょうか。
    何人で使用するか、どの程度更新されるかわかりませんが10人ぐらいいるとチャットって
    使いにくくなるんですよ。
    ログが早すぎて読めないという根本的な問題になります。


    さてさて、そもそもこのシステムにおいてサーバーの役割は何でしょうか。
    WEBで表示するHTMLの置き場所でしょうか。
    ちょっとかわいそうですが、VBAは使用をあきらめた方がいいと思います。
    どうしても。と言うなら止めませんが、ほかの方が書かれているように恐ろしい方法をとることになります。

    機能別に考えてみてください。
    読み込むだけ
    書き込むだけ
    更新するだけ
    それぞれの機能をつなげることでシステムになりますよ。

  • id:tezcello
    ご提示の条件ならば、間にレンタルサーバを介する事無く、直接クライアントに、VBA機にアクセスしてもらえば済むような気がします。
    もちろんVBA機にウェブサーバをインストールする必要がありますが。

    かなり以前に、IIS下でVC++をCGIとして動作させた事がありますので、いろいろなものを動作させる事は可能でしょう。
    ただし、VBAというくらいなので、Excel とかで動作させるものと予想しますが、それらを起動して(その後VBAを動作)その結果をどうこう出来るのかは不明です。VBならば可能なような記事は見つかりましたが。

    また、メールをきっかけに何らかのアクションをさせる事も可能なようです。
    http://sqljp.com/yamaken/archive/2006/10/30/19889.aspx

    レンタルサーバ上で Excel などは動かないので、これらの事を「サーバーに移植するのは難しい特殊なアプリ」と言われているとしたら、アプリは移植できませんが、アプリでやっている処理は移植できると思います。いろいろ複雑な計算をしているマシンはあると思いますが、複雑な処理ほどWin機ではないって気がしませんか?
    Linux 上での道具類は WIn とは違いますが、勝るとも劣らないものが揃っていると思います。(それがレンタルサーバ上で導入可能かは別問題ですが、VPSを利用する事でほとんど解決できるでしょう。)

    また、世の中には Linux 系ではなく Windows のレンタルサーバもあります。ここに件のアプリをインストールできるのかもしれません。

    何れにしても複数のマシンに跨る処理よりも、単独のマシン(ローカル、レンタルに拘らず、サーバマシン)でやる方が速いのでは?大方の場合ネットワークがボトルネックになると思います。動作がシンプルになれば開発も容易になるのではないでしょうし。
  • id:ReoReo7
    >kia_44さん

    返答が遅くなりすみません。
    やはり機能別に考えてみることが大事なのですね。
    サーバー言語の知識が全く無いので、なるべく普通のネット接続のパソコンで処理しようとしているところに問題があるのかもしれませんね。今後も検討してみます。
  • id:ReoReo7
    >tezcelloさん

    ありがとうございます。
    動かしたいアプリは、お察しの通りEXCEL VBAです。
    また、EXCEL VBAからIEを操作して会員登録制のサイトに移動して情報を取得したりもします。
    IEの操作が結構複雑で、シートにある情報の加工とその入力が同時並行なので、視覚的にシートを見ながらプログラムしないと難しく感じています。
    これをサーバーに移植するのは難しく感じています。

    やっぱりVBAマシンをサーバーマシンにして、CGIでEXCEL VBAを起動し、結果を得るようにするのが一番ですかね?
  • id:t-wata
    Flashとかの中に表示されるデータを取得するとかでなければ別にIEを起動しなくても情報は取ってこれます。
    Fiddlerというソフトウェアをご存知でしょうか?
    http://www.fiddler2.com/
    このソフトを起動して、手動で会員制サイトにいって情報を取ってきて、リクエストやレスポンスのrawデータをみれば分かると思いますが、
    同じようにHTTPを喋べるプログラムを作ればIEじゃなくても情報は取れます。
    また、シートにある情報の加工や読み出しはデータベースで代用できます。

    > 視覚的にシートを見ながらプログラムしないと難しく感じています。
    1つ1つの処理の役割をきちんと分け、この処理が動いたら何がどう変わっていないといけないかを確認していけば難しくないと思いますが。
  • id:ReoReo7
    >t-wata

    やっぱりそうです?僕もそう思ってたのですが・・
    とりあえずは実機でIE見ながら動かすことが必須なので、サーバー移植がベターなのは承知の上でVBAで回しております。
  • id:tezcello
    他の方も仰るように、Excel でやる程度の事は普通のデータベース&PHPやPerlなどの言語でほぼ置き換え可能でしょう。
    VBAから何かを起動してという事でしたので、よほど特殊なアプリかとも思いましたが「機能の置き換え」はたぶん問題ないです。
    「同時並行」とありますが、本当の並列処理ではなさそうです。ならば、一つ一つの処理を確実にやっていくだけの話なので。

    > これをサーバーに移植するのは難しく感じています。
    現実には、VBAでやるのも難しくて困っておられるのでは?
    同じ努力をするなら、可能性が高いほうがよさそうに思いますけど。

    > やっぱりVBAマシンをサーバーマシンにして、CGIでEXCEL VBAを起動し、結果を得るようにするのが一番ですかね?
    という事で、「全部サーバに持っていってウェブアプリ化する」が一番だと思います。

    わざわざExcelやIEを起動する必要もありませんし、「遅い」ネットワークを使ったり、ライセンス的にグレー(クライアント用OSで公開してもOK?同時接続数とか)だったり、etc...
    自宅マシン(VBAマシン)を公開してしまうと、止められない事や、保守、維持、セキュリティの問題も発生します。
  • id:ReoReo7
    >tezcello さん

    やはりそうですか。データベースの設計ができるか分からないのですが、将来的にはWebへの移管を考えてみます。

    尚、ライセンスについては自分しかアクセスしないつもりです。同時接続数は1です。
    商用利用でもありません。パスワードを一緒に送信しないと、結果すら返ってこないことと、結果は送信したデータに応じて「OK/NG」の2値で、クライアント側はVBAマシンで何が行われているのかは見えないです。自分のVBAをコードに合わせてそれぞれのファンクションを遠隔起動したいイメージです。で、そのコードの解析とか対応するデータの計算をVBAでおこなっております。うーんみなさまからするとナンセンスなんでしょうね。
  • id:kia_44
    アーごめんなさい変な書き方して変な解釈させてしまった。
    6の解答の補足します。

    A.htmlは表示用
    B.htmlは入力用として、

    A.htmlにデータを差し込む。A.htmlにボタンを作り、
    別のブラウザでB.htmlを開き、そこに書き込みフォームを用意する。
    といった方法のほうが楽そうです。

    定期リロードはA.html側で行えばいいでしょう。

    メール送信で更新するのか、もしくはFTPで更新するのか
    どちらか一方でできるはずですよ。
  • id:ReoReo7
    >kia_44さん

    ありがとうございます!
    おかげさまですごく望みが見えてきました。。

    結果画面のイメージとしてはこんな感じで、連続してデータを入れられるようにしたいのですが以下のような感じでどうでしょう?メール送信とかFTPって形式の違いだけでデータを取りに行ったりアップロードするという動作は同じですもんね。

    '-------------------------------------------
    '入力画面 A.HTML (1秒に1回更新、テキストボックスに1字でも文字が入ると更新ストップ)
    '-------------------------------------------

    ようこそ。何か入れてください。
    _____________________
    |____________________| [送信]

    '-------------------------------------------


    '-------------------------------------------
    '入力画面 A.HTML (1秒に1回更新、テキストボックスに1字でも文字が入ると更新ストップ)
    '-------------------------------------------

    無事データ送信しました。結果を待ってる間に次のデータを入れられます。
    結果はまだありません。
    _____________________
    |____________________| [送信]

    '-------------------------------------------


    '-------------------------------------------
    '結果画面 A.HTML (1秒に1回更新、テキストボックスに1字でも文字が入ると更新ストップ)
    '-------------------------------------------

    無事データ送信しました。待ってる間に次のデータを入れられます。
    直近のデータ処理のの結果は SUCCESS です!!その前の結果は知りません。
    前の結果も知りたければデータを入れる頻度をゆっくりにしな。
    _____________________
    |____________________| [送信]

    '-------------------------------------------
  • id:ken3memo
    思いつきの妄想なのでコメント欄で失礼します。

    1.ユーザーのリクエスト
    掲示板でrss 出力の機能を使って、
    携帯でもPCでも、タイトルを書きこむ(本文は入れても、入れなくても)

    2.リクエストの受け取りは、rssを取得する
    http://hatena.g.hatena.ne.jp/bbs?mode=rss
    ↑こんな感じで、掲示板の機能でrss吐きだしがあるプログラムを1つ流用します。
    (カスタマイズで、本文は強制的に無しにするとか?あっ、結果をre:返信で書きたいから残しておいたほうがいいのかなぁ)

    3.受け取ったタイトルを調べ、タイトルが更新されていたら(新規のデータを投げられたら)
    その複雑なVBA処理を走らせて、結果を掲示板のレスみたいに下に書き込んでみては?
    ※問題点、rssを頻繁に取得、1秒単位で行ったら、イヤガラセと勘違いされて、レンタルサーバー会社からアクセス禁止とか喰らわないかなぁ?
    ※※あと、24時間、連続でリクエストを見に行くと・・・クライアントのPC大丈夫かなぁ?

    外に出してもOKなデータなら、今流行りのtwitter BOTを参考にして、レスポンスの早い処理を盗めそうな気もしますが。。。

    チャットのプログラムもリロードのタイミングが早すぎると共有サーバーだと怒られると思うし、サーバー負荷のことも考えないと、理論上は動作しても 運用で追い出される危険性も...なんて先の心配よりもまずは はじめの一歩 ですね。

    長々書きましたが、掲示板システムとrssとか組み合わせてみては?の1行提案でした。
  • id:ReoReo7
    >ken3memoさん

    いつもありがとうございます。HPが大変参考になっています。

    rssは盲点でした。ただ更新頻度が気になりますね。送り手側は1日10万回近く更新するんですもんね。(1日24時間稼働し続けることはないと思いますが、ブラウザの閉じ忘れとか。。。)

    受け手側もそうですね。ちょっと検討してみます!!
  • id:kia_44
    '結果画面 A.HTML (1秒に1回更新、テキストボックスに1字でも文字が入ると更新ストップ)
    これできますか?僕がやり方知らないだけかもしれないのですが。

    できない場合で考えてたのですが、
    A.htmlは表示用
    B.htmlは入力用として

    A.htmlにボタンを配置、ボタンを押したら登録するためのB.htmlを表示する。
    B.htmlは自動リロードなし。
    B.htmlで書き込み完了後、A.htmlを表示とすればいけるんじゃないかなぁと。

    サーバー側にVBAを仕込める場合と、仕込めない場合でそれぞれ考えないといけないとは思います。
    構築だけ考えると融通がきく分サーバーは自前のほうが楽そうですね。
    セキュリティとか設定とか、その他の面でめんどくさいではありますが。

    ここらで一度、できること出来ないことをまとめてみてはいかがでしょうか。
    構築する際に考えるのは
    1 やりたいことの列挙。
    2 1で上げたことの詳細を列挙する。できれば一機能単位にわける。
    3 2で上げたものをできること出来ないことで分けてみる。
    4 できないことの代替案を考える。それを使わない方法とか。クリアする方法とか。
    の手順で進めていけば見えてくるはずです。

    ご自身のスキルだったり、システム環境だったりいろいろ原因はあるかと思いますが、
    しっかり組み立てられれば解決できますので頑張ってください。
  • id:ReoReo7
    >kia_44さん

    ありがとうございます。おかげさまでやりたいことが少しだけ整理できました。

    まもなく消去予定の質問ですが、自分で要件定義を行ってみました。
    http://q.hatena.ne.jp/1286882067 ←2010年10月16日以降はデッドリンクになると思いますが・・・

    まだまだ改善の余地がありましたが、内容の要約は

    --ここから設計の内容
    要件:
    DBに登録されているAttributeを適当に表示するWebアプリのようなプログラム。
    尚、自分一人で使いますし、他人に公開したり商用利用の予定もない。

    結果表示&code送信画面(sample.cgi)
    1:DBの検索結果を1行表示し、1秒程度の長さのmidi(sound1.mid等)を鳴らします。(最初の表示は「ようこそ。codeを入力して下さい。」で、midiは無し)
    2:文字列入力テキストボックスを持ち、フォーカスが最初からそこにあります。ボタン押下またはEnterキーで送信し、再び同じ画面に返ってきます。(テキストボックスの入力文字列の桁数やフォーマットのチェックは今のところ必要ありません。)

    DBの例:
    UniqueKey,code,name,attribute
    1,X1234,名前1,1
    2,X0001,名前2,2
    3,X1235,名前3,1

    結果表示&code送信画面の例
    codeがDBにあればattributeの表示をし、attributeに対応するmidi(1ならsound1.mid、2ならsound2.mid)を1回だけ鳴らします。
    codeがDBに無ければその旨表示し、soundnothing.midを鳴らし、codeを件名にsample@sample.com宛にメール送信します。

    --ここまで設計の内容
    というものです。

    ありがとうございました!

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません