- 日時: 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
-------------------------------------------------------------------------------- (画像をクリックすると元のサイズで見られます。)
上記の設定画面 こんな事もできます
|