以下は、ワークブックの各ワークシートにチャートを作成するためのコードです。私はこのコードをオンラインで見つけ、必要なものを修正しました。私はVBAの初心者であり、 "with"ステートメントでコードを操作する方法がわかりません。このコードは、チャートのタイトルであるB1セルにある情報を変更するまで有効でした。それ以来、私のコードは2つのシリーズを作成しています。シリーズ2はグラフにプロットされていませんが、凡例に表示されます。グラフをクリックして収集しているデータを表示すると、そのデータは表示されません。imgur link [1]:https://i.stack.imgur.com/n1jPc.jpgを参照してください。私が見たいシリーズを見ると、A630とB3:B630が表示されます。グラフのシリーズを非表示VBA
このシリーズ2を削除するにはどうすればよいですか?また、A1にテキストを入力してシリーズ3を作成しました。シリーズ1のみが自分のチャートに表示されていることを確認します。
私は既にシリーズを削除し、自分のコードでそれを使用するためのマクロを記録しようとしましたが、コード内でブレークしているため、常に受信できません。記録したマクロは、私はまた、シリーズを隠す方法を発見した ActiveChart.FullSeriesCollection(2).Delete
を有効にします。 ActiveSheet.ChartObjects(「表1」)を与えたが、再び私は私の後にそれを挿入したとき。 SeriesCollectionブロック「コード内にブレーク」エラーを表示します。 Selection.Format.Line.Visible = msoFalse
オリジナルコードチャート
Sub chartcreation()
Dim sh As Worksheet
Dim chrt As Chart
For Each sh In ActiveWorkbook.Worksheets
Set chrt = sh.Shapes.AddChart.Chart
With chrt
'Data?
.ChartType = xlXYScatterSmooth
.SeriesCollection.NewSeries
.SeriesCollection(1).Name = sh.Range("B1").Value
.SeriesCollection(1).XValues = sh.Range("$A$3:$A$630")
.SeriesCollection(1).Values = sh.Range("$B$3:$B$630")
'Titles
.HasTitle = True
.ChartTitle.Text = sh.Range("B1").Value
.Axes(xlCategory, xlPrimary).HasTitle = True
.Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = sh.Range("A2")
.Axes(xlValue, xlPrimary).HasTitle = True
.Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = sh.Range("B2")
'Formatting
.Axes(xlCategory).HasMinorGridlines = False
.Axes(xlValue).HasMajorGridlines = True
.Axes(xlCategory).MinimumScale = 15
.Axes(xlCategory).MaximumScale = 90
.Axes(xlValue).HasMinorGridlines = False
.Axes(xlValue).MinimumScale = 0
.Axes(xlValue).MaximumScale = 60
.HasLegend = True
End With
Next
End Subの
を作成するためのコードを変更するオプションが上記の2は完全に間違っている場合は、私は次のことを見つけました各ワークシートの各チャートを通過してシリーズを削除するコードですが、私のニーズに合わせて変更する方法はわかりません。 プライベートサブのWorkbook_Open()
Dim Sht As Worksheet
Dim ShtName As String
Dim R As Range
Dim ASht As Worksheet
Set R = ActiveCell 'Save the activecell
Set ASht = ActiveSheet 'Save the activesheet
Application.ScreenUpdating = False
For Each Sht In ActiveWorkbook.Sheets
ShtName = Sht.Name
Select Case ShtName
Case "One", "Two", "Three" 'Charts are on multiple sheets
Call DeleteLegendEntries(Sht)
End Select
Next Sht
ASht.Activate 'Back to original sheet
R.Activate 'Back to original cell
Application.ScreenUpdating = True
End Sub
はもう一度、私は非表示にしたり、私は1つのワークブック内の各ワークシートで、名前を変更したシリーズ1、シリーズを除くすべてを削除したいと思います。ご協力いただきありがとうございます。