- ベストアンサー
見出しに特定のキーワードを含む列だけ表示
Excelに以下のような表があるとします。 -------------- 名前 性別 年齢 住所 A M 10 J B F 20 J C M 30 J -------------- 時々により閲覧したいデータが違うので、ある時は 名前、年齢、住所列のみを表示、残りは非表示(列自体なし) ある時は名前と年齢列のみを表示、残り非表示。 ということをしたいと考えています。 イメージとしては、別シートに見出しの一覧があり、そこで チェックしたもののみ表示、ということが出来ればベターです。 このような動作をExcelで実現する方法がありましたら、 教えていただけないでしょうか? VBAを使用する場合は、サンプルコードを教えていただけると 助かります。 図々しい質問で恐縮ですが、よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
以下は同じシート上に「チェックボックス」と「表示」ボタンを作る例です。 表示したい項目をチェックして「表示」ボタンを押す方法です。 (1) 名前/性別/年齢住所のチェックボックス -> Object名:chk1~chk4 (2) 表示のボタン -> モジュール名:表示 Dim wSht As Worksheet Sub 表示() Set wSht = ThisWorkbook.ActiveSheet '氏名のチェックボックス If wSht.Shapes("chk1").ControlFormat.Value = 1 Then wSht.Columns("B").EntireColumn.Hidden = False Else wSht.Columns("B").EntireColumn.Hidden = True End If '性別のチェックボックス If ActiveSheet.Shapes("chk2").ControlFormat.Value = 1 Then wSht.Columns("C").EntireColumn.Hidden = False Else wSht.Columns("C").EntireColumn.Hidden = True End If '年齢/住所は上記と同様 End Sub
その他の回答 (1)
- zap35
- ベストアンサー率44% (1383/3079)
>チェックしたもののみ表示 とは、ワークシート上にチェックボックスを配置するのでしょうか Sheet2に2つのチェックボックスがあり、その状態によって列を表示/非表示にするなら、こんなマクロだと思います。マクロは表示/非表示を切り替えたいシートの「シート名右クリック」→「コードの表示」で開く画面に貼り付けてください。 なおSheet2にチェックボックスがないとエラーになりますから、予めSheet2にチェックボックスを配置してください Private Sub Worksheet_Activate() If Worksheets("Sheet2").CheckBox1 Then Columns("A").Hidden = False Else Columns("A").Hidden = True End If If Worksheets("Sheet2").CheckBox2 Then Columns("B").Hidden = False Else Columns("B").Hidden = True End If End Sub