2016-08-26 55 views
0
ActiveSheet.Shapes.AddChart2(227, xlLine).Select 
    ActiveChart.SeriesCollection.NewSeries 
    ActiveChart.FullSeriesCollection(1).Name = "=Sheet1!$C$4" 
    ActiveChart.FullSeriesCollection(1).Values = "=Sheet1!$D$4:$AC$4" 
    ActiveChart.FullSeriesCollection(1).XValues = "=Sheet1!$D$3:$AC$3"  

ActiveSheet.ChartObjects("Chart 2").Activate 
     ActiveChart.SetElement (msoElementPrimaryCategoryAxisTitleAdjacentToAxis) 
     ActiveChart.SetElement (msoElementPrimaryValueAxisTitleAdjacentToAxis) 
     ActiveChart.Axes(xlValue, xlPrimary).AxisTitle.Text = "Consumption" 
     Selection.Format.TextFrame2.TextRange.Characters.Text = "Consumption" 
     With Selection.Format.TextFrame2.TextRange.Characters(1, 11).ParagraphFormat 
      .TextDirection = msoTextDirectionLeftToRight 
      .Alignment = msoAlignCenter 
     End With 
     With Selection.Format.TextFrame2.TextRange.Characters(1, 11).Font 
      .BaselineOffset = 0 
      .Bold = msoTrue 
      .NameComplexScript = "+mn-cs" 
      .NameFarEast = "+mn-ea" 
      .Fill.Visible = msoTrue 
      .Fill.ForeColor.RGB = RGB(89, 89, 89) 
      .Fill.Transparency = 0 
      .Fill.Solid 
      .Size = 12 
      .Italic = msoFalse 
      .Kerning = 12 
      .Name = "+mn-lt" 
      .UnderlineStyle = msoNoUnderline 
      .Strike = msoNoStrike 
     End With 
     ActiveChart.Axes(xlCategory).AxisTitle.Select 
     ActiveChart.Axes(xlCategory, xlPrimary).AxisTitle.Text = "Weeks" 
     Selection.Format.TextFrame2.TextRange.Characters.Text = "Weeks" 
     With Selection.Format.TextFrame2.TextRange.Characters(1, 5).ParagraphFormat 
      .TextDirection = msoTextDirectionLeftToRight 
      .Alignment = msoAlignCenter 
     End With 
     With Selection.Format.TextFrame2.TextRange.Characters(1, 5).Font 
      .BaselineOffset = 0 
      .Bold = msoTrue 
      .NameComplexScript = "+mn-cs" 
      .NameFarEast = "+mn-ea" 
      .Fill.Visible = msoTrue 
      .Fill.ForeColor.RGB = RGB(89, 89, 89) 
      .Fill.Transparency = 0 
      .Fill.Solid 
      .Size = 12 
      .Italic = msoFalse 
      .Kerning = 12 
      .Name = "+mn-lt" 
      .UnderlineStyle = msoNoUnderline 
      .Strike = msoNoStrike 
     End With 
     Range("H7").Select 
     ActiveSheet.ChartObjects("Chart 2").Activate 
     ActiveSheet.Shapes("Chart 2").IncrementLeft -206.25 
     ActiveSheet.Shapes("Chart 2").IncrementTop -33.75 
     ActiveSheet.ChartObjects("Chart 2").Activate 
     ActiveSheet.Shapes("Chart 2").ScaleWidth 2.3979166667, msoFalse, _ 
      msoScaleFromTopLeft 
     ActiveChart.SetElement (msoElementDataLabelTop) 

皆さん、私はレコードマクロを使用してグラフを作成しました。問題は、マクロが軸タイトルの1つを構成できないためにエラーが発生することです。また、チャートを作成するときには、軸のタイトルが付いていないことにも注意してください。 "+"を押すと、軸のタイトルを追加することができます。コードでは、追加しようとしているようですが、実際には全く動作しません。私はコードエラーを見ることができないので、私は解決策を見つけることができません。たぶんあなたは何かを見たり、タイトルを追加するためのより良い方法を知っているかもしれません。ありがとうマクロで2番目の軸のタイトルをグラフに追加するときにエラーが発生しますか?

答えて

0

ハカンデープ!

これがどのように援助なしで14時間になったのかよく分かりませんが、ここには行きます。これはあなたの問題を完全に解決するはずです。

Sub MakinAChart() 
    Dim mychart As ChartObject 
    Set mychart = ThisWorkbook.Sheets(1).ChartObjects("Chart 1") 

    With mychart.Chart 
     .Axes(1, 1).HasTitle = True 
     .Axes(1, 1).AxisTitle.Text = "bottom text" '1 = xlCategory, 1 = xlPrimary 
     .Axes(2, 1).HasTitle = True 
     .Axes(2, 1).AxisTitle.Text = "left text" '2 = xlValue, 1 = xlPrimary 
    End With 
End Sub 

通常、グラフにはデフォルトでx軸タイトルが有効になっています。しかし、あなたがそれをクリックしない限り、y軸はそうではありません。 ExcelのチャートUIが動作する方法のため、マクロの記録を介して表示されたときに暗黙的にtrueに設定されません。

ActiveChart.Axes(2, 1).HasTitle = Trueを軸の名前を付ける前に挿入することもできます。良いフォームはあなたのx軸についても同じことをするでしょう。

乾杯!

+0

答えをいただきありがとうございました。実際に私は助けを得て、これ以上2時間のように話しました。エクセルが最小化されていない限り、これらのコードはあなたを含めて働いていません。私はxlmaximizedを入れて、うまくいった。それは非論理的ですが、うまくいきました。 – hakandeep

+0

私は理由を知ることはできませんが、すべてのコメントは削除されます – hakandeep

+0

あなたが必要な助けを喜んで、党に遅れて現れて嬉しいです。誰もあなたの質問に全く答えなかった何か変わったと思った。 – Tyeler

関連する問題