質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.47%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Q&A

解決済

1回答

8485閲覧

エクセル2013で散布図を書いたときの横軸データ

Chika

総合スコア12

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

0グッド

0クリップ

投稿2015/05/23 13:06

![イメージ説明]WIDTH:600

実験データを元に散布図を書いてみました。
横軸は紫の枠で囲ってある部分を、縦軸は青枠を指定しています。
1行目は未使用です。(0行目はエクセルそのものの行表示です)

赤枠で囲った部分は、xが100.333、yが0なので赤い矢印を打った部分に来てほしいのですが、なぜかオレンジの矢印の部分にいます。
(xがエクセルの行になってしまいます)

2010では、手動では赤矢印の部分に、VBAで書かせるとオレンジの部分にプロットされます。
2013では手動でもVBAでもオレンジの部分にプロットされます。

最終的には2010のVBAでこう、行って戻る様なグラフが書きたいのですが、その前にどうしてこうなるのか教えてください。。。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

添付画像を見る限りですが,そのグラフの横軸はデータ番号になっているのではないかと思います.
899行目のデータが横軸899付近にあり(開始が1行ずれているなら898かと思いますが),縦軸の値はポップアップでは100.333?と思いますがy軸と合わないですね・・・何でしょう.
グラフの「データの選択」を見るとわかると思いますが,選択セル範囲に対して散布図のx値y値としてではなく系列1,系列2として認識しているのかもしれません.

とにかく,今回の問題は「マクロの記録」の不具合に起因するものだと思います.
散布図を作ろうとすると

lang

1 '記録されるままの状態 2 ActiveSheet.Shapes.AddChart.Select 3 ActiveChart.SetSourceData Range("'Sheet1'!$B$6:$C$26") 4 ActiveChart.ChartType = xlXYScatter

のように記録されるかと思いますが,これだと

チャートオブジェクトを作成して
ソース範囲を指定し
チャート種別を散布図に変更する

という流れになります.
これでは2行目のソースが指定された時点で一旦棒グラフを作成してしまうことになり,そのあとで散布図に変更してもデータ系列の取り扱い方が上手く変わってくれません.

そこで,以下のように2行目と3行目の順番を変更します

lang

1 '上手く作成できるはずの例 2 ActiveSheet.Shapes.AddChart.Select 3 ActiveChart.ChartType = xlXYScatter 4 ActiveChart.SetSourceData Range("'Sheet1'!$B$6:$C$26")

このように

チャートを作成して
(ソースデータが無いまま)散布図に変更し
ソース範囲を指定する

ことで解決できるかと思います.
もちろん,コード例のセル範囲は環境に合わせて使ってください.
VBAの「マクロの記録」関係はたまに不具合があるので(自分はチャート関連でしか遭遇してないですが)あまり過信せず,生成されたコードを1行ずつ追っていけばわかることもありますので.

投稿2015/05/25 10:35

Arashimata

総合スコア13

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Chika

2015/05/25 13:48

回答ありがとうございます。 今日色々試していて、たまたま後からSetSourceDataをやると思っていたグラフが書けました。Arashimataさんの仰る通りの事が起きていたようです。 その場ではとりあえず良かった良かったと流しましたが、理屈が分かってすっきりしました。ありがとうございます。 マクロに関してはこれで解決ですし、マクロで書ければ問題無いのですが、2013の手動ではどうして書けないのか、(もちろんチャンと範囲指定は入れていますし、最初から散布図で書いています)何かお気づきの事があれば引き続きよろしくお願いいたします。 ちなみにマクロの記録を使って追っかければ良かったと回答読んで思いました。。。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.47%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問