Excelブックを多数のユーザーに配布していますが、ユーザーのXLSTARTフォルダーに特定のマクロファイルがプリインストールされているはずです。
マクロが正しくインストールされておらず、ブックが返送された場合、それに依存する数式には、マクロのフルパスが含まれます。例:
'C:\Documents and Settings\richard.tallent\Application Data\
Microsoft\Excel\XLSTART\pcs.xls'!MyMacroFunction()
ブック内のすべての数式から不適切なパスを削除するために使用できるクイックマクロを作成したいと思います。
GetSpecialFolder(正常に機能している外部関数)を使用して特別なフォルダーを正常に取得しましたが、以下に示すReplace呼び出し自体が「アプリケーション定義またはオブジェクト定義のエラー」をスローします。
Public Sub FixBrokenMacroFormulas()
Dim badpath As String
badpath = "'" & GetSpecialFolder(AppDataFolder) & "\Microsoft\Excel\XLSTART\mymacro.xls'!"
Dim Sheet As Worksheet
For Each Sheet In ActiveWorkbook.Sheets
Call Sheet.Activate
Call Sheet.Select(True)
Call Selection.Replace(What:=badpath, Replacement:="", LookIn:=xlFormulas)
''//LookAt:=xlPart, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
Next
End Sub
検索と置換の自動化は私の得意分野ではありませんが、何が間違っているのでしょうか。
必須ではないと思われるパラメータのいくつかについては、すでにコメントアウトしています。