マクロのサンプルをダウンロードし、実際に動かして見たところ、動きません。 削除
Message#1 2015年2月4日(水)21時12分 From: にかっぽっか |
excel VBA でのIE操作について。 勉強するために以下の書籍を購入し、マクロのサンプルをダウンロードし、実際に動かして見たところ、動きません。 環境はWIN7 64bit excel2007(なので32bit) です。 別のPC(OSは同じWIN7 64bit)でexcel2010(64bit)のものでは、宣言にPtrSafe を付加することで無事動作しました。 どうすれば同じように動作しますか? 対処法があればどなたか教えて欲しいのですが。 『書籍名:EXCELVBAでIEを思いのままに操作できるプログラミング術』 サンプルマクロはこちらからダウンロードも出来ます。(http://book.impress.co.jp/books/3384_4 )、 Do While objIE.hWnd = GetLastActivePopup(objIE.hWnd) ↑のこの部分で引っかかっているみたいです。 保存しますか?の通知は表示され、オレンジ色に点滅したままになり、保存することが出来ません。 コードは以下の通りです。 Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) Public Declare Function GetLastActivePopup Lib "user32" _ (ByVal hWnd As Long) As Long 'SendKeys "abc" 'a→b→cとキーストロークを送信 'SendKeys "{TAB 2}{ENTER}" 'TAB→TAB→ENTERとキーストロークを送信 'SendKeys "+{TAB}{ENTER}" 'SHIHT+TAB→ENTERとキーストロークを送信 'SendKeys "%Y" 'ALT+Yとキーストロークを送信 Sub SendKeys3() Dim objIE As Object 'IEを開いてファイルの保存URLを開く Set objIE = CreateObject("InternetExplorer.Application") objIE.Visible = True objIE.navigate "http://book.impress.co.jp/appended/3384/IE2.html" 'Busyの間、待機 Do While objIE.Busy Sleep 1 Loop 'Busyとなるまで、待機 Do Until objIE.Busy Sleep 1 Loop 'ファイルを開くダイアログが表示されるまでループ Do While objIE.hWnd = GetLastActivePopup(objIE.hWnd) DoEvents Loop SendKeys "%S", True '保存を押すキー送信 End Sub それと、この件とは別ですが、先日させて頂いた質問について、ご回答により解決出来ていたのに、解決済みにしておらず、投票になってしまって大変申し訳ありません。 ご連絡頂いていたのに、気付かず申し訳ありませんでした。 携帯アプリからうまく書き込みにたどり着けませんでした。m(__)m 補足 訂正します。 Do While objIE.hWnd = GetLastActivePopup(objIE.hWnd) でつまづいているとお伝えしたのですが、これは私がIEを閉じてしまったから出た表示なのでしょうか?? とりあえずステップインで一つづつ試してみたところ、 Do Until objIE.Busy Sleep 1 Loop のところでずっとループしてしまって抜けだせません。 どういったことが考えられるでしょうか? |
上のメッセージを削除します。
よければパスワードを入力し、削除ボタンをクリックしてください。