返回列表 上一主題 發帖

[發問] Chart 項目次序移動

[發問] Chart 項目次序移動

請問各位大大

Chart 上 各個項目他的次序該如何用VBA語法來調動呢????

如下圖的PMS我要往上移動

請問語法該如何操作???



謝謝
用功到世界末日那一天~~~

回復 5# GBKEE

謝謝版大的幫助

這操作還蠻特別的

又學到了一點

謝謝  :  )
用功到世界末日那一天~~~

TOP

回復 4# li_hsien
你這視窗是2003以上的版本,此程式碼是以2003編寫.試試看是否可行.
  1. Option Explicit
  2. Sub Ex()
  3.     Dim MoObject As ChartObject, MoChart As Chart, i As Integer, Rng As Range
  4.     Dim Q(1 To 2)
  5.     Sheet1.ChartObjects.Delete
  6.     Set Rng = [F1:M21]                                  '圖表資料範圍
  7.     Set MoObject = Sheet1.ChartObjects.Add(Rng.Left, Rng.Top, Rng.Width, Rng.Height)
  8.                                                         '[F1:M21]上新增圖表
  9.     Set Rng = [b2:b21].Resize(, 3)     '設定範圍
  10.     '** 請在 [A2:A21]填上 日期 或 數字 : 作為X座標的數值
  11.    
  12.     MoObject.Chart.SetSourceData Rng   '指定圖表資料範圍
  13.     Set MoChart = MoObject.Chart
  14.     With MoChart
  15.         
  16.         Q(1) = Split(.SeriesCollection(3).Formula, ",")(2) '資料列的儲存格位址
  17.         Q(2) = Split(.SeriesCollection(1).Formula, ",")(2)
  18.         .SeriesCollection(1).Values = Range(Q(1))   '指定到儲存格
  19.         .SeriesCollection(3).Values = Range(Q(2))   '可在儲存格上變動數值
  20.         '******************************************************
  21.         Stop
  22.         Q(1) = .SeriesCollection(3).Values  '資料列的數值
  23.         Q(2) = .SeriesCollection(1).Values
  24.         .SeriesCollection(1).Values = Q(1)  '改變數值
  25.         .SeriesCollection(3).Values = Q(2)  '可在資料列變動數值
  26.         
  27.     End With
  28. End Sub
複製代碼
圖示: 可在資料列變動數值

感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復 2# GBKEE


感謝版大的幫助

原來有這些資料來源可以參考


不過我主要要錄製巨集是想抓到圖表中各個部份的VBA語法名稱

好讓我在程式撰寫上可以操作

但實際試了幾次 錄製圖表操作上的巨集好像沒有辦法做到@@
用功到世界末日那一天~~~

TOP

回復 1# li_hsien
錄製巨集是否無法進行Chart操作的錄製??? 使用了好幾次都只錄到Select、Activate之類的部分@@
套用試試看
  1. Option Explicit
  2. Sub Ex()
  3.     Dim AR, i As Integer
  4.     With Sheet2.ChartObjects(1).Chart
  5.         .HasTitle = True              '圖表有的標題
  6.         .ChartTitle.Font.Size = 6.5  '標題字體大小
  7.         .ChartTitle.Characters.Text = "test"
  8.         .ChartTitle.Font.Name = "Arial" '標題字型
  9.         .Legend.Position = xlLegendPositionBottom   '圖例列底部
  10.         .Legend.Top = 115  '圖例位移
  11.         AR = Array(vbBlack, vbRed, vbGreen, vbYellow, vbBlue, vbMagenta, vbCyan, vbWhite)
  12.         For i = 1 To .SeriesCollection.Count
  13.             
  14.             If i <= UBound(AR) + 1 Then
  15.                 .SeriesCollection(i).Border.Color = AR(i - 1) '線條顏色
  16.                 .SeriesCollection(i).HasDataLabels = True
  17.                 .SeriesCollection(i).DataLabels.Font.Size = 15  '上列數值字體大小
  18.                 .SeriesCollection(i).DataLabels.Font.Name = "Arial" '上列數值字型
  19.             End If
  20.         
  21.         Next
  22.     End With
  23. End Sub
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

chart VBA操作

最近在進行Chart的操作

不過依現有書籍好少相關的資料

一直上網GOOGLE
湊來湊去

以下是我目前用到的語法

下圖紅框裡面
菱形標記的框線寬度我一直查不到語法是什麼
用了這個.SeriesCollection(4).Format.Line.Weight
我是要用來調整走勢的曲線寬
不過他連標記的框線寬也跟著調整

不知只調標記的框線寬語法如何撰寫


還有~錄製巨集是否無法進行Chart操作的錄製???
使用了好幾次都只錄到Select、Activate之類的部分@@
  1.         .ChartTitle.Font.Size = 6.5  '標題字體大小
  2.         .ChartTitle.Font.Name = "Arial" '標題字型

  3.         .Legend.Position = xlLegendPositionBottom  '圖例列底部
  4.         .Legend.Top = 115  '圖例位移

  5.         .SeriesCollection(4).Border.Color = 5066944 '線條顏色
  6.         .SeriesCollection(4).Format.Line.Weight = 2 '線條寬為2
  7.         .SeriesCollection(4).MarkerStyle = 2  '標記菱形
  8.         .SeriesCollection(4).MarkerBackgroundColorIndex = 2 '標記顏色(白)
  9.         .SeriesCollection(4).MarkerSize = 5    '標記大小5
  10.         
  11.         .SeriesCollection(4).ApplyDataLabels  '顯示資料標籤
  12.         .SeriesCollection(4).Select
  13.         .SetElement (msoElementDataLabelTop) '資料標籤置上
  14.       
  15.         .Axes(xlValue, xlPrimary).AxisTitle.Font.Size = 6.5 'Y軸標題大小
  16.         .Axes(xlValue, xlPrimary).AxisTitle.Font.Name = "Arial" 'Y軸標題字型
  17.         .Axes(xlValue, xlPrimary).AxisTitle.Left = -3  'Y軸標題位移

  18.         .Axes(xlCategory).TickLabels.Font.Size = 5  'X軸字體大小
  19.         .Axes(xlCategory).TickLabels.Font.Name = "Arial"    'X軸字型
  20.         
  21.         .Axes(xlValue).TickLabels.Font.Size = 6.5  'Y軸字體大小
  22.         .Axes(xlValue).TickLabels.Font.Name = "Arial"  'Y軸字型
  23.         
  24.         .Legend.Font.Size = 6.5 '圖例字體大小
  25.         .Legend.Font.Name = "Arial" '圖例字型
  26.         
  27.         .SeriesCollection(4).DataLabels.Font.Size = 5  '上列數值字體大小
  28.         .SeriesCollection(4).DataLabels.Font.Name = "Arial" '上列數值字型
複製代碼




P.S.
另外想請問各位大大程式概念像以下
.Legend.Font.Size = 6.5的Lengend
.TickLabels.Font.Size = 5 的TickLabels以專業說法都是指"屬性"嗎???
用功到世界末日那一天~~~

TOP

        靜思自在 : 地上種了菜,就不易長草;心中有善,就不易生惡。
返回列表 上一主題