質問: vba、右クリックをするとフリーズしてしまう。 excel で、 workbook_sheetactivate() を使ったマクロを組みました。 各 sheet のタブを選択して表示するごとに、 マクロが実行されます。 難を言えば、 application.screenupdating で高速処理をしても、 レスポンスに1秒弱ほどかかります。 問題は、右クリックでタブを選択すると、 フリーズしてしまうのです。 ご存知のように、タブ上で右クリックは、 新規 sheet 作成などのポップアップメニューが出るのですが、 選択した sheet が表示され、それが出た段階で、 excel自体がフリーズいてしまいます。 問題を解決するには、 どうすればいいのか分かる方いませんか?
回答: excelのバージョンやどんなコードを書いているかが解からないと答えようが無いと思いませんか? 推測ですが、、、 screenupdating は通常だと処理終了時に勝手にtrueになるけれど、ポップアップの場合には明示的にtrueにしないと問題あるようです。 下記のようにしてみては? private sub workbook_sheetactivate(byval sh as object) on error goto er: 'これと application.screenupdating = false 'この間に処理を書く er: 'これと application.screenupdating = true 'これを追加 end sub 処理内容か不明ですが、シートのアクティブイベントに数秒も掛かる処理を走らせるのはどうかとも思います。