VBAでワークシートの表示・非表示の切り替え方がわからない
集計や自動計算しかしないワークシートは、操作したくない
このような問題を解決できます。
EXCELを動かしていると、ワークシート上でほかのワークシートを開き、値だけ取得したい機会がでてきます。
値を取得するのみであれば、参照するワークシートは非表示のままで十分ですね。
【マクロで非表示にする方法②(戻すときもマクロを使う)】
・どちらもVisibleプロパティで設定することができます。
この2つの方法の違いは、
シートの右クリックの命令で再表示できるか、そうでないか、の違いになります。
実際のサンプルは後述します。
マクロで非表示にする方法①(戻すときは手動)
実際のサンプルコードをご覧ください。
Sub SampleCode1()
Worksheets("Sample02").Visible = False
End Sub
※これで、Sample02(シート名)が非表示になります 。
このコードは、シート名”Sample02″を非表示にするというマクロです。
このVisibleプロパティを使用した際は、シート名を右クリックし、再表示を選択できるようになっています。
マクロで非表示にする方法②(戻すときもマクロを使う)
実際のサンプルコードをご覧ください。
Sub SampleCode2() Worksheets("Sample02").Visible = xlSheetVeryHidden End Sub
※これで、Sample02(シート名)が完全非表示になりました。
この場合、非表示にしてシートを再表示させたいときに注意が必要です。
通常であれば「シート名を右クリック→再表示」という手順で大丈夫ですが、上記のマクロを使用した場合はこの手順が使えません。
上記のサンプル画像の通り、再表示ボタンはグレーになり選択できないようになっています。
この状態から再表示させたい場合は、マクロを使用して戻すことになります。
Sub SampleCode2_return()
Worksheets("Sample02").Visible = True
End Sub
このようにマクロを使うことによって、再表示することができます。
管理者のみがわかっていれば十分なファイルや、他者に安易に変更されたくない場合はこの方法を使ってみると便利です。
[番外編] イミディエイトウィンドウから手作業で非表示する方法
イミディエイトウィンドウを知っていますか?
一応サンプル画像を載せておきますので、大体のイメージを掴んでください。
赤枠で囲んでいる箇所がイミディエイトウィンドウです。
この赤枠内に下記のコードを直接入れ、Enterキーを押すと非表示を実行することができます。
Worksheets("Sample02").visible = False
と入力して、完全非表示状態ではない非表示を実行することができます。
わざわざSubプロシージャにプログラムを書いて実行する必要がない時は、この方法でもアリかもしてません。
[番外編] ワークシート名ではなく順番で指定する方法
本記事の中心はワークシート(Worksheets)名を指定して非表示にするものですが、同様の考えでワークシートを左側から数えて、その数を指定して非表示にすることも可能です。
これも非表示にすることで、他者の意図しない操作を防ぐことができるようになるので、ぜひ覚えておきましょう。
Sub samplecode3() '左から2番目のシートを非表示にする場合は ThisWorkbook.Windows(2).Visible = False '表示にする場合は ThisWorkbook.Windows(2).Visible = True End Sub
とてもシンプルなので覚えやすいです。
意外と使用する頻度があるので、便利に使いこなしてみましょう。
まとめ
コメント