ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 19094|回复: 8

[求助]如何用VBA设置图表的大小和位置

[复制链接]

TA的精华主题

TA的得分主题

发表于 2007-4-28 17:20 | 显示全部楼层 |阅读模式

lx76Ecp0.rar (12.76 KB, 下载次数: 284)

  小弟最近做一个简单的图表,实在不知道该如何改变图表的大小和位置,还有图表内各元素位置和大小的设定,比如图表区,绘图区,图表标题,图例项等等。

 劳驾高手帮帮忙!或者给点指导也行,不是我不动脑筋,等我找到方法后一定会发到这里来和大家共享的。

  先谢过了!

TA的精华主题

TA的得分主题

 楼主| 发表于 2007-4-28 20:48 | 显示全部楼层
自己录制了一个宏,把activesheet.Shapes("图表 2") 改成 activesheet.shapes(1),搞定

TA的精华主题

TA的得分主题

发表于 2010-7-6 15:35 | 显示全部楼层

回复 2楼 supershll 的帖子

为什么要改啊?“图表2”是什么意思?改成 1  又是什么意思?请高手指教

TA的精华主题

TA的得分主题

发表于 2010-11-23 15:04 | 显示全部楼层
以下代码供你参考:
Sub ChartAdd()
   Dim myRange As Range
   Dim myChart As ChartObject
   Dim R As Integer
   With Sheet1
       .ChartObjects.Delete
       R = .Range("A65536").End(xlUp).Row
       Set myRange = .Range("A" & 1 & ":B" & R)
       Set myChart = .ChartObjects.Add(120, 40, 400, 250)
       With myChart.Chart
           .ChartType = xlColumnClustered
           .SetSourceData Source:=myRange, PlotBy:=xlColumns
           .ApplyDataLabels ShowValue:=True
           .HasTitle = True
           .ChartTitle.Text = "图表制作示例"
           With .ChartTitle.Font
               .Size = 20
               .ColorIndex = 3
               .Name = "华文新魏"
           End With
           With .ChartArea.Interior
               .ColorIndex = 8
               .PatternColorIndex = 1
               .Pattern = xlSolid
           End With
           With .PlotArea.Interior
               .ColorIndex = 35
               .PatternColorIndex = 1
               .Pattern = xlSolid
           End With
           .SeriesCollection(1).DataLabels.Delete
           With .SeriesCollection(2).DataLabels.Font
               .Size = 10
               .ColorIndex = 5
           End With
       End With
   End With
   Set myRange = Nothing
   Set myChart = Nothing
End Sub

TA的精华主题

TA的得分主题

发表于 2011-11-28 09:57 | 显示全部楼层
缩放之后又不对了哦,这要好像只是修改了相对位置,而不是绝对位置。

TA的精华主题

TA的得分主题

发表于 2013-6-24 19:54 | 显示全部楼层
frankysf 发表于 2010-11-23 15:04
以下代码供你参考:
Sub ChartAdd()
   Dim myRange As Range

如何设置一段VBA代码,让EXCEL中的图表坐标轴刻度的最小值等于一个单元格的值?而且触发这段代码的事件为该单元格的值发生改变的时候,自动重新设置坐标轴刻度的最小值。谢谢。

TA的精华主题

TA的得分主题

发表于 2013-11-20 14:41 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2013-12-2 19:49 | 显示全部楼层
楼上原来是我,自己琢磨吧,还是没有解决相应问题

TA的精华主题

TA的得分主题

发表于 2023-2-2 09:20 | 显示全部楼层
学习ppt-VBA的难点是层级关系太多,一级套一级,搞得晕晕乎乎。

  1.      Dim GrpSht As Graph.DataSheet
  2.      Dim GrpLab As Graph.DataLabel
  3.      Dim Labs As Graph.DataLabels
  4.      Dim ii, ii1
  5.          With GrpChart
  6.               .HasDataTable = True
  7.               .ChartArea.Font.Size = 15
  8.               Set GrpSht = .Application.DataSheet
  9.               'Set GrpLab = .SeriesCollections(1).DataLabel
  10.               .HasLegend = False
  11.               .HasTitle = False
  12.               .ChartType = xlColumnClustered
  13.               '.ChartType = xlLineMarkers
  14.               .SeriesCollections(3).ChartType = xlLineMarkers
  15.               
  16.               For ii = 1 To .SeriesCollections.Count
  17.                    With .SeriesCollections(ii)
  18.                         .Border.Weight = xlThick
  19.                         .HasDataLabels = True
  20.                         Set Labs = .DataLabels
  21.                                        For ii1 = 1 To Labs.Count
  22.                                              With Labs(ii1)
  23.                                                    .Font.Size = 10
  24.                                                    .HorizontalAlignment = xlRight
  25.                                                    .VerticalAlignment = xlTop
  26.                                                    .ReadingOrder = xlLTR
  27.                                                    With .Border
  28.                                                         .ColorIndex = 1
  29.                                                         .Weight = xlThin
  30.                                                         .LineStyle = xlContinuous
  31.                                                    End With
  32.                                                    .Shadow = True
  33.                                                    With .Interior
  34.                                                         .ColorIndex = 39
  35.                                                         .PatternColorIndex = 1
  36.                                                         .Pattern = xlSolid
  37.                                                    End With
  38.                                                    .AutoScaleFont = False
  39.                                                    With .Font
  40.                                                        .Name = "黑体"
  41.                                                        .FontStyle = "常规"
  42.                                                        .Size = 10
  43.                                                        .Strikethrough = False
  44.                                                        .Superscript = False
  45.                                                        .Subscript = False
  46.                                                        .OutlineFont = False
  47.                                                        .Shadow = True
  48.                                                        .ColorIndex = 1
  49.                                                        .Background = xlOpaque
  50.                                                    End With
  51.                                                    '.Position = xlLabelPositionInsideBase
  52.                                              End With
  53.                                        Next ii1
  54.                         Select Case ii '.ChartType
  55.                               Case 2 'xlLineMarkers, xlLine, xlLineMarkersStacked
  56.                                     Labs.Position = xlLabelPositionInsideBase
  57.                               Case 1
  58.                                     Labs.Position = xlLabelPositionOutsideEnd
  59.                               Case 3
  60.                                     Labs.Position = xlLabelPositionCenter
  61.                         End Select
  62.                   End With
  63.               Next ii
  64.          End With
  65.          
复制代码
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-22 15:00 , Processed in 0.047836 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表