2012-02-02 11 views
0

別のアクティブなウィンドウ(Alt + Tab)にそのウィンドウにコマンドを送信し、Excelにフォーカスを戻してVBAでコマンドを実行し続けることができるExcel 2007からVBAスクリプトを実行したいとします。例えばExcel 2007でVBAコマンドを使用して別のウィンドウにフォーカスすることはできますか?

がアクティブなInternet Explorerのウィンドウに焦点を当てて、セルA1の内容をコピーし、TABキーコマンドを送信し、A1からコピーしたデータを貼り付け、その後、VBAスクリプトを継続するために戻ってExcelに再び焦点を合わせます。

これは可能ですか?私は正しい情報をオンラインで見つけられず、Excel VBAを使ってこれを行うことができるように感じました。

+1

に潜在的な用途ですあなたの例はIEを自動化するか(JMAXが示唆)、XMLHTTPを使用する – brettdj

答えて

0

私はAutoHotkeyと呼ばれるこのソフトウェアを使用して&を見つけてしまった上:
は、ここではいくつかのリンクです。無料の&オープンソースです。

これは非常に直感的な独自の構文を使用してマクロをスクリプトすることができます。

私が解決したい問題は、AutoHotkeyとExcel VBAを使用して実行する方がずっと簡単でした。

上記の擬似コードのためのAutoHotkeyをコード:

#space:: 
;Focus to Excel and copy contents of cell A1 
WinActivate Microsoft Excel - filename.xls 
Send {Ctrldown}{Home}{Ctrlup} 
Send ^c 

;Focus to Internet Explorer, TAB to the first field, and paste clipboard data into it 
WinActivate Google - Windows Internet Explorer 
Send {Tab} 
Send ^v 

;Focus back to Excel 
WinActivate Microsof Excel - filename.xls 
return 

これは、この構文の詳細を介して行く価値はないのですが、私はちょうどデモの目的のためにそれを貼り付けました。

このプログラムでは、複数のウィンドウにまたがる特別なマウスのキーボード操作を必要とするタスクを自動化する必要がある場合には、より多くのことが可能になります。変数&ループのような通常のプログラミングの側面もサポートされています。

ありプログラムに関する一般的な情報でもあると、ためにはるかに安全であることウォルド `AppActivate`&` SendKeys`を使用して、非常場しのぎの方法であなたがやりたいことは可能ですが、それはWikiPedia

+0

問題の解決策を見つけたと思われるときに、トピックを「閉じる」という独自の回答を受け入れることができます。途中で共有してくれてありがとう。 – JMax

+0

私はこれを知っていて、過去にそうしていましたが、あなた自身の答えを受け入れる前に期限切れにしなければならない期間があります。とにかくありがとう – CheeseConQueso

+0

申し訳ありません、私は遅延を忘れてしまった – JMax

2

VBA自体内では、は、文字通り、キーを送信したり、別のアプリケーションをマスターすることはできません。ただし、Microsoft APIを使用してOfficeスイートの動作をシミュレートすることも、一部の拡張機能ではInternet Explorerを動作させることもできます。

次のいずれかを行うことができます。Microsoft Windowsのレベルのアプリケーションを作成するための

+0

vba-cornerへのリンクは実際にアクティブなIEインスタンスに切り替える方法を示しているので、OPが探していたものかもしれません。私は単に最初からIEを自動化することをお勧めします。 – JimmyPena

関連する問題