Excel VBA質問箱 IV

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

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


1012 / 13645 ツリー ←次へ | 前へ→

【76887】結合セルの参照元トレース gg56 15/4/3(金) 12:53 質問[未読]
【76888】Re:結合セルの参照元トレース β 15/4/3(金) 14:01 発言[未読]
【76889】Re:結合セルの参照元トレース gg56 15/4/3(金) 14:08 発言[未読]
【76891】Re:結合セルの参照元トレース β 15/4/3(金) 14:10 発言[未読]
【76894】Re:結合セルの参照元トレース gg56 15/4/3(金) 20:17 お礼[未読]

【76887】結合セルの参照元トレース
質問  gg56  - 15/4/3(金) 12:53 -

引用なし
パスワード
   お世話になります。

結合されたセルの参照元をトレースしたいのですが
ヒントをお教えくださいませんか?
使い方が間違っていると思いつつも、試しにMergeAreaとか加えてみましたがだめでした。


Sub 参照元トレース()
Dim i As Long, e As Long
Dim myData As Variant
Dim myKekka As Range

e = ActiveCell.SpecialCells(xlLastCell).Row

myData = "=if" 'if関数の入ったセルをトレース
For i = 1 To e
 Set myKekka = Cells(i, "C").MergeArea.Find(What:=myData, LookIn:=xlFormulas)
  If Not myKekka Is Nothing Then
   myKekka.ShowPrecedents
  End If
Next
End Sub

【76888】Re:結合セルの参照元トレース
発言  β  - 15/4/3(金) 14:01 -

引用なし
パスワード
   ▼gg56 さん:

こんにちは

単一セル(それが結合セルであっても)に対するFind って、??ですねぇ。
で、これは C列にある IF関数の参照元をトレースするコードですか?
その参照元は同じシート内と考えていいですか?

【76889】Re:結合セルの参照元トレース
発言  gg56  - 15/4/3(金) 14:08 -

引用なし
パスワード
   βさま お世話になります。

>C列にある IF関数の参照元をトレースするコードですか?
はい、その意図で作成しました(参考コードですが)。

>その参照元は同じシート内と考えていいですか?
はい、別シートにはリンクしていません。

【76891】Re:結合セルの参照元トレース
発言  β  - 15/4/3(金) 14:10 -

引用なし
パスワード
   ▼gg56 さん:

以下でお試しください。

Sub Sample()
  Dim r As Range
  Dim a As Range
  
  On Error Resume Next
  '数式の入ったセル群を取得
  Set r = Intersect(ActiveSheet.UsedRange.SpecialCells(xlCellTypeFormulas, 23), Columns("C"))
  On Error GoTo 0
  
  If r Is Nothing Then
    MsgBox "C列に数式の入ったセルはありません"
    Exit Sub
  End If
  
  For Each a In r.Areas
    If Left(a(1).Formula, 4) = "=IF(" Then a(1).ShowPrecedents
  Next
  
End Sub

【76894】Re:結合セルの参照元トレース
お礼  gg56  - 15/4/3(金) 20:17 -

引用なし
パスワード
   βさま
少し加工してコードを使わせていただきました。
狙い通りの挙動が確認できました。
ありがとうございます。

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