| 
    
     |  | ▼おぢちゃん さん: こんにちは〜 よこから 確認だけ スミマセン。
 
 >sheet1の多数のセルから同一ブック内の他の複数シートに向けて"リンク貼り付け"がされています。
 >sheet1のリンク貼り付け"元"となっているセルに一括で色をつけたいのですが,
 
 (確認)
 簡単のため、3枚の[Sheet1] [Sheet2] [Sheet3] があるとすると、
 [Sheet1]
 リンク元 シート
 
 [Sheet2] このシートに Sheet1 への参照がある
 たとえば、 [B2:B100] = "=Sheet1!A2"
 
 [Sheet3] このシートにも Sheet1 への参照がある
 たとえば、 [C2:C100] = "=Sheet1!B2"
 
 ということでよろしいですか?
 
 もしそうだとすると、難しいですねぇ
 たとえば、Sheet1 内のセルを順にLoopして、そのセルが どこか他の
 セルから参照されているかを調べる DirectDependents プロパティが
 あります。
 Sub try1()
 Dim c As Range, r As Range
 
 With Sheet1.UsedRange
 .Interior.ColorIndex = xlNone
 For Each c In .Cells  'Sheet1 内をループ
 On Error Resume Next
 Set r = c.DirectDependents 'cセルを参照しているセル
 On Error GoTo 0
 If Not r Is Nothing Then
 c.Interior.ColorIndex = 6
 Set r = Nothing
 End If
 Next
 End With
 End Sub
 これを実行すると、Sheet1自身のどこかから参照のあるセルには
 色がつきますが、そうでなく、別シートから参照されているセルには
 残念ながら色がつきません。
 ------------------------------------------------------
 DirectDependents プロパティは作業中のシートでのみ有効で、
 リモート参照をトレースできないことに注意してください。
 ------------------------------------------------------
 手動で、Sheet1の [A2]セルをアクティブにして、
 [ツール]-[ワークシート分析]-[参照先のトレース]で調べたときは
 Sheet2から Sheet1のA2 セルへの参照があるので、ちゃんと
 別シートのアイコンが出て、Sheet1の[A2]からそのアイコンへ
 矢印が描かれていたんですけどね。
 
 よくわからないけど、力技で、
 Bookの(Sheet1 以外の)すべてのシートをLoop して、
 各シートの「数式の入っている」すべてのセルをしらみつぶしに
 調べていって、 そこに "=Sheet1!A2" とかあれば、
 Sheet1!A2 セルを色塗する、という方向(別シート、参照先から
 Sheet1のリンク元セルを特定する)でなら、時間はかかるけれど
 出来そうな気がします。(かぶりますが)
 Sub try2()
 Dim ws As Worksheet
 Dim c As Range, r As Range, rs
 Dim Ad$, ThisSheetname$, ss$
 Dim dic As Object
 Dim j As Long
 
 '------- 対象シートをアクティブにして実行 ------
 Set dic = CreateObject("Scripting.Dictionary")
 ThisSheetname = "=" & ActiveSheet.Name & "!"
 For Each ws In Worksheets
 If ws.Name <> ThisSheetname Then
 On Error Resume Next
 For Each c In ws.UsedRange.SpecialCells(xlCellTypeFormulas)
 ss = c.Formula
 j = InStr(ss, ThisSheetname)
 If j > 0 Then dic(Mid$(ss, j + 1)) = Empty
 Next
 End If
 Next
 If dic.Count Then
 ActiveSheet.UsedRange.Interior.ColorIndex = xlNone
 For Each rs In dic.Keys()
 Excel.Range(rs).Interior.ColorIndex = 33
 Next
 End If
 
 End Sub
 
 |  |