大体でIT

-ちょっと使えるネタを紹介-

大体でIT

Excel VBAで、テーブルを昇順、降順にソートしたい場合は、「.Sort」を使うと簡単にできます。昇順と降順は、それぞれ「xlAscending」と「xlDescending」を使います。並び替えしたい列は「.ListColumns」を使って指定します。VBAでのテーブル操作をマスターしていきましょう。

はじめに

この記事では、テーブルをソートする方法について、ご紹介します。

テーブルをソートしたい場合は、「.Sort」を使うと簡単にできます。

並び替える列は、「.ListColumns(列番号).Range」もしくは「.ListColumns(列の名前).Range」と指定します。

昇順と降順は、次のように設定します。

  • 昇順:xlAscending
  • 降順:xlDescending

見出しは固定したいので、「Header:=xlYes」を引数に入力します。

テーブルを並び替えしたい場合は、「見出し」を使ってソートすると、列の位置を変更しても同じVBAコードで実行できるので便利です。

VBAでのテーブル操作をマスターしていきましょう。

では、テーブルをソートする方法について、解説していきます。

この記事を読むメリット

  • VBAでテーブルを並び替えする方法がわかります

目次から見たい項目へ移動すると便利ですよ。

目次

テーブルをソートする

テーブルを、昇順と降順でソートしてみます。

昇順にソートする

まずは、テーブルを「昇順」にソートしてみます。

VBAコードは次のようになります。

Sub TEST1()
    
    With ActiveSheet.ListObjects("テーブル1")
        '「1」列目を、昇順にソート
        .Range.Sort key1:=.ListColumns(1).Range, order1:=xlAscending, Header:=xlYes
    End With
    
End Sub

テーブルを用意しておきます。

テーブルを用意

テーブルを用意しておきます

実行すると、「1」列目を「昇順」にソートできます。

「1」列目を「昇順」にソートできた

「1」列目を「昇順」にソートできました

「1」列目を「昇順」にソートできました。

降順にソートする

次は、テーブルを「降順」にソートしてみます。

Sub TEST2()
    
    With ActiveSheet.ListObjects("テーブル1")
        '「1」列目を、降順にソート
        .Range.Sort key1:=.ListColumns(1).Range, order1:=xlDescending, Header:=xlYes
    End With
    
End Sub

テーブルを用意しておきます。

テーブルを用意

テーブルを用意しておきます

実行すると、「1」列目を「降順」にソートできます。

「1」列目を「降順」にソートできた

「1」列目を「降順」にソートできました

「1」列目を「降順」にソートできました。

見出しを使ってソートすると便利

テーブルを並び替えしたい場合は、「見出し」を使ってソートすると便利です。

列の位置を移動しても、同じVBAコードで実行することができます。

「見出し」を使ってソート

「見出し」を使ってソートしてみます。

「名前」の列を昇順にソート

「名前」の列を昇順にソートするVBAコードです。

Sub TEST3()
    
    With ActiveSheet.ListObjects("テーブル1")
        '「名前」の列を、昇順にソート
        .Range.Sort key1:=.ListColumns("名前").Range, order1:=xlAscending, Header:=xlYes
    End With
    
End Sub

テーブルを用意しておきます。

テーブルを用意しておきます

実行すると、「名前」の列を昇順にソートできます。

「名前」の列を昇順にソートできました

「名前」の列を昇順にソートできました。

「名前」の列を降順にソート

次は、「名前」の列を「降順」にソートするVBAコードです。

Sub TEST4()
    
    With ActiveSheet.ListObjects("テーブル1")
        '「名前」の列を、降順にソート
        .Range.Sort key1:=.ListColumns("名前").Range, order1:=xlDescending, Header:=xlYes
    End With
    
End Sub

テーブルを用意しておきます。

テーブルを用意しておきます

実行すると、「名前」の列を降順にソートできます。

「名前」の列を降順にソートできました

「名前」の列を降順にソートできました。

列の位置を変更してもソートできる

列の位置を変更して、同じVBAコードでソートできるから、確認してみます。

「名前」の列の位置を変更してみます。

列の位置を変更してみる

「名前」の列の位置を変更してみます

「名前」の列の位置を、右に移動してみました。

同じVBAコードを実行してみます。

同じVBAコードでソートできた

同じVBAコードで、「名前」の列をソートできました

同じVBAコードで、「名前」の列をソートできました。

こんな感じで、「見出し」を使ってソートすると便利です。

ソートする場合は連番を振ると便利

ソートする場合は連番を振っておくと、元の並びに戻せるので便利です。

テーブルに連番を振っておく

テーブルに連番を振っておきます。

連番を振っておく

連番を振っておくと、並びを元に戻せるので便利です

では、テーブルをソートして並びを元に戻してみます。

テーブルをソートして元に戻す

テーブルをソートしてみます。

ソートしたテーブル

テーブルをソートしてみました

連番を昇順でソートすると、テーブルの並びを、元に戻せます。

連番をソートして元に戻す

連番を昇順にソートするVBAコードです。

Sub TEST5()
    
    With ActiveSheet.ListObjects("テーブル1")
        '「No.」の列を、昇順にソート
        .Range.Sort key1:=.ListColumns("No.").Range, order1:=xlAscending, Header:=xlYes
    End With
    
End Sub

では、実行してみます。

連番をソートして、テーブルの並びを元に戻せました

連番をソートして、テーブルの並びを元に戻せました。

並びを元に戻したい場合は、前もって連番を振っておくと便利です。

おわりに

この記事では、テーブルをソートする方法について、ご紹介しました。

テーブルをソートしたい場合は、「.Sort」を使うと簡単にできます。

並び替える列は、「.ListColumns(列の番号).Range」もしくは「.ListColumns(列の名前).Range」と指定します。

昇順と降順は、次のように設定します。

  • 昇順:xlAscending
  • 降順:xlDescending

見出しは固定したいので、「Header:=xlYes」を引数に入力します。

テーブルを並び替えしたい場合は、「見出し」を使ってソートすると、列の位置を変更しても同じVBAコードで実行できるので便利です。

VBAでのテーブル操作をマスターしていきましょう。

参考になればと思います。最後までご覧くださいまして、ありがとうございました。

関連する記事から探す

カテゴリから探す

カテゴリから見たい項目を探すと便利ですよ。

サイト内を検索する

↓キーワードを入力する

アーカイブから探す