Excelのシートが表示されない原因と対処法!チェック&修正ツールも公開!

Excelのシートが表示されないときはないでしょうか。

けど、そんな中で悩むことは、

・Excelのシートが表示されないが表示する方法がよくわからない
・別ブックの非表示シートを一括で再表示させたいが方法がよくわからない

ですよね。

今回はそんなお悩みを解決する

・Excelのシートが表示されない原因と対処法
・VBAで別ブックのシートの表示/非表示をチェックし一括で再表示させる方法

についてまとめます!

シートが表示されない原因①:シート見出しが非表示に設定されている

シートが表示されない原因①はシート見出しが非表示に設定されているケースです。

シートはブック内で表示/非表示をする設定ができますが、これを非表示に設定するとシート全体が見えなくなります。

シート見出しを表示するにチェックがない場合が該当します。

シートが表示されない原因②:シートが隠れている

シートが表示されない原因②はシートが隠れているケースです。

表示面積が小さいモニターだと、ウインドウ幅が狭いためにシートタブが隠れてしまうことがあります。

シートが表示されない原因③:シートが非表示になっている

シートが表示されない原因③はシートが非表示になっているケースです。

シートの表示/表示を切り替えられますが、非表示に設定するとシートが見えない状態となります。

タカヒロ
タカヒロ
どれもシートは見えなっていますが実際には存在しますので安心してください。

シートが表示されない原因①:シート見出しが非表示に設定されている場合の対処法

シートが表示されない原因①のシート見出しが非表示に設定されている場合の対処法について説明をします。

「シート見出しを表示する」を有効にします。

「ファイル」>「オプション」>「詳細設定」をクリックします。

「次のブックで作業するときの表示設定」項目の「シート見出しを表示する」に チェックを入れ、「OK」をクリックします。

シートが表示されない原因②:シートが隠れている場合の対処法

シートが表示されない原因②のシートが隠れている場合の対処法について説明をします。

ウインドウを最大化するか、スライドさせ隠れているシートを表示させます。

スクロールバーの端にある「・・・」をクリックし、

隠れているシートタブを表示していきます。

シートが表示されない原因③:シートが非表示になっている場合の対処法

シートが表示されない原因③のシートが非表示になっている場合の対処法について説明をします。

表示されているシートタブを右クリックし、「再表示」をクリックします。

ダイアログ ボックスで、再表示したいシートを選択し、「OK」 をクリックします。

ツール:別ブックのシートの表示/非表示をチェックし一括で再表示させる

VBAで別ブックのシートの表示/非表示をチェックし一括で再表示させる方法について説明をします。

サンプルは6シート中、

4シートを非表示にしたものと、

シート見出しを表示に設定したものを使用します。

VBAコード

VBAは以下の通りです。

Sub 指定ブックのシート表示状態をチェックし再表示する()

    Dim objSheet As Object
    Dim objWb As Workbook
    Dim strFilePass As Variant
    Dim strResult As String
    Dim msgRt As VbMsgBoxResult
    
    'ファイルを開くダイアログを表示し、選択したファイルのパスを変数に代入します。
    strFilePass = Application.GetOpenFilename(FileFilter:="Excelファイル,*.xls;*.xlsx;*.xlsm")

    'ファイルパスがあれば処理を継続します。
    If strFilePass <> False Then

        'ブックファイルのパスを指定します。
        Set objWb = Workbooks.Open(strFilePass)
        
                'メッセージのヘッダー部分を変数へ代入します。
                strResult = "■各シートの表示状況(-1:表示、0:非表示)" & vbCrLf
                
                'Sheetsコレクションからシートオブジェクトを取得します。
                For Each objSheet In objWb.Sheets
                    '該当シートの名前と表示状態を変数に代入していきます。
                    strResult = strResult & objSheet.Name & ":"
                    strResult = strResult & objSheet.Visible & vbCrLf
        
                Next
                
                'メッセージのヘッダー部分を変数へ代入します。
                strResult = strResult & "■ブックのシート見出し(True:表示、False:非表示)" & vbCrLf
                strResult = strResult & Windows(objWb.Name).DisplayWorkbookTabs & vbCrLf
                
        
        '確認ダイアログを表示し、OKの場合処理を進めます。
        If MsgBox(vbCrLf & vbCrLf & strResult & "すべてのシートを表示しますか?", vbYesNo + vbQuestion) = vbYes Then
            
            'Sheetsコレクションからシートオブジェクトを取得します。
            For Each objSheet In objWb.Sheets
                '該当シートを表示させます。
                objSheet.Visible = True
            Next
            
            'シート見出しを表示します。
            Windows(objWb.Name).DisplayWorkbookTabs = True
            
            MsgBox "すべてのシートを表示しました。"
        Else
            MsgBox "中止しました。"
        End If
        
        'オブジェクトを解放します。
        Set objWb = Nothing
    
    Else
        MsgBox "キャンセルしました。"
        Exit Sub
    End If

