先日グラフ作成にて判らない事があり、教えて頂いたのですがエラーになってしまいます。引き続き教えて頂きたかったのですが、設定変更が出来ず、結局締め切ってしまいました。再度改めて質問させて下さい。

2軸の折れ線グラフの作成にて、セルA1・B1の数値を変更することにより、ワークシート上のグラフの参照位置を全て置換えるというものなのですが、
.SetSourceData Source:=ActiveSheet.・・・・
ここで(実行エラー1004、アプリ又はオブジェクトの定義エラー)どう変更すればよいのでしょうか?よろしくお願いします。
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Row > 1 Or Target.Column > 2 Then Exit Sub
Dim r,C1,C2 As String
Dim ch As ChartObject
Dim minRow,maxRow As Long
minRow = 50:maxRow = 100
If Range("A1").Value >= minRow And Range("A1").Value <= maxRow _
And Range("B1").Value >= minRow And Range("B1").Value <= maxRow Then
For Each ch In ActiveSheet.ChartObjects
ch.Activate
With ActiveChart
c1 = .SeriesCollection(1).Name
c2 = .SeriesCollection(2).Name
r = c1 & Range("A1").Value & ":" & c1 & Range("B1").Value & "," _
& c2 & Range("A1").Value & ":" & c2 & Range("B1").Value
.SetSourceData Source:=ActiveSheet.Range(r), PlotBy:=xlColumns
.SeriesCollection(1).Name = c1
.SeriesCollection(2).Name = c2
End With
Next
End Sub

回答の条件
  • 1人5回まで
  • 50 ptで終了
  • 登録:
  • 終了:2007/12/09 04:18:04
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答8件)

ただいまのポイント : ポイント10 pt / 50 pt ツリー表示 | 新着順
新しく作ってみました SALINGER2007/12/08 20:48:02ポイント2pt
>|vb| Private Sub Worksheet_Change(ByVal Target As Range) If (Target.Row = 1 And Target.Column > 2) Or Target.Row > 3 Then Exit Sub Dim minRow As Long Dim maxRow As Long Dim s1, s2 As String Dim p1, p2 As Integer Dim r As String Dim i, j As Integer minR ...
説明 SALINGER2007/12/08 21:01:41ポイント2pt
A1に全てのグラフの範囲下|B1に全てのグラフの範囲上| A2に最初のグラフの系列1|B2に次のグラフの系列1 |・・・・・ A3に最初のグラフの系列2|B3に次のグラフの系列2 |・・・・・ 例えば ...
ありがとうございました。 dadan_dan2007/12/09 04:00:16
全く問題が無い時とエラーになる時の違いがまだよく判りませんが、 しばらく使わせて頂きます。 また、困った時には質問させて頂くと思いますが、よろしくお願い致します。 ありがとうございました。m(_ _)m
失礼しました SALINGER2007/12/08 10:21:44ポイント3pt
コメントがオープンでなかったので、回答で答えてポイントを消費させるのはよくないかと思い返信をしていませんでした。 自分の環境では動作は確認しているので、たぶん、グラフを作ったときに系列名をうまく変更し ...
ご返答ありがとうございます。 dadan_dan2007/12/08 16:41:43
SALINGERさんありがとうございます。 個人的に問い合わせをしたかったのですが、方法が判りませんでした。また、質問内容覧にハンドル名を記載するのもどうかと思いまして。 もう一度再確認したいのですが、一つ一 ...
引き続き SALINGER2007/12/08 17:08:54ポイント2pt
私の方法では系列名に"B"と"F"のように入れないと動作しないという回りくどいやり方です。 まあ、列を変更するときは、それを"C"と"G"のように変えるだけでいいという利点もありますが。 エラーが出る場合はデバッグ画 ...
早速の返信ありがとうございます。 dadan_dan2007/12/08 19:24:12
>グラフが一定の順番で規則的に並んでいて、その順番に系列を、A2セル>から右に、B F C G H Q・・・のように入れてグラフの列を変更すると>いうのならできますよ ある程度は規則性はあるのですが、変則的一定という ...
ええと SALINGER2007/12/08 21:26:19ポイント1pt
グラフオブジェクトを取得するには >|vb| For i = 1 To ActiveSheet.ChartObjects.Count next i |||vb| For Each ch In ActiveSheet.ChartObjects next ||< で全てのグラフにアクセスでき、SeriesCollection(1).Formula で個々の参照先も取得できるので、 ...

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません