相対参照
相対参照とはエクセルシートのセルを指定する際に、目的のセルを直接選択するのではなく、基準(スタート)となるセルを決め、そこから「上下または左右に何セル進んだ」などを明記し位置を相対的に参照することです。
相対参照では位置を指定するだけではなく、指定した先のセルに値を代入することもできます。
操作全般を文字で表すと
セルをアクティブにして、アクティブセルから上下左右にいくつか進んだ場所に値を代入します。
という内容になります。
例:アクティブセルから下に2セル右に3セル移動したセルに3を代入します。
画像を使いながら説明していきます。
エクセルを開きます。
シートには何も記入せずVBEを使って作業を行うのですが、VBEを起動する前にA1セルをクリックしてアクティブセルにしておいてください。
上の画像のようにセルが黒枠で囲まれているものがアクティブセルです。
準備ができたら、[ ツール ] ⇒ [ マクロ ] ⇒ [ Visual Basic Editor ]をクリックします。
コードウィンドウ(右側の白い枠)に相対参照を行う文章を作成していきます。
コードウィンドウは左側にあるSheet1・・・標準モジュールなどをダブルクリックすることで開くことができます。
VBEを開いて作業を開始する前に、アクティブセルにしたシートと同じ場所のシートを選択していることを確認してください。
特に設定を変えずに、エクセルを開いてA1セル(今回アクティブセルに設定したセル)をクリックした場合はSheet1になっているはずです。
この部分がずれてしまうとプログラムが実行されないなどがあるので、今回だけに限らず確認するようにしてください。
サブプロシージャ内へ相対参照について書き込んでいきます。
まず、開始位置となるアクティブセルを選択します。
次に上で選択したアクティブセルからみて上下左右にいくつ進んだ先のセルなのかをOffsetを使って指定します。指定した後にそのセルへ代入する値を決定します。
コードの説明 |
---|
Range("B1").Activate |
B1セルをアクティブセルにします。 |
コードの説明 |
---|
ActiveCell.Offset(2,3).Value = 3 |
アクティブセルから下へ2セルと右へ3セル移動したセルに3を代入します |
これで相対参照は完成です。
エクセルのシートを見ながら、実行してみましょう。
移動した先のセル(E3)に3という値が代入されました。
これで相対参照は完成です。
プラスとマイナスを使ってセルの位置関係を表す方法についてはOffsetで詳しく説明しています。