マクロに次の行があるとします。
Sheets("sheet1").Range("A1").Value = Sheets("sheet2").Range("A5").Value
A1
プログラムで(VBA経由でのみ)シート1のとA2
、、、A1
の間に行または列を挿入しB2
ても、行番号が変更されても混乱しないようにするにはどうすればよいですか?
この種の問題を回避する標準的な方法は、を使用することNamed ranges
です。
A1
結果の重要な場所である場合は「myResult」と呼ぶことができ、入力の重要な場所である場合はA5
「myInput」と呼ぶことができます。その後、コードは次のように変更されます。
Sheets("sheet1").Range("myResult").Value = Sheets("sheet2").Range("myInput").Value
上記のコードを挿入する列または行の数に関係なく、常に同じセルが見つかります。
それとも私は質問を誤解していますか?
これらの範囲が実際には常にテーブル内の同じ相対位置にある場合A1
、A5
たとえば右下隅の場合、解決策は異なります。