投稿日 | : 2005/08/02(Tue) 11:57 |
投稿者 | : モモ |
Eメール | : |
URL | : |
タイトル | : Re^4: 質問!MSChartのマーカー色変更 |
花ちゃんさん、ご回答ありがとうございます。
提示されたコードでマーカーの色を変更することは
できました。
私の作成したコードは花ちゃんさんの
サイトのMSChart関係を参考させていただいております。
コードをコピってよく理解せずに使用しているかもしれませんが
色の指定を付け加えただけです。
Dim x As Integer
Dim colorTemp, red, green, blue
Dim Series As Object
'======================================================
'折れ線の場合マーカを表示
If intChartType = VtChChartType2dLine And _
mnuOption2dLineMarker.Checked = True Then
'マーカの表示
For Each Series In MSChart1.Plot.SeriesCollection
Series.SeriesMarker.Show = False
'自動のマーカを解除
Series.SeriesMarker.Auto = False
With Series.DataPoints.Item(-1)
'個別にマーカを指定 (※TyDBの構造体のLintColorに色を指定)
For j = LBound(TyDB) To UBound(TyDB)
'系列は7つとし、ユーザーが任意で表示する項目を選択する
’その際に表示する構造体にグラフのカラムをColNoに代入しておく
If 0 < TyDB(j).ColNo And TyDB(j).ColNo <= chParts.ColumnCount Then
’マーカーの種類を指定
Select Case Series
Case "A1": .Marker.Style = VtMarkerStyleUpTriangle
Case "A2": .Marker.Style = VtMarkerStyle3dBall
Case "A3": .Marker.Style = VtMarkerStyleCircle
Case "A4": .Marker.Style = VtMarkerStyleStar
Case "A5": .Marker.Style = VtMarkerStyleUpTriangle
Case "A6": .Marker.Style = VtMarkerStyleSquare
Case "A7": .Marker.Style = VtMarkerStyleDiamond
End Select
'*--マーカーの色を設定
'色の三原色を取得
colorTemp = TyDB(j).LintColor
red = colorTemp And 255
green = Int(colorTemp / 256) And 255
blue = Int(colorTemp / 65536) And 255
'色を設定します。
'****ここで、系列1のみ変更ができない***
MSChart1.Plot.SeriesCollection _
.Item(TyDB(j).ColNo).DataPoints.Item(-1).Marker.Pen.VtColor.Set
red, green, blue
’指定した色の確認
’If TyDB(j).ColNo = 1 Then Text1.BackColor = RGB(red, green, blue)
’If TyDB(j).ColNo = 2 Then Text2.BackColor = RGB(red, green, blue)
’If TyDB(j).ColNo = 3 Then Text3.BackColor = RGB(red, green, blue)
End If
Next
End With
Series.SeriesMarker.Show = True
Next
Else
If 1 <= MSChart1.ColumnCount Then
For Each Series In MSChart1.Plot.SeriesCollection
Series.SeriesMarker.Show = False 'マーカーの非表示
Series.Pen.Width = 30 '2D折線の太さ
Next
End If
End If
'======================================================
Debugで確認したところ 系列1のマーカーを変更する時だけ
マーカーが表示されていませんでした。
なにか関係があるのでしょうか?
VB6.0 Windows2000