Filter関数を使用したプログラミング例を紹介します。
例題
都道府県欄(A列)に都道府県名が記述されています。抽出条件(B2セル)には「道・都・府・県」が選択できる様にプルダウンリストをセットします。この抽出条件からいずれかを選択し、<実行>ボタンをクリックします。その結果、抽出条件で選択した内容を含む都道府県名を抽出し、結果欄(C列)に表示します。
[実行前]:
[実行後]:
プログラミング
プログラミングは以下の通りとなります。
[記述例]:
Sub サンプル()
'↓処理①
Dim 番号 As Long
Dim 配列(7) As String
Dim 結果 As Variant
Dim 行 As Long
Dim 都道府県 As Variant
'↓処理②
If (Trim(Range("B2")) = "") Then
MsgBox "抽出条件を選択して下さい。", 16, "メッセージ"
Exit Sub
End If
'↓処理③
Range("C2:C10").ClearContents
'↓処理④
For 番号 = 0 To 7
配列(番号) = Range("A" & 番号 + 2)
Next
'↓処理⑤
結果 = Filter(配列, Range("B2"), True)
'↓処理⑥
行 = 2
For Each 都道府県 In 結果
Range("C" & 行) = 都道府県
行 = 行 + 1
Next
End Sub
処理①:変数定義
変数を定義します。
処理②:抽出条件の選択
B2セルの抽出条件が選択されている事を確認します。選択されていない場合は、”抽出条件を選択して下さい。”をMsgBoxで表示し、処理を中止します。
処理③:結果欄クリア
C列の2行目~10行目までをクリアします。
処理④:都道府県名を配列にセット
For~Next文を使用した2行目~9行目までの都道府県名を変数:配列にセットします。
処理⑤:抽出条件に一致した都道府県名を抽出
Filter関数を使用し、上記の処理④でセットした変数:配列から抽出条件を含む都道府県名を抽出し変数:結果にセットします。
処理⑥:抽出した都道府県名を結果欄にセット
上記の処理⑤で抽出した都道府県名を、For~Next文を使用してC列にセットします。
との内容になります。
ダウンロード
上記で説明したファイルをダウンロードできます。ご自由にお使い下さい。