非表示シート を一括 再表示 する VBA マクロ ツール

Excel VBA

今回は、 非表示シート を一括 再表示 する Excel VBA の ツール を作ってみたのでシェアしますね。

 

 

こんにちは、ゆう(@ProgYuki)です。

Excelのシートを非表示にすることってないですか?

シートが増えてきて見にくいから、使わないシートをとりあえず非表示にしとこっみたいな場面ですね。

 

ただ、非表示シートってリスクもかなり高くて、

クライアントに送った資料に非表示シートを残したままでした、、、

みたいなことが起きたら、機密情報が含まれてる場合があったりして、かなり問題になると思います。

 

また、自分で作成したファイルならまだ気づくと思うんですけど、他者が作成した非表示シートというトラップが含まれたファイルを気付かずに編集して送ってしまってもこちらの責任になってしまいますね。

普通は、外部に送付前に「ドキュメント検査」という機能でチェックはすると思うのですが、非表示シートが見つかっても、使ってるシートの計算元のデータを非表示シートから持ってきてる可能性もあるので、むやみに削除はできないですよね。

 

で、一旦非表示シートを全て再表示しよう!ということになるわけですが、ここで問題なのが、

 

シートの再表示って一つずつしかできねぇぇ!!!

 

ってことです。

これとんでもなく面倒じゃないですか?

一つずつ右クリックして、再表示を押して、シートを選択して、OK押して、、、みたいな

私のような面倒くさがりな人間には苦痛な作業でしかないです。

 

ということで、VBAを使ってマクロツールを作ってみました!

ツールと言ってもとても簡単に作れました。

私と同じようなニーズがある方やVBAの勉強してみたい方は、この記事内にコードも全表示しているので、参考にしていただければと思います。

 

非表示シート を一括 再表示 する VBA マクロ ツール

showAllSheets

マクロ ツール の機能、使用用途、使い方

機能

 

このツールの機能は、

現在開いている全てのワークブックの全ての非表示ワークシートを再表示する

というものです。

 

使用用途

 

使用用途は、想定としては

  • 非表示シートがないかチェック
  • 非表示シートを再表示する手間を省力化

てな感じです。

 

使い方

 

コードをコピーする場所やプログラムの起動の仕方は後ほど説明しますが、使い方としては、

  1. 非表示シートを再表示したいワークブックを開いた状態で
  2. VBAプログラムを起動すると
  3. 現在開いてる全てのワークブックの全てのワークシートが表示される

という感じです。

 

画像つきで示すと、

①非表示シートを再表示したいワークブックを開いた状態で

showAllSheets2

showAllSheets2.5

例として、Sheet1, 2, 3が非表示の状態になっていて、これを全て再表示したいという状況です。

 

②VBAプログラムを起動すると

showAllSheets3

起動の仕方はいろいろとあります。

ご自身でも調べてみると良いと思いますが、一番わかりやすい方法としては、

「開発」→「マクロ」

と進むと実行できるマクロの一覧が表示されるので、今回は「showAllSheets」という名前にしているので、それを選択して「実行」を押せば実行されます。

 

③現在開いてる全てのワークブックの全てのワークシートが表示される

showAllSheets4

非表示になっていたSheet1, 2, 3が全て表示されているのが確認できると思います。

うまくできましたかね?
もし、何かエラー等があれば、コメントかTweetでご連絡いただけると幸いです。

 

VBA コードの表示

 

コードの全文は下記の通りです。

Sub showAllSheets()

    Dim wb As Workbook
    Dim sh As Worksheet

    For Each wb In Workbooks
        For Each sh In wb.Worksheets
            sh.Visible = True
        Next sh
    Next wb
    
End Sub

 

今回のコードはとてもシンプルです。

1つずつ開いてるワークブックを見ていきながら、各ワークブックにあるワークシートを1つずつ見ていって、Visible=true(表示)にするという二重ループになってます。

 

普段は処理高速化のためのコードも書いてますが、見にくくなると思ったので省いてみました。処理高速化のためのコードは、他のツール紹介の記事で書いてるので、気になる方は下記の記事を参考にされてみてください。

Excel VBA で 仕事効率化 : リンク付き INDEX を自動作成しExcel資料を読みやすくする!
今回は、 Excel VBA の マクロ 機能で リンク付き INDEX を自動作成し、Excel資料を読みやすくして 仕事効率化 する方法をシェアします!「Excelの仕事を効率化したい!」「VBAに興味があって、人のプログラムを見て学習したい!」という方にとって役に立つ内容かと思います。

 

ちなみに

  • どこにコードをコピーすれば良いのか
  • VBAマクロを実行する上での注意点

についても上記の記事で詳しく書いているので、そちらを参考にされてください。

この記事もツール紹介の記事ですが、「VBA プログラムの表示」の項目の後に詳しいコピーの仕方や注意点について書いてます。

 

ということで本日は以上になります。

私もVBA含めプログラミングを学習中の身なので、

もっとこうした方が効率的に書けるよ!
こんな業務効率化したいんだけど、VBAでできるかな?

など、ご指摘やアイディアなどをいただけると嬉しいので、コメントやいただけると幸いです!

 

Excel VBAを独学したい方向けに記事を書きましたので、興味がある方はこちらもご参考にされてみてください

Excel VBA を最も効率的に 独学 する方法
仕事にルーティン業務が多い方ほどVBAの力を爆発的に発揮して業務効率化できるので、VBAを勉強しようと考えたことがある方も多いのではないでしょうか。今回は私が6年ほど Excel VBA を使っていて最も効率的だと考える 独学 方法をお伝えしたいと思います。

 

それでは、本日もお読みいただきありがとうございました。

Twitter(@ProgYuki)でも情報発信しているので、ぜひフォロー、いいね、RT等お願いします!

 

ゆう

コメント