次の方法で共有

エクセルVBAグラフ要素

Anonymous
2018-06-09T03:03:28+00:00

お世話になります。

2つのグラフを作成し、2つのグラフ間の要素の塗りつぶしの色をそろえたいと考えています。

エクセルのVBAで以下のようなマクロを作りました。

Sub Macro1()

'

' Macro1 Macro

'

'

Dim myLoop As Long

Dim myColor() As Long

ReDim myColor(5)

myColor(1) = RGB(250, 100, 100)

myColor(2) = RGB(250, 250, 100)

myColor(3) = RGB(100, 250, 100)

myColor(4) = RGB(100, 250, 250)

myColor(5) = RGB(100, 100, 250)

ActiveSheet.Shapes.AddChart2(240, xlXYScatter, 300, 100).Select

    Application.CutCopyMode = False

    For myLoop = 1 To 5

        ActiveChart.SeriesCollection.NewSeries

        ActiveChart.FullSeriesCollection(myLoop).Name = "=Sheet1!$E$" & (myLoop + 1)

        ActiveChart.FullSeriesCollection(myLoop).XValues = "=Sheet1!$B$" & (myLoop + 1)

        ActiveChart.FullSeriesCollection(myLoop).Values = "=Sheet1!$C$" & (myLoop + 1)

        ActiveChart.FullSeriesCollection(myLoop).Select

        With Selection

            .MarkerStyle = 8

            .MarkerSize = 8

        End With

        Selection.Format.Line.Visible = msoFalse

        With Selection.Format.Fill

            .Visible = msoTrue

            .ForeColor.RGB = myColor(myLoop)

            .Transparency = 0

            .Solid

        End With

    Next myLoop

    Range("O2").Select

    ActiveSheet.Shapes.AddChart2(216, xlBarClustered, 700, 100).Select

    Application.CutCopyMode = False

    ActiveChart.SeriesCollection.NewSeries

    ActiveChart.FullSeriesCollection(1).Name = "=Sheet1!$E$2:$E$6"

    ActiveChart.FullSeriesCollection(1).Values = "=Sheet1!$D$2:$D$6"

    ActiveChart.FullSeriesCollection(1).XValues = "=Sheet1!$E$2:$E$6"

    ActiveChart.FullSeriesCollection(1).Select

    For myLoop = 1 To 5

        ActiveChart.FullSeriesCollection(1).Points(myLoop).Select

        With Selection.Format.Fill

            .Visible = msoTrue

            .ForeColor.RGB = myColor(myLoop)

            .Transparency = 0

            .Solid

        End With

        Selection.Format.Line.Visible = msoFalse

    Next myLoop

End Sub

すると、散布図のほうは要素の色が変更されず、マーカーの線の色が変更されます。

マーカーの線は非表示にしてあります。

どのような間違いがありますか?

お忙しいところ恐縮ですがご教示お願い致します。

開発者テクノロジ | Visual Basic for Applications

ロックされた質問。 この質問は、Microsoft サポート コミュニティから移行されました。 役に立つかどうかに投票することはできますが、コメントの追加、質問への返信やフォローはできません。

0 件のコメント コメントはありません

質問作成者が受け入れた回答

Anonymous
2018-06-11T13:33:41+00:00

xlcolorindexoneではなくxlcolorindexnoneでした。

この回答は役に立ちましたか?

0 件のコメント コメントはありません

質問作成者が受け入れた回答

Anonymous
2018-06-11T13:17:30+00:00

マーカーの色は

Activechart.seriescollection(myloop).format.fill.forecolor.rgb=mycolor(myloop)

で変えることができました。

マーカーの線は

Activechart.seriescollection(myloop).markerforegroundcolorindex=xlcolorindexone

で消すことができました。

マクロの記録そのままだといろいろ問題が生じることがあることがわかりました。

ありがとうございました。

この回答は役に立ちましたか?

0 件のコメント コメントはありません

1 件の追加の回答

並べ替え方法: 最も役に立つ
  1. Anonymous
    2018-06-11T05:42:20+00:00

    ​Happy111Happy111 さん、こんにちは。

    マイクロソフト コミュニティをご利用いただき、ありがとうございます。

    VBA でグラフ要素の塗りつぶしの色をそろえたいのですね。

    VBA が関連する場合、一般向けのこのマイクロソフト コミュニティでは該当するカテゴリがないため情報が集まりにくいかもしれません。

    今回の内容であれば、開発者の方々が多く情報交換されている MSDN フォーラムの VBA のカテゴリに投稿してみるとアドバイスが寄せられやすくなると思います。

    MSDN フォーラム - Visual Basic for Application (VBA)

    よければそちらを利用してみてくださいね。

    この回答は役に立ちましたか?

    2 人がこの回答が役に立ったと思いました。
    0 件のコメント コメントはありません