目次
でExcelで並べ替えるには ブイビーエー を適用する必要があります。 レンジソート メソッドを使用する方法を紹介します。 列を並べ替える をエクセルで表示します。 レンジソート 方 ブイビーエー .
ワークブックダウンロード
練習用Excelワークブックは、こちらから無料でダウンロードできます。
VBAでカラムをソートする.xlsm
Excel VBAのRange.Sortメソッド
レンジソート メソッドで ブイビーエー は、Excelで値の範囲をソートします。 レンジ はオブジェクト変数であり、対象となるセル範囲を指定する。 昇順または降順でソートします。
以下は、このメソッドを使用する際に知っておく必要があるパラメータです。
パラメータ | 必須/オプション | データ型 | 商品説明 |
---|---|---|---|
キー | オプション | バリアント | 値をソートする範囲または列を指定する。 |
ご注文 | オプション | XlSortOrder | 並べ替えの順番を指定する。
|
ヘッダー | オプション | XlYesNoGuess | 最初の行にヘッダを含むか否かを指定する。
|
VBAでExcelの列を並べ替える実装方法4選
このセクションでは、次のことを学びます。 ヘッダ付きとヘッダ無しの単一列を並べ替える , ヘッダ付きおよびヘッダなしの複数カラム を、どのように 列のヘッダをダブルクリックするだけでソートできる をExcelで表示します。
1.Excelでヘッダーのない1列を並べ替えるVBAを埋め込む
を希望する場合 単一列を並べ替える をExcelのワークシートに入力します。 ブイビーエー のコードを入力し、以下の手順に従ってください。
でソートするカラムです。 ブイビーエー のコードになります。
ステップス
- プレス Alt + F11 キーボードから、またはタブで 開発者 -> Visual Basic を開く Visual Basic エディター .
- ポップアップ・コード・ウィンドウで、メニューバーから インサート -> モジュール .
- 以下のコードをコピーして、コードウィンドウに貼り付けてください。
Sub SortSingleColumnWithoutHeader() Range("B5:B15").Sort Key1:=Range("B5"), Order1:=xlAscending, Header:=xlNo End Sub
これであなたのコードは実行できるようになりました。
これです。
- Key1:=Range("B5")です。 → 指定された B5 で、どの列でソートするかをコードで知らせます。
- オーダー1:=xlAscending → オーダーを指定する xlAscending で昇順に並べ、降順に並べたい場合は、次のように記述します。 xlDescending ではなく
- ヘッダー:= xlNo → カラムにはヘッダがないので、ヘッダを指定する。 xlNo オプションを使用します。
- プレス F5 をキーボードで入力するか、メニューバーから Run -> Run Sub/UserForm をクリックするだけでもOKです。 スモールプレイアイコン をクリックすると、マクロが実行されます。
カラムが表示されていることが確認できます。 しょうじゅんせいれつ .
ここでは、データ範囲を手動で次のように定義していることに注意してください。 レンジ("B5:B15") .
値を追加したり削除したりしてデータを変更したい場合は、データセットのセルを元に自動更新する以下のコードを実装します。
Sub SortSingleColumnWithoutHeader() Range("B5", Range("B5").End(xlDown)).Sort Key1:=Range("B5"), Order1:=xlAscending, Header:=xlNo End Sub
によって手動で範囲を定義する代わりに レンジ("B5:B15") と書いています。 レンジ( "B5", Range("B5"). End(xlDown)) .
空白のセルがある場合は、最初の空白のセルまでしか考慮されません。
続きを読む: VBAでExcelの表を並べ替える(4つの方法)
2.ヘッダー付きの1列をソートするVBAマクロを挿入する
前節では、ヘッダーのない1列のデータセットでしたが、今回は a ヘッダー付きカラム .
で仕分けする方法を今回は学びます。 VBAマクロ .
ステップス
- 先ほどと同じように、開く Visual Basic エディター から デベロッパー タブと インサート a モジュール をコードウィンドウに表示します。
- コードウィンドウで、以下のコードをコピーして貼り付けます。
Sub SortSingleColumnWithHeader() Range("B5:B16").Sort Key1:=Range("B5"), Order1:=xlDescending, Header:=xlYes End Sub
これであなたのコードは実行できるようになりました。
これです。
- Key1:=Range("B5")です。 → 指定された B5 で、どの列でソートするかをコードで知らせます。
- オーダー1:=xlDescending → 今回は降順に並べ替えるので、以下のように指定します。 xlDescending .
- ヘッダー:= xlYes → 今回はカラムにヘッダをつけるので、それを xlYes オプションを使用します。
- 実行 このコードを入力すると ヘッダー付きカラムの降順での並べ替え .
続きを読む ExcelのVBAでListBoxをソートする方法(完全ガイド)
類似の読み物。
- エクセルでIPアドレスを並べ替える方法(6つの方法)
- [解決済み!】Excelのソートが効かない(2つの解決方法)
- Excelで並べ替えボタンを追加する方法(7つの方法)
- ExcelのVBAを使用した範囲の並べ替え(6例)
- エクセルで名前順に並べる方法(3例)
3.複数の列をヘッダーあり/なしでソートするVBAマクロ
も可能です。 VBAコードでデータセットの複数の列をソートすることができます。
ステップス
- 先に示したように、オープン Visual Basic エディター から デベロッパー タブと インサート a モジュール をコードウィンドウに表示します。
- コードウィンドウで、以下のコードをコピーして貼り付けます。
Sub SortMultipleColumnsWithHeaders() With ActiveSheet.Sort .SortFields.Add Key:=Range("B4"), Order:=xlAscending .SortFields.Add Key:=Range("C4"), Order:=xlAscending .SetRange Range("B4:D15") .Header = xlYes .Apply End With End Sub.
これであなたのコードは実行できるようになりました。
これです。
.SortFields.Add キー:=Range("B4"), 順序:=xlAscending
.SortFields.Add Key:=Range("C4"), Order:=xlAscending
この2行によって、私たちは次のように定義しています。 セルB4 と C4 を並べ替えることができます。 2つのカラムが関連付けられています。 において しょうじゅんれい .
データセットにヘッダーがあるため、以下のように指定しました。 ヘッダー = xlYes そうでなければ、次のように書くことになります。 ヘッダー = xlNo をコードの中に入れてください。
- 実行 このコードを入力すると ヘッダー付き昇順カラム .
4.エクセルでヘッダーをダブルクリックしてデータを並べ替えるマクロ
だけで、簡単にデータを並べ替えたい場合。 ヘッダーダブルクリック でできます。 ブイビーエー のコードで表示されます。
ステップス
- 右クリック について シートタブ .
- 表示されたオプションの一覧から 表示コード .
- コードウィンドウが表示されますので、以下のコードをコピーして貼り付けてください。
Private Sub Worksheet_Before DoubleClick(ByVal Target As Range, Cancel As Boolean) Dim iRange As Range Dim iCount As Integer iCount = Range("B4:D15").Columns.Count Cancel = False If Target.Row = 4 And Target.Column <= iCount Then Cancel = True Set iRange = Range(Target.Address) Range("B4:D15").Sort Key1:=iRange, Header:=xlYes End If End Sub.
- セーブ を表示します。
- ここで、目的のワークシートに戻り、もし ヘッダーをダブルクリック をクリックすると、列が再編成されるのがわかります。
続きを読む: Excelでデータを並べ替え、フィルタリングする方法(完全ガイドブック)
覚えておきたいこと
- の内部でセル参照の範囲を渡すときに、名前付きの範囲を作成して、それを代わりに使用することができます。 ソート メソッドで並べ替えたい場合。 A1:A10 のように、コード内で毎回渡すのではなく、名前付きの範囲を作成することができます。 ソート範囲 " と共に使用します。 レンジソート のような方法です。 Range("SortRange")の場合 .
- データセットにヘッダがあるかどうかがわからない場合は xlGuess パラメータを使用します。
結論
この記事では、次の方法を紹介しました。 列を並べ替える エクセルで ブイビーエー この記事が皆様のお役に立てれば幸いです。 また、ご質問等ございましたら、お気軽にお問い合わせください。