ExcelでVBAコードを自動的に作成してフォーマットし、チャートのExcelシートに貼り付けることができます。このコードは、株価グラフを除くすべてのグラフでうまく機能しているようです。マクロを実行するたびに、グラフの作成を見ることができますが、書式設定や特別な貼り付けについては、グラフは表示されません。言い換えれば、コードの実行が終了したらグラフを見ることができません。何か変わった株価チャートを使って
在庫グラフで何が起こっているのか分かりません。誰も説明して解決策を教えてもらえますか? ありがとうございました。ここで
は私のコードです:
Sub CreateGraph()
Dim MyRng As Range
Dim LastCell As Long
LastCell = Worksheets(1).Range("E3").End(xlDown).Row
Set MyRng = Worksheets(1).Range("B3:E" & LastCell)
ActiveSheet.Shapes.AddChart.Select
ActiveChart.SetSourceData Source:=MyRng
ActiveChart.ChartType = xlStockHLC
ActiveChart.Location Where:=xlLocationAsObject, Name:="Chart1"
End Sub
Sub FormatChart()
Let Title = Sheets("Sheet1").Cells(2, 1)
ActiveSheet.ChartObjects("Chart 1").Activate
ActiveChart.SeriesCollection(1).Select
ActiveSheet.ChartObjects("Chart 1").Activate
ActiveChart.Axes(xlCategory).Select
ActiveChart.Axes(xlCategory).ReversePlotOrder = True
ActiveSheet.ChartObjects("Chart 1").Activate
ActiveChart.SetElement (msoElementChartTitleAboveChart)
ActiveChart.ChartTitle.Select
ActiveSheet.ChartObjects("Chart 1").Activate
ActiveChart.ChartTitle.Text = Title & "responses*"
With ActiveChart.ChartTitle.Font
.Name = "Arial"
.FontStyle = "Bold"
.Size = 8
End With
With ActiveChart.Axes(xlCategory).TickLabels.Font
.Name = "Arial"
.FontStyle = "Regular"
.Size = 7
End With
With ActiveChart.Axes(xlValue).TickLabels.Font
.Name = "Arial"
.FontStyle = "Regular"
.Size = 7
End With
With ActiveChart.PlotArea.Interior
.ColorIndex = 2
.PatternColorIndex = 1
.Pattern = xlSolid
End With
Range("S4").Select
ActiveWindow.SmallScroll Down:=48
ActiveSheet.ChartObjects("Chart 1").Activate
ActiveChart.Legend.Select
With ActiveChart.Legend.Font
.Name = "Arial"
.FontStyle = "Regular"
.Size = 8
End With
ActiveWindow.SmallScroll Down:=45
ActiveSheet.ChartObjects("Chart 1").Activate
ActiveChart.PlotArea.Select
ActiveSheet.ChartObjects("Chart 1").Activate
ActiveWindow.SmallScroll Down:=-45
ActiveSheet.ChartObjects("Chart 1").Activate
ActiveChart.Axes(xlValue).MajorGridlines.Select
ActiveSheet.ChartObjects("Chart 1").Activate
ActiveWindow.SmallScroll Down:=-54
ActiveSheet.ChartObjects("Chart 1").Activate
ActiveChart.ChartArea.Select
ActiveChart.ChartArea.Width = 500
ActiveChart.ChartArea.Height = 1000
ActiveSheet.ChartObjects("Chart 1").Activate
ActiveSheet.ChartObjects("Chart 1").Activate
ActiveChart.Axes(xlValue).MajorGridlines.Select
ActiveSheet.ChartObjects("Chart 1").Activate
ActiveSheet.ChartObjects("Chart 1").Activate
ActiveSheet.ChartObjects("Chart 1").Activate
ActiveSheet.ChartObjects("Chart 1").Activate
ActiveSheet.ChartObjects("Chart 1").Activate
ActiveChart.Axes(xlValue).Select
ActiveSheet.ChartObjects("Chart 1").Activate
ActiveChart.Axes(xlValue).MajorGridlines.Select
ActiveSheet.ChartObjects("Chart 1").Activate
ActiveSheet.ChartObjects("Chart 1").Activate
ActiveChart.Axes(xlValue).Select
ActiveChart.Axes(xlValue).MinimumScale = 0
ActiveChart.Axes(xlValue).MaximumScale = 100
ActiveChart.Axes(xlValue).MajorUnit = 20
ActiveChart.Axes(xlValue).MajorUnit = 10
With ActiveChart.SeriesCollection(1)
.Interior.Color = RGB(0, 51, 153)
End With
With ActiveChart.SeriesCollection(2)
.Interior.Color = RGB(80, 116, 77)
End With
ActiveSheet.ChartObjects("Chart 1").Activate
ActiveSheet.ChartObjects("Chart 1").Activate
Selection.Cut
Sheets("Chart2").Select
ActiveChart.Paste
End Sub
あなたのコードの一部を投稿する場合は、より良い反応を得る可能性があります。 – bernie
アダムに感謝します。私は自分のコードを投稿しました。 – Nupur