エクセルで作業していると、シートや行、列を非表示にして整理することがあります。
しかし、いざ再表示しようとした時に、どこが非表示になっているのか分からない、一括で再表示できない、再表示のオプションがグレーアウトしているといった問題に直面することはありませんか。
特に他の人が作成したファイルや、過去に自分が編集したファイルでは、非表示になっている要素を見落としがちです。
Excelには、非表示になったシート・行・列を効率的に再表示する複数の方法が用意されています。
手動での操作から、VBAマクロによる完全自動化まで、状況に応じて最適な方法を選択できるのです。
本記事では、エクセルで非表示要素を一括再表示する実践的な方法と、再表示できない場合の原因と対処法を詳しく解説します。
非表示要素の管理に困っている方は、ぜひ最後までお読みください。
ポイントは
・行と列の一括再表示は全選択から実行
・非表示シートはVBAマクロで一括処理
・保護や非表示設定が原因で再表示できないケースの対処法
です。
それでは詳しく見ていきましょう。
非表示の行・列を一括で再表示する基本操作
それではまず非表示の行・列を一括で再表示する基本操作について解説していきます。
全選択からの一括再表示手順
非表示になっている行や列を一括で再表示する最も確実な方法が、シート全体を選択してから再表示を実行する方法です。
この操作により、シート内のすべての非表示行・列が一度に表示されます。
行の一括再表示手順:
1. 行番号の上部(列見出しとの境界)をクリック、またはCtrl + A でシート全体を選択
2. 選択範囲内で右クリック
3. 「再表示」を選択
または
1. Ctrl + A でシート全体を選択
2. Alt → H → O → U → R(ホーム→書式→非表示/再表示→行の再表示)
列の一括再表示手順:
1. 列見出しの左端(行番号との境界)をクリック、またはCtrl + A でシート全体を選択
2. 選択範囲内で右クリック
3. 「再表示」を選択
または
1. Ctrl + A でシート全体を選択
2. Alt → H → O → U → C(ホーム→書式→非表示/再表示→列の再表示)
この方法を使えば、どこに非表示の行や列があるか分からない場合でも、確実にすべてを再表示できます。
複数の離れた場所に非表示要素がある場合でも、一度の操作で処理できるため非常に効率的でしょう。
特定範囲内の非表示要素を再表示
シート全体ではなく、特定の範囲内だけ非表示要素を再表示したい場合もあります。
例えば、表の一部分だけを対象にしたい場合の手順です。
特定範囲の再表示手順:
1. 非表示要素を含む範囲を選択(非表示行・列の前後を含めて選択)
2. 選択範囲内で右クリック
3. 「再表示」を選択
注意点:非表示の行や列の前後の要素を必ず含めて選択する
例えば、5行目と6行目が非表示になっている場合、4行目から7行目までを選択してから再表示を実行します。
非表示要素だけを選択することはできないため、その前後を含めた範囲選択が必要です。
| 操作 | 選択範囲 | 結果 |
|---|---|---|
| 行4〜7を選択して再表示 | 非表示の5〜6行を含む | 5〜6行が再表示される |
| 行4のみ選択して再表示 | 非表示範囲を含まない | 再表示されない |
| シート全体を選択 | すべての範囲 | すべての非表示が再表示 |
特定範囲だけを処理したい場合は、この選択方法を覚えておくと便利です。
ショートカットキーでの素早い再表示
頻繁に再表示操作を行う場合、キーボードショートカットを使うと作業が高速化できます。
再表示のショートカットキー:
行の再表示:
1. 対象範囲を選択
2. Ctrl + Shift + 9
列の再表示:
1. 対象範囲を選択
2. Ctrl + Shift + 0(ゼロ)
※Ctrl + Shift + 0 は一部の環境で動作しない場合があります
ショートカットキーが動作しない場合は、リボンからのアクセスキーを使用します。
リボンアクセスキー:
行の再表示:Alt → H → O → U → R
列の再表示:Alt → H → O → U → C
※各キーは順番に押す(同時押しではない)
これらのショートカットを覚えておくと、マウス操作よりも格段に速く処理できるでしょう。
非表示の行や列を再表示する際、行番号や列見出しに欠番があることで非表示要素の存在が分かります。
例えば、行番号が「3、4、7、8」と表示されていれば、5〜6行が非表示になっています。
ただし、シート全体で大量の非表示がある場合は、一つ一つ確認するよりも全選択での一括再表示が効率的です。
非表示シートを一括で再表示する方法
続いては非表示シートを一括で再表示する方法を確認していきます。
手動での非表示シート再表示
エクセルで非表示にしたシートは、シートタブ上での右クリックから再表示できます。
ただし、標準機能では一つずつしか再表示できません。
シート再表示の基本手順:
1. 任意のシートタブ上で右クリック
2. 「再表示」を選択
3. ダイアログに非表示シートの一覧が表示される
4. 再表示したいシートを選択
5. OKをクリック
注意:一度に1つのシートしか選択できない
複数のシートが非表示になっている場合、この操作を繰り返す必要があります。
3つ、4つ程度であれば手動でも対応できますが、10個以上の非表示シートがある場合は非効率でしょう。
また、「再表示」オプションがグレーアウトして選択できない場合があります。
再表示できない原因:
・すべてのシートが表示されている(非表示シートがない)
・シートが「非常に非表示」に設定されている
・ブックが保護されている
・マクロで非表示設定がロックされている
これらの問題については、後ほど詳しく解説します。
VBAマクロで全シートを一括再表示
複数の非表示シートを一度に再表示するには、VBAマクロを使用するのが最も効率的です。
以下のコードで、ブック内のすべての非表示シートを一括再表示できます。
Sub 全シートを再表示()
Dim ws As Worksheet
Dim count As Integer
count = 0
For Each ws In ThisWorkbook.Worksheets
If ws.Visible = xlSheetHidden Then
ws.Visible = xlSheetVisible
count = count + 1
End If
Next ws
MsgBox count & “個のシートを再表示しました”
End Sub
このマクロの実行手順は以下の通りです。
マクロの実行手順:
1. Alt + F11 でVBAエディタを開く
2. 「挿入」→「標準モジュール」を選択
3. 上記のコードを貼り付け
4. Alt + F8 でマクロ一覧を開く
5. 「全シートを再表示」を選択して実行
このマクロは、通常の非表示シート(xlSheetHidden)を対象としています。
実行後、何個のシートが再表示されたかメッセージで確認できるため、処理結果が明確です。
非常に非表示のシートも含めて再表示
VBAでは「非表示」と「非常に非表示」の2種類の非表示状態があります。
「非常に非表示」に設定されたシートは、手動での再表示メニューに表示されません。
非表示の種類:
・xlSheetHidden:通常の非表示(右クリックメニューで再表示可能)
・xlSheetVeryHidden:非常に非表示(再表示メニューに表示されない)
「非常に非表示」のシートも含めてすべてを再表示するマクロは以下の通りです。
Sub 全シートを完全再表示()
Dim ws As Worksheet
Dim normalCount As Integer
Dim veryHiddenCount As Integer
normalCount = 0
veryHiddenCount = 0
For Each ws In ThisWorkbook.Worksheets
If ws.Visible = xlSheetHidden Then
ws.Visible = xlSheetVisible
normalCount = normalCount + 1
ElseIf ws.Visible = xlSheetVeryHidden Then
ws.Visible = xlSheetVisible
veryHiddenCount = veryHiddenCount + 1
End If
Next ws
MsgBox “通常の非表示: ” & normalCount & “個” & vbCrLf & _
“非常に非表示: ” & veryHiddenCount & “個” & vbCrLf & _
“合計 ” & (normalCount + veryHiddenCount) & “個のシートを再表示しました”
End Sub
このマクロでは、通常の非表示と非常に非表示を区別してカウントし、それぞれ何個再表示したかを表示します。
他の人が作成したファイルで、隠しシートが含まれている可能性がある場合に特に有効でしょう。
「非常に非表示」は、通常ユーザーに見せたくない設定シートやマクロ用のシートに使われます。
業務で使用するファイルで、意図せず重要なシートを再表示してしまうと問題になる可能性もあるため、実行前に作成者に確認することをおすすめします。
また、マクロ実行前には必ずファイルのバックアップを取りましょう。
再表示できない時の原因と対処法
続いては再表示できない時の原因と対処法を確認していきます。
シート保護が原因で再表示できない場合
シートやブックが保護されていると、非表示要素の再表示ができなくなる場合があります。
この場合、まず保護を解除する必要があります。
シート保護の解除手順:
1. 「校閲」タブをクリック
2. 「シート保護の解除」をクリック
3. パスワードが設定されている場合は入力
4. 再表示操作を実行
5. 必要に応じて再度シートを保護
ブック保護の解除手順:
1. 「校閲」タブをクリック
2. 「ブック保護の解除」をクリック
3. パスワードが設定されている場合は入力
4. 非表示シートを再表示
5. 必要に応じて再度ブックを保護
保護されているかどうかは、以下の方法で確認できます。
保護状態の確認方法:
・シート保護:「校閲」タブに「シート保護の解除」が表示されている
・ブック保護:「校閲」タブに「ブック保護の解除」が表示されている
・右クリックメニューの「再表示」がグレーアウトしている
パスワードが分からない場合は、ファイルの作成者に確認する必要があります。
1行目または1列目が非表示の場合
1行目や1列目(A列)が非表示になっている場合、通常の方法では再表示しにくいことがあります。
名前ボックスを使った方法が確実です。
1行目を再表示する手順:
1. 名前ボックス(数式バーの左)に「1:1」と入力してEnter
2. 1行目が選択される
3. 右クリックして「再表示」を選択
または
1. Ctrl + Home で先頭セルに移動
2. Ctrl + Shift + 9 で行を再表示
A列を再表示する手順:
1. 名前ボックスに「A:A」と入力してEnter
2. A列が選択される
3. 右クリックして「再表示」を選択
または
1. 名前ボックスに「A1」と入力してEnter
2. Ctrl + Shift + 0 で列を再表示(環境により動作しない場合あり)
1行目や1列目が非表示になっていることに気付きにくいため、データの欠落と勘違いすることがあります。
行番号や列見出しの欠番を確認することで、非表示の存在を把握できるでしょう。
非表示範囲が広すぎて処理できない場合
大量の行や列が非表示になっている場合、手動での再表示が困難になることがあります。
このような場合は、VBAマクロによる一括処理が効果的です。
Sub 全行全列を再表示()
Dim ws As Worksheet
Set ws = ActiveSheet
‘全行を再表示
ws.Rows.Hidden = False
‘全列を再表示
ws.Columns.Hidden = False
MsgBox “すべての非表示行・列を再表示しました”
End Sub
このマクロは、アクティブなシートのすべての非表示行・列を一度に再表示します。
特に他の人が作成したファイルで、どこに非表示要素があるか分からない場合に便利です。
複数のシートに対して実行したい場合は、以下のようにループ処理を追加します。
Sub 全シートの行列を再表示()
Dim ws As Worksheet
Dim sheetCount As Integer
sheetCount = 0
For Each ws In ThisWorkbook.Worksheets
ws.Rows.Hidden = False
ws.Columns.Hidden = False
sheetCount = sheetCount + 1
Next ws
MsgBox sheetCount & “個のシートの非表示行・列を再表示しました”
End Sub
このマクロを実行すれば、ブック内のすべてのシートで非表示要素が再表示されます。
ファイル全体をクリーンな状態に戻したい場合に活用できるでしょう。
非表示要素を再表示する前に、なぜ非表示にされていたのかを確認することも重要です。
特に業務用のファイルでは、計算用の中間データや、印刷時に不要な列などが意図的に非表示にされている場合があります。
すべてを再表示してしまうと、レイアウトが崩れたり不要な情報が表示されたりする可能性があるため、注意が必要です。
効率的な非表示管理のベストプラクティス
続いては効率的な非表示管理のベストプラクティスを確認していきます。
グループ化機能の活用
頻繁に表示・非表示を切り替える必要がある場合、非表示ではなくグループ化機能を使うことをおすすめします。
グループ化なら、ワンクリックで展開・折りたたみができるため、非表示よりも管理が簡単です。
グループ化の設定手順:
1. グループ化したい行または列を選択
2. 「データ」タブ→「グループ化」をクリック
3. 行または列を選択してOK
4. 左側(行の場合)または上側(列の場合)に「−」ボタンが表示される
5. 「−」をクリックで折りたたみ、「+」で展開
グループ化のメリットは以下の通りです。
グループ化の利点:
・ワンクリックで表示・非表示を切り替え可能
・どこがグループ化されているか視覚的に分かりやすい
・階層構造を作れる(グループの中にグループ)
・印刷時に自動的に折りたたんで印刷できる
・シート保護との相性が良い
明細データと集計行、詳細項目と小計などを管理する際に、グループ化は非常に便利な機能でしょう。
非表示要素の確認方法
ファイルを受け取った際や、しばらく触っていないファイルを開いた際に、非表示要素の有無を確認する習慣を付けると良いでしょう。
非表示要素の確認ポイント:
・行番号や列見出しに欠番がないか
・シートタブの数が少なくないか(右クリック→再表示で確認)
・ファイルサイズの割にデータが少なく見える場合
・印刷プレビューと画面表示が大きく異なる場合
VBAで非表示要素の有無を確認するマクロも便利です。
Sub 非表示要素をチェック()
Dim ws As Worksheet
Dim hiddenSheets As String
Dim hasHiddenRows As Boolean
Dim hasHiddenCols As Boolean
Dim message As String
‘非表示シートをチェック
For Each ws In ThisWorkbook.Worksheets
If ws.Visible <> xlSheetVisible Then
hiddenSheets = hiddenSheets & ws.Name & vbCrLf
End If
Next ws
‘現在のシートの非表示行・列をチェック
hasHiddenRows = ActiveSheet.Rows.Hidden
hasHiddenCols = ActiveSheet.Columns.Hidden
‘結果表示
message = “【非表示要素チェック結果】” & vbCrLf & vbCrLf
If hiddenSheets <> “” Then
message = message & “非表示シート:” & vbCrLf & hiddenSheets & vbCrLf
Else
message = message & “非表示シート: なし” & vbCrLf & vbCrLf
End If
If hasHiddenRows Then
message = message & “現在のシート: 非表示行あり” & vbCrLf
End If
If hasHiddenCols Then
message = message & “現在のシート: 非表示列あり” & vbCrLf
End If
If Not hasHiddenRows And Not hasHiddenCols And hiddenSheets = “” Then
message = message & “非表示要素は見つかりませんでした”
End If
MsgBox message
End Sub
このマクロを実行すると、ブック内の非表示要素を一覧表示できます。
定期的に実行することで、意図しない非表示要素の存在を把握できるでしょう。
非表示機能は便利ですが、使いすぎるとファイルの管理が複雑になります。
可能であれば、非表示にするのではなく、別シートに移動する、または削除するといった整理方法も検討しましょう。
特に他の人と共有するファイルでは、非表示要素が多いと混乱の原因になるため、必要最小限に留めることが推奨されます。
まとめ エクセルの非表示要素を一括再表示する方法
エクセルの非表示シート・行・列を一括再表示する方法をまとめると
・行と列の一括再表示:Ctrl + A で全選択してから右クリック→再表示で一括処理が可能
・非表示シートの再表示:手動では一つずつだが、VBAマクロで一括再表示できる
・再表示できない原因:シート保護、ブック保護、非常に非表示設定が主な原因
・1行目や1列目の再表示:名前ボックスに「1:1」や「A:A」と入力して選択してから再表示
・VBAでの完全自動化:すべてのシート、すべての行・列を一度に再表示するマクロが効率的
これらの方法を状況に応じて使い分けることで、非表示要素の管理が効率化されます。
特にVBAマクロによる一括再表示は、大量の非表示要素がある場合や、定期的に処理する必要がある場合に非常に便利です。
ただし、非表示要素には意図がある場合も多いため、注意が必要です。
再表示する前に、なぜ非表示になっているのかを確認し、必要に応じて作成者に確認することが重要です。
また、頻繁に表示・非表示を切り替える場合は、非表示機能よりもグループ化機能を使う方が管理しやすくなります。
エクセルの非表示管理機能を正しく活用して、業務効率を最大化していきましょう!