- ベストアンサー
エクセルのグラフについての質問です。
エクセルのグラフについての質問です。 ?あるブックから別のブックへグラフをコピーした後に、コピー元のグラフを変更しても、コピー先のグラフが変更されません。 コピー先のブックを開くときに出るダイアログで更新するを選んでいるのですが、更新された試しがありません。 何か別の設定がいるのでしょうか? ?複数のグラフの系列名を一括変更したいのですが、可能なのでしょうか? 以上ですが、よろしくお願いします。
- みんなの回答 (8)
- 専門家の回答
質問者が選んだベストアンサー
>回答番号:No.7 この回答へのお礼 「カメラ」の使い方を間違えていると思います。 グラフを選択していませんか? 「図のリンク貼り付け」も、グラフのコピーではなく、グラフの背景にあるセル範囲をコピーし、「図のリンク貼り付け」すればどうでしょうか。
その他の回答 (7)
- xls88
- ベストアンサー率56% (669/1189)
下記でどうでしょうか。アクティブなシート上にある、全てのグラフの系列の名前を書き換えます。 系列1が「実測値」、系列2が「誤差」、としています。違っている場合はコードを訂正してください。 シートもFor文でLoopできれば良いのですが、規則性があるのかどうか良く分からないので入れていません。 Sub test1() Dim cht As ChartObject For Each cht In ActiveSheet.ChartObjects With cht.Chart .SeriesCollection(1).Name = "実測値" .SeriesCollection(2).Name = "誤差" End With Next srs End Sub リンク貼り付けの件は、「カメラ」機能を試してください。 「図のリンク貼り付け」もそうですが、多用すると重たくなります。 グラフのリンクと系列名の変更は関連する問題なのですか?
お礼
系列名の件は無事解決しました。 ありがとうございます。 カメラ機能もアクティブにはなりませんでした。 2007ではグラフはリンク貼り付けはできない仕様なのですかね。
- xls88
- ベストアンサー率56% (669/1189)
>回答番号:No.5 この回答へのお礼 >元のブックのグラフのレイアウトを変更(凡例を表示させたりなど) >した場合は、コピー先には反映されないのでしょうか? これは通常のコピー貼り付けでは無理です。 「図のリンク貼り付け」すれば良いかも知れません。 Excel(エクセル)基本講座:図のリンク貼り付けとカメラ機能 http://www.eurus.dti.ne.jp/~yoneyama/Excel/camera.htm >2.現状は「系列1」「系列2」です これは、Excelが勝手に付ける名前です。 名前が設定されていないようです。 2つほど、異なるグラフのSERIES式を教えてください。 プロットされている系列(棒とか折れ線)をクリックして選択すれば数式バーに表示される数式です。 >3.「実測値」「誤差」などに変更したいです どのグラフも、この二つの名前にするのですか? セルデータ値として入力されているのですか? それは、元データ表の一部として入力されていますか?
お礼
迅速な対応ありがとうございます。 現在エクセル2007を使っているのですが、グラフをコピーした後に「リンク貼り付け」はなぜかアクティブになっておらず押せない状況でした。 図として貼り付けはできるのですが、こちらは更新が行われないようです。 >これは、Excelが勝手に付ける名前です。 >名前が設定されていないようです。 はい、名前を設定していなかったため、後から変えようとしているわけです。 =SERIES("系列1",Sheet1!<範囲>,Sheet1!<範囲>,1) =SERIES("系列2",Sheet1!<範囲>,Sheet1!<範囲>,2) >どのグラフも、この二つの名前にするのですか? はい、そうです。 その名前はセルデータとしては記入されていません。 というかシート上には存在しない言葉です。
- xls88
- ベストアンサー率56% (669/1189)
どうも要領を得ません。 1、ひとつのグラフに系列はひとつですか?それとも複数ある? 2、現状どのような系列名になっているのですか? 3、どのような系列名に変更したいのですか? 4、系列名の一部を変えればいいのですか? 5、新しい系列名はセルデータとして有るのですか? 6、大量のグラフは全て同じシート上に在るのですか? 7、etc いずれにしても、VBAで一括(厳密な意味合いは違うかもしれませんが)で変更可能です。 私の逆質問に回答いただけていませんが、更新の方の問題は解決したのですか?
お礼
情報不足で済みませんでした。 1.複数です 2.現状は「系列1」「系列2」です 3.「実測値」「誤差」などに変更したいです 4.いいえ、丸ごと変えたいです 5.ありません(ですが、あるセルに入力して、その名前に変更するという方法はとても便利に思えます) 6.別のシートにもあります また、更新の件ですが、元のブック名も表示されており、また、リンクの編集で確認したところリンク元もあっていました。 経験上、更新されている場合とされていない場合があり困惑しています。 元のブックのグラフのレイアウトを変更(凡例を表示させたりなど)した場合は、コピー先には反映されないのでしょうか?
- xls88
- ベストアンサー率56% (669/1189)
再度の失礼、回答番号:No.3の訂正です。 Chartが抜けていました。 ChartObjects(1)はChartの入れ物です。 ≪再訂正≫ For Each srs In ActiveSheet.ChartObjects(1).Chart.SeriesCollection 任意のグラフを対象にテストするなら For Each srs In ActiveChart.SeriesCollection としてください。 この場合は、対象グラフを選択しておいてVBAを実行してください。
お礼
詳しくご回答ありがとうございます。 系列名の法則についてですが、グラフは大量にあるものの、系列名はすべてのグラフで同じです。
- xls88
- ベストアンサー率56% (669/1189)
>回答番号:No.2 この回答へのお礼 失礼、SeriesCollectionが抜けていました。 ≪訂正≫ For Each srs In ActiveSheet.ChartObjects(1).SeriesCollection インデックスが1のグラフが対象になります。 系列名の法則はないのですか?
- xls88
- ベストアンサー率56% (669/1189)
>?複数のグラフの系列名を一括変更したいのですが、可能なのでしょうか? 失礼、系列名でしたか。 名前付けの法則がわからないので、とりあえず、A1以下のセルデータを系列名にセットする例を挙げておきます。 単一グラフの系列名を変更します。 Sub test1() Dim srs As Series Dim i As Long For Each srs In ActiveSheet.ChartObjects(1) i = i + 1 srs.Name = Range("A" & i).Value Next srs End Sub 複数のグラフに対する処理は、Wendy02さんの回答内容を参考にしてください。 For文で、ChartObjectを総当たりすることになります。
お礼
ご回答ありがとうございます。 さっそく単一グラフの系列名を変更するマクロを実行してみたのですが、 For Each srs In ActiveSheet.ChartObjects(1) のところで、 「オブジェクトは、このプロパティまたはメソッドをサポートしていません」 というエラーが出てしまいます。 何か他にも記述が必要なのでしょうか?
- xls88
- ベストアンサー率56% (669/1189)
>コピー元のグラフを変更しても、コピー先のグラフが変更されません データの値を変更したということですか? コピー先のグラフのSERIES式に元ブック名は表示されていますか? プロットされている、棒とか折れ線をクリックして数式バーを確認してください。 ≪例≫ =SERIES([元.xls]グラフ!$S$4,[元.xls]グラフ!$R$5:$R$12,[元.xls]グラフ!$S$5:$S$12,1) >複数のグラフの系列名を一括変更したいのですが、可能なのでしょうか? マクロでグラフ名を変更することは可能です。 下記で、Wendy02さんが回答されています。 EXCEL VBA でグラフの名前を変更する方法 http://okwave.jp/qa/q1399248.html
お礼
ご回答ありがとうございます。 グラフを選択してはだめだったのですね。 図のリンク貼り付けではだめでしたが、カメラで無事成功しました。 本当にありがとうございました。