|
>sheet1の多数のセルから同一ブック内の他の複数シートに向けて"リンク貼り付け"がされています。
『他の複数シートに向けて"リンク貼り付け"』
..失礼orz
逆でしたか。勘違いしました。
Sub recover()
'シート名によっては、シングルクォートの付加必要
Const X = "Sheet1" '"'1'"
Const PTN = X & "!([^+\-*/^=<>&,)\s]+)"
Dim reg As Object
Dim mc As Object
Dim m As Object
Dim ws As Worksheet
Dim rg As Range
Dim r As Range
Dim s As String
Set reg = CreateObject("VBScript.RegExp")
reg.Pattern = PTN
reg.Global = True
reg.IgnoreCase = True
For Each ws In Worksheets
If InStr(1, X, ws.Name, vbTextCompare) = 0 Then
On Error Resume Next
Set rg = ws.UsedRange.SpecialCells(xlCellTypeFormulas)
On Error GoTo 0
If Not rg Is Nothing Then
For Each r In rg
s = r.Formula
If InStr(1, s, X, vbTextCompare) > 0 Then
Set mc = reg.Execute(s)
For Each m In mc
Debug.Print m.Value
'Excel.Range(m.Value).Interior.Color = vbYellow
Next
Set mc = Nothing
End If
Next
Set r = Nothing
End If
End If
Next
Set reg = Nothing
End Sub
『リンク貼り付け』だから単純な参照数式なのでここまで必要ないでしょうけど、一応。
|
|