相対参照と絶対参照を区別する方法
前のページで相対参照と絶対参照の違いについて説明しました。
なんとなくでも、両者の違いを理解して頂けたかと思います。
それでは、エクセル上で相対参照と絶対参照を区別する方法を学んでいきましょう。
まず、最初に例題です。
A1のセルに、C6のセルの値を絶対参照で表示してみてください。
もしかして、あなたは以下のようにE5のセルに記入しませんでしたか?
相対参照と絶対参照について、しっかりと理解していても、セルの指定をこのようにしてしまっていては完璧なマクロを組むことは出来ません。
この指定が間違っていることは、E5のセルをどこか別の場所にコピーしてみると分かります。
ためしに、E6のセルにコピー&ペーストしてみましょう。
すると、どうなりましたか?
何も表示されないはずです。
この理由は、A1のセルが絶対参照で正しくC6のセルを参照できていなかったことが原因です。実はこのままでは、A1のセルの中のデータは絶対参照ではなく、相対参照になってしまっているのです。
E5のセルから見たA1のセルに対しての考え方を、相対参照と絶対参照の2つのケースについて考え図にしてみると以下のようになります。
参照の種類 | A1のセルからC6のセルの認識 |
相対参照 | A1のセルから見て2列右の5行下 |
絶対参照 | C6のセルそのもの |
今回の場合はC6のセルが相対参照で指定されてしまっていたために、A2のセルにA1のセルをコピーした時、参照されているのがA2になってしまっていたということです。
相対参照では値が固定されていないため、コピー先が動けば、それに合わせて参照先も動いてしまいます。つまり、参照後のセルを動かしたり、コピーしたりしたときに不具合が出てしまうのです。
それでは、絶対参照にするためにはどのようにセルを指定してあげればよいのでしょうか?
絶対参照でセルを指定する方法(参照セルを固定する方法)
絶対参照でセルを参照するときは、参照セルを指定する数式を書くときに「$」マークを付けます。つまり、A1のセルに
=C6
と記入していたのを
=$C$6
としてやれば良いのです。
セルを完全に固定する場合は、「$」マークは行と列についてそれぞれ別々につけてやる必要があるので、十分に注意してください。
例えば、
=$C6
としたのでは、Aという「列」は固定されたけれども、6という「行」は固定されていないません。
もちろん、 =C$6 としても駄目なのは同様の理由です。これについては、以下の図を頭に叩き込むことによって理解してください。
< 「C6」「$C6」「C$6」「$C$6」 それぞれの参照できる範囲>
【C6】 総裁参照・全範囲
【$C6】 総裁参照・列
【C$6】 総裁参照・行
【$C$6】 絶対参照
つまり、裏を反せば、行と列のどちらかだけを固定することも可能だということですね。
相対参照と絶対参照の区別 まとめ
セルを参照する際には「$」マークの使いこなしが非常に重要になります。
この表をしっかりと理解することで、相対参照と絶対参照の区別をしっかりと理解してください。
参照の種類 | A1のセルに対しての認識 | セルを指定する式 |
相対参照 | E5のセルから見て4行左の4行上 | = A1 |
絶対参照 | A1のセルそのもの | = $A$1 |
これで、あなたの相対参照と絶対参照の区別に関する知識は完璧です!
参照を指定するときには自信を持って望んでください(笑)
この違いを知っていれば、マクロの中でセルの参照をするときに困ることは無いでしょう。
とても大切な部分なので、個別に取り上げて対応しました。相対参照と絶対参照をマクロの中で使ってみることによって、それぞれの違いを体感して下さい。
次はマクロを実行する上で、便利な機能である、「マクロ実行ボタンの設置」について解説します。