相対参照と絶対参照を変換する
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画面ではありません。
変換前:数式文字列
=SUM(A1:B3)
マクロ:絶対参照へ
=SUM($A$1:$B$3)
マクロ:相対参照へ戻す
=SUM(A1:B3)
結果:2行で表示
絶対参照と相対参照をメッセージに表示する
文字列だけの変換です。セルへ入力せず、SUMの計算もしません。数式長は255文字までです。
コードの処理を説明する模式図です。実際の画面や実行結果を撮影したものではありません。
使い方・実行手順を確認する4つの手順で、コードの使い方を確認できます
- 1
練習用のブックを.xlsm形式で保存し、Sheet1という名前のシートを用意します。入力セルは不要です。
- 2
Alt+F11でVBEを開き、[挿入]→[標準モジュール]へコードを貼り付けます。
- 3
sに変換する数式を入れます。xlAbsoluteは$付き、xlRelativeは$なしです。
- 4
マクロ内にカーソルを置いてF5で実行します。=SUM($A$1:$B$3)と=SUM(A1:B3)が表示されます。