• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセルVBA 非表示シートがあるとエラー)

エクセルVBAで非表示シートがあるとエラーが発生する

このQ&Aのポイント
  • エクセルVBAを使用している際に、同一ブック内に非表示シートがあるとエラーが発生します。具体的には、特定のマクロを全てのシートで実行するVBAマクロを作成している場合、非表示シートが存在するとエラーが発生します。このエラーについての解決策として、非表示シートに対してもマクロを適応する方法や、一時的に非表示シートを表示しても良いが最終的には非表示にしたい場合の方法があります。
  • 非表示シートに対してもマクロを適応する場合は、マクロの実行時に非表示シートを一時的に表示する方法があります。具体的には、マクロの実行前に非表示シートの表示を行い、マクロの実行後に非表示シートを再度非表示にすることでエラーを回避できます。
  • また、非表示シートを表示することに問題がない場合は、非表示シートを常に表示状態にする方法も考えられます。この場合、マクロの実行前に全てのシートを表示し、マクロの実行後に非表示シートを再度非表示にすることでエラーを回避できます。ただし、非表示シートを常に表示しておくことで、シートの内容が知られる可能性があるため、セキュリティには注意が必要です。

質問者が選んだベストアンサー

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.1

推奨: XXXマクロの方を改修し、事前にセレクトとかしておかないでも実行できるマクロにします。 今のままの延長: セレクトしないとXXXが実行できないなら、表に出してセレクトするだけです。 sub macro1()  dim w as worksheet  dim v  application.screenupdating = false  for each w in worksheets   v = w.visible   w.visible = true   w.select   call XXX   w.visible = v  next  application.screenupdating = true end sub

4578up
質問者

お礼

「今のままの延長」の方で問題なく作動しました。 有難うございました。