VB6でMSChartを使用してグラフを描く方法

このQ&Aのポイント
  • VB6でRS232を用いて測定器から出力される測定結果をPCへ取り込み、MSChartでグラフ化する方法について教えてください。
  • 現在、測定データを取り込むことはできましたが、MSChartを使用してグラフ化することができません。どのようにすればグラフを作成できるでしょうか。
  • また、データは0.01秒単位で受信するため、受信するたびにグラフが更新されて、リアルタイムで結果を表示したいと考えています。コードの教えていただけると助かります。
回答を見る
  • ベストアンサー

vb6 MSChartでグラフを描く方法

VB6で、RS232を用いて測定器から出力される測定結果をPCへ取り込み、MSChartでグラフ化したいと考えています。 現在、PCへ測定データを取り込むことは出来ましたが、MSChartを使用してグラフ化することが出来なくて悩んでいます。 ※測定データは、Form1に配置したテキストボックスに下記のようなデータが記録されます  グラフ化に必要なデータは、OKを除く1列目と3列目のデータだけです。 このデータからグラフを作成する方法はないでしょうか。 また、データは0.01s単位で受信するため、受信するたびにグラフが更新されて、レコーダのようにリアルタイムで結果をグラフ化したいと思っています。 みなさん御教授いただけないでしょうか。 できましたら、コードを教えて頂けたらうれしいです。 御願いします <受信するデータ> 0.01 OK 55.1 0.02 OK 55.2

質問者が選んだベストアンサー

  • ベストアンサー
  • MARU4812
  • ベストアンサー率43% (196/452)
回答No.1

ヘルプ(MSDN)の [Visual Studio 6.0 ドキュメント] └[Visual Basic ドキュメント]  └[Visual Basic の使用方法]   └[コンポーネント ツール ガイド]    └[ActiveX コントロールの使い方]     └[ActiveX コントロールの使い方]      └[チャート (MSChart) コントロールの使い方]      └[チャート (MSChart) コントロールのデータ連結] あたりに使い方が書いてありますので読んで下さい。

