エクセルの便利機能の一つにフィルター機能があります
フィルターをかけさえすれば、誰でも手軽に検索が行えます
でも、列方向にフィルターを行うにはどうしたらいいでしょう?
実は、リストとIF文、そして、列を非表示にするVBAのhiddenプロパティを組み合わせて使えば手軽に実現できます
つまり、フィルターの対象でない列を非表示にしていくのです
以下、列フィルターを行うポイントをかいつまんで解説していきます
まず、フィルターをする対象の文字をリストで網羅して表示できるようにします
ちなみにエクセルの画面はR1C1型式にしていおいた方が便利です
次に、列フィルターを行う対象範囲の最終列を取得しておきましょう
例:LastC = .Cells(7, Columns.Count).End(xlToLeft).Column
最後に、最終列まで繰り返しを行うFor ~ Next文の中に、If文とHiddenプロパティの”組み合わせ文”を入れます。
リストの文字と一致しない場合には、該当する列を非表示にするようにします
例:If .Cells(7, i).Value <> str Then
Columns(i).Hidden = True
End If
たったこれだけで、最終列がはるか遠くまで膨らんだ表でも手軽に検索が行えます
最後に注意点ですが
フィルターを解除する際には、非表示になっている列は最終列として取得できません。ですから、”セルが空欄でない場合には表示する”などのLoop文で解除するなどの工夫を行いましょう!
コメントを残す