2025/11/29 編集済み

... もっと見るシート数が増えてくると、右クリックの「非表示」「再表示…」を毎回開くのが地味にストレスですよね。私は月別タスク管理表みたいにシートが多いブックで、あまり使わないシートを一時的に隠すことが多く、VBAのフォーム(ユーザーフォーム)で「シートの表示切り替え」をまとめてできるようにしました。 私がやった流れはシンプルで、ユーザーフォームにListBoxを置き、そこへブック内のシート名を一覧表示します。ポイントは「表示中」と「非表示」を分けて見せること。ListBoxを2つ用意して、左に表示中シート、右に非表示シートを出すと迷いません。フォームを開いた時に各シートのVisible状態を見て振り分けるだけなので、運用が安定しました。 操作は“ダブルクリック”に寄せると早いです。表示中ListBoxをダブルクリックしたらそのシートを非表示に、非表示ListBoxをダブルクリックしたら再表示にする、という形。Excel標準の「再表示」ダイアログは1枚ずつしか戻せないですが、フォームなら連続でポンポン切り替えられます。 実装の注意点もいくつかあります。まず、最後の1枚まで非表示にしないこと(エラーの原因になります)。私は「Visibleなシートが1枚しかない場合は非表示を禁止」にして回避しました。また「VeryHidden」を使うと通常の再表示では戻せないので、初心者向け運用なら xlSheetHidden だけに限定するのが無難でした。保護されたシートや共有ブックなど制約がある環境では、切替できない場合があるのでエラーハンドリング(On Error)も入れておくと安心です。 フォームを使うメリットは、作業の導線が1つにまとまることです。「シートが多いので、あまり使わないシートを非表示に」→「必要になったら再表示」というルーチンが、右クリックのメニューを探す手間なしで完結します。VBAフォームの練習にもなるので、Excel作業を効率化したい人はぜひこのタイプの“シート表示切替フォーム”から作ってみると掴みやすいと思います。

検索 ·
牛タンの魅力と食べ放題の魅力