我想根據用戶指定的某個標準,將圖表中的圖線設爲實線,圓點或方點。我可以使用宏成功設置繪圖的線條顏色和標記樣式,但似乎無法找到保存繪圖線條樣式屬性值的對象。我曾嘗試使用記錄宏函數,但在代碼中未顯示屬性窗口中的線條樣式,並且運行記錄的宏沒有效果。Excel VBA - 你如何爲圖表系列設置線條樣式?
任何幫助,非常感謝!
我想根據用戶指定的某個標準,將圖表中的圖線設爲實線,圓點或方點。我可以使用宏成功設置繪圖的線條顏色和標記樣式,但似乎無法找到保存繪圖線條樣式屬性值的對象。我曾嘗試使用記錄宏函數,但在代碼中未顯示屬性窗口中的線條樣式,並且運行記錄的宏沒有效果。Excel VBA - 你如何爲圖表系列設置線條樣式?
任何幫助,非常感謝!
YourChartSeries.Border.LineStyle = [some value from the XlLineStyle enumeration]
UPDATE:記錄在2010 XL我得到這個 -
ActiveChart.SeriesCollection(1).Select
With Selection.Format.Line
.Visible = msoTrue
.DashStyle = msoLineSysDot
End With
ActiveChart.SeriesCollection(2).Select
With Selection.Format.Line
.Visible = msoTrue
.DashStyle = msoLineSysDash
End With
這可能是你在找什麼。
用255個數據系列創建圖表,運行代碼(並根據需要執行其他格式)。然後將其保存爲模板。
Sub dd()
Dim wb As Workbook
Set wb = Application.ActiveWorkbook
Dim myChart As Chart
Set myChart = wb.Charts("Chart5")
Dim mySeries As series
For Each mySeries In myChart.SeriesCollection
mySeries.Format.Line.Weight = 1#
Next
End Sub
如果你有一個折線圖,我最終創建了一個switch語句,因爲我無法弄清楚如何創建一個「Name」變量的數組。見list of line types here
For j = i To num_lines_to_plot
count = count + 1
ActiveChart.SeriesCollection.NewSeries
With ActiveChart.SeriesCollection(j)
.Name = _
"='"**... (you'll need to fill this in)**
'create gradient
.Format.Line.ForeColor.RGB = RGB(255, 20 * count, 0)
'modify linetype
If count > 4 Then
line_type = count Mod 4
Else
line_type = count
End If
Select Case line_type
Case Is = 1
.Format.Line.DashStyle = msoLineSolid
Case Is = 2
.Format.Line.DashStyle = msoLineSquareDot
Case Is = 3
.Format.Line.DashStyle = msoLineDash
Case Is = 4
.Format.Line.DashStyle = msoLineLongDash
End Select
End With
Next
我試圖手動設置線條樣式在Excel和使用 MSGBOX(CurrentChart.SeriesCollection(1).Border.LineStyle) 它返回一個-4105值,而不管如果行是正方形點,圓點,虛線等。 – user1130306 2012-01-09 18:39:46
你的疑問很混亂 - 你問的是連接標記的線條還是標記本身?請使用您擁有的任何代碼更新您的問題:這總能幫助您獲得有用的答案。 – 2012-01-09 19:32:00
如果手動右鍵單擊繪製的系列並在「線型」下單擊「格式化數據系列...」,則可以更改短劃線類型。我希望能夠將我的程序中的數據系列行格式化爲「圓點」和「方形點」。但是XLineStyle枚舉不提供這些破折號選項。 我後來決定取消「方形點」和「圓點」樣式,並使用XlContinuous,XlDot和XlDash代替。它不像方形圓點那麼漂亮,但它可以完成這項工作。 – user1130306 2012-01-09 21:25:02