vba:右对齐图表的刻度标签(堆积条100%)

时间:2016-10-07 16:17:45

标签: excel vba alignment powerpoint

我有以下问题: 我正在尝试使用Excel中的数据在PowerPoint中创建图表。

一切正常,我打开PowerPoint,我创建了一个图表

Set myChart = ppSlide.Shapes.AddChart2(297, xlBarStacked100).Chart

然后我将我的数据从Excel复制到图表(包括项目的文本),最后我想格式化图表(大小,位置,颜色......)。一切都工作正常,唯一不起作用的是刻度标签的对齐。它们会自动右对齐,但如果它们太长而需要2行,它们就会居中。但我希望他们正确对齐。 我知道如何更改ticklabels(f.e。使其变为粗体:

myChart.Axes(xlCategory).TickLabels.Font.Bold = msoTrue

但我不知道如何正确对齐。我无法使用宏录制器,因为我无法在Excel中找到此功能,只能在ppt。

中找到

任何人都有一个想法,我该怎么做?

先谢谢你,我的英语不好......

4 个答案:

答案 0 :(得分:0)

您可以像这样设置对齐方式:

myChart.Axes(xlCategory).TickLabels.Alignment = xlRight

或xlLeft或xlCenter

TickLabels的Orientation属性(XlTickLabelOrientation枚举中的可能值)和Axis的TickLabelPosition属性(XlTickLabelPosition枚举中的可能值)也可能是您感兴趣的。

更新1

我看了一下图片,但仍然无法编写宏来实现这一目标。关于你的评论:不,并不总是可以通过用户界面对VBA做一些事情,例如:粘贴没有相同的选择。

我只能提出两个选择:

  • 在某处存储具有良好设置的图表(例如,在Excel中 Personal.xls)当你需要一个新图表时,不要创建它而是复制 这个实例并粘贴它(ActivePresentation.Slides(1).ShapeRange.Paste)
  • 将文件另存为xlsx并对其进行操作(解压缩并修改XML) - 这并不容易。

更新2

是的,图表模板是一个好主意。我尝试过它并且有效:

myChart.ApplyChartTemplate "...\AppData\Roaming\Microsoft\Templates\Charts\TemplateName.crtx"

此外,您可以尝试使用不同的参数调用PasteSpecial。

答案 1 :(得分:0)

答案 2 :(得分:0)

图片1(Tab" home",section'段落'),点击右下角的符号:

https://i.stack.imgur.com/tLNhD.jpg

答案 3 :(得分:0)

图2:选择右对齐而不是'居中'

enter image description here