ヘルプの森~Excel・Access・Office全般ヘルプデスクサイト

No.003

マクロ記録の絶対参照と相対参照とは

2003/2007/2010/2013/2016/2019

マクロを記録する際、はじめに選択されているセルから次に選択位置を移動したセル位置の記録を、絶対参照と相対参照とで行なうことができます。
絶対参照、相対参照は数式のコピーで差が出るように、マクロ記録でもまったく違う結果となっていきます。

マクロの絶対参照、相対参照の設定場所は次のとおりです。

  • [開発]タブ - [コード]グループ - [相対参照で記録]ボタン
    相対参照で記録了
  • [表示]タブ - [マクロ]グループ - [マクロ] - [相対参照で記録]
    相対参照で記録

これら [相対参照で記録]ボタン は、既定ではオフ、絶対参照に設定されています。これは、通常のマクロ作成においては、絶対参照の方がよく利用されるためです。
このボタンをオンにすると相対参照の設定となります。

では、絶対参照で記録した場合と、相対参照で記録した場合の違いを、このあとご案内していきます。
まずは、絶対参照からです。

例えば、もともと セルA1 が選択されている状態で記録を開始し、次に セルC5 を選択した動作をマクロにした場合です。
絶対参照で記録をすると「セルC5を選択する」というマクロが作成されます。そのままですね。

マクロ記録のポイントは、最初のセル位置は、固定的な番地として記録されず「選択されているところ」という記録になっていることです。
とすると、先のマクロ記録は、最初にどこが選択されていても セルC5 を選択する動作となります。

絶対参照での記録は、セルを移動した位置を絶対番地で記録するというものです。

では、相対参照でマクロを記録するとどうなるでしょうか。先の例の同じ操作を相対参照でマクロ記録したとしますよ。
最初にあるセルA1は「選択されたところ」という認識で同じです。
次に選択した セルC5 の記録は「下に4つ、右に2つのセル位置を選択する」という相対位置で記録されます。
とすると、マクロ実行時に選択されていたセルから、下に4つ、右に2つのセル位置を選択することになりますので、最初のセル位置によって動作位置が変わってきます。
セルB8 が選択されている状態で、相対参照で作成したマクロを実行すると、下に4つ、右に2つの位置の セルD12 が選択されることとなります。

これら、マクロ記録の絶対参照と相対参照は、記録中に切り替えて使用することもできます。
ただし、シートをクリックして切り替えたときは、シート名が記録されますので、1つ右隣のシートという記録にはなりません。
シートを相対位置で選択したい場合は、ヘルプ「マクロ記録で可変のデータ範囲を取得するには」の箇条書き下の方をご参照ください。

関連ヘルプ

マクロ記録で可変のデータ範囲を取得するには
ワークシートにボタンを作成し、マクロを割り当てて実行できるようにしたい
マクロのセキュリティ警告メッセージを表示させたくない
作成済みのマクロに、後からショートカット キーを割り当てるには
マクロは削除したのに開くときにセキュリティ警告が表示される、マクロの完全削除
マクロ記録はどこに記録されているのか
別のブックにマクロをコピーしたい
マクロ記録でできること、できないこと