列フィルター

エクセルの便利機能の一つにフィルター機能があります

フィルターをかけさえすれば、誰でも手軽に検索が行えます

でも、列方向にフィルターを行うにはどうしたらいいでしょう?

実は、リストとIF文、そして、列を非表示にするVBAのhiddenプロパティを組み合わせて使えば手軽に実現できます

つまり、フィルターの対象でない列を非表示にしていくのです

以下、列フィルターを行うポイントをかいつまんで解説していきます

まず、フィルターをする対象の文字をリストで網羅して表示できるようにします

*****Sponsered Link***** ************************

ちなみにエクセルの画面は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文で解除するなどの工夫を行いましょう!

にほんブログ村 資格ブログ ビジネススキルへ
にほんブログ村 IT技術ブログ VBAへ


にほんブログ村

*****Sponsered Link***** ************************

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です