Home » ExcelVBA Rangeオブジェクト » Range.Addressプロパティで絶対参照をはずす

Range.Addressプロパティで絶対参照をはずす

対象:Excel2003, Excel2007, Excel2010, Excel2013

「vba cells address 絶対参照をはずす」
「vba address 絶対参照を外す」
といった検索で、このサイト『インストラクターのネタ帳』へのアクセスが時折見られます。

Excel VBAの、Range.Addressプロパティで返される文字列から絶対参照マーク「$」のない状態にする方法を探している方による検索です。

例えば、A1セルがアクティブなときに
  MsgBox ActiveCell.Address
というコードを実行すると、「$A$1」という文字列がメッセージボックスに表示されます。

これを「A1」という文字列を表示するようにしたいということなのでしょう。

[スポンサードリンク]

ヘルプを引く癖をつけましょう

まずこの検索をした方に知っていただきたいことは、ヘルプを見る癖をつけることです。

Addressという文字列内にカーソルがある状態で[F1]キーを押すだけです。

これでRagne.Addressプロパティのヘルプが表示されるのですから。(プロパティ・メソッドによってはヘルプが表示されないこともありますがRagne.Addressプロパティは適切なヘルプが表示されます。)

Range.Addressプロパティで絶対参照マークのついていない文字列を取得する

で、以下のようなコードで、Range.Addressプロパティで絶対参照マークのついていない文字列を取得することができます。


▼Range.Addressプロパティで絶対参照マークのついていない文字列を取得するコード
※アクティブセルのアドレスを絶対参照マークのない状態でメッセージボックスに表示する例
MsgBox ActiveCell.Address(False, False)

Range.Addressプロパティのヘルプをご覧いただくとわかるとおり、Range.Addressプロパティは引数を5つ指定できます。

このうち、
第1引数のRowAbsoluteと、
第2引数ColumnAbsoluteで、
戻りの文字列に絶対参照マークをつけるかどうかを指定できます。

両方ともFalseを指定すれば、上記のコードのとおり、絶対参照マークのない文字列が取得できます。

あまりないケースだとは思いますが、一方だけに絶対参照マークのついた複合参照の形で文字列を取得したいという場合は、
  ActiveCell.Address(True, False)
  ActiveCell.Address(False, True)
などと指定するわけですが、第1引数・第2引数のどちらが行でどちらが列かわかりにくいので、名前付き引数を使って
  ActiveCell.Address(RowAbsolute:=False)
  ActiveCell.Address(ColumnAbsolute:=False)
と指定するほうが、可読性が上がっていいでしょう。

[スポンサードリンク]

Home » ExcelVBA Rangeオブジェクト » Range.Addressプロパティで絶対参照をはずす

TrackBack:9

TrackBack URL
行全体が選択されているかを判定するVBAのコード from インストラクターのネタ帳
行全体が選択されているかどうかを判定する、Excel(エクセル)マクロを2つご紹介しています。
ListObject・テーブルの見出し行を取得するExcelマクロ from インストラクターのネタ帳
Excel(エクセル)でテーブルの見出し行を取得するマクロをご紹介。ListObject.HeaderRowRangeプロパティで返されるのがRangeオ...
ListObject・テーブルの1行目を取得するExcelマクロ from インストラクターのネタ帳
Excel(エクセル)でテーブル(ListObject)のデータの1行目を取得するVBA(Visual Basic for Applications)のサ...
ListObject・テーブルのアドレスを取得するExcelマクロ from インストラクターのネタ帳
テーブル・ListObjectオブジェクトのアドレスを取得するExcel(エクセル)マクロをご紹介しています。
MergeArea.Itemとは from インストラクターのネタ帳
Excel VBAの、MergeArea.Itemというオブジェクト式について解説しています。
印刷タイトルを設定するExcelマクロ from インストラクターのネタ帳
印刷時のタイトル行・タイトル列を設定するExcel(エクセル)マクロをご紹介しています。
MergeAreaの最終セルのアドレスを取得する from インストラクターのネタ帳
結合セルの最終セルのアドレスを取得するExcel(エクセル)マクロをご紹介しています。
CurrentRegionのセル番地を取得する from インストラクターのネタ帳
Range.Addressプロパティを使うと、CurrentRegionのセル番地も取得できます。
TopLeftCell.Addressとは from インストラクターのネタ帳
図形の左上のセルを表すRangeオブジェクトを取得するTopLeftCell.Addressというオブジェクト式について解説しています。

Home » ExcelVBA Rangeオブジェクト » Range.Addressプロパティで絶対参照をはずす

「ExcelVBA Rangeオブジェクト」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.