Excel で複数の列のデータを 1 列に並べ替えるマクロの使用方法

文書翻訳 文書翻訳
文書番号: 247311 - 対象製品
この記事は、以前は次の ID で公開されていました: JP247311
すべて展開する | すべて折りたたむ

目次

概要

Microsoft Excel には、新聞記事のように蛇行する段組み形式になっているデータを並べ替えるための方法が組み込まれていません。この資料には、新聞段組みの形式になっているデータを並べ替えるためのサンプル マクロが記載されています。

詳細

マイクロソフトは、この情報をプログラミング言語の使用方法の一例として提供するだけであり、市場性および特定目的への適合性を含めて、明示的にも黙示的にも、一切の保証をいたしません。この資料は、例示されているプログラミング言語やプロシージャの作成およびデバッグに使用するツールについて理解されているユーザーを対象としています。Microsoft Support 担当者は、特定のプロシージャの機能についての問い合わせにはお答えできますが、ユーザー固有の目的に合わせた機能の追加、プロシージャの作成などの内容変更は行っておりません。

組み込みの並べ替え

Microsoft Excel では、通常は並べ替え機能を使用して、リストを並べ替えます。Excel のリストは、請求書データベース、顧客名と電話番号の組み合わせなど、関連するデータを含む連続するワークシート行です。行がレコード、列がフィールドとなるデータベースとしてリストを使用できます。通常、リストの 1 行目には列のラベルが含まれます。以下はその例です。
   A1: Q1   B1: Q2   C1: Q3
   A2: 10   B2: 2    C2: 4
   A3: 14   B3: 18   C3: 9
   A4: 7    B4: 17   C4: 12
   A5: 1    B5: 13   C5: 5
   A6: 11   B6: 8    C6: 16
   A7: 3    B7: 6    C7: 15
				
このリストを Q1 フィールド (列 A) で昇順に並べ替えると、結果は以下のようになります。
   A1: Q1   B1: Q2   C1: Q3
   A2: 1    B2: 13   C2: 5
   A3: 3    B3: 6    C3: 15
   A4: 7    B4: 17   C4: 12
   A5: 10   B5: 2    C5: 4
   A6: 11   B6: 8    C6: 16
   A7: 14   B7: 18   C7: 9
				

新聞形式の段組みを並べ替える

新聞段組みと蛇行 (snaking) 段組みは、呼び方は異なりますが、同じデータ形式を指しています。新聞段組みでは、データがある列に入力され、次の列の上部に続きます。この場合は、通常、以下のようにデータにそれぞれの列のラベルが含まれません。
   A1: 10   B1: 2    C1: 4
   A2: 14   B2: 18   C2: 9
   A3: 7    B3: 17   C3: 12
   A4: 1    B4: 13   C4: 5
   A5: 11   B5: 8    C5: 16
   A6: 3    B6: 6    C6: 15
				
この資料のサンプル マクロを使用して、新聞段組みを昇順に並べ替えることができます。上記のデータでサンプル マクロを使用すると、結果は以下のようになります。
   A1: 1    B1: 7    C1: 13
   A2: 2    B2: 8    C2: 14
   A3: 3    B3: 9    C3: 15
   A4: 4    B4: 10   C4: 16
   A5: 5    B5: 11   C5: 17
   A6: 6    B6: 12   C6: 18
				
