
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
という形でエクセルを起動して、データを挿入してから
画面上に表示という事をしています。
このときに、エクセルはちゃんと起動してくるのですが
アクティブウインドウになってくれません。
タスクバーのボタンがピコピコ点滅するだけです。
クリックすると前面に表示されるのですが。。。
どうにか、自動的に前面に出すことはできないでしょうか?
No.2ベストアンサー
- 回答日時:
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 …
ウィンドウタイトル(タスクバーのボタンの名前)
を指定してウインドウをアクティブにできるということですね。
ということは、起動させるものが決まっていれば
固定の文字列でもできそうですね。
勉強になります。ありがとうございました。
No.1
- 回答日時:
単なるVBスクリプトを作って、こちらでやっても、再現しませんでした。
なので、だめかもしれませんが、以下の方法では回避できませんか?
xl.DisplayAlerts = true
xl.visible = true
CreateObject("WScript.Shell").AppActivate xl.Caption ← 追加
Set book = Nothing
Set xl = Nothing
すばらしいです。
1行追加するだけで、解決することが出来ました。
ありがとうございます。
参考までに教えて下さい。
これは、WScript.Shellの機能でエクセルの
ウインドウをアクティブにしているという事ですか?
このxl.Captionがエクセルを差しているのでしょうか?
他のアプリケーションを起動したときにも応用できますか?
ワードや、PDFを起動して表示しようという計画も
あるものですから、同じ症状が出たときに使えますか?
お礼なのに、質問してすみません。
自分でも調べてみます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
FORMが開いているかどうかの確...
-
SSI 文字化けしてしまう
-
DLLをREGSVR32しないで利用する...
-
メモリの「コミット済み」の意...
-
リカバリ領域
-
メモリが"written"になることは...
-
中古PCのOSについて
-
RECOVERY(D:)ってなんですか?
-
backing storeって何ですか?
-
Apache『OS 10048』エラーの対...
-
これは何ですか?igfxext.exe
-
起動時に毎回 Press The ESC Key
-
初期化
-
「クラス文字列が無効です」の...
-
パソコンのデータをネットにつ...
-
再度お聞きします
-
朝一番の起動のみネットワーク...
-
パソコン起動時にF1を押さない...
-
win10 仮想メモリ
-
0x80240437のエラーです
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
FORMが開いているかどうかの確...
-
起動中のアプリ、ソフトの取得
-
VB2005でのSource...
-
DLLをREGSVR32しないで利用する...
-
Accessのフォームをコマンドラ...
-
勝手にセキュリティー警告が出る
-
タスクトレイ常駐するプログラ...
-
ハードウェア変更のスキャンをO...
-
プログラムからOS標準ブラウザ...
-
アプリケーション実行中にタス...
-
このアプリはなんですか?
-
ilink32.exe'を実行できないエラー
-
ExcelのVBAコードについて教え...
-
F-LINKについて
-
エントリーポイントが見つかり...
-
「mailto:」の書式
-
VC++からブラウザを起動し...
-
タスクスケジュールで定時にポ...
-
WebBrowserコントロールでの印刷
-
コマンドプロンプトでIEを起動...
おすすめ情報