Microsoft 製品に組み込まれている Visual Basic の実装。
xlcolorindexoneではなくxlcolorindexnoneでした。
このブラウザーはサポートされなくなりました。
Microsoft Edge にアップグレードすると、最新の機能、セキュリティ更新プログラム、およびテクニカル サポートを利用できます。
お世話になります。
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
すると、散布図のほうは要素の色が変更されず、マーカーの線の色が変更されます。
マーカーの線は非表示にしてあります。
どのような間違いがありますか?
お忙しいところ恐縮ですがご教示お願い致します。
Microsoft 製品に組み込まれている Visual Basic の実装。
ロックされた質問。 この質問は、Microsoft サポート コミュニティから移行されました。 役に立つかどうかに投票することはできますが、コメントの追加、質問への返信やフォローはできません。
質問作成者が受け入れた回答
xlcolorindexoneではなくxlcolorindexnoneでした。
質問作成者が受け入れた回答
マーカーの色は
Activechart.seriescollection(myloop).format.fill.forecolor.rgb=mycolor(myloop)
で変えることができました。
マーカーの線は
Activechart.seriescollection(myloop).markerforegroundcolorindex=xlcolorindexone
で消すことができました。
マクロの記録そのままだといろいろ問題が生じることがあることがわかりました。
ありがとうございました。
Happy111Happy111 さん、こんにちは。
マイクロソフト コミュニティをご利用いただき、ありがとうございます。
VBA でグラフ要素の塗りつぶしの色をそろえたいのですね。
VBA が関連する場合、一般向けのこのマイクロソフト コミュニティでは該当するカテゴリがないため情報が集まりにくいかもしれません。
今回の内容であれば、開発者の方々が多く情報交換されている MSDN フォーラムの VBA のカテゴリに投稿してみるとアドバイスが寄せられやすくなると思います。
◆MSDN フォーラム - Visual Basic for Application (VBA)
よければそちらを利用してみてくださいね。