投稿日 | : 2006/06/08(Thu) 17:34 |
投稿者 | : ダンボ |
Eメール | : |
URL | : |
タイトル | : Re^2: SendKeys苦戦中 |
YK さん、コードご提示ありがとうございます。なかなか良い結果が報告できないので心苦しいです。
まず、いただいたコードをそのまま実行すると画面には何のダイアログも出ずに、
CodeProtect関数を通過して、後段で保護エラーになります(呼出元のWith句のところで)
Private Function CodeProtect(WB As Workbook) As Boolean
WB.VBProject.VBE.Windows(1).SetFocus
DoEvents
SendKeys "%(TE)"
Application.Wait Now + TimeValue("00:00:01")
SendKeys "****~" '****にはパスワード
Application.Wait Now + TimeValue("00:00:01")
SendKeys "~"
End Function
そこで下記のように直すと、
Private Function CodeProtect(WB As Workbook) As Boolean
On Error GoTo 0
MsgBox "CodeProtect確認"
WB.VBProject.VBE.Windows(1).SetFocus
DoEvents
Application.Wait Now + TimeValue("00:00:01")
SendKeys "****"
SendKeys "{ENTER}", True 'パスワード入力完了して続行
DoEvents
Application.Wait Now + TimeValue("00:00:01")
MsgBox "pause"
End Function
パスワード入力ダイアログは出るようになった。が、1分以上待っても****は表示されない。
そこで手でパスワードを入力してEnterを押すと"pause"のメッセージが出て続行するのですが、
後段のどこかで、「メモリーが"read"になることはできませんでした」となりアボートします。