|
▼Excel大好きちゃん さん:
>
>早速のご教示、ありがとうございます。
>今、頂いたコードを埋め込みグラフの存在するシートをアクティブにして実行してみたのですが、
>Set rng = Union(rng, Range(r_add))
>のところで、メソッド失敗というエラーが出て、止まってしまいました。
>やり方が悪いのでしょうか?
>どうもすみませんー
あららー、そうですか?edit_addrに問題があるのでしょう・・。
私の検証不足です。
お手数ですが、プロシジャーTestだけ以下のコードに変えて
イミディエイトウインドウにどういうふうに表示されているか教えて下さい。
私もこの辺触るの初めてなので、勉強させて下さい。
>>'===========================================================
>>Sub test()
>> Dim cht As Chart
>> Dim srs As Series
>> Dim rng As Range
>> Dim r_add As String
>> Set cht = ActiveSheet.ChartObjects(1).Chart
>> Set rng = Nothing
>> For Each srs In cht.SeriesCollection
>> r_add = edit_addr(srs.Formula, srs.PlotOrder)
>> If r_add <> "" Then
debug.print srs.formula & "---" & r_add
>> End If
>> Next
' If Not rng Is Nothing Then この辺、取りあえずコメント
' MsgBox rng.Address
' End If
>>End Sub
>>'=================================================================
>>Function edit_addr(add, podr As Long) As String
>> Dim ans()
>> wk = Split(Replace$(Replace$(add, "=SERIES(", ""), "," & podr & ")", ""), ",")
>> jdx = 1
>> For idx = LBound(wk) To UBound(wk)
>> If wk(idx) <> "" Then
>> ReDim Preserve ans(1 To jdx)
>> ans(jdx) = wk(idx)
>> jdx = jdx + 1
>> End If
>> Next
>> If jdx > 1 Then
>> edit_addr = Join(ans(), ",")
>> Else
>> edit_addr = ""
>> End If
>>End Function
それから、同じような質問が過去ログにもありました。
http://www21.tok2.com/home/vbalab/bbs/c-board.cgi?cmd=ntr;tree=10832;id=Excel
私が確認していませんが、参考にして下さい。
それとこの後の返信が本日の夜か又は、明日になってしまいます。
ごめんなさい。
|
|