0

VBA を使用してグラフを作成する Excel シートがあります。問題は、チャートを生成した後、その形状を組み込みの形状スタイルに設定したことです。しかし、次のコードを実行しても何も起こりません。

ActiveSheet.Shapes("AdoptChart").Select
ActiveSheet.ChartObjects("AdoptChart").Activate
ActiveSheet.Shapes("AdoptChart").ShapeStyle = msoShapeStylePreset22

この行が実行されるActiveSheet.Shapes("AdoptChart").ShapeStyle = msoShapeStylePreset22と、.ShapeStyleプロパティは更新されません。つまり、この行の前は 0 で、この行の実行後もまだ 0 です。

これは、マクロを記録し、チャートの形状スタイルを手動で設定して取得したコードです。

Excel 2010 を使用していますが、Excel ファイルは 2003 のものです (互換モードで実行しています)。

編集:これは、形状を手動で選択した後に取得したマクロです。

Sub shape()
'
' shape Macro
'

'
    ActiveSheet.Shapes("AdoptChart").ShapeStyle = msoShapeStylePreset22
    Range("I7").Select
End Sub
4

1 に答える 1

0

私のコメントによると、2010年に互換モードで開いた新しいExcel2003ワークブックのマクロを記録することをお勧めします。したがって、このリファレンスに示されているように、2010リボンを利用できます。ただし、今後これらのグラフを使用する予定のExcelのバージョンを知ることは非常に重要です。2010年になるのか2003年になるのか.. ShapeStyle2007年に追加されたように...

2。[フォーマット]タブで、次のいずれかを実行します。

[現在の選択]グループで、[フォーマットの選択]をクリックし、[フォーマット]ダイアログボックスで、必要なフォーマットオプションを選択します。[図形のスタイル]グループで、[その他]ボタンのボタンの画像をクリックし、スタイルを選択します。

Excelリボン画像:

ここに画像の説明を入力してください

[図形のスタイル]グループで、[図形の塗りつぶし]、[図形のアウトライン]、または[図形の効果]をクリックし、必要な書式設定オプションを選択します。

John Peltierのサイトでこの記事を確認してください。2007年と2003年のコード比較は、非常に有益です。では、ワークブックとしてExcel2010に保存してみませんか。

Sub FormatConnector2003(oConnector As Shape)
  With oConnector
    If .Connector Or .Type = msoLine Then
      ' rough approximation of the Excel 2007 preset line style #17
      .Line.EndArrowheadStyle = msoArrowheadTriangle
      .Line.Weight = 2
      .Line.ForeColor.RGB = RGB(192, 80, 77)
      .Shadow.Type = msoShadow6
      .Shadow.IncrementOffsetX -4.5
      .Shadow.IncrementOffsetY -4.5
      .Shadow.ForeColor.RGB = RGB(192, 192, 192)
      .Shadow.Transparency = 0.5
      .Visible = msoTrue
    End If
  End With
End Sub

Sub FormatConnector2007(oConnector As Shape)
  With oConnector
    If .Connector Or .Type = msoLine Then
      .Line.EndArrowheadStyle = msoArrowheadTriangle
      .ShapeStyle = msoLineStylePreset17
    End If
  End With
End Sub
于 2013-02-11T06:10:07.877 に答える