セル値に基づいて列を非表示にする(Microsoft Excel)
Excelの優れた条件付き書式設定機能を使用すると、セルの内容に基づいてセルの書式設定を変更できます。残念ながら、特定のセルの値に基づいてデータの列全体を簡単に非表示にする方法はありません。
ただし、マクロを使用してセルを分析し、条件付きで非表示にする行の非表示属性を調整することで、目的の効果を得ることができます。たとえば、次の単純なマクロは、セルB4の内容を調べ、セルに0が含まれている場合は、列Hを非表示にします。セルB4に0が含まれていない場合は、列Hが表示されます。
Sub HideColumn1() If Range("B4").Value = 0 Then Columns("H").EntireColumn.Hidden = True Else Columns("H").EntireColumn.Hidden = False End If End Sub
列の非表示と再表示をリアルタイムで実行する場合は、次のバージョンのマクロを使用できます。このバージョンを、機能させたいワークシートのコードウィンドウに配置してください。
Private Sub Worksheet_Change(ByVal Target As Range) If Range("B4").Value = 0 Then Columns("H").EntireColumn.Hidden = True Else Columns("H").EntireColumn.Hidden = False End If End Sub
2つのマクロの内臓が同じであることに注意してください。唯一の違いは、2番目のバージョンがExcel内のイベント、つまり現在選択されているセルの変更によってトリガーされることです。つまり、あるセルから別のセルに移動するたびに、B4の値がチェックされ、列Hが非表示または非表示になります。
セルB4の内容が空である可能性がある場合、Excelはその空をゼロ値として解釈する可能性があります。その場合、空のセルをチェックするようにマクロを少し変更することができます。
Sub HideColumn2() Dim rCell As Range Set rCell = Range("B4") Columns("H").EntireColumn.Hidden = False If (Not IsEmpty(rCell)) _ And (IsNumeric(rCell)) _ And (rCell.Value = 0) Then Columns("H").EntireColumn.Hidden = True End If End Sub
このバージョンのマクロは、実際には3つの条件をチェックします。B4が空でないこと、数値が含まれていること、値が0であることです。これら3つの条件がすべて満たされると、列Hは非表示になります。
注:
このページ(または_ExcelTips_サイトの他のページ)で説明されているマクロの使用方法を知りたい場合は、役立つ情報を含む特別なページを用意しました。
_ExcelTips_は、費用効果の高いMicrosoftExcelトレーニングのソースです。
このヒント(9730)は、Microsoft Excel 2007、2010、2013、2016、2019、およびOffice 365のExcelに適用されます。Excelの古いメニューインターフェイス用のこのヒントのバージョンは、次の場所にあります。
linkセル値に基づく列の非表示。