標題:
[發問]
Chart 項目次序移動
[打印本頁]
作者:
li_hsien
時間:
2014-4-17 17:19
標題:
chart VBA操作
最近在進行Chart的操作
不過依現有書籍好少相關的資料
一直上網GOOGLE
湊來湊去
以下是我目前用到的語法
下圖紅框裡面
菱形標記的框線寬度我一直查不到語法是什麼
用了這個.SeriesCollection(4).Format.Line.Weight
我是要用來調整走勢的曲線寬
不過他連標記的框線寬也跟著調整
不知只調標記的框線寬語法如何撰寫
還有~錄製巨集是否無法進行Chart操作的錄製???
使用了好幾次都只錄到Select、Activate之類的部分@@
.ChartTitle.Font.Size = 6.5 '標題字體大小
.ChartTitle.Font.Name = "Arial" '標題字型
.Legend.Position = xlLegendPositionBottom '圖例列底部
.Legend.Top = 115 '圖例位移
.SeriesCollection(4).Border.Color = 5066944 '線條顏色
.SeriesCollection(4).Format.Line.Weight = 2 '線條寬為2
.SeriesCollection(4).MarkerStyle = 2 '標記菱形
.SeriesCollection(4).MarkerBackgroundColorIndex = 2 '標記顏色(白)
.SeriesCollection(4).MarkerSize = 5 '標記大小5
.SeriesCollection(4).ApplyDataLabels '顯示資料標籤
.SeriesCollection(4).Select
.SetElement (msoElementDataLabelTop) '資料標籤置上
.Axes(xlValue, xlPrimary).AxisTitle.Font.Size = 6.5 'Y軸標題大小
.Axes(xlValue, xlPrimary).AxisTitle.Font.Name = "Arial" 'Y軸標題字型
.Axes(xlValue, xlPrimary).AxisTitle.Left = -3 'Y軸標題位移
.Axes(xlCategory).TickLabels.Font.Size = 5 'X軸字體大小
.Axes(xlCategory).TickLabels.Font.Name = "Arial" 'X軸字型
.Axes(xlValue).TickLabels.Font.Size = 6.5 'Y軸字體大小
.Axes(xlValue).TickLabels.Font.Name = "Arial" 'Y軸字型
.Legend.Font.Size = 6.5 '圖例字體大小
.Legend.Font.Name = "Arial" '圖例字型
.SeriesCollection(4).DataLabels.Font.Size = 5 '上列數值字體大小
.SeriesCollection(4).DataLabels.Font.Name = "Arial" '上列數值字型
複製代碼
[attach]18060[/attach]
P.S.
另外想請問各位大大程式概念像以下
.Legend.Font.Size = 6.5的Lengend
.TickLabels.Font.Size = 5 的TickLabels以專業說法都是指"屬性"嗎???
作者:
GBKEE
時間:
2014-4-18 09:47
回復
1#
li_hsien
錄製巨集是否無法進行Chart操作的錄製??? 使用了好幾次都只錄到Select、Activate之類的部分@@
套用試試看
Option Explicit
Sub Ex()
Dim AR, i As Integer
With Sheet2.ChartObjects(1).Chart
.HasTitle = True '圖表有的標題
.ChartTitle.Font.Size = 6.5 '標題字體大小
.ChartTitle.Characters.Text = "test"
.ChartTitle.Font.Name = "Arial" '標題字型
.Legend.Position = xlLegendPositionBottom '圖例列底部
.Legend.Top = 115 '圖例位移
AR = Array(vbBlack, vbRed, vbGreen, vbYellow, vbBlue, vbMagenta, vbCyan, vbWhite)
For i = 1 To .SeriesCollection.Count
If i <= UBound(AR) + 1 Then
.SeriesCollection(i).Border.Color = AR(i - 1) '線條顏色
.SeriesCollection(i).HasDataLabels = True
.SeriesCollection(i).DataLabels.Font.Size = 15 '上列數值字體大小
.SeriesCollection(i).DataLabels.Font.Name = "Arial" '上列數值字型
End If
Next
End With
End Sub
複製代碼
[attach]18063[/attach]
作者:
li_hsien
時間:
2014-4-19 21:55
回復
2#
GBKEE
感謝版大的幫助
原來有這些資料來源可以參考
不過我主要要錄製巨集是想抓到圖表中各個部份的VBA語法名稱
好讓我在程式撰寫上可以操作
但實際試了幾次 錄製圖表操作上的巨集好像沒有辦法做到@@
作者:
li_hsien
時間:
2014-4-19 21:58
標題:
Chart 項目次序移動
請問各位大大
Chart 上 各個項目他的次序該如何用VBA語法來調動呢????
如下圖的PMS我要往上移動
請問語法該如何操作???
[attach]18086[/attach]
謝謝
作者:
GBKEE
時間:
2014-4-20 10:36
回復
4#
li_hsien
你這視窗是2003以上的版本,此程式碼是以2003編寫.試試看是否可行.
Option Explicit
Sub Ex()
Dim MoObject As ChartObject, MoChart As Chart, i As Integer, Rng As Range
Dim Q(1 To 2)
Sheet1.ChartObjects.Delete
Set Rng = [F1:M21] '圖表資料範圍
Set MoObject = Sheet1.ChartObjects.Add(Rng.Left, Rng.Top, Rng.Width, Rng.Height)
'[F1:M21]上新增圖表
Set Rng = [b2:b21].Resize(, 3) '設定範圍
'** 請在 [A2:A21]填上 日期 或 數字 : 作為X座標的數值
MoObject.Chart.SetSourceData Rng '指定圖表資料範圍
Set MoChart = MoObject.Chart
With MoChart
Q(1) = Split(.SeriesCollection(3).Formula, ",")(2) '資料列的儲存格位址
Q(2) = Split(.SeriesCollection(1).Formula, ",")(2)
.SeriesCollection(1).Values = Range(Q(1)) '指定到儲存格
.SeriesCollection(3).Values = Range(Q(2)) '可在儲存格上變動數值
'******************************************************
Stop
Q(1) = .SeriesCollection(3).Values '資料列的數值
Q(2) = .SeriesCollection(1).Values
.SeriesCollection(1).Values = Q(1) '改變數值
.SeriesCollection(3).Values = Q(2) '可在資料列變動數值
End With
End Sub
複製代碼
圖示: 可在資料列變動數值
[attach]18091[/attach]
作者:
li_hsien
時間:
2014-4-24 14:32
回復
5#
GBKEE
謝謝版大的幫助
這操作還蠻特別的
又學到了一點
謝謝 : )
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)