VB6.0用掲示板の過去のログ(No.2)−VBレスキュー(花ちゃん)
[記事リスト] [新規投稿] [新着記事] [ワード検索] [管理用]

投稿日: 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


- 関連一覧ツリー (★ をクリックするとツリー全体を一括表示します)

- 返信フォーム (この記事に返信する場合は下記フォームから投稿して下さい)

- VBレスキュー(花ちゃん) - - Web Forum -