こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

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です。

よろしくお願いいたします。

投稿日時 - 2015-01-15 11:18:01

QNo.8892118

困ってます

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

Likeのところで、R1C1のように指定したい、ということであれば、下記で可能だと思います・

If ActiveCell.Address(0, 0) Like Cells(2, 1).Address(False, False) Then
Range("B5").Select

投稿日時 - 2015-01-15 13:55:32

お礼

忙しい中、再度の回答ありがとうございます。

知りたいことがわかってよかったです。

自分では調べきれなかったことが、こんなに短時間で解決してうれしいです。

ほんとうにありがとうございます。m(__)m

投稿日時 - 2015-01-15 14:13:20

ANo.3

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.2

こういうことでしょうか?

ActiveCell.Address(0, 0)

ActiveCell.Address(ReferenceStyle:=xlR1C1)

投稿日時 - 2015-01-15 11:52:38

お礼

忙しい中、回答ありがとうございます。

質問にあるようにlikeの後の"A2"の部分をR1C1形式にできないかと思った次第です。

投稿日時 - 2015-01-15 12:39:29

ANo.1

こんにちは。

あまり、以下のような書き方はしません。
If ActiveCell.Address(True, True, xlR1C1) Like "R2C1" Then

「ActiveCell.Address(0, 0) Like "A2"」の相対参照にしますと、R1C1形式は、場所を特定できませんので、絶対参照にしないといけないはずです。

投稿日時 - 2015-01-15 11:51:19

お礼

忙しい中、回答ありがとうございます。

例えばA1セルだとCells(1,1)のように指定できるので、そのような方法があるのかなと思った次第です。

「If ActiveCell.Address(True, True, xlR1C1) Like "R2C1" Then」のような書き方はあまりしないのですね。でも、指定する列が大きくなると、"BE1"とか書いてあっても何列目かわかりにくいので、R1C1形式で指定できたらわかりやすいと思った次第です。

投稿日時 - 2015-01-15 12:37:39

あなたにオススメの質問