LibreOffice-VBA セルの並び替え-ソート 昇順-降順-範囲指定

2019/11/19

プログラム

t f B! P L
LibreOfficeでVBAマクロ実行。今回は
指定範囲のセルを昇順-降順に並び替え(ソート)するマクロ
を示す。

■LibreOffice-VBA セルの並び替え-ソート 昇順-降順-範囲指定マクロ

Option VBASupport 1

Sub sample13()
Dim MR As Long
Dim MC As Long
MR = Cells(Rows.Count, 1).End(xlUp).Row 'ω'最終行,A:A
MC = Cells(1, Columns.Count).End(xlToLeft).Column 'ω'1:1,最終列

    Range(Cells(1, 1), Cells(MR, MC)).Sort _
    Key1:=Cells(1, 7), Order1:=xlDescending, _
    Key2:=Cells(1, 8), Order2:=xlAscending, _
    Key3:=Cells(1, 5), Order3:=xlDescending, _
    Header:=xlYes
End Sub
※[1.] LibreOffice BasicでVBA使用に必要。
※[4.~7.] セル指定範囲取得。■過去記事■
※[9.] ソート範囲指定。
※[10.] 優先順位1。7列目(G列)を降順にする。
※[11.] 優先順位2。8列目(H列)を昇順にする。
※[12.] 優先順位3。5列目(E列)を降順にする。
※[13.] 先頭行をタイトル行とする(ソートしない)。

■マクロ実行対象

「部品データ_191108.ods」の「部品表」シート。

■マクロ実行結果

■「Key1:=Cells(1, 7), Order1:=xlDescending」
優先順位1、7列目(G列)。降順(903⇒901)に
並べ替え確認できる。

■「Key2:=Cells(1, 8), Order2:=xlAscending」
優先順位2、8列目(H列)。
G列903の範囲で昇順(1⇒480)に
並べ替え確認できる。G列902、901も同様。

■「Key3:=Cells(1, 5), Order3:=xlDescending」
優先順位3、5列目(E列)。
H列1の範囲で降順(K3050-0218⇒K2005-4021)に
並べ替え確認できる。他も同様。

■補足-エクセルVBA-セルの並び替え-ソート 昇順-降順-範囲指定マクロ

Sub sample13e()
Dim MR As Long
Dim MC As Long
MR = Cells(Rows.Count, 1).End(xlUp).Row 'ω'最終行,A:A
MC = Cells(1, Columns.Count).End(xlToLeft).Column 'ω'1:1,最終列

    Range(Cells(1, 1), Cells(MR, MC)).Sort _
    Key1:=Cells(1, 7), Order1:=xlDescending, _
    Key2:=Cells(1, 8), Order2:=xlAscending, _
    Key3:=Cells(1, 5), Order3:=xlDescending, _
    Header:=xlYes
End Sub
※「Option VBASupport 1」なし。他はLibreOfficeと同じ。

■あとがき

エクセルVBAの
「指定範囲のセルを昇順-降順に並び替え(ソート)するマクロ」
LibreOffice Basicでも使用できることを確認した。

ソートオプションほかに
・「Header:=xlNo」先頭行をタイトル行としない(ソートする)。
・「Header:=xlGuess」タイトル行自動判別。
・「MatchCase:=TRUE」大文字小文字区別する。
・「MatchCase:=FALSE」大文字小文字区別しない。
とかあるけど使ったことありませんわ。

重要でない知識は必要なタイミングで
調べて知れる能力があればよい派。
以上。

ブログ アーカイブ

ラベル

このブログを検索

スポンサーリンク

自己紹介

機械メーカー総合職正社員10年勤務後退職。 エクセルVBAプログラム歴 5年。 LibreOffice(無料)でVBAマクロ検証。
■Fortniteクエスト攻略動画■
■Twitter■
⇒詳細プロフィールを表示

QooQ