Excel VBAの使い方/マクロ・VBA

相対参照のマクロを読み解いてみよう(3ページ目)

相対参照によるマクロを読み解いて編集するテクニックを紹介します。VBAの知識の復習にもなると思います。ぜひ、ご覧ください!

緑川 吉行

執筆者:緑川 吉行

エクセル(Excel)の使い方ガイド


次の処理のマクロを編集しよう


セルD3へのデータ入力部分を見てみましょう。このステートメントは、セルC3を選択した後のステートメントだったので、行頭の「ActiveCell」はセルC3を参照していました。したがって、Offsetプロパティには、セルD3への相対的な位置を表す「0行下1列右」が記述されています。


しかし、先ほどステートメントを1行にまとめたときに、セルC3を選択する処理部分を削除しました。したがって、ActiveCellはセルA3を参照していることになるので、このままだと、「ActiveCell.Offset(0,1)」はセルB3を参照することになってしまいます。


そこで、セルA3からセルD3を参照するように、Offsetプロパティの引数の値を修正します。また、1行目と同じように、2行目と3行目をつなぎます。


最後の行は、データ入力後のアクティブセルの移動によるセル選択処理です。この行も特に必要ないので削除します。そして、Withステートメントを使用して、よりシンプルなステートメントに修正します。


もう1つの編集方法


Offsetプロパティで参照した先のセル範囲で、左上端のセルが「Range("A1")」で参照されていることは既に解説しました。このRangeプロパティを使用して、今回のマクロを修正することもできます。

その場合、セルA3から0行下2列右にあるセルC3をOffsetプロパティで参照し、その先で、セルC3を「セルA1」、セルD3を「セルB1」として参照する形が考えられます。


したがって、マクロは下図のようにも修正できます。


編集結果のシンプルなマクロを見ると、「書いた方が早い」と感じるかもしれません。慣れてきたら、最初からこのプロシージャを作成しても良いでしょう。しかし、マクロを読解して編集する中で、VBAの知識の復習になった部分もあったと思います。忘れてしまったキーワードを調べたり、プロシージャの記述方法の参考にしたりすることもできるので、マクロ記録→読解→編集によるプロシージャの作成もトレーニングしておくと良いでしょう。
【編集部おすすめの購入サイト】
楽天市場で Excel 関連の商品を見るAmazon で Excel 関連の商品を見る
【編集部からのお知らせ】
・「20代男性俳優」について、アンケート(2024/5/31まで)を実施中です!(目安所要時間5分)

※抽選で30名にAmazonギフト券1000円分プレゼント
※回答上限に達し次第、予定より早く回答を締め切る場合があります
  • 前のページへ
  • 1
  • 2
  • 3
※記事内容は執筆時点のものです。最新の内容をご確認ください。
※OSやアプリ、ソフトのバージョンによっては画面表示、操作方法が異なる可能性があります。

あわせて読みたい

あなたにオススメ

    表示について

    カテゴリー一覧

    All Aboutサービス・メディア

    All About公式SNS
    日々の生活や仕事を楽しむための情報を毎日お届けします。
    公式SNS一覧
    © All About, Inc. All rights reserved. 掲載の記事・写真・イラストなど、すべてのコンテンツの無断複写・転載・公衆送信等を禁じます