玄関へお回り下さい。
Microsoft Chart Control6.0を使ってのグラフ表示例(5個)              (SNo.209)
使用コントロール Microsoft Chart Control(AxMicrosoft Chart Control)
その他条件 WindowsXP(Vista) Visual Basic 2005(VB2008)VB2005
パソコン内にVB6.0がインストールされていないと使用できません。
ツールボックスを右クリックして、アイテムの選択又は、アイテムの追加と削除をクリックして、COM コンポーネント タブ内のMicrosoft Chart Control6.0 にチェックを入れ、ツールボックス内のMicrosoft Chart Control6.0コントロールをFormに貼り付けて下さい。
Public Class Form1   'SampleNo=209 WindowsXP(SP2) VB2005(EE) Framework2.0 2006.08.11

Private Sub Form1_Load(ByVal sender As System.Object, _
                       ByVal e As System.EventArgs) Handles MyBase.Load
   'データの読込
   Call DataOpenSet()

   '表示するグラフの種類を設定
   'AxMSChart1.chartType = MSChart20Lib.VtChChartType.VtChChartType2dLine  '2D折れ線グラフ
   AxMSChart1.chartType = MSChart20Lib.VtChChartType.VtChChartType2dBar    '2D棒グラフ

   'タイトルの設定及び表示
   Call TitleSet()

   '凡例の表示
   Call ShowLegend()

   'データポイントラベルの設定及び表示
   Call DataLabel()

End Sub

Private Sub DataLabel()
'★★★★★  データポイントラベルの設定  ★★★★★
   For Each series As Object In AxMSChart1.Plot.SeriesCollection
      With series.DataPoints.Item(-1).DataPointLabel
         '表示位置
         .LocationType = MSChart20Lib.VtChLabelLocationType.VtChLabelLocationTypeAbovePoint
         .Component = MSChart20Lib.VtChLabelComponent.VtChLabelComponentValue
         .ValueFormat = "0"    '"0.0"  "##" 表示フォーマット
         '表示色棒の色と同じ色で
         '.VtFont.VtColor.Set 72, 255, 72 '別に指定する場合
         .VtFont.VtColor.Set( _
         series.DataPoints(-1).Brush.FillColor.Red, _
         series.DataPoints(-1).Brush.FillColor.Green, _
         series.DataPoints(-1).Brush.FillColor.Blue)
         .Backdrop.Frame.Style = MSChart20Lib.VtFrameStyle.VtFrameStyleNull
      End With
   Next
End Sub

Private Sub ShowLegend()
'★★★★★  凡例の設定  ★★★★★
   With AxMSChart1
      '凡例文字の設定
      .Plot.SeriesCollection(1).LegendText = "国  語"
      .Plot.SeriesCollection(2).LegendText = "数  学"
      .Plot.SeriesCollection(3).LegendText = "英  語"
      '凡例の表示位置を設定
      .Legend.Location.LocationType = MSChart20Lib.VtChLocationType.VtChLocationTypeRight
      .ShowLegend = True
   End With
End Sub

Private Sub TitleSet()
'★★★★★  タイトルの設定  ★★★★★
   With AxMSChart1.Title
      'タイトルのワードラップの設定
      .TextLayout.WordWrap = True
      .TextLayout.VertAlignment = MSChart20Lib.VtVerticalAlignment.VtVerticalAlignmentCenter
      'タイトル文字の設定
      .Text = "期末テスト結果" & vbCrLf & "(3年B組)"
      '表示位置を中央に
      .TextLayout.HorzAlignment = MSChart20Lib.VtHorizontalAlignment.VtHorizontalAlignmentCenter
      'タイトルを水平方向に表示
      .TextLayout.Orientation = MSChart20Lib.VtOrientation.VtOrientationHorizontal
      .VtFont.Name = "MS 明朝"
      'フォントサイズ
      '.VtFont.Size = 53 以上ならOK
      .VtFont.Size = 14
      'フォントスタイル(太字)
      .VtFont.Style = MSChart20Lib.VtFontStyle.VtFontStyleBold
      '図表のフォント効果を設定(アンダーライン)
      .VtFont.Effect = MSChart20Lib.VtFontEffect.VtFontEffectUnderline
      'タイトルの表示色(赤色)
      .VtFont.VtColor.Set(255, 0, 0)
   End With
End Sub

Private Sub DataOpenSet()
'★★★★★  データの設定  ★★★★★
   Dim mydata(5, 3) As Object
   mydata(0, 1) = "国語"
   mydata(0, 2) = "数学"
   mydata(0, 3) = "英語"

   mydata(1, 0) = "浅野"
   mydata(2, 0) = "安室"
   mydata(3, 0) = "加藤"
   mydata(4, 0) = "斉藤"
   mydata(5, 0) = "鈴木"

   mydata(1, 1) = 69    '浅野の国語の点数
   mydata(1, 2) = 81    '浅野の数学の点数
   mydata(1, 3) = 73    '浅野の英語の点数
   mydata(2, 1) = 87    '安室の国語の点数
   mydata(2, 2) = 80    '安室の数学の点数
   mydata(2, 3) = 72    '安室の英語の点数
   mydata(3, 1) = 74    '加藤の国語の点数
   mydata(3, 2) = 82    '加藤の数学の点数
   mydata(3, 3) = 96    '加藤の英語の点数
   mydata(4, 1) = 71    '斉藤の国語の点数
   mydata(4, 2) = 69    '斉藤の数学の点数
   mydata(4, 3) = 81    '斉藤の英語の点数
   mydata(5, 1) = 84    '鈴木の国語の点数
   mydata(5, 2) = 86    '鈴木の数学の点数
   mydata(5, 3) = 75    '鈴木の英語の点数

   AxMSChart1.ChartData = mydata
End Sub
End Class
お断り
Microsoft Chart Control はCOMオブジェクトなので当然、Marshal.ReleaseComObject での解放処理が必要ですが、Excel ほど、影響を受けない(見られない)ようなので、操作をわかりやすくする意味から省略しておりますが、実使用においては解放処理を付け加えてご使用願います。
上記以外の操作については、VB6.0のMSChart関係のサンプルを参考に移植して下さい。
定数が違う事以外は殆ど、VB6.0のコードがそのまま使用できます。
  上記サンプルの実行結果の画像


2006/08/11


VBレスキュー(花ちゃん)
VB.NET2003  VB2005