絶対参照を相対/間接参照に変換する方法はありますか?

絶対参照を相対/間接参照に変換する方法はありますか?

数式を間接的なものに変更できるメソッドまたはマクロを知っている人はいますか?

たとえば、現在私のシート上のすべての数式は次のように記述されています。

=SUM(Sheet2!A1:A10),INDIRECTこれを次のような関数に簡単に変更する方法はありますか?

=SUM(INDIRECT("'Sheet2'!"&"A1"):Sheet2!$A$10)

1 つの数式を変更するのは難しくありませんが、それぞれが他のシートへの 3 ~ 4 つの参照を含む 100 の数式の場合、これを修正するには非常に長い時間がかかります。

範囲を合計しているのに、先頭に新しい行を挿入するたびに、数式が正しいセルを参照しないために問題が発生しています。毎回手動で行番号を変更しなくても済むように、より良い数式を書く方法を見つけようとしています。

答え1

このマクロは、シート内の数式を検索して置換するのに役立ちます。

Sub FindReplaceFormula()

Cells.Replace What:="=SUM(Sheet2!A1:A10)", Replacement:= _
        "=SUM(INDIRECT("'Sheet2'!"&"A1"):Sheet2!$A$10)", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=True, SearchFormat:=False, _
        ReplaceFormat:=False

End Sub

必要に応じて、数式内のセル参照を調整できます。

関連情報