2012-04-30 24 views
4

私はチャートが入ったシートを持っています。トレンドラインのオン/オフを切り替えるボタンを挿入する必要があります。最初に、私はトレンドラインが存在するかどうかをチェックする必要があります。シンプルに聞こえるが、ナッツを運転している!!!TrendlineがVBAに存在することを確認してください

ここ

私はtrednlineを作成し、それをフォーマットするために使用するコードは次のとおりです。

If Sheets("Sheet 1").ChartObjects(1).SeriesCollections(1).Trendlines(1).Count = 1 Then 
    [Statement] 
End If 
しかし、テストは失敗します。

Sub Trending() 

Sheets("Sheet1").ChartObjects(1).Activate 
    ActiveChart.SeriesCollection(1).Trendlines.Add 
    ActiveChart.SeriesCollection(1).Trendlines(1).Select 
    With Selection 
     .Type = xlPolynomial 
     .Order = 3 
     .Border.ColorIndex = 3 
     .Border.Weight = xlMedium 

    End With 

End Sub 

トレンドラインが存在するかどうかを確認するために、私が試してみました。

私は間違っていますか?それを行う汚い方法は何ですか?

おかげで、 アル

+0

「Trendlines(1)」でインデックスを作成するのではなく、「Trendlines.Count」を使ってみましたか? –

+0

VBA Help:Trendlinesメソッドを使用してTrendlinesコレクションを返します。次の例は、Chart1の系列1の傾向線の数を表示します。* 'MsgBox Charts(1).SeriesCollection(1).Trendlines.Count' –

+0

私はこのRemnantを試しました。シートに1つのチャートがあり、その上にアクティブなトレンドラインがあるにもかかわらず、「下付き文字が範囲外です」と表示されます。本当にイライラする。 –

答えて

5

あなたIf声明と間違って三つのことがあります。それはSheet1、ないSheet 1

  1. :あなたは小さいビットであなたの文を分解し、それらを別々にテストされていた、あなたがことがわかっているだろう。立つ瀬がない。これが原因で、「下付き文字が範囲外です」というエラーが発生します。
  2. SeriesCollectionプロパティはChartオブジェクトに適用され、ChartObjectオブジェクトには適用されません。はい、私はこの愚かなExcel用語が混乱していることを知っています。 Anyhoo、ChartObjects(1).SeriesCollection(1)ではなく、ChartObjects(1).Chart.SeriesCollection(1)が必要です。
  3. Trendlines(1)Trendlineオブジェクトを返します。これはCountではありません。トレンドラインコレクションの商品アイテムを数えたいとします。つまり、ではなく、Trendlines(1).Countです。要約する

、これはそれを記述する方法です:

If Sheets("Sheet1").ChartObjects(1).Chart _ 
    .SeriesCollection(1).Trendlines.Count > 1 Then 
    MsgBox "there is exactly one trendline" 
End If 

注:トレンドライン数が正確に1である場合にのみ動作します。複数の可能性がある場合は=>=に置き換えることを検討してください。

+0

Jean-Francois、あなたのコメントは、この問題と一般的な私のVBA初心者の知識を解決するために非常に便利です。どうもありがとうございました! –

+0

+1非常によく説明されています! –

+0

申し訳ありませんJean-Francois、私はStackoverflowを初めて使っています。アップアップすると、左の数字を「1」ではなく「2」に設定することです(これはスコアの一種ですか?)。もしそうなら、私はちょうど:-)これがあなたが指していたものかどうか私に教えてください。あなたはうまく説明し、アップヴォートに値する。 –

関連する問題