Davidは、数式がそのような変更に応答するのと同じように、行を追加または削除するときにマクロ内のセル参照を変更する方法があるかどうか疑問に思います。

Range( “B6″)を使用するなど、マクロ内のセルを参照すると、VBAはその参照を絶対値として扱います。つまり、セルは変更されません。

B6にあった情報の現在の場所に影響を与えるセルを追加または削除しても、マクロ参照は同じままです。

これを回避する方法は、マクロ内のセルへの直接参照を使用しないことです。代わりに、名前付き範囲に依存してください。 Excelで、セルB6の名前( “MyData”など)を定義してから、Range( “MyData”)のように、マクロの参照でその名前を使用します。このアプローチが機能するのは、VBAが参照されているセルを判別するために名前を検索し、Excelは、セルを追加または削除するときに、名前付き範囲の参照が最新の状態に保たれるようにするためです。

注:

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

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

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