_ExcelTips_の他の問題は、ワークシート名に基づいてワークブック内のワークシートを並べ替えることができる方法を提供しています。ただし、各ワークシートの特定のセルの値に基づいてワークシートを並べ替える場合はどうなりますか?たとえば、同じ一般的なレイアウトを共有する一連のワークシートがあり、各ワークシートのセルH7の値に基づいてワークシートを並べ替えたい場合があります。

これを処理する唯一の方法は、マクロを使用することです。マクロは、ブック内の各ワークシートをステップスルーしてから、後続の各ワークシートのキーセルを調べて、比較する必要があります。セルの値が現在のワークシートよりも小さい場合は、小さい値を含むワークシートを移動できます。

Sub SortWksByCell()

Dim i As Integer     Dim j As Integer

For i = 1 To Worksheets.Count         For j = i To Worksheets.Count             If UCase(Worksheets(j).Range("H7")) < _               UCase(Worksheets(i).Range("H7")) Then                 Worksheets(j).Move Before:=Worksheets(i)

End If         Next     Next End Sub

ワークシートの実際の移動を行うMoveメソッドの使用に注意してください。ワークシートの名前は重要ではなく、各ワークシートのセルH7の値に基づく位置のみが重要です。

注:

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

link:/ excelribbon-ExcelTipsMacros [ここをクリックして、新しいブラウザタブでその特別なページを開きます]

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

このヒント(2890)は、Microsoft Excel 97、2000、2002、および2003に適用されます。Excel(Excel 2007以降)のリボンインターフェイス用のこのヒントのバージョンは、次の場所にあります。

link:/ excelribbon-Ordering_Worksheets_Based_on_a_Cell_Value [セル値に基づくワークシートの順序付け]