2015年8月29日土曜日

Excel VBA シートの非表示

シートを非表示にしたくなるケース
  1. 作業用に一時的なシートを使うような場合
  2. 設定用の条件などが記載されたシート
  3. データベースの台帳のようなシート
ActiveWindow.Visible = False
  • これを実行したまま保存すると、非表示のまま保存され、開けても表示されない
  • 非表示で作業したブックを出力するような場合(ケース1)は、
    必ず保存前に、Visible = True にしないと、開けないブックになってしまう
Application.Windows(Name).Visible = True

  • 表示は上のように対象を特定すること
  • 非表示だったシートを再表示しても、アクティブにはなるわけではない

ところが、マクロが実行されないことには、非表示にならないので、上のケース1の場合は構わないが、2,3のケースは、ブックの拡張子変更や、別名保存されたりすると「マクロを有効にするまで」は丸見えとなってまずいので
  • シートのタブから「シートの非表示」を実行して
  • ファイルのバックステージ「情報」で、「ブックの保護」「ブック構成の保護」で
    パスワードで保護する