End Sub

VBAの実装

シートの指定範囲をCSV出力するVBAの実装方法については
VBAの実装手順
をご参照ください。

VBAを実行

シートを表示させるブックを選択し、VBAを実行しましょう。

ファイル選択のダイアログが表示されたらシート表示状態をチェックしたいブックを選択します。

「開く」をクリックし、表示されたメッセージからシート表示状態のチェックをします。

表示されていないシートが確認できたら「はい」をクリックし表示処理をおこないます。

はい、すべてのシートが表示されましたね。

タカヒロ
タカヒロ
シート再表示後はまだ保存されていない状態ですので、必要に応じて保存をすうようにしてください。

次にシート見出しが非表示であるブックを選択し、表示状態になるか確認をしてみましょう。

VBAを実行し、メッセージから状態を確認します。

確認出来たら「はい」をクリックし処理を継続します。

はい、シート見出しが表示されましたね。

VBAの説明

VBAについて説明をします。

ファイルを開くダイアログを表示し、選択したファイルのパスを変数に代入します。

strFilePass = Application.GetOpenFilename(FileFilter:="Excelファイル,*.xls;*.xlsx;*.xlsm")

ファイルパスがあれば処理を継続します。

If strFilePass <> False Then

ブックファイルのパスを指定します。

Set objWb = Workbooks.Open(strFilePass)

メッセージの一つ目ヘッダーを変数へ代入します。

strResult = "■各シートの表示状況(-1:表示、0:非表示)" & vbCrLf

Sheetsコレクションからシートオブジェクトを取得します。

For Each objSheet In objWb.Sheets

該当シートの名前と表示状態を変数に代入していきます。

strResult = strResult & objSheet.Name & ":" strResult = strResult & objSheet.Visible & vbCrLf

メッセージの2つ目ヘッダーを変数へ代入します。

strResult = strResult & "■ブックのシート見出し(True:表示、False:非表示)" & vbCrLf

シート見出しの状態を変数へ代入します。

strResult = strResult & Windows(objWb.Name).DisplayWorkbookTabs & vbCrLf

確認ダイアログを表示し、OKの場合処理を進めます。

If MsgBox(vbCrLf & vbCrLf & strResult & "すべてのシートを表示しますか?", vbYesNo + vbQuestion) = vbYes Then

Sheetsコレクションからシートオブジェクトを取得します。

For Each objSheet In objWb.Sheets

該当シートを表示させます。

objSheet.Visible = True

シート見出しを表示します。

Windows(objWb.Name).DisplayWorkbookTabs = True

オブジェクトを解放します。

Set objWb = Nothing

VBAの実装手順

実装手順は以下の通りです。

Excel側にVBAを実装していきます。

①Excelを新規に開き、「開発」タブをクリックし、「VisualBasic」をクリックします。
もしくはショートカットキー「Alt」+「F11」でもOKです。

②標準モジュールを追加します。
左ペインのVBAProjectを右クリックし、「挿入」、「標準モジュール」を選択します。

③右ペインのウインドウに上記のVBAを入力します。

こちらで完了です。

VBAを実行する

では早速VBAの実行をしてみましょう。

①「開発」タブの「VBA」をクリックし実行したいマクロを選択し、「実行」をクリックします。

②処理がされたことが確認できれば完了です。

さいごに

いかがでしょうか。

今回は、

・Excelのシートが表示されない原因と対処法
・VBAで別ブックのシートの表示/非表示をチェックし一括で再表示させる方法

についてまとめました。

また、他にも便利な方法がありますので、よろしければご参照頂ければと思います。



この記事の関連キーワード

こちらの記事の関連キーワード一覧です。クリックするとキーワードに関連する記事一覧が閲覧できます。








コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です