Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


10794 / 76734 ←次へ | 前へ→

【71485】Re:リンク元セルの選択
発言  hint  - 12/3/10(土) 9:28 -

引用なし
パスワード
   もう十分な回答がありますけど、NavigateArrowを使うこんな方法は
どうでしょうか。nさんの正規表現手法が常識的で推奨ですけれど。

Sub test()
  Dim ws     As Worksheet
  Dim myRange   As Range
  Dim r      As Range
  Dim refercell  As Range
  Dim k      As Long

  Application.ScreenUpdating = False
  Set ws = ActiveSheet
  ws.Cells.Interior.ColorIndex = xlNone
  ws.ClearArrows
  Set myRange = Union(ws.Cells.SpecialCells(xlCellTypeFormulas, 23), _
            ws.Cells.SpecialCells(xlCellTypeConstants, 23))
         ' ↑ 少し甘い。該当なしの場合エラーになるよ。
  For Each r In myRange
    r.ShowDependents
    On Error Resume Next
    k = 0
    Do
      k = k + 1
      Set refercell = r.NavigateArrow(TowardPrecedent:=False, _
             ArrowNumber:=1, LinkNumber:=k)
      If Err.Number = 0 And refercell.Parent.Name <> "Sheet1" Then
        r.Interior.Color = vbYellow
        Exit Do
      End If
    Loop Until Err.Number <> 0 _
        Or refercell.Address(external:=True) _
          = r.Address(external:=True)
    On Error GoTo 0
  Next
  ws.Activate
  ws.ClearArrows
  Application.ScreenUpdating = True
End Sub

これであれば、
・単純参照(例: =Sheet1!A1のような)ではない、
  = B1 + Sheet1!A1 のような参照でもOKです。
・また、名前を介した参照でもOKかと思います。
(この例では、そうしたものは無い前提かもしれませんが) 

9 hits

【71475】リンク元セルの選択 おぢちゃん 12/3/9(金) 8:30 質問
【71476】Re:リンク元セルの選択 n 12/3/9(金) 12:54 発言
【71482】Re:リンク元セルの選択 n 12/3/9(金) 23:00 発言
【71478】Re:リンク元セルの選択 ちん 12/3/9(金) 15:23 発言
【71492】Re:リンク元セルの選択 ちん 12/3/11(日) 23:23 発言
【71479】Re:リンク元セルの選択 UO3 12/3/9(金) 16:57 回答
【71480】Re:リンク元セルの選択 kanabun 12/3/9(金) 21:00 発言
【71484】Re:リンク元セルの選択 おぢちゃん 12/3/10(土) 1:31 発言
【71481】Re:リンク元セルの選択 UO3 12/3/9(金) 22:46 発言
【71483】Re:リンク元セルの選択 おぢちゃん 12/3/10(土) 1:06 発言
【71485】Re:リンク元セルの選択 hint 12/3/10(土) 9:28 発言
【71494】Re:リンク元セルの選択 hint 12/3/12(月) 20:59 発言

10794 / 76734 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free