オートフィルタで以上や以下などの条件で抽出するマクロ
を示す。
■LibreOffice-VBA-オートフィルタ-以上-以下などの条件抽出マクロ
Option VBASupport 1 Sub sample08() Cells(1, 1).AutoFilter Field:=13, Criteria1:=">=20" 'ω'20以上 Cells(1, 1).AutoFilter Field:=13, Criteria1:="<=20" 'ω'20以下 Cells(1, 1).AutoFilter Field:=13, Criteria1:=">20" 'ω'20より大きい Cells(1, 1).AutoFilter Field:=13, Criteria1:="<20" 'ω'20より小さい Cells(1, 1).AutoFilter Field:=13, Criteria1:="<>20" 'ω'20ではない Cells(1, 1).AutoFilter Field:=13, Criteria1:="=20" 'ω'20である End Sub※まとめて書いたが、使う行以外は削除して実行する。
※アクティブシートの13列目(M列)に対して条件抽出する。
■マクロ実行対象
「部品データ_191108.ods」の「Sheet1」。■マクロ実行結果
■「Cells(1, 1).AutoFilter Field:=13, Criteria1:=">=20" 'ω'20以上」■「Cells(1, 1).AutoFilter Field:=13, Criteria1:="<=20" 'ω'20以下」
■「Cells(1, 1).AutoFilter Field:=13, Criteria1:=">20" 'ω'20より大きい」
■「Cells(1, 1).AutoFilter Field:=13, Criteria1:="<20" 'ω'20より小さい」
■「Cells(1, 1).AutoFilter Field:=13, Criteria1:="<>20" 'ω'20ではない」
■「Cells(1, 1).AutoFilter Field:=13, Criteria1:="=20" 'ω'20である」
【補足】最後の「Criteria1:="=20"」は「=」を省略した
「Criteria1:="20"」や「Criteria1:=20」のこと。
ダブルクォーテーション「"」で囲むと「文字列」、
数値のままだと「値」扱いだが、実行結果は同じ。
■補足-エクセルVBA-オートフィルタ-以上-以下などの条件抽出マクロ
エクセルVBAの場合「Option VBASupport 1」を削除する。
他は同じ。■あとがき
オートフィルタ条件抽出の基本を示した。「Criteria1:="=20"」は誰も「=」つけないと思う。
豆知識的なヤツ。
みんな無意識的に「=」イコールを省略している。
いなくなってしまったイコール君のこと、
時々でいいから……思い出してください(笑)
【全体の流れ】
以前の工程については過去記事を参照。
【過去記事】
■LibreOfficeでエクセルVBAマクロを実行する方法
※実際にマクロを動かす準備。
■LibreOfficeマクロ-日付が名前に含まれるxlsxファイルをひらく
※【開始】xlsxファイルをひらく。
■LibreOffice-VBA-Sheet表示倍率指定⇒ファイル名変更保存
※【終了】xlsxファイルを保存する。
■LibreOffice-VBA-アクティブシート以外のシートを全部削除する
※【処理】シート全部削除。
■LibreOffice-VBA-オートフィルタで抽出した行以外を削除するマクロ
※【処理】オートフィルタ該当行以外のデータ削除。
■LibreOffice-VBA-別モジュールのSubプロシージャ呼び出し方法
※【プログラム記述方法】Subプロシージャ呼び出し。
■LibreOffice-VBA-オートフィルタ-複数条件で抽出するマクロ
※【処理】オートフィルタ複数条件抽出。応用。
■LibreOffice-VBA-オートフィルタ-以上-以下などの条件抽出マクロ
※【処理】この記事。オートフィルタ条件抽出の基本。
以上。