- 締切済み
エクセルデータをVB2008のMSChartでグラフ化する方法を教えてください!!
はじめまして。VB初心者です。 エクセルからデータを取り出し、VB2008のMSChartコントロールを使って、マーカー無しの平滑線の散布図を作ろうと思っています。まだVB初心者で、プログラム作るのに苦労しています(汗)。エクセルから下記のようにランダムにデータを取り出して表示する方法わかる方いましたらご教示お願いします。(サンプルコードありましたら助かります!!) ★VB2008のMSChartコントロールで下記のように表示したいです!! (1)エクセルにあるデータは、A1からデータがはじまっているのではなく、AFの3からはじまり、3,6,9,12(行)に系列ごとにデータが入力されます(下記のエクセルデータ例参考)。 (2)VBでの表示は下記のエクセルで作ったグラフのようにしたいです!!データはエクセルデータの行に入力されている黄色の部分です。(X軸目盛りは1単位となります)、 (3)系列はエクセルの行となり、表示は系列をすべて重ねて表示します。(系列の数は列のセルの最後まである場合があります) 参考にエクセルでグラフ作りましたのでみて頂ければ幸いです
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- oboroxx
- ベストアンサー率40% (317/792)
次のサイトはC#で書かれていますが、参考になりますでしょうか? http://www.oborodukiyo.info/MSChart/VS2008/MSChartMain.aspx
- vbhanatyan
- ベストアンサー率79% (70/88)
マルチポストする暇があるなら、試してみれば少し位理解できるかと 思います。 私も今回初めて試したので、貴方がどのような使い方をするかまで 考慮しておりませんが、Line のグラフの表示を試してみました。 元々、グラフの表示は、個人の好みが大きく左右されるので、自分で 色々試して理解するようにしないと応用ができません。 Public Class Form1 Private Sub Form1_Load(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles MyBase.Load Dim dat(2, 10) As Integer 'Excel から取得して下さい。 Chart1.Series.Add("系列1") Chart1.Series.Add("系列2") Chart1.Series.Add("系列3") For i As Integer = 0 To 10 dat(0, i) = CInt(Int(100 - 1 + 1) * Rnd()) dat(1, i) = CInt(Int(100 - 1 + 1) * Rnd()) dat(2, i) = CInt(Int(100 - 1 + 1) * Rnd()) Chart1.Series("系列1").Points.AddY(dat(0, i)) Chart1.Series("系列2").Points.AddY(dat(1, i)) Chart1.Series("系列3").Points.AddY(dat(2, i)) Next Chart1.Series("系列1").ChartType = DataVisualization.Charting.SeriesChartType.Line Chart1.Series("系列2").ChartType = DataVisualization.Charting.SeriesChartType.Line Chart1.Series("系列3").ChartType = DataVisualization.Charting.SeriesChartType.Line End Sub End Class
- vbhanatyan
- ベストアンサー率79% (70/88)
>ご提案いただいたエクセルを直接表示できる方法ですが、当方も考えたのですが、 >エクセルのシートがいくつもあるので、毎回作成するのは手間がかかる為、 >エクセルのデータをそのまま取り込んで表示させるVBベースのプログラムを考えています。 それは、MSChartコントロール を使ってグラフを作成しようが、Excel の機能でグラフを 作成しようが、同じ事ではないのですか? それに、今まで、チャートコントロール扱った事がなければ、チョット無理かも知れません。 ましてや、ご自分で少しは調べて試す位の努力をしないと、新しい事に挑戦するのは...。 >また特にわからない点は、エクセルにあるデータ(A1からデータがはじまっているのではなく、 >AFの3からはじまり、3,6,9,12(行)に系列ごと(添付の黄色の部分)データ)が入力されていて、 >それをVBで読み取って、MSChartで表示するところがいまひとつわかりません。 Excel 上でマクロを取ってそのマクロを見れば解りませんか? ※ マルチポストをされていますね、以後、回答は控えさせて頂きます。
- vbhanatyan
- ベストアンサー率79% (70/88)
>★VB2008のMSChartコントロールで下記のように表示したいです!! VB2008には、MSChartコントロールはありません。 MSChartコントロールは、VB6.0 に付属しているものです。 もちろん、VB2008 でも使用する事はできますが、その場合VB6.0の ライセンスが必要です。 Excel のデータを使ってグラフを作成するなら、MSChartコントロールで作成しなくても Excel でグラフを作成して、それをVB2008上に表示したらいかがでしょうか? MSChartコントロールで表示するにしても、貴方は、どこまでできて どこが解らないのでしょうか? VB6.0 でなら、MSChartコントロールを扱えるのでしょうか?
補足
ご回答有難うございます。ちなみにMSChartはVisualStudio2008用に下記のサイトからインストールしました。ちなみに, MSchartの扱いは初めてです。VBでのプログラムはできます。http://code.msdn.microsoft.com/mschart ご提案いただいたエクセルを直接表示できる方法ですが、当方も考えたのですが、エクセルのシートがいくつもあるので、毎回作成するのは手間がかかる為、エクセルのデータをそのまま取り込んで表示させるVBベースのプログラムを考えています。 また特にわからない点は、エクセルにあるデータ(A1からデータがはじまっているのではなく、AFの3からはじまり、3,6,9,12(行)に系列ごと(添付の黄色の部分)データ)が入力されていて、それをVBで読み取って、MSChartで表示するところがいまひとつわかりません。 説明不足で恐れ入りますが、以上、宜しく御願致します。