'数式のセル参照を一括変換するマクロ 'セル範囲を選択して、MyConvertFormulaマクロを実行してください。 Option Explicit Sub MyConvertFormula() Const myTitle As String = "セル参照の一括変換" Dim toAbsolute(1 To 4) As Integer Dim msg(1 To 4) As String Dim v As Variant Dim i As Integer Dim r As Range On Error GoTo err_1 toAbsolute(1) = xlAbsolute toAbsolute(2) = xlAbsRowRelColumn toAbsolute(3) = xlRelRowAbsColumn toAbsolute(4) = xlRelative msg(1) = "選択範囲のセル参照を、絶対参照($A$1)に一括変換します。" msg(2) = "選択範囲のセル参照を、行は絶対参照、列は相対参照(A$1)に一括変換します。" msg(3) = "選択範囲のセル参照を、行は相対参照、列は絶対参照($A1)に一括変換します。" msg(4) = "選択範囲のセル参照を、相対参照(A1)に一括変換します。" Do v = Application.InputBox( _ prompt:="参照スタイルを1から4の数値で指定してください。" & Chr$(10) & _ "1:[$A$1] 2:[A$1] 3:[$A1] 4:[A1]", Title:=myTitle, Type:=1) If VarType(v) = vbBoolean Then Exit Sub If IsNumeric(v) Then If v = 1 Or v = 2 Or v = 3 Or v = 4 Then Exit Do End If Loop If MsgBox(msg(v) & Chr$(10) & "元に戻すことはできません。", _ vbExclamation Or vbOKCancel, myTitle) <> vbOK Then Exit Sub i = toAbsolute(v) Application.ScreenUpdating = False For Each r In Selection.Cells If r.HasFormula And (Not r.HasArray) Then r.Formula = Application.ConvertFormula( _ Formula:=r.Formula, fromReferenceStyle:=xlA1, _ toAbsolute:=i, relativeTo:=r) End If Next Application.ScreenUpdating = True Exit Sub err_1: MsgBox Error(Err) & " (" & CStr(Err) & ")", vbExclamation, myTitle End Sub