tagCANDY CGI VBレスキュー(花ちゃん) - VBレスキュー(花ちゃん)の投稿サンプル用掲示板 - Visual Basic 6.0 VB2005 VB2010
VB2005用トップページへVBレスキュー(花ちゃん)のトップページVB6.0用のトップページ
VBレスキュー(花ちゃん)の投稿サンプル用掲示板
     サンプル投稿用掲示板  VB2005 〜 用トップページ  VB6.0 用 トップページ
MSChart コントロール ワンポイントテクニック集(VB6.0) ( No.0 )  [親スレッドへ]
日時: 2013/07/23 07:20
名前: VBレスキュー(花ちゃん)

***********************************************************************************
* カテゴリー:[チャート][][]                                                      *
* キーワード:グラフ,,,,,                                                         *
***********************************************************************************

-----------------------------------------------------------------------------------
投稿者:花ちゃん MSChart コントロール ワンポイントテクニック集  2007/07/23
-----------------------------------------------------------------------------------
最近になってどこか変更されたのか? 一部サンプルプログラムでエラーが発生するように
なりました。(凡例の部分のコード等)
Backdrop プロパティの仕様が変更されたようです。
MSChart1.Backdrop のような場合は、問題ないのですが、.Legend.Backdrop.Frame のような
直下でない場合は、エラーが発生します。
従って当サンプルでもエラーが発生する場合は、Backdrop プロパティを使用しないようにして下さい。

結構今でも質問が多いので、こちらの方にまとめる事しました。

>>1  グラフの種類を変更する
>>2  凡例の表示・非表示設定
>>3  マーカーの表示例
>>4  MSChartで軸目盛り線の設定(X軸・Y軸・第2Y軸)
>>5  MSChartでY軸(数値軸)の目盛り線の設定
>>6  X 軸のラベルの間隔、補助メモリ等の設定
>>7  第2Y軸の目盛り区分線を設定
>>8  グラフタイトルの設定
>>9  Y軸のタイトルの設定
>>10 X軸のタイトル及び脚注の設定
>>11 データポイントラベルの設定
>>12 X軸の目盛り区分線を設定(折れ線の時のみ可)
>>13 縦棒と折線の複合グラフを表示
>>14 棒グラフの棒の色を設定
>>15 棒グラフの棒の内部色を設定
>>16 X 軸のラベルテキストの表示設定
>>17 グラフデータの表示単位を変更する方法
>>18 グラフの表示を印刷用にモノクロ(白黒)で表示
>>19 グラフ内のクリックした位置のデータを取得表示する
>>20 MSChart コントロール 関係のサポート技術情
>>21 折れ線グラフで値が 0 の時に線を描画しないように設定
>>22 ADOを使ってCSVファイルをMSChartコントロールにセットする
>>23 クリックした系列のグラフの色を任意の色に変更する
>>24 グラフの背景を設定
>>25 3D棒グラフを回転角、上昇角を指定して回転表示(チラツキ対策済み)
>>26 系列を排除及び系列を非表示及び統計線を色々表示
>>27 MSChartコントロールで作成したグラフをPictureBoxに転送表示する(こんな事も出来ます)
>>28 ADOを使ってExcelファイルをMSChartコントロールにセットする
>>29 データの行と列を入れ替えてグラフを表示する
>>30 MSChartコントロールのオブジェクト、プロパティ、メソッド、イベント一覧表
>>31 当サイト内で掲載しているMSChart コントロールのサンプル集
>>32 MSChartコントロールで横棒グラフ・吊下げ棒グラフを作成する
>>33 MSChartコントロールの色々なグラフの表示位置(座標)を取得する
     (グラフ上のマウス位置のデータをToolTipTextで表示)
>>34 複合グラフで折れ線を最前面に表示する
>>35

★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★

    MSChart コントロール に関する事で質問される場合の注意事項

MSChart コントロール に関する質問の大半は、データ個々に対する設定に関する事です。
しかしながら、VB6.0に付属の MSChart コントロールでは、データ個々に対する設定が
できません。

本来なら、DataPoints コレクションに系列内の個々のデータが格納されているのだから
DataPoints(3) とかにすれば個別に識別できそうだが、MSDN で DataPoints コレクション
を調べると下記のように書かれている。

object.DataPoints.(index)

index      現在の系列内の特定のデータ ポイントを識別します。
           グラフのこのバージョンについては、この引数の唯一の有効値は -1 です。
           これにより、系列のすべてのデータ ポイントに対する既定の設定に変更を
           加えることができます。
           系列内の各データ ポイントに対しては、設定を変更することはできません。

