多くの人がExcelを単純なデータベースマネージャーとして使用し、ワークシートのさまざまな行に情報を入力します。データテーブルを操作しているときに、テーブルの行の順序を逆にする必要がある場合があります。したがって、10行のテーブルがある場合、行は1から10ではなく10から1になります。

この方法でデータを反転できる組み込み関数はExcelにはありません。ただし、Excelの並べ替え機能を使用して、次の一般的な手順に従って同じことを実行できます。

。データテーブルのすぐ左に新しい列を挿入します。

。新しい列のセルに、1からテーブルにある行の数までの数字を入力します。

。データテーブルを構成する行を選択します。

。 [データ]メニューから[並べ替え]を選択します。 Excelに[並べ替え]ダイアログボックスが表示されます。

(図1を参照)

。 [並べ替え]ドロップダウンリストで、新しく作成した列で並べ替えることを指定します。

。並べ替えの種類として[降順]をクリックします。

。 [OK]をクリックします。 Excelは、データを以前とは逆の順序で並べ替えます。

毎日大量のデータフリッピングを行う必要がある場合、上記の手順を使用するとかなり面倒になる可能性があります。この場合、あなたはあなたのために仕事をするためにマクロを作成したいかもしれません。次のマクロFlipRowsでうまくいきます:

Sub FlipRows()

Dim vTop As Variant     Dim vEnd As Variant     Dim iStart As Integer     Dim iEnd As Integer         Application.ScreenUpdating = False         iStart = 1         iEnd = Selection.Rows.Count         Do While iStart < iEnd             vTop = Selection.Rows(iStart)

vEnd = Selection.Rows(iEnd)

Selection.Rows(iEnd) = vTop             Selection.Rows(iStart) = vEnd             iStart = iStart + 1             iEnd = iEnd - 1         Loop         Application.ScreenUpdating = True End Sub

このマクロを使用するには、反転する行を選択して実行するだけです。マクロは、行を反転する以外はデータを変更しません。つまり、情報の列は追加されません。

このアプローチの興味深い機能は、データの列の反転にすばやく適応できることです。あなたがする必要があるのは、「行」という単語のすべての出現箇所を「列」に変更することです。したがって、以下が新しいマクロになります。

Sub FlipColumns()

Dim vTop As Variant     Dim vEnd As Variant     Dim iStart As Integer     Dim iEnd As Integer         Application.ScreenUpdating = False         iStart = 1         iEnd = Selection.Columns.Count         Do While iStart < iEnd             vTop = Selection.Columns(iStart)

vEnd = Selection.Columns(iEnd)

Selection.Columns(iEnd) = vTop             Selection.Columns(iStart) = vEnd             iStart = iStart + 1             iEnd = iEnd - 1         Loop         Application.ScreenUpdating = True End Sub

ここでも、反転する列を選択して、マクロを実行するだけです。

注:

このページ(または_ExcelTips_サイトの他のページ)で説明されているマクロの使用方法を知りたい場合は、役立つ情報を含む特別なページを用意しました。

_ExcelTips_は、費用効果の高いMicrosoftExcelトレーニングのソースです。

このヒント(2653)は、Microsoft Excel 97、2000、2002、および2003に適用されます。