← コード一覧へ戻る
基本セル・範囲

相対参照と絶対参照を変換する

A1形式の数式を、絶対参照と相対参照の表記に変換します。

実行前に確認

  • 数式文字列を変換するだけで、セルへの入力・計算はしません。ConvertFormulaの数式長には255文字の制限があります。

1サンプルコード

Sub Example1162()
    Dim s As String, a As String, r As String
    s = "=SUM(A1:B3)"
    a = Application.ConvertFormula(s, xlA1, xlA1, xlAbsolute)
    r = Application.ConvertFormula(a, xlA1, xlA1, xlRelative)
    MsgBox a & vbCrLf & r
End Sub

図で見る操作の流れ

イメージ図

コードの動きを表した概念図です。実際のExcel画面ではありません。

  1. 変換前:数式文字列

    =SUM(A1:B3)

  2. マクロ:絶対参照へ

    =SUM($A$1:$B$3)

  3. マクロ:相対参照へ戻す

    =SUM(A1:B3)

  4. 結果:2行で表示

    絶対参照と相対参照をメッセージに表示する

文字列だけの変換です。セルへ入力せず、SUMの計算もしません。数式長は255文字までです。

コードの処理を説明する模式図です。実際の画面や実行結果を撮影したものではありません。

使い方・実行手順を確認する4つの手順で、コードの使い方を確認できます
  1. 1

    練習用のブックを.xlsm形式で保存し、Sheet1という名前のシートを用意します。入力セルは不要です。

  2. 2

    Alt+F11でVBEを開き、[挿入]→[標準モジュール]へコードを貼り付けます。

  3. 3

    sに変換する数式を入れます。xlAbsoluteは$付き、xlRelativeは$なしです。

  4. 4

    マクロ内にカーソルを置いてF5で実行します。=SUM($A$1:$B$3)と=SUM(A1:B3)が表示されます。

使っている機能の公式ドキュメント(Microsoft Learn)