|
かおり さん、おはようございます。
>どうしても下記の部分で「実行時エラー'1004'アプリケーション定義またはオブジェクト定義のエラーです」と出て止まってしまいます。
>ちなみに環境はExcel2000です。
XL2KとXLXP(私の標準環境)でApplyDataLabelsの名前付き引数が変更になっているためでした、ついでに試したらXL2007でもうまくいかなかったので、いろいろと変更しました。
Sub Macro1()
Dim co As ChartObject, pp As Point, DT As Variant, sc As Series
For Each co In ActiveSheet.ChartObjects
'単体の円グラフなら処理
Select Case co.Chart.ChartType
Case xlPie, xl3DPie, xlPieExploded, xl3DPieExploded
'データラベルを表示 例)『4月;10%』
'//////////////////////////////////////////////////////////////
'共通で使える名前付き引数はこんな感じ
co.Chart.SeriesCollection(1).ApplyDataLabels _
Type:=xlDataLabelsShowLabelAndPercent, _
AutoText:=True, _
LegendKey:=False, _
HasLeaderLines:=False
'データラベルの内容を表示
For Each pp In co.Chart.SeriesCollection(1).Points
'分割(デフォルトはvbLf)
DT = Split(pp.DataLabel.Caption, vbLf)
'結果
MsgBox DT(1), vbInformation, DT(0)
Next
co.Chart.SeriesCollection(1).ApplyDataLabels Type:=xlDataLabelsShowNone
End Select
Next
End Sub
こんな感じです。
ちなみに、
XL2000→引数が違ってて1004エラー(引数を絞って対応)
XL2007→ラベルをCharacters.Textで正しく取得できなくてエラー(Captionに変更)
ということで、前回のコードではXLXPでしかまともに動かないというおそまつw
遅くなって&ややこしくしてすみませんでした。
|
|