• ベストアンサー

PHPからExcelVBAを制御できますか?

環境はxp、apache2、php5、Postgresql8.2です。 1台のPCをサーバ&クライアントにしています。 ただ今PHPとPostgresqlの勉強をしています。 いつも質問に答えてくれてありがとうございます。 サーバーはwindows、Excelが入っています。 伺いたいことは、 PHPからExcelVBAを制御できるかどうかということです。 過去の質問を検索したところ、 >system系の関数でWSHからVBSを制御する手はあるかもしれません。 と、書かれていたのですが 今ひとつ分かりません。 ご教示して頂けたら幸いです。

質問者が選んだベストアンサー

  • ベストアンサー
  • shimix
  • ベストアンサー率54% (865/1590)
回答No.4

>Excelで編集をするという処理は、クライアントで行うと言うことでしょうか? いえ、サーバ側です(そうでないと意味がないのですよね?) >このワーク領域に保存して、監視、DBに保存するプロセスは、 >PHPではなく、どのような言語を使うのでしょうか? UnixサーバでやろうとするとExcelが扱えるライブラリのある言語に限定されますが、Win32前提ならWin32のアプリが作れれば「何でもいい」と思います(ほとんどの言語でOfficeアプリとの連携は出来ると思うので)。 ワーク領域と書きましたが、いったん(phpの時点で)DBに格納までしておいて、定期実行プロセスで「Excelの内容を書き替え&書き替え済みFLAGを立てる」でもいいと思います。どういう手法を使うかは要求仕様とのすり合わせになります(結果出力までのタイムラグをどの程度まで許容できるかとか)。

wee
質問者

お礼

ご返事有り難うございました。 ようやく理解することが出来ました。 ただ完璧ではないと思うので またご教示して頂けたら幸いです。

すると、全ての回答が全文表示されます。

その他の回答 (3)

  • shimix
  • ベストアンサー率54% (865/1590)
回答No.3

>1.PHPから >2.Excelファイルのデータを吸い上げて、 >3.postgresSQLにデータを格納する。 >4.PHP+postgresSQLでデータを更新 >5.4で更新した結果をExcelファイルに保存する > >どうしてpostgresSQLとExcelの二重管理をするかといいますと >WEBにアクセスできる人はWEBで、 >アクセス出来ない人にはExcelファイルを配布したいからです。 これだけなら、単にファイルの転送・格納・出力というだけなので、VBAなどの出番はないように思えます。Excelでなく画像ファイルに置き換えればごく普通のスクリプトですね。 >勉強という意味合いが強いので >PHPからExcelを制御できるようになれば >今後役立つと思うからです。 残念ながらそれほど出番はないでしょう>phpからExcel。サーバ側で何かするにしてもクライアントの相手をするプロセスが同時にあれこれしないといけなくなるような組み方はしません(もちろんCSVなどの軽い処理であればphpでもかまいません)。時間がかかるような処理は、いったんワーク領域に保存→その領域を監視しているプロセスが処理してDBに保存→phpはDBの中身を使うといった流れだと思います。そういう処理分割や連携を学ぶほうが役立つような気がします。

wee
質問者

補足

ご返事有り難うございました。 >サーバ側で何かするにしてもクライアントの相手をするプロセスが >同時にあれこれしないといけなくなるような組み方はしません 「同時にあれこれしないといけなくなる」というところが 少し分からないのですが・・・。 Excelで編集をするという処理は、クライアントで行うと言うことでしょうか? >時間がかかるような処理は、 >いったんワーク領域に保存→ >その領域を監視しているプロセスが処理してDBに保存→ このワーク領域に保存して、監視、DBに保存するプロセスは、 PHPではなく、どのような言語を使うのでしょうか? 大変にお手数ですが ご教示して頂けたら幸いです。

すると、全ての回答が全文表示されます。
  • shimix
  • ベストアンサー率54% (865/1590)
回答No.2

「なぜサーバ側で(しかもphpで)それをしないといけないのか?」と思うのですが、いったいどういう処理をしたいのでしょう?切り分けが出来ていないように思えるのですが・・。 >>system系の関数でWSHからVBSを制御する手はあるかもしれません。 >と、書かれていたのですが >今ひとつ分かりません。 phpからは直接VBAを制御できないので、WSHで組んだものをsystem()などで実行させれば?という意味だと思います(WSHはわかりますよね?)。 正直、phpからのExcelってこれ↓以上が必要な局面が思いつかない。 http://maglog.jp/lightbox/index.php?module=Article&action=ReaderDetail&article_id=16129

wee
質問者

補足

>「なぜサーバ側で(しかもphpで)それをしないといけないのか?」と思うのですが、 >いったいどういう処理をしたいのでしょう?切り分けが出来ていないように思えるのですが・・。 したい処理というのは#1で補足したとおりです。 そうでよね。 普通はこういう事はしないんですよね。 もし宜しければ、普通はこのように作るというようなことがありましたら ご教示して頂けたら幸いです。 >(WSHはわかりますよね?)。 知りませんでしたので ネットで調べました。 ありがとうございました。

すると、全ての回答が全文表示されます。
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

>PHPからExcelVBAを制御できるか なにがしたいのかによります。 具体的にどうしたいのか補足したほうがよいでしょう。 (できるとも、できないともなんとも言えない内容なので)

wee
質問者

補足

説明不足で申し訳ございません。 行いたい処理は、 1.PHPから 2.Excelファイルのデータを吸い上げて、 3.postgresSQLにデータを格納する。 4.PHP+postgresSQLでデータを更新 5.4で更新した結果をExcelファイルに保存する どうしてpostgresSQLとExcelの二重管理をするかといいますと WEBにアクセスできる人はWEBで、 アクセス出来ない人にはExcelファイルを配布したいからです。 ただ、一番大きな理由は 勉強という意味合いが強いので PHPからExcelを制御できるようになれば 今後役立つと思うからです。

すると、全ての回答が全文表示されます。

関連するQ&A