サンプル画像
Excelマクロ塾メニュー

エクセルマクロ・VBAは慣れが肝心
最初は難しく感じるExcelのマクロとVBAですが、仕組みが理解できると徐々に使いこなせるようになってきます!
自分のペースで着実に勉強しましょう!

エクセルマクロ塾
エクセルマクロ塾

相対参照と絶対参照を区別する方法

前のページで相対参照と絶対参照の違いについて説明しました。
なんとなくでも、両者の違いを理解して頂けたかと思います。

 

それでは、エクセル上で相対参照と絶対参照を区別する方法を学んでいきましょう。

 

まず、最初に例題です。

 

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

 

 

これで、あなたの相対参照と絶対参照の区別に関する知識は完璧です!
参照を指定するときには自信を持って望んでください(笑)

 

この違いを知っていれば、マクロの中でセルの参照をするときに困ることは無いでしょう。
とても大切な部分なので、個別に取り上げて対応しました。相対参照と絶対参照をマクロの中で使ってみることによって、それぞれの違いを体感して下さい。

 

次はマクロを実行する上で、便利な機能である、「マクロ実行ボタンの設置」について解説します。

 

VBA