vba 将图例移至指定位置

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vba 将图例移至指定位置相关的知识,希望对你有一定的参考价值。

excel一般生成图例位置在是下部,上部等位置,现在想将图例放在图表的右上角,尝试用录制宏的方法,但是不能复现,希望vba高手指点一下。

在sheet1中建立数据源,就是你需要的数据内容
打开vba开发环境,建立一个方法,代码如图
运行代码,可以直接点击开发环境的绿色三角,也可以建立一个按钮,之后call这个方法
参考技术A 在sheet1中建立数据源,就是你需要的数据内容

打开vba开发环境,建立一个方法,代码如图
运行代码,可以直接点击开发环境的绿色三角,也可以建立一个按钮,之后call这个方法追问

没看到代码,生成图表没问题,就是图例的位置无法放至指定的位置,每次生成图表都是在默认位置。

本回答被提问者采纳

使用 VBA 编辑图例

【中文标题】使用 VBA 编辑图例【英文标题】:Edit legend using VBA 【发布时间】:2020-07-03 19:35:50 【问题描述】:

我将图表(我在 excel 中准备的带有图例的图表)从 excel 复制到 .ppt(下面的代码)。如何更改/编辑 legend.Top 和 legend.size?

我的代码不工作...

Sub pptfromexcel()
    Dim pptapp As PowerPoint.Application
    Dim pptppt As PowerPoint.Presentation
    Dim pptsld As PowerPoint.Slide
    Dim shp As Object
    Set chart1 = ActiveSheet.ChartObjects("Chart 1")
    'Dane do wykresów
    Set d5 = Sheets("Wykresy").Range("Q32:S40")
    Set d6 = Sheets("Wykresy").Range("Q47:S51")

    Set v1PK = Sheets("Wykresy").Range("G7:G7")
    Set v1PM = Sheets("Wykresy").Range("G8:G8")

    Set pptapp = New PowerPoint.Application
    Set pptppt = pptapp.Presentations.Open("C:\Users\Desktop\ppt.pptx")
    pptapp.Visible = True
    pptapp.Activate

    Set pptsld2 = pptppt.Slides(2)


    chart1.Copy
    Set chart1a = pptsld2.Shapes.PasteSpecial

    With chart1a
        .Height = 132
        .Width = 157
        .Left = 26.1
        .Top = 120
        .haslegend=true
        .legend.size = 12
        .legend.top = 150
    End With
End Sub

【问题讨论】:

当你说你的代码不工作时——它在哪里停止工作,它给出了什么信息?阅读How to Ask。 您的模块顶部似乎没有Option Explicit - 所以它可能是一个简单的拼写错误的变量名,导致代码停止工作。我猜chart1a 不是图表 - 所以它不会有legend 属性,如haslegendlegend 没有大写为HasLegendLegend 【参考方案1】:

您设置的前四个属性是所有形状的通用属性。图例属性特定于图表。必须发生的第一件事是将其粘贴为 Excel 对象。如果是这种情况,您的形状上有一个 Chart 属性,您可以这样做:

With chart1a
    .Height = 132
    .Width = 157
    .Left = 26.1
    .Top = 120
    .Chart.HasLegend = True
    .Chart.Legend.Size = 12
    .Chart.Legend.Top = 150
End With

【讨论】:

以上是关于vba 将图例移至指定位置的主要内容,如果未能解决你的问题,请参考以下文章

python中matplotlib的图例位置

如何修改Tableau里图例的位置

请教legend图例位置问题

excel的图标如何设置标题、图例

如何自动显示图例,使其触及 Matlab(R 2019b)图中角落的边界?

将 seaborn 情节图例移动到不同的位置