A1 形式と R1C1 形式を変換、相対参照と絶対参照を変換(ConvertFormula)
ConvertFormula メソッド
数式で参照しているアドレスの相対参照と絶対参照の変換、セルの参照方法の A1 形式と R1C1 形式の変換、またはその両方の変換を行うには、ConvertFormula メソッドを使用します。
object.ConvertFormula ( formula, fromreferencestyle [, toreferencestyle, toabsolute, relativeTo ] )
引数・戻り値
- object ・・・ 対象となる Application オブジェクトを指定します。
- formula ・・・ 変換対象の数式を指定します。数式の先頭には等号(=)を付けます。(省略不可)
- fromreferencestyle ・・・ 変換前の参照形式を XlReferenceStyle 列挙型 の定数またはその値を指定します。(省略不可)
定数 値 内容 xlA1 1 A1 形式の参照(既定値) xlR1C1 -4150 R1C1 形式の参照 - toreferencestyle ・・・ 変換する参照形式を XlReferenceStyle 列挙型 の定数またはその値を指定します。省略すると参照形式は変更されず、引数 fromreferencestyle で指定された形式が使用されます。
- toabsolute ・・・ 変換する参照の種類を XlReferenceType 列挙型 の定数またはその値を指定します。この引数を省略すると、参照の種類は変更されません。
定数 値 内容 xlAbsolute 1 行と列が絶対参照 xlAbsRowRelColumn 2 行が絶対参照で列が相対参照 xlRelative 3 行と列が相対参照 xlRelRowAbsColumn 4 行が相対参照で列が絶対参照 - relativeto ・・・ 1 つのセルを含む Range オブジェクトを指定します。このセルは、相対参照の基点となります。(省略可)
ConvertFormula メソッド 使用例
サンプルVBAソース
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
Sub Sample01_Convertformula() '「C4」セルの数式を取得 Dim myFormula As String myFormula = Range("C4").Formula '「C4」の数式を「R1C1 形式」で、「A1」セルを基点として「相対参照」 'で表示します。 MsgBox Application.ConvertFormula( _ Formula:=myFormula, _ fromreferencestyle:=xlA1, _ toreferencestyle:=xlR1C1, _ toabsolute:=xlRelative, _ relativeto:=[A1]) '[A1] は、Range("A1") でもOK End Sub |
実行結果
サンプルVBAソース実行前
実行後
ConvertFormula メソッド 使用例 2
サンプルVBAソース
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
Sub Sample02_Convertformula() '選択範囲に含まれる数式内で参照しているアドレスの 'すべての絶対参照を相対参照に変換します。 Dim c As Range For Each c In Selection If c.HasFormula Then c = Application.ConvertFormula( _ Formula:=c.Formula, _ fromreferencestyle:=xlA1, _ toabsolute:=xlRelative, _ relativeto:=c) End If Next c End Sub |
実行結果
サンプルVBAソース実行前
実行後
関連記事
-
ハイパーリンク(Hyperlinks オブジェクト)
Hyperlinks オブジェクト ワークシートまたはセル範囲のワークシートコレ …
-
VBA で、ワークシート関数を使用(WorksheetFunction プロパティ)
VBA で、ワークシと関数を使用 VBA から、ワークシート関数を呼び出す場合、 …
-
書式で検索(Find メソッド,FindFormat プロパティ)
書式で検索 書式を条件にセルを検索する場合、まず、その書式条件を CellFor …
-
セル内の編集を禁止する(EditDirectlyInCell プロパティ)
EditDirectlyInCell プロパティ エクセルでは、セルをダブルクリ …
-
セルの位置を取得(Left プロパティ、Top プロパティ)
Left プロパティ・Top プロパティ Left プロパティは、「A列」の左端 …
-
セルに値を設定する・セルの値を参照する(Value2 プロパティ)
Value2 プロパティ Value プロパティとの違いは、Value2 プロパ …
-
文字列の縦位置を取得・設定する(VerticalAlignment プロパティ)
VerticalAlignment プロパティ VerticalAlignmen …
-
ハイパーリンク(Hyperlink オブジェクトのメソッド)
Hyperlink オブジェクトのメソッド Hyperlinks コレクション …
-
セル・セル範囲に名前を定義・削除(Name プロパティ・Names コレクション)
セル・セル範囲に名前を定義(Name プロパティ) Range オブジェクトのN …
-
行・列の表示・非表示(Hidden プロパティ)
Hidden プロパティ Hidden プロパティに True を設定することで …