2、自動記録によるマクロの作成
2−3、絶対参照と相対参照
絶対参照
絶対参照とはセル番地(セルの位置)を「A1」、「B2」、「C3」というような形で指定する形式のことで、A1ならA1、B2ならB2という固定されたセル番地を指定できます。
指定したいセル番地があらかじめ分かっている場合はこの形式で指定します。
相対参照
相対参照とは絶対参照と違い、指定したいセルがあらかじめわからない場合に使用する形式です。
例えば、「あるセルから3列右のセル」とか、「あるセルから7行下のセル」とか、「あるセルから3列右でさらに7行下のセル」などというように、基準となるセルからどのくらい離れているかで処理を行いたいセルを指定するものです。
違いを実感してみましょう
先ほど記録した「Macro1」は実は絶対参照で記録されています。だからどのシートを開こうと、どのセルが選択されていようと、必ず「B2」セルに処理が実行されることになります。
それでは以下の操作を実行し、相対参照による新しいマクロ「Macro2」を作成して下さい。
- 「ツール」→「マクロ」→「新しいマクロの記録」で新たにマクロを自動記録します。
- 名前は「Macro2」になっていると思うのでそのまま「OK」をクリックします。
- まず「記録終了」ボタンの右にある「相対参照」ボタンをクリックします。(このボタン→)
- セルをクリックせずにそのまま文字を入力します。
「相対参照のマクロ」と入力しましょう。
選択中のセルが移動してしまったら、文字を入力したセルをクリックし直します。- 塗りつぶしボタンを押し、セルを黄色にします。
- 次にそのセルから右に2つ、下に1つ移動したセル(最初のセルがA1の場合はC2にあたります)をクリックします。
- そこに「右2下1」という文字を入力し、セルを黄色に塗りつぶして下さい。
- もう一度「相対参照」ボタンをクリックして、絶対参照モードに戻します。
- 「記録終了」ボタンをクリックし、マクロ記録を終了します。
それでは、実行してみましょう。
- 絶対参照で記録した「Macro1」は必ずB2セルに処理が実行され、他のセルに実行させることはできませんでした。これに対し、相対参照で記録した「Macro2」は任意の場所(セル)に処理を実行することができます。
- まず、処理を実行させたいセルをクリックします。
どこでもいいので、好きなセルをクリックしてください。- 次にマクロを実行します。
「ツール」→「マクロ」→「マクロ...」とクリックし、「Macro2」を選択して、実行してください。- どうですか、自分で選んだセルとそのセルから右に2つ、下に1つ移動したセルの2箇所に対し、処理が実行されましたか?
- 続けて、「好きなセルを選ぶ」→「Macro2を実行する」を何度か繰り返してみて下さい。すべて、自分が選択したセルとそこを基準として右に2つ、下に1つ移動したセルに対して処理が実行されるはずです。
どうですか?おわかりいただけましたか?
固定のセルに処理したい場合は「絶対参照」、選択している状態によって処理対象のセルが変わる場合は「相対参照」というように場合によって使い分けができるわけです。