現在オフラインです。再接続するためにインターネットの接続を待っています

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

この記事は、以前は次の 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)).ClearEnd 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 メソッド] をクリックして表示します。
XL2000 MacXLX Mac XLX XL2001 XL98 sorting newspaper snake filter XL2004
プロパティ

文書番号:247311 - 最終更新日: 10/12/2006 02:27:55 - リビジョン: 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
フィードバック