Excel VBAマクロでA列からF列まで昇順並べ替え、条件付き降順並べ替えを行う方法

Visual Basic

Excel VBAを使用して、特定の条件に基づいた並べ替えを行いたいと考えている初心者の方向けに、コードの解説を行います。このガイドでは、A列からF列までのデータを昇順で並べ替え、さらに条件に応じてE列を降順で並べ替える方法を解説します。

1. 基本的な並べ替えの設定

まず最初に、A列からF列までを昇順で並べ替えるために、VBAコードを使用します。以下のコードを実行することで、A列からF列までのデータが昇順に並び替えられます。

Sub SortData() 
  With ActiveSheet.Sort 
    .SortFields.Clear 
    .SortFields.Add Key:=Range("A1:A100"), Order:=xlAscending 
    .SetRange Range("A1:F100") 
    .Header = xlYes 
    .Apply 
  End With 
End Sub

2. 条件付きでE列を降順に並べ替える方法

A列が「12」、「14」、「16」、「21」のいずれかであった場合、E列を降順で並べ替える方法を次に紹介します。この部分では、VBAコード内で条件を設定し、それに基づいてE列の並べ替えを行います。

Sub SortByConditions() 
  Dim cell As Range 
  For Each cell In Range("A2:A100") 
    If cell.Value = 12 Or cell.Value = 14 Or cell.Value = 16 Or cell.Value = 21 Then 
      ActiveSheet.Sort.SortFields.Clear 
      ActiveSheet.Sort.SortFields.Add Key:=Range("E1:E100"), Order:=xlDescending 
      ActiveSheet.Sort.SetRange Range("A1:F100") 
      ActiveSheet.Sort.Header = xlYes 
      ActiveSheet.Sort.Apply 
    End If 
  Next cell 
End Sub

3. コードの動作の流れと補足

このコードでは、まずA列の各セルをチェックし、「12」、「14」、「16」、「21」のいずれかに該当する場合に、E列を降順で並べ替えます。並べ替えは、A列からF列までを範囲として設定し、ヘッダー行があることを指定しています。

また、並べ替えを繰り返すことができるように、For Eachループを使用しています。これにより、複数回の条件付き並べ替えが自動的に実行されます。

4. まとめ

Excel VBAを使用した並べ替えの方法を学び、A列からF列までのデータを条件付きで昇順および降順に並べ替える方法について解説しました。特に、条件に応じた並べ替えの設定は、実務で頻繁に使用されるテクニックの一つです。上記のコードを使って、データの並べ替えを効率的に行ってください。

コメント

タイトルとURLをコピーしました