• ベストアンサー

VBAでA1形式をR1C1形式で表記したい

セル移動のマクロを組んでいます。 ネットで見つけた以下のコードを参考に組んでいるのですが、「ActiveCell.Address(0, 0) Like "A2"」の"A2"の部分をA1形式ではなくR1C1形式で表記するにはどうしたらいいでしょうか? Private Sub ReturnDirectrion2SelectCell() If ActiveCell.Address(0, 0) Like "A2" Then Range("B5").Select Else 以下、省略 環境はExcel2007, Windows7です。 よろしくお願いいたします。

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

  • ベストアンサー
  • moon00
  • ベストアンサー率44% (315/712)
回答No.3

Likeのところで、R1C1のように指定したい、ということであれば、下記で可能だと思います・ If ActiveCell.Address(0, 0) Like Cells(2, 1).Address(False, False) Then Range("B5").Select

CaveatEmptor
質問者

お礼

忙しい中、再度の回答ありがとうございます。 知りたいことがわかってよかったです。 自分では調べきれなかったことが、こんなに短時間で解決してうれしいです。 ほんとうにありがとうございます。m(__)m

その他の回答 (2)

  • moon00
  • ベストアンサー率44% (315/712)
回答No.2

こういうことでしょうか? ActiveCell.Address(0, 0) ↓ ActiveCell.Address(ReferenceStyle:=xlR1C1)

CaveatEmptor
質問者

お礼

忙しい中、回答ありがとうございます。 質問にあるようにlikeの後の"A2"の部分をR1C1形式にできないかと思った次第です。

回答No.1

こんにちは。 あまり、以下のような書き方はしません。 If ActiveCell.Address(True, True, xlR1C1) Like "R2C1" Then 「ActiveCell.Address(0, 0) Like "A2"」の相対参照にしますと、R1C1形式は、場所を特定できませんので、絶対参照にしないといけないはずです。

CaveatEmptor
質問者

お礼

忙しい中、回答ありがとうございます。 例えばA1セルだとCells(1,1)のように指定できるので、そのような方法があるのかなと思った次第です。 「If ActiveCell.Address(True, True, xlR1C1) Like "R2C1" Then」のような書き方はあまりしないのですね。でも、指定する列が大きくなると、"BE1"とか書いてあっても何列目かわかりにくいので、R1C1形式で指定できたらわかりやすいと思った次第です。

関連するQ&A