_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_サイトの他のページ)で説明されているマクロの使用方法を知りたい場合は、役立つ情報を含む特別なページを用意しました。

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

このヒント(12448)は、Microsoft Excel 2007、2010、2013、および2016に適用されます。

Excelの古いメニューインターフェイス用のこのヒントのバージョンは、次の場所にあります: