• ベストアンサー

エクセルのマクロ

エクセル2002でマクロを記録しました。 セルD5を選択した状態で、マクロの記録を始めました。(相対参照ボタンをクリックしています) D5のセルの色を黒にして、セルD6を選択して色を白にしました。ここで記録を終了しました。 VisualBasicEditorで見ると以下のような記述がありました。 そこで教えてください。 1)どの部分が相対参照をしているという意味の記述でしょうか? 2)どの部分がD6を選択したという記述でしょうか? 3)「Range("A1").Select」はどういう意味ですか?A1のセルはクリックしていないのですが・・・。 教えてください。 記述は以下です。 With Selection.Interior .ColorIndex = 1 .Pattern = xlSolid End With ActiveCell.Offset(1, 0).Range("A1").Select With Selection.Interior .ColorIndex = 2 .Pattern = xlSolid End With End Sub

質問者が選んだベストアンサー

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

1)どの部分が相対参照をしているという意味の記述でしょうか? 特別無いです。強いて言えば、絶対参照としてのアドレスが入っていないことから全体が 最初のSelectionが選択されている範囲ということでD5を表しています。 2)どの部分がD6を選択したという記述でしょうか? >ActiveCell.Offset(1, 0).Select で、現在のアクティブセル(D5)の1つしたを選択するという意味です。 3)「Range("A1").Select」はどういう意味ですか?A1のセルはクリックしていないのですが・・・。 どうしてこういう風に記録されるのかはわかりませんが、 Range("A1")は、必要ないです。 ActiveCell.Offset(1, 0).Range("A1").Select は、 ActiveCell.Offset(1, 0).Select と同じ意味。 多分、選択されている範囲の一番左上というような意味だと思います。

ameameame
質問者

お礼

ありがとうございました。たいへん参考になりました。

その他の回答 (2)

  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.3

ためしに絶対参照にするとこうなります。 With Selection.Interior .ColorIndex = 1 .Pattern = xlSolid End With Range("D6").Select With Selection.Interior .ColorIndex = 2 .Pattern = xlSolid End With

ameameame
質問者

お礼

ありがとうございました。たいへん参考になりました。

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

こんにちは。 書籍を購入して勉強してくださいね。基礎の基礎ですから。ここのカテゴリを検索すると、推薦するVBAの学習書が出てきますから。Mougの 「大村あつし」さんの書籍などが一番良いかと思います。 一応解説しておくと、それは、相対参照の記録で、ほとんど記録マクロにしか見られないものです。しかし、この考え方も、後々役に立つことがあります。 >ActiveCell.Offset(1, 0).Range("A1").Select 相対参照は、自分の位置を中心にして、自分を、A1(起点)と呼ぶということです。相対参照は、必ずそういうようになります。ActiveCellの下隣を、A1(起点)にする、という意味です。 なお、相対参照には、固有の番地はありません。

ameameame
質問者

お礼

ありがとうございました。たいへん参考になりました。

関連するQ&A