従って、系列内の各データポイントに対する設定を変更(識別)したいと言った関係の質問を
されても出来ません。
必要なら、製品版や他の市販のコントロール又はExcelの機能を利用するか、ご自分でグラフ
を作成する事になります。
Microsoft チャート コントロールは、MS と名前がついてはいますが、米国Visual Components社
の 製品版を元に作られた、お試し版のようなもので、制限事項やバグ?も多く一般的な事以外は
できません。別途、製品版をお使いになるか、ある程度の前提条件付で擬似的に目的を達成する
しかありません。

★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★


まず、基本的な表示画面の設定です。
以後のサンプルは、この表示画面から変更したコードのみの投稿になります。

1.プロジェクト→コンポーネント→Microsoft Chart Control 6.0 にチェックを入れておいて下さい。
2.ツールボックスに表示された、MSChart コントロールをフォームに貼り付けて下さい。
3.下記のコードをフォームにペーストして実行して見て下さい。
 (コードを貼り付ける以外プロパティ等の設定は一切不要です。)

ChartData プロパティ にデータを設定するだけでグラフが表示できます。
ChartData プロパティ については、ヘルプに使用例も掲載されているので見ておいて下さい。

基本コード部分
-------------------------------------------------------------------------------
Option Explicit

Private Sub Form_Load()
   'フォームのサイズを設定(好みで変更してください)
   Form1.Move 0, 0, 10400, 7000
   'MSChart コントロールの表示サイズを設定
   MSChart1.Move 0, 0, Me.ScaleWidth, Me.ScaleHeight
   Call sDataOpen       'データの読み込み
   Call sChartViewSet   'グラフの表示設定
End Sub

Private Sub sChartViewSet()
'グラフの表示設定
'------------------- グラフの種類を設定 ----------------------
   '設定しなければ、VtChChartType2dBar となる
   MSChart1.chartType = VtChChartType2dBar       'デフォルトのグラフタイプ(2D棒)
'グラフの種類は下記より選択
'                  VtChChartType3dBar           '3 次元バー
'                  VtChChartType2dBar           '2 次元バー
'                  VtChChartType3dLine          '3 次元線
'                  VtChChartType2dLine          '2 次元線
'                  VtChChartType3dArea          '3 次元面
'                  VtChChartType2dArea          '2 次元面
'                  VtChChartType3dStep          '3 次元階段
'                  VtChChartType2dStep          '2 次元階段
'                  VtChChartType3dCombination   '3 次元組み合わせ
'                  VtChChartType2dCombination   '2 次元組み合わせ
'                  VtChChartType2dPie           '2 次元パイ
'                  VtChChartType2dXY            '2 次元 XY
'---------------------------------------------------------------
End Sub


Private Sub sDataOpen()
'グラフ用のデータを作成及び読み込み
   Dim Dat(0 To 5, 0 To 3) As Variant
   Dat(0, 1) = "国語"
   Dat(0, 2) = "数学"
   Dat(0, 3) = "英語"
  
   Dat(1, 0) = "浅野"
   Dat(1, 1) = 69       '国語の点数
   Dat(1, 2) = 81       '数学の点数
   Dat(1, 3) = 73       '英語の点数
  
   Dat(2, 0) = "安室"
   Dat(2, 1) = 87
   Dat(2, 2) = 80
   Dat(2, 3) = 72
  
   Dat(3, 0) = "加藤"
   Dat(3, 1) = 74
   Dat(3, 2) = 82
   Dat(3, 3) = 96
  
   Dat(4, 0) = "斉藤"
   Dat(4, 1) = 71
   Dat(4, 2) = 69
   Dat(4, 3) = 81
  
   Dat(5, 0) = "鈴木"
   Dat(5, 1) = 84
   Dat(5, 2) = 86
   Dat(5, 3) = 75
  
   'グラフに表示する配列データを設定する
   MSChart1.ChartData = Dat()
End Sub

Private Sub Form_Resize()
   'フォームのサイズ変更に合わせて MSChart コントロールの表示サイズも変更する
   MSChart1.Move 0, 0, Me.ScaleWidth, Me.ScaleHeight
End Sub

--------------------------------------------------------------------------------
(画像をクリックすると元のサイズで見られます。)

上記の設定画面                 こんな事もできます



 [スレッド一覧へ] [親スレッドへ]