関連するQ&A

  • VB6.0でMSChartをタイマーを使い徐々にグラフを伸ばしたい。

    VB6.0でMSChartをタイマーを使い徐々にグラフを伸ばしたいのですが、上手くいきません。コマンドボタンを使いクリックしたと同時にタイマーを作動させて、ある値までグラフを増加させたいと思っているのですが、初心者同然なので詳しくお願いします。 Dim dat(4, 3) As Integer Dim a As Long Private Sub Command1_Click() With MSChart1 .chartType = VtChChartType3dBar .ColumnCount = 3 .RowCount = 4 For i = 1 To .RowCount For j = 1 To .ColumnCount .Column = j .Row = i .Data = dat(i, j) Next j Next i .DataGrid.ColumnLabel(1, 1) = "(1)" .DataGrid.ColumnLabel(2, 1) = "(2)" .DataGrid.ColumnLabel(3, 1) = "(3)" .DataGrid.RowLabel(1, 1) = "1月~3月" .DataGrid.RowLabel(2, 1) = "4月~6月" .DataGrid.RowLabel(3, 1) = "7月~9月" .DataGrid.RowLabel(4, 1) = "10月~12月" .Visible = True End With Timer1.Enabled = True End Sub Private Sub Form_Load() a = 0 MSChart1.Visible = False End Sub Private Sub MSChart1_OLEStartDrag(Data As MSChart20Lib.DataObject, AllowedEffects As Long) End Sub Private Sub Timer1_Timer() a = a + 10 dat(1, 1) = a: dat(1, 2) = 100: dat(1, 3) = 110 dat(2, 1) = 30: dat(2, 2) = 110: dat(2, 3) = 110 dat(3, 1) = 40: dat(3, 2) = 120: dat(3, 3) = 110 dat(4, 1) = 50: dat(4, 2) = 130: dat(4, 3) = 110 If a = 100 Then Timer1.Enabled = False End If End Sub

  • エクセルデータをVB2008のMSChartでグラフ化する方法を教えてください!!

    はじめまして。VB初心者です。 エクセルからデータを取り出し、VB2008のMSChartコントロールを使って、マーカー無しの平滑線の散布図を作ろうと思っています。まだVB初心者で、プログラム作るのに苦労しています(汗)。エクセルから下記のようにランダムにデータを取り出して表示する方法わかる方いましたらご教示お願いします。(サンプルコードありましたら助かります!!) ★VB2008のMSChartコントロールで下記のように表示したいです!! (1)エクセルにあるデータは、A1からデータがはじまっているのではなく、AFの3からはじまり、3,6,9,12(行)に系列ごとにデータが入力されます(下記のエクセルデータ例参考)。 (2)VBでの表示は下記のエクセルで作ったグラフのようにしたいです!!データはエクセルデータの行に入力されている黄色の部分です。(X軸目盛りは1単位となります)、 (3)系列はエクセルの行となり、表示は系列をすべて重ねて表示します。(系列の数は列のセルの最後まである場合があります) 参考にエクセルでグラフ作りましたのでみて頂ければ幸いです

  • エクセルのデータをVB2008でグラフ化する方法

    はじめまして。VB初心者です。 エクセルからデータを取り出し、VB2008のMSChartコントロールを使って、マーカー無しの平滑線の散布図を作ろうと思っています。まだVB初心者で、プログラム作るのに苦労しています(汗)。エクセルから下記のようにランダムにデータを取り出して表示する方法わかる方いましたらご教示お願いします。(サンプルコードありましたら助かります!!) ★VB2008のMSChartコントロールで下記のように表示したいです!! (1)エクセルにあるデータは、A1からデータがはじまっているのではなく、AFの3からはじまり、3,6,9,12(行)に系列ごとにデータが入力されます(下記のエクセルデータ例参考)。 (2)VBでの表示は↓ののようにしたいです!!X軸はエクセルデータの列となり、値は1からはじまりエンドは任意となります。Y軸は測定データで、12.3. 13.5等となり、エクセルのAFから入力した数値となります。系列はエクセルの行となり、表示は系列をすべて重ねて表示します。 【例】      1    2   3   4 ・・・(X軸) 系列1 12.3  13.5  13.4  20.3・・・(Y軸) 系列2 13.3  12.5  11.4  22.3・・・(Y軸) ・ ・ 【エクセルデータ】    AF   AG    AH    AI ・・・(列) 3 12.3  13.5  13.4  20.3・・・・・→系列1 6 13.3  12.5  11.4  22.3・・・・・→系列2 9 11.3  13.5  13.4  20.3・・・・・→系列3 12 15.3  13.5 13.4  20.3・・・・・→系列4 (行) 以上、宜しく御願致します。

  • VB2010でデータをプロットする方法

    VB2010でデータをプロットする方法 みなさん教えてください。 いまVB2010で添付図のようなグラフを作成できるソフトを作成しています。 そこで、みなさんにアドバイス頂きたいことがあり投稿しました。 Form4にdatagridを配置しました。 ここに任意のデータ(最大で40個)を入力すると、Form1のグラフに線を結ばずに○でプロットさせたいと思っています。 でも、この方法が分からず悩んでいます。 みなさん方法を教えて頂けないでしょうか。 できれば、ソースを教えて頂きたいです。 宜しくお願いします。

  • VBでリアルタイムにグラフを書きたいのですが。

    この度EXCELに入ってくるCSVデータをリアルタイムで折れ線グラフに変換することになりました。 何とかVBAで出来そうだ・・・まではわかったのですが、初めてVBの画面を開いた私ですので 命令語の意味すらわからず大変困っています。 ・約0.5秒に1回セルA1とB1にデータが入ってくる。 ・それを別々に折れ線グラフに表示する。 ・表示後、セルA1とB1の内容をクリアする。 以上の繰り返しで行いたいと思っています。 どなたか詳しい方がいらっしゃいましたらどのようなプログラムに なるのか教えて頂けませんでしょうか? どうかよろしくお願い致します。 OSはXP、Officeは2000を使用しております。

  • DataGridにテキストファイルの内容の表示方法

    VB2010 DataGridにテキストファイルの内容を表示 テキストファイルから任意の列(2列目)のデータを読み込み、Form1に配置したDataGridに読み込むにはどうしたらよいでしょうか? 下記のようなテキストファイルのデータがありまして、0.1などこの列のデータをDataGridに読み込みたいと考えています。 もし宜しければ、構文を教えて頂けないでしょうか。 VB2010の勉強を初めて1週間しか経っておらず、まだまだ勉強足らずです。 宜しくお願いします。 <テキストファイルのデータの内容> 1 0.1 *** 2 0.3 *** 3 0.5 *** ・ ・ ・

  • VB6.0 RS-232C通信プログラム

    はじめまして。 以下に示したような通信プログラムを作成しなくてはならないのですが,VC6.0は若干かじった事がある程度で,VB6.Oは初心者のためどのように作成してよいのか分からない状況です(何から始めてよいのかわからない・・)。宜しければ,参考書やサイトなど知っておられる方がいらっしゃいましたら,御願いします。 (構成) (1) 重量計で測定したデータ(測定する毎に)をRS-232CでPC(XP)ポートに送り,データを収集するできるプログラム (2) 収集したデータをtxtで保存し,他のPCに送れるようにする(送信ボタンを作成して,ボタンを押すことで)

  • VB2010で作成したグラフをエクセルに貼付けたい

    お世話になります。 VB初心者です。 現在、社内の評価表のようなものを作っていまして、個人単位の評価結果の点数とグラフを表示、印刷するプログラムを作っています。 そこで、グラフ表示まではChartなどを使用し出来上がりましたが、印刷をする段階で躓いています。 点数などはエクセルを使用したほうが効率が良いと思い、エクセル側にデータを渡しています。 その際、グラフも一緒に印刷したいのですが、その手順といいますか、方法がわかりません。 Chartのデータがそのままエクセルに使えれば…と思いましたが、方法がわからず、画像にして…とも考えましたが、どうやってエクセルに引渡しするのかがわかりません…。 訳あって、エクセルのバージョンに依存しない手段をとりたくて、バインド…というのでしょうか、そういった方法は出来るだけ避けたいと思っています。 どうか、経験豊かな諸先輩方のお知恵をいただけたらと思います。 ご指導、よろしくお願いいたします。

  • シリアル通信 VB 受信したデータ

    初めまして。 今現在,RS-232Cのシリアル通信で,重量計で測定したデータ(990kg)をCOM1に取り込めるようにするプログラムを作成中です。 出力データのフォーマットは以下のようになっています。 ST   , GS   , +0012345  kg  CRLR  ヘッダ1  ヘッダ2   データ  単位  ターミネータ 18バイトのデータを受信していることになります。 ここで質問なのですが,プログラムでは1バイトずつイベントを発生させて1バイトずつ受信させているのですが,1バイト×18回 のデータをどのようにつなぎ合わせれば18バイトのデータとして扱えるようになるのですか? うまく説明できていないかも知れませんが,お分かりの方がいらっしゃいましたら宜しく御願いします。 VBではOnCommを使用しています。

  • VB2008によるコントロール配列

    VB初心者でただ今勉強中です。VB2008です。 Form1の中にたくさん(100個くらい)の星(ビットマップデータ)をちりばめ、その星がランダムに点いたり消えたりするプログラムを作成しようとしています。 フォームにPictureBoxを配置して(星.bmp)とします。 その星を100個フォーム上にちりばめたいのですがPictureBoxを100個も置くのはムダな労力です。 それで配列を使いたいのですが、PictureBoxを1つだけフォームに配置してそれをコード上で配列として使う方法がわかりません。 いろいろ調べてみたのですが初心者にはわからない説明ばっかりで途方に暮れています。

専門家に質問してみよう