『文字列からセル位置を取りたい』(月読)
FORMULAに入っている文字列からセル位置を取ってくる方法を教えてください
"=E17/(F43*SUM(C38:C41)-F43)"
⇒"E17","F43","C38:C41","F43"
"=(C38*P38+C39*P39)/(SUM($C$38:$C$41))"
⇒"C38","P38","C39","P39","$C$38:$C$41"
< 使用 Excel:Excel2016、使用 OS:Windows11 >
Range.Precedents で検索してください。 (jindon) 2025/04/07(月) 11:23:07
既にコメントがありましたとおりです。
マクロで対応してください。例えば以下のように。 Sub test() Dim rng As Range For Each rng In Selection If rng.HasFormula Then rng.Offset(, 1) = rng.Precedents.Address 'または 'Debug.Print rng.Address, rng.Precedents.Address End If Next End Sub 書き出し先はそちらで工夫してください。別シートの同じセル位置とかもよいかも。 なお、ユーザー定義関数では対応できないようです。
【結果の表示形式】 E17,F43,C38:C41,F43 の形式で書き込みます。 どうしても "E17","F43","C38:C41","F43"としたければ、 ary = Split(rng.Precedents.Address,",") としたうえで、 各要素を"で挟んだ配列ary2を作成し、 Join(ary2 ,",") とすればよいでしょう。ご自身で加工してみてください。
【その他】 (1)直接参照しているセルだけなら DirectPrecedents プロパティです。 (2)他シートへの参照もあるのなら、それはPrecedentsで捕捉されないので、別の対応が必要です。 必要なら用意はあるので、その旨コメントして下さい。
(xyz) 2025/04/08(火) 09:59:54
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.