並べ替えのマクロが記載されたとおりに動作することを確認するには、以下の手順を実行します。
  1. 新しいブックを開きます。
  2. ワークシートに以下のサンプル データを入力します。
       A1: 10   B1: 2    C1: 4
       A2: 14   B2: 18   C2: 9
       A3: 7    B3: 17   C3: 12
       A4: 1    B4: 13   C4: 5
       A5: 11   B5: 8    C5: 16
       A6: 3    B6: 6    C6: 15
    					
  3. [ツール] メニューの [マクロ] をポイントし、[Visual Basic Editor] をクリックします。
  4. [挿入] メニューの [標準モジュール] をクリックします。
  5. 次のコードをモジュールに入力します。

    : 以下の例では、昇順に並べ替える方法を示します。"Order1:=" の引数の値を "xlDescending" にすると、降順に並べ替える方法に変更できます。
       Sub SortAllRangeData()
       ' Place column header for temporary sort area.
       Range("IV1").Value = "Numbers"
       
       ' Move numbers to temporary sort location.
       For Each cell In Selection
          Range("iv65536").End(xlUp).Offset(1, 0) = cell.Value
       Next cell
       
       ' Sort numbers in ascending order.
       Range("IV1", Range("IV1").End(xlDown)).Sort Key1:=Range("IV2"),  _
       Order1:=xlAscending, Header:=xlGuess, _
            OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
            
       ' Move sorted data back to original sheet location.
    
       Selection(1, 1).Activate ' Make sure the ActiveCell is the
                                ' top left of Selection first.
       CCnt = Selection.Columns.Count
       RCnt = Selection.Rows.Count
       CellCnt = Selection.Cells.Count
       Tcell = 2
       For c = 1 To CCnt
         For r = 1 To RCnt
            Range(ActiveCell.Address).Offset(r - 1, c - 1).Value =  _
            Range("iv" & Tcell).Value
            Tcell = Tcell + 1
         Next r
       Next c
       
       ' Clean up temporary sort location.
       Range("IV1", Range("IV1").End(xlDown)).Clear
    End Sub
    					
  6. Microsoft Excel X for Mac およびそれ以降のバージョンの Excel for Mac の [Excel] メニュー、それ以外のすべてのバージョンの Excel では [ファイル] メニューの [終了して Microsoft Excel へ戻る] をクリックします。
  7. セル A1 から C6 を選択します。
  8. [ツール] メニューの [マクロ] をポイントし、[マクロ] をクリックします。[SortAllRangeData] マクロをクリックし、[実行] をクリックします。
選択した範囲にあるすべてのデータが並べ替えられ、次のように表示されます。
   A1: 1    B1: 7    C1: 13
   A2: 2    B2: 8    C2: 14
   A3: 3    B3: 9    C3: 15
   A4: 4    B4: 10   C4: 16
   A5: 5    B5: 11   C5: 17
   A6: 6    B6: 12   C6: 18
				

関連情報

Excel X for Mac およびそれ以降のバージョン

[ヘルプ] メニューの [検索 Excel ヘルプ] をクリックし、並べ替えと入力し、[検索] をクリックして、トピックをクリックすると、並べ替えの方法の詳細が表示されます。

Visual Basic Editor で Sort メソッドを使用する方法の詳細については、[ヘルプ] メニューの [Visual Basic ヘルプ] をクリックし、sort メソッドと入力します。次に、[検索] をクリックし、[sort メソッド] をクリックして表示します。

Excel 2001 for Mac

並べ替えの方法の詳細については、Office アシスタントをクリックし、リストの並べ替えと入力します。次に、[検索] をクリックし、トピックをクリックして表示します。

: アシスタントが表示されていない場合は、[標準] ツール バー上の [Office アシスタント] ボタンをクリックします。

Visual Basic Editor で Sort メソッドを使用する方法の詳細については、Office アシスタントをクリックし、sort メソッドと入力します。次に、[検索] をクリックし、[sort メソッド] をクリックして表示します。

プロパティ

文書番号: 247311 - 最終更新日: 2006年10月12日 - リビジョン: 6.3
この資料は以下の製品について記述したものです。
  • Microsoft Excel 2000 Standard Edition
  • Microsoft Excel 2004 for Mac
  • Microsoft Excel X for Mac
  • Microsoft Excel 2001 for Mac
  • Microsoft Excel 98 for Macintosh
キーワード:?
kbautomation kbprogramming kbhowto KB247311
"Microsoft Knowledge Baseに含まれている情報は、いかなる保証もない現状ベースで提供されるものです。Microsoft Corporation及びその関連会社は、市場性および特定の目的への適合性を含めて、明示的にも黙示的にも、一切の保証をいたしません。さらに、Microsoft Corporation及びその関連会社は、本文書に含まれている情報の使用及び使用結果につき、正確性、真実性等、いかなる表明・保証も行ないません。Microsoft Corporation、その関連会社及びこれらの権限ある代理人による口頭または書面による一切の情報提供またはアドバイスは、保証を意味するものではなく、かつ上記免責条項の範囲を狭めるものではありません。Microsoft Corporation、その関連会社 及びこれらの者の供給者は、直接的、間接的、偶発的、結果的損害、逸失利益、懲罰的損害、または特別損害を含む全ての損害に対して、状況のいかんを問わず一切責任を負いません。(Microsoft Corporation、その関連会社 またはこれらの者の供給者がかかる損害の発生可能性を了知している場合を含みます。) 結果的損害または偶発的損害に対する責任の免除または制限を認めていない地域においては、上記制限が適用されない場合があります。なお、本文書においては、文書の体裁上の都合により製品名の表記において商標登録表示、その他の商標表示を省略している場合がありますので、予めご了解ください。"

フィードバック

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com