アプリ版:「スタンプのみでお礼する」機能のリリースについて

excel2003で作成したマクロで、excel2003上では動作するのですが、excel2007ではエラーになります。

調べた限りでは、excel2007でVBAの仕様が変わったということも無いようですが、新しくexcel2007でマクロを記録してみてもエラーになり、困っています。

マクロの内容は、グラフの系列にラベルの書式設定をするというものです。

エラー内容「'HasDataLabels' メソッドは失敗しました: 'Series'オブジェクト」

----------------------------
Sub LabelSet()

Dim col_srs As SeriesCollection
Dim obj_srs As Series
    
    Sheets("Sheet1").ChartObjects(1).Activate
    Set col_srs = ActiveChart.SeriesCollection

    'データ系列ごとに個々の系列名を表示
    For Each obj_srs In col_srs
      With obj_srs
        .HasDataLabels = True
        .DataLabels.ShowSeriesName = True
        .DataLabels.ShowValue = True
        .DataLabels.Separator = Chr(10)
      End With
    Next
End Sub
----------------------------

A 回答 (1件)

当方のExcel2007では問題なく動くようです。


下記のようにすればどうなるでしょうか?

For Each obj_srs In Sheets("Sheet1").ChartObjects(1).Chart.SeriesCollection
With obj_srs
.HasDataLabels = True
.DataLabels.ShowSeriesName = True
.DataLabels.ShowValue = True
.DataLabels.Separator = Chr(10)
End With
Next
    • good
    • 0
この回答へのお礼

早速の回答ありがとうございました。
お礼が遅くなり申し訳ありません。

問題の切り分けができていなかったようです。
新たに簡単なグラフを作り、上記のコードを実行したところ、問題なく動作しました。

散々試行錯誤したのですが、どうやら「シートの保護」の問題でした。
普段このシートには保護がかけてあり、「許可する操作」の「オブジェクトの編集」にチェックを入れています。
Excel2003ではその状態で上記マクロが動くのですが、Excel2007ではエラーになる、ということだったようです。

保護を全て外すと、元のコードでも問題なく動きました。
的外れな質問だったということですね・・。
せっかく回答いただいたのにお粗末な結末ですみません。

お礼日時:2010/04/02 15:40

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!