相対参照によるマクロ記録とは」では、簡単なサンプルを使用して、相対参照によるマクロ記録の操作方法や、その概念について紹介しました。今回は、マクロ記録で作成されたプロシージャの内容を読み解いて、シンプルなマクロに編集するテクニックを紹介します。

相対参照で作成されたマクロ

相対参照によるマクロ記録とは」で作成した相対参照によるマクロをVBEで開いてみましょう。すると、セルC3を選択した操作は次のように記述されています。行頭の「ActiveCell」プロパティは、セルC3を選択する前のアクティブセル、つまりセルA3を参照しています。


Offsetプロパティ


そして、ActiveCellのあとに記述されている「Offset」プロパティが1つ目のポイントです。Offsetプロパティは、アクティブセルから相対的な位置にあるセルを参照するプロパティで、各引数には、アクティブセルから見た選択セルの相対的な位置情報が記述されています。1つ目の引数「RowOffset」は相対的な行位置、2つ目の引数「ColumnOffset」は相対的な列位置です。


ここでは、セルA3から「0行2列目」にあるセルC3を参照していることがわかります。


セルC3なのに「Range("A1")」?


Offsetプロパティの次には、何と「Range("A1")」が記述されています。これが今回2つ目のポイントです。この「Range("A1")」は、Offsetプロパティによる参照先の「左上端」のセルを「セルA1」と見なすための記述です。したがって、もし、「Range("A1")」を「Range("B2")」に修正すると、セルD4が参照されることになります。


なお、今回のように左上端のセルを参照したい場合は、「Range("A1")」の記述を省略できます。

>読み解いたステートメントを、より効率的な形に編集してみます。