アプリ版:「スタンプのみでお礼する」機能のリリースについて

phpで開発しているのですが
問題はVBscriptでの問題と思われますのでここで
質問させてください。

vbscript上で

Dim xl
Dim book, sheet
Set xl = CreateObject("Excel.Application")
xl.Visible = false
Set book = xl.WorkBooks.Add("http://**/****.xls")
xl.DisplayAlerts = False

--------
phpでのエクセルへのデータ操作
--------

xl.DisplayAlerts = true
xl.visible = true
set book = Nothing
Set xl = Nothing

という形でエクセルを起動して、データを挿入してから
画面上に表示という事をしています。

このときに、エクセルはちゃんと起動してくるのですが
アクティブウインドウになってくれません。

タスクバーのボタンがピコピコ点滅するだけです。
クリックすると前面に表示されるのですが。。。

どうにか、自動的に前面に出すことはできないでしょうか?

A 回答 (2件)

http://www.microsoft.com/japan/msdn/library/defa …
WSHと俗に呼ばれている(?)と思います。
APIが使えないスクリプトですが、これを利用すると、全てではありませんが、メジャーなAPIと同等のことが結構できちゃたりします。


やりたいことは
Set objWSH = CreateObject("WScript.Shell")
objWSH.AppActivate xl.Caption ← 追加
Set objWSH = Nothing
だったので、一命令の発行だけで開放してしまうので、生成とメソッド発行を一文にまとめてしまいました。

他にも便利な機能がいっぱいなので、WSHをあちこちで使いそうだったらPUBLIC扱いで先頭で生成してしまってもいいかもしれませんね。


>ワードや、PDFを起動して表示しようという計画もあるものですから、同じ症状が出たときに使えますか?
WSHはExcelとは関係ないので、キャプション指定というあいまいな方法ですが、他のアプリケーションでもタスクがあるならば可能だと思います。

http://okweb.jp/kotaeru.php3?q=493311
http://www.atmarkit.co.jp/fwin2k/operation/wsh05 …
    • good
    • 0
この回答へのお礼

ウィンドウタイトル(タスクバーのボタンの名前)
を指定してウインドウをアクティブにできるということですね。

ということは、起動させるものが決まっていれば
固定の文字列でもできそうですね。

勉強になります。ありがとうございました。

お礼日時:2005/07/29 16:38

単なるVBスクリプトを作って、こちらでやっても、再現しませんでした。


なので、だめかもしれませんが、以下の方法では回避できませんか?

xl.DisplayAlerts = true
xl.visible = true

CreateObject("WScript.Shell").AppActivate xl.Caption ← 追加

Set book = Nothing
Set xl = Nothing
    • good
    • 0
この回答へのお礼

すばらしいです。
1行追加するだけで、解決することが出来ました。
ありがとうございます。

参考までに教えて下さい。

これは、WScript.Shellの機能でエクセルの
ウインドウをアクティブにしているという事ですか?
このxl.Captionがエクセルを差しているのでしょうか?
他のアプリケーションを起動したときにも応用できますか?
ワードや、PDFを起動して表示しようという計画も
あるものですから、同じ症状が出たときに使えますか?

お礼なのに、質問してすみません。
自分でも調べてみます。

お礼日時:2005/07/29 16:11

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!