投稿時間: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
|