お世話になります。
GetObjectで取得したWorkbookのいずれかのシートにs_rngと名前が定義されたRangeがあるとします。このs_rngがあるシート名を取得するにはどうしたらよいでしょうか?
Set Obj = GetObject(fPath)
With Obj.Worksheets("?").Range(s_rng)
~処理~
End With
のようにしたいのですが?の部分がうまく取得できなくて困っています。
GetObjectを使わずに
Set sFile = Workbooks.Open(Filename:=fPath)
With Range(s_rng)
~処理~
End With
とすればシート名がわからなくてもできるのですが、処理するファイル数が多いのでなるべくファイルを開けずにやりたいと思っています。よい方法があったらご教示ください。
こんばんは。
名前が付けられたセル範囲は、RefersToRangeプロパティでとれます。
For Each Rng In Obj.Names(s_rng).RefersToRange
それから今回はシート名は必要ないでしょうが、一応
MsgBox Obj.Names(s_rng).RefersToRange.Parent.Name
こんな感じでどうでしょうか。
お礼
.RefersToRange.Parent.Name で取得できるんですね!うまくいきました。 どうもありがとうございました。