1

次のコードは、バブル パイ チャート (パイ チャートをバブルとして持つバルブ チャート) を作成するためのものです。円グラフをバブル チャートに再帰的にコピーします。私の問題は、この方法では、最終的な円グラフが少し楕円形に見えることです。実際には丸ではありません。私が疑う問題は、ある種のフォーマットに関連しています。

Sub PieMarkers()

Dim chtMarker As Chart
Dim chtMain As Chart
Dim intPoint As Integer
Dim rngRow As Range
Dim lngPointIndex As Long
Dim thmColor As Long
Dim myTheme As String


Application.ScreenUpdating = False
Set chtMarker = ActiveSheet.ChartObjects("chtMarker").Chart
Set chtMain = ActiveSheet.ChartObjects("chtMain").Chart

Set chtMain = ActiveSheet.ChartObjects("chtMain").Chart
Set rngRow = Range(ThisWorkbook.Names("PieChartValues").RefersTo)

For Each rngRow In Range("PieChartValues").Rows
    chtMarker.SeriesCollection(1).Values = rngRow
    ThisWorkbook.Theme.ThemeColorScheme.Load GetColorScheme(thmColor)
    chtMarker.Parent.CopyPicture xlScreen, xlPicture
    lngPointIndex = lngPointIndex + 1
    chtMain.SeriesCollection(1).Points(lngPointIndex).Paste
    thmColor = thmColor + 1
Next

lngPointIndex = 0

Application.ScreenUpdating = True
End Sub

Function GetColorScheme(i As Long) As String
Const thmColor1 As String = "C:\Program Files\Microsoft Office\Document Themes 15\Theme Colors\Blue Green.xml"
Const thmColor2 As String = "C:\Program Files\Microsoft Office\Document Themes 15\Theme Colors\Orange Red.xml"
    Select Case i Mod 2
        Case 0
            GetColorScheme = thmColor1
        Case 1
            GetColorScheme = thmColor2
    End Select
End Function

特定の ubble 選択形式のデータ ポイントをダブルクリックしてから、塗りつぶしと引き伸ばしのオプションに移動すると、問題が解決できることがわかりました (画像の塗りつぶしが選択されている場合にのみ可能です)。問題は、私のデータが変化していることです。これを上記のコードに動的に実装する方法が必要です。これを行う方法はありますか?

ここでこのコンソールを参照しますhttp://s1.directupload.net/file/d/3300/7dlimc3g_png.htm

4

1 に答える 1

1

円グラフが完全な正方形でない場合、これが問題になる可能性があると思います。問題を再現できます。Fill オプションを確認しても、オフセットはすべて0%. それらを調整することはできますが、それは信頼できる方法ではありません。したがって、私が考える最良のオプションは、円グラフ.Parentが正方形であることを確認することです。これを行うには、あなたの前に、次のようにその等しいをそのCopyPictureに設定します。HeightWidth

chtMarker.Parent.Height = chtMarker.Parent.Width  '## Ensure the chartObject is a square, so it will not be distorted when pasted.
chtMarker.Parent.CopyPicture xlScreen, xlPicture
于 2013-06-28T14:01:55.460 に答える