Davidは、小計(データ|小計)を大きなワークシートに追加し、小計セルを別のセルに移動する方法を探していました。たとえば、Excelが自動小計を追加したときに、それらが列Sに追加され、Excelによって追加されたSUBTOTAL数式が列Sのセルの範囲を参照したとします。DavidはSUBTOTAL数式(およびそれらの数式のみ)をから移動したいと考えていました。列Sから列Tまで、数式は列Sの詳細を参照します。

1つのオプションは、SUBTOTAL数式を一度に1つずつ調べて、目的の場所に移動することです。 (Ctrl + CとCtrl + Vを使用してセルのコピーを作成するのではなく、Ctrl + XとCtrl + Vを使用してセルを移動します。)ワークシートが大きく、小計が多い場合、これは非常に面倒になる可能性があります。早く。

ExcelのTediumは、多くの場合、マクロを作成するための主要な推進力です。この場合も例外ではありません。 SUBTOTAL数式の実際の移動を行うマクロを作成することができます。次の例を考えてみましょう:

Sub MoveSubtotals()

Dim rCell As Range     Dim rng As Range     Dim iCol As Integer     Dim iOffset As Integer

iCol = 19  '19 is Column S     iOffset = 1 'Positives go right, negatives go left     Set rng = Intersect(Selection.CurrentRegion, Columns(iCol))

For Each rCell In rng         If InStr(rCell.Formula, "SUBTOTAL") Then             rCell.Offset(0, iOffset).Formula = _                 rCell.Formula             rCell.ClearContents         End If     Next End Sub

この例は、列Sで選択された各セルを調べることで機能します。セル内の数式にSUBTOTALという単語が含まれている場合、数式は列Tの右側の1列にコピーされ、列Sのセルから削除されます。変更できます。 iOffset変数に割り当てられた値を変更するだけで、小計が移動する左または右の距離。 (セルの範囲を選択してマクロを実行する必要があり、その選択の一部に列Sを含める必要があることに注意してください。)

注:

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

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

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