相対参照でのマクロの記録

広告

マクロはデフォルトでは絶対参照でセルに関する情報を記録します。その為、記録したマクロを実行すると、セルの位置に関しては必ず同じセルに対して記録された内容を実行します。

ただ、操作を行いたいセルを指定してマクロを実行したいような場合、絶対参照のままではどのセルを指定していても必ず同じセルが対象となってしまいます。このような場合には相対参照でマクロを保存するようにします。

相対参照で指定した場合、例えばマクロの記録を開始する前に選択されていたセルに対して何らかの処理を行ってマクロを記録すると、次にマクロを実行する場合に、実行する時に選択されたいたセルに対して処理を行うようになります。

では、相対参照でマクロを記録する方法について見ていきましょう。まず適当な位置のセルを選択します。

相対参照によるマクロの記録

次にマクロの記録を開始します。メニューの「ツール」から「マクロ」をクリックし、さらに「新しいマクロの記録を開始」をクリックします。

相対参照によるマクロの記録

「マクロの記録」のウィンドウが表示されますので「OK」ボタンをクリックします。(マクロの名前は変更していますが、必須ではありません)。

相対参照によるマクロの記録

マクロの記録が開始されましたので、まず「相対参照」に切り替えます。切り替えるには「記録終了ツールバー」の中に相対参照に変更するためのボタンがありますのでクリックして下さい。

相対参照によるマクロの記録

クリックするとマクロの記録が「相対参照」に切り替わります。

ではマクロに記録したい操作を行っていきます。今回は現在選択されているセルに罫線を表示し背景色を変更します。

相対参照によるマクロの記録

操作が完了したら、「記録終了ツールバー」のボタンをクリックしてマクロの記録を終了します。

相対参照によるマクロの記録

相対参照で記録されたマクロの実行

ではマクロが相対参照で保存されたかどうかを試してみます。まず別のセルを選択します。

相対参照によるマクロの記録

「ツール」メニューの「マクロ」をクリックし、さらに「マクロ」をクリックします。

相対参照によるマクロの記録

マクロの一覧の中から先ほど相対参照で記録したマクロを選択し「実行」ボタンをクリックします。

相対参照によるマクロの記録

下記のように、マクロを実行する時点で選択されていたセルに対してマクロが実行されます。

相対参照によるマクロの記録

絶対参照でマクロを記録していた場合は、マクロを実行する前にどこのセルを選択していたとしても、マクロが行う操作は絶対位置で記録されているため、セルC3に対してマクロに記録した操作を実行します。

相対参照で記録した場合には、基準となるセル(今回はマクロ実行前に選択されていたセル)からどれだけ移動したセルに対して処理が行われたかを記録しますので(今回は基準位置から移動してはいません)、セルがどの位置を選択した状態で実行されたかによって、マクロによって実行される処理は変わってくるわけです。

( Written by Tatsuo Ikura )