[[20151010130404]] 『Alt+ESCでのブック切替えとWorkbook_Activateイベ』(田吾作) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『Alt+ESCでのブック切替えとWorkbook_Activateイベントの関係』(田吾作)

 こんにちは、よろしくお願いいたします。

 Alt+Tabで開いているウィンドウの切替えができます。
 また、Alt+Escでも同様の切替えができます。

 ただ、Alt+Escですと、全ての可視ウィンドウが対象になりますが、
 Alt+Tabですと、時々一部のウィンドウに切り替わらずに、開いている
 ウィンドウの一部の間でのみ切り替わることがあります。

 また、Alt+Tabですと、Workbook_Activateイベントは正しく起動します。
 Alt+Escですと、ブック切り替え時に
 「コードの実行が中断されました」
 とエラーメッセージがでてマクロの実行が止まることがあります。

 デバッグの画面で
 Private Sub Workbook_Activate()
 の部分が黄色く表示されています。

 Alt+Escで切り替えると、全てのウィンドウが切替えの対象になるが
 Workbook_Activateイベントがエラーになる。

 Alt+Tabで切り替えると、一部のウィンドウが切替えの対象になるが
 Workbook_Activateイベントはエラーにならない。

 ↑の状況を勘案すると、Alt+Escで切り替えるのがいいように思いますが、
 エラーになる、という状況です。

 ブックは全て同じインスタンスで開いています。

 ためしに、インターネットエクスプローラー、ブックA、ブックB、ブックC
 が開いている状態でAlt+Escで切り替えたら、
 ブック以外のウィンドウからブックに切り替えたときはエラーにならなく、
 ブックから他のブックに切り替えたときにエラーになります。

 ブック以外→ブックA→ブック以外→ブックB
 の場合はエラーになりません。

 ブック以外→ブックA→ブックB
 の場合は、
 ブック以外→ブックA
 の時はイベントはきちんと実行され、
 ブックA→ブックB
 の時にエラーになる、という具合です。

 Alt+Escで切り替えてもエラーにならないでWorkbook_Activateイベントが
 実行されるようにするにはどのようにすればいいでしょうか。
 ご存知の方、ご教示お願いいたします。

 Workbook_Activateイベントの内容は
 試しに↓のように単純なコードにしても同様にエラーになります。

 Private Sub Workbook_Activate()
  MsgBox "1205"
 End Sub

< 使用 Excel:Excel2007、使用 OS:WindowsVista >


 >エラーになる、という具合です

 エラーの内容も書いておくこと。
 何のエラーかわからないから・・。

 「コードの実行が中断されました。」
 ってなりませんか?
 なんかのタイミングで割り込みが入ったんじゃないかと。
 アクティブイベント系は、結構不安定だと思っているので
 あまり使いたくないというのが本音。

 気休め。

 Private Sub Workbook_Activate()
  Application.OnTime Now(), "main"
 End Sub

 標準モジュール
 Sub main()
  MsgBox 123
 End Sub

 BJ 14:19

 >エラーの内容も書いておくこと。
 >何のエラーかわからないから・・。

 ??
 下記のようにお書きしたんですが?

 >「コードの実行が中断されました」
 >とエラーメッセージがでてマクロの実行が止まることがあります。
(田吾作) 2015/10/11(日) 15:15

 ご回答ありがとうございます。

 ご指摘のように変えてみたのですが、状況は同じでした。

 >Private Sub Workbook_Activate()
 > Application.OnTime Now(), "main"
 >End Sub

 >標準モジュール
 >Sub main()
 > MsgBox 123
 >End Sub
(田吾作) 2015/10/11(日) 15:27

回答ではありません。感想です。

ALT+ESCキーではたしかに、マクロ実行がストップされることがありますね、
「ESCキーがマクロ実行に中止命令を送ることがある」ということなんでしょうか。
SendKeysがままならないのと同じようなイメージなんでしょうね。

こればっかりは、製品固有の性格のようなので、矯正する手立てはないかもしれません。
ALT+TABをだましだまし使うか(対象が制限されるけれど)、
きっぱりと、
画面下部のアプリケーションタブをきちんとクリックするという正攻法に徹するかですね。

余談:
Vista以降は、Windowsキー+Tabというのがあるんですね。知らなかった。

(γ) 2015/10/11(日) 17:20


 ご回答ありがとうございます。

 >Vista以降は、Windowsキー+Tabというのがあるんですね。知らなかった。 

 アクティブウィンドウの中で切り替わるようです。

 エクセルシートがアクティブだと、シート上でタブキー押したのと同じ効果になります。
 IEがアクティブだと、リンクのフォーカスが移動します。
 ユーザーフォームがアクティブだと、コントロールのフォーカスが移動します。

 ウィンドウ間の切替えはWindowsキー+Tabではできないようです。

 >ALT+TABをだましだまし使うか(対象が制限されるけれど)、 
 >きっぱりと、 
 >画面下部のアプリケーションタブをきちんとクリックするという正攻法に徹するかですね。

 そうすることにします。ありがとうございました。
(田吾作) 2015/10/11(日) 17:39

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.