• ベストアンサー

見出しに特定のキーワードを含む列だけ表示

Excelに以下のような表があるとします。 -------------- 名前 性別 年齢 住所  A   M  10  J  B   F  20  J  C   M  30  J -------------- 時々により閲覧したいデータが違うので、ある時は 名前、年齢、住所列のみを表示、残りは非表示(列自体なし) ある時は名前と年齢列のみを表示、残り非表示。 ということをしたいと考えています。 イメージとしては、別シートに見出しの一覧があり、そこで チェックしたもののみ表示、ということが出来ればベターです。 このような動作をExcelで実現する方法がありましたら、 教えていただけないでしょうか? VBAを使用する場合は、サンプルコードを教えていただけると 助かります。 図々しい質問で恐縮ですが、よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • pkh4989
  • ベストアンサー率62% (162/260)
回答No.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)
回答No.1

>チェックしたもののみ表示 とは、ワークシート上にチェックボックスを配置するのでしょうか 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

関連するQ&A