0

Excel 2010 でピボット グラフのグラフ タイトルを移動する小さなマクロを作成しています。グラフをアクティブにしてグラフのタイトルを選択する方法を使用して動作させることができます。これがそのコードです

Private Sub Worksheet_Calculate()

    'On Error GoTo GetOut
    Application.ScreenUpdating = False
    Application.EnableEvents = False

    ActiveSheet.ChartObjects("Chart 1").Activate
    If ActiveChart.HasTitle = True Then
    ActiveChart.ChartTitle.Select
            With Selection
                .Left = 311.982
                .Top = 9.559
            End With
    End If

GetOut:
    ActiveSheet.Range("M21").Select
    Application.ScreenUpdating = True
    Application.EnableEvents = True
End Sub

しかし、オブジェクトのアクティブ化は避けたいので、これを書きました

Private Sub Worksheet_Calculate()

Dim empChart As ChartObject

'On Error GoTo GetOut
Application.ScreenUpdating = False
Application.EnableEvents = False

Set empChart = ActiveSheet.ChartObjects("Chart 1")
If empChart.HasTitle = True Then
    With empChart.ChartTitle
        .Left = 311.982
        .Top = 9.559
    End With
End If

GetOut:
ActiveSheet.Range("M21").Select
Application.ScreenUpdating = True
Application.EnableEvents = True
End Sub

しかし、これにより実行時エラー 438: オブジェクトはこのプロパティまたはメソッドをサポートしていません。一生理由が分からない。私はあまり上手ではないので、おそらくばかげたことですが、どんな助けでも大歓迎です

4

1 に答える 1

3

ワークシートChartObjectには子Chartオブジェクトがあります: (例) を使用してこれに直接アクセスできます。

Dim cht As Chart
Set cht = ActiveSheet.ChartObjects("Chart 1").Chart 

その後cht、ActiveChart を使用する代わりに直接操作できます。

于 2013-06-06T23:02:31.550 に答える