- ベストアンサー
excel VBA 散布図 Xの値を表示させる
タイトルの通り excelの散布図においてデータラベルを表示した際にXの値も表示させたいと考えております。 .ChartObjects(1).Chart.SeriesCollection(1).HasDataLabels = True とするとデフォルトではYの値のみ表示されています。 Excel上でデータラベルの書式設定→ラベルオプション→Xの値(X)から表示させることは出来るのですが、これをVBAで指示したいと考えております。 自信が調べた限りではヒントとなるような情報が見当たらなかったため、ご存知の方がいらっしゃいましたらご回答をお願い致します。
- sk8577
- お礼率100% (7/7)
- Visual Basic
- 回答数2
- ありがとう数3
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
データラベルの書式設定→ラベルオプション→Xの値(X)で表示されるものでしたら .SeriesCollection(i).DataLabels.ShowCategoryName = True でいけそうな気がします。
その他の回答 (1)
- imogasi
- ベストアンサー率27% (4737/17068)
意外に調べるのに、てこづる課題のようだ。 例データ A1:C4 品物 個数 売上 A 80 320 B 40 420 C 90 210 標準モジュールに Sub TEST1() '散布図を作成 ActiveSheet.Shapes.AddChart2.Select 'グラフを挿入 ActiveChart.ChartType = xlXYScatter '散布図に変更 ActiveChart.SetSourceData Range("b2:c4") 'Range("A1").CurrentRegion '参照範囲を設定 With ActiveSheet.ChartObjects(1).Chart.SeriesCollection(1) .HasDataLabels = True .DataLabels.Position = xlLabelPositionRight .DataLabels.ShowValue = True .DataLabels.ShowCategoryName = True End With End Sub 実行して 40,420 80,320 90,210 などの数字が、データラベルとして、表れるだろう。
お礼
丁寧な内容の回答ありがとうございました。 期待通りの結果が得られました!
関連するQ&A
- Excel2000でのVBAによる散布図の値の表示について
Excel2000の散布図の機能を使って、 時系列データを折れ線で表示させています。 あるデータの値だけをラベルとして表示させたいのですが、うまくいきません。 例えば、tとYのデータ t,Y 1,70 2,40 3,60 4,30 5,100 6,10 7,30 8,80 9,20 10,90 があるとして散布図で時系列表示させてYの値が50以上のポイントだけそのYの値をラベルとして表示させたいのです。 過去の質問を参考にして以下のようなVBAのプログラムを作ったのですがうまくいきません。 Sub Label() Dim i As Integer ActiveSheet.ChartObjects(1).Activate ActiveChart.ApplyDataLabels For i = 1 To Range("B1", Range("B1").End(xlDown)).Cells.Count If ActiveSheet.Cells(i, 2).Value > 50 Then ActiveChart.SeriesCollection(1).Points(i).DataLabel.Text = ActiveSheet.Cells(i, 2).Value End If Next i End Sub 一つ一つのポイントの値をグラフ上で消去したり入力するのは非常に大変なので、うまい方法がないか考えているところです。 今、Excel2000を使っています。 どなたか分かる方がおられましたら教えてください。 よろしくお願い致します。
- ベストアンサー
- オフィス系ソフト
- [VBA Excel] 2系列の散布図を書いてみるとおかしくなります・・・
Excel 2007とVBAで数値解析をしています。計算結果のグラフを表示するための準備段階として、次のようなプログラムを組んで、2系列の散布図を書いて見ました。 Option Explicit Sub makechart() Dim chart1 As ChartObject, wsh As Worksheet Set wsh = Sheet1 Set chart1 = wsh.ChartObjects.Add( _ 10, 20, 250, 200) With chart1.Chart .ChartType = xlLineStacked .SeriesCollection.NewSeries .SeriesCollection(1).XValues = _ wsh.Range("A1:A5") .SeriesCollection(1).Values = _ wsh.Range("B1:B5") End With With chart1.Chart .SeriesCollection.NewSeries .SeriesCollection(2).XValues = _ wsh.Range("A1:A5") .SeriesCollection(2).Values = _ wsh.Range("C1:C5") End With End Sub --sheet1-- A B C ----------- 1| 1 2 3 2| 2 3 4 3| 3 4 5 4| 4 5 6 5| 5 6 7 系列1のグラフはB列 対 A列という意図通りのものになったのですが、系列2のグラフは、Y軸の値が、C列の値にB列の値を足したもの (1,2+3)、(2,3+4) ・・・ になってしまいました。系列2のグラフも純粋にC列 対 A列したいのですが、そのためにはどうすれば良いでしょうか。ご教授ください。
- ベストアンサー
- Visual Basic
- 散布図について
以前bantamさんが質問していた(No46347)のですが、それでは解決しなかったので質問します。 EXCELを使って,散布図で、ラベルを表示したいのです。 たとえば、 ラベル X Y a 200 250 b 150 120 c 300 278 d 243 200 e 120 100 のようなデータを散布図にすると、「ラベルを表示する」を選択すると、上のラベルではなく、Xの値が表示されます。「値を表示する」を選択するとYの値が表示されます。そうではなく、ラベルを表示したいのです。 やはり、テキストボックスなどで表示するしかないのでしょうか? ほかのソフトがあればそれでもいいのですが。
- ベストアンサー
- その他(ソフトウェア)
- Excel VBAの散布図について
Excel VBAで散布図を作ろうと考えています。 元のデータは添付した画像のものです。 左端にXの値があって、それ以降7列ごとに8枚の散布図を作成しようと考えております。 そこで、kを1~8まで動かし8種類の散布図を作成しようと考えているのですが、このマクロではk=1だけプログラムを回しただけで、一枚のグラフにすべての系列が載ってしまいます。 kを動かさずに、Cellの位置を指定して回した際にはうまくいったのですが、kを動かすようにしたところうまくいきません。 散布図を作る際に系列の数(私の場合7種類)を指定するにはどうしたらよいでしょうか。 どなたかご教授ください。 For k = 1 To 8 ActiveSheet.Shapes.AddChart.Select ActiveChart.ChartType = xlXYScatter ActiveChart.SeriesCollection(1).Name = Sheets("Voltammogram").Cells(10, -5 + 7 * k) ActiveChart.SeriesCollection(1).XValues = "=Voltammogram!$A$12:$A$250" ActiveChart.SeriesCollection(1).Values = Sheets("Voltammogram").Range(Cells(12, -5 + 7 * k), Cells(250, -5 + 7 * k)) ActiveChart.SeriesCollection(2).Name = Sheets("Voltammogram").Cells(10, -4 + 7 * k) ActiveChart.SeriesCollection(2).XValues = "=Voltammogram!$A$12:$A$250" ActiveChart.SeriesCollection(2).Values = Sheets("Voltammogram").Range(Cells(12, -4 + 7 * k), Cells(250, -4 + 7 * k)) 以降7列まで続きます。
- ベストアンサー
- その他MS Office製品
- Excel散布図 X軸の値を変えたい
≪エクセル初心者です。Excel2000,WindowsXP になります。よろしくお願いいたします≫ エクセルで散布図を作りたいのですが、 X軸の値が元データの値にならず四苦八苦しております。 X軸は、8byteに始まり、64KBまでありますが グラフ>元のデータ>Xの値が8byte~64KB まで選択されているのに、この値が反映しません。 (X軸の値がゼロに始まり16で終わる図になってしまいます。) 「軸の書式設定」 で、 最小値・・・「8」 最大値・・・「64」 としたら、 X軸が16の値までしか 散布図のデータが反映しません。 グラフの元のデータとなる表は以下のとおりです。 セルA1 8byte, 16byte 32byte...........64KB 5Mbps 0.612 4.879 8.233 4.879 10Mbps 0.611 4.879 8.900 60.309 30Mbps 0.629 4.879 19.000 99.879 ★補足(1) X軸8byte, 0.612 最小値 X軸64KB 99.879 最大値 といった結果になる散布図グラフを作成したい。 8byteの頃は、近い値ばかりなので散布図の「点」重なっており、 バイト数が上がる毎に、散布図の点がまだらになっていくようなグラフを目指しています。 ★補足(2) Y軸は対数表示になります。 ★補足(3) 元のデータのセルA1はブランクですが その他は全てデータが埋まっております。 以上の説明でお分かりいただけるか不安です。。。 もし不明な点がありましたらすぐ回答いたします。 お手数をおかけしますが ご回答の程よろしくお願いいたします。
- ベストアンサー
- オフィス系ソフト
- エクセル グラフ データラベルにX軸の値を表示
VBAでエクセルのグラフにX軸の値を表示させる方法を教えて下さい。 このように書いているのですが、Type:=xlCategoryでエラーとなってしまいます。 For i = 1 To ActiveChart.SeriesCollection(1).Points.Count ActiveChart.SeriesCollection(1).Points(i).HasDataLabel = True ActiveChart.SeriesCollection(1).ApplyDataLabels Type:=xlCategory Next i Y軸を表示させるxlValueではエラーとならず、Y軸の値が表示されました。 教えて下さい。 宜しくお願い致します。
- ベストアンサー
- Visual Basic
- エクセルの散布図
ラベル付きの散布図を作成したいのですが、ちょっとやりかたがわからなくて、困っています。 要するに データ名 x座標 y座標 ----------------------------- データ1 1.55345 -2.10188 データ2 0.93827 -0.37629 データ3 0.73248 -1.28221 データ4 -0.73542 -0.92798 データ5 1.88498 -1.54822 データ6 1.88733 -2.28795 データ7 0.50953 -0.5687 で、x, y座標の点の横あたりにデータ名も表示させたいのです。 エクセルのところで質問させてもらいましたが、上記の事ができればソフトはエクセルでなくてもかまいません。 どなたかご教授をよろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- 散布図のラベル位置について
EXCEL2000を使っています。 散布図のグラフを作りました。ラベルを表示させていますが、微妙な位置の調整はできるのでしょうか? 聞くところによるとLotus123ではラベルのX,Yの値を指定できるようなのですが・・・。 VBAでも構わないので、教えてください!
- ベストアンサー
- オフィス系ソフト
- 散布図参照先設定時にエラーがでます(>_<)
こんにちは 最近Excel2000でVBAを始めたばかりです。 複数の系列を持つ散布図で、それぞれの系列の 参照先を設定したいのですが、下記のコードで エラーがでてしまいます、 ActiveSheet.ChartObjects(1).Activate ActiveChart.ChartArea.Select ActiveChart.SeriesCollection(2).XValues = "=データ1!R4C5:R51C5" ActiveChart.SeriesCollection(2).Values= "=データ1!R4C4:R51C4" ←この最後の行でエラー 同一の値をVBAではなく、Excelの 「元のデータ」の「系列」で設定すると、 問題なく設定ができます。 色々試した結果、下記の二つの条件を満たした時に エラーがでるような気がします。 条件1 1以外のデータ系列の設定をしようとしている時 SeriesCollection(1)では問題ありません 条件2 Xの値、Yの値のどちらかに数値ではなく 既にセルの参照先が設定されているデータ系列に 設定しようとしている時。 参照先が「={1}」や「={2}」などと数値のみが 入力されている場合は問題ありません どなたか教えてください。 よろしくお願いしますm(_ _)m
- ベストアンサー
- Visual Basic
お礼
期待通りの結果が得られました! showXValue的なネーミングだと思って探していましたが、ExcelではX軸の事をCategoryと呼ぶのですね。 ありがとうございました