|
ichinose さん:
再びのレス、ありがとうございます。
コードを差し替えて実行してみたのですが、
エラーは出なくなりましたけど、何も表示されません。
debug.print
のところがミソなのでしょうか。わたしが素人なもので。。。
エーーーン
そこで、最初に頂いたコードで、エラーが出るところを
コメントに変更して実行してみましたら、
うまく「元データを取得できました。」(~_~)
これからまた、いろいろ 試してみたいと思います。
お忙しいのに ご親切にして下さってどうも、ありがとうございました。
>▼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
>
>私が確認していませんが、参考にして下さい。
>
>
>それとこの後の返信が本日の夜か又は、明日になってしまいます。
>ごめんなさい。
|
|