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

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

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

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

注:

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

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

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

このヒント(12919)は、Microsoft Excel 2007、2010、2013、2016、2019、およびOffice 365のExcelに適用されます。Excelの古いメニューインターフェイス用のこのヒントのバージョンは、次の場所にあります。

link:/ excel-Changing_Macro_Cell_References_Based_on_Edits [編集に基づくマクロセル参照の変更]