2012-01-09 359 views
2

我想根據用戶指定的某個標準,將圖表中的圖線設爲實線,圓點或方點。我可以使用宏成功設置繪圖的線條顏色和標記樣式,但似乎無法找到保存繪圖線條樣式屬性值的對象。我曾嘗試使用記錄宏函數,但在代碼中未顯示屬性窗口中的線條樣式,並且運行記錄的宏沒有效果。Excel VBA - 你如何爲圖表系列設置線條樣式?

任何幫助,非常感謝!

回答

2
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 

這可能是你在找什麼。

+0

我試圖手動設置線條樣式在Excel和使用 MSGBOX(CurrentChart.SeriesCollection(1).Border.LineStyle) 它返回一個-4105值,而不管如果行是正方形點,圓點,虛線等。 – user1130306 2012-01-09 18:39:46

+0

你的疑問很混亂 - 你問的是連接標記的線條還是標記本身?請使用您擁有的任何代碼更新您的問題:這總能幫助您獲得有用的答案。 – 2012-01-09 19:32:00

+0

如果手動右鍵單擊繪製的系列並在「線型」下單擊「格式化數據系列...」,則可以更改短劃線類型。我希望能夠將我的程序中的數據系列行格式化爲「圓點」和「方形點」。但是XLineStyle枚舉不提供這些破折號選項。 我後來決定取消「方形點」和「圓點」樣式,並使用XlContinuous,XlDot和XlDash代替。它不像方形圓點那麼漂亮,但它可以完成這項工作。 – user1130306 2012-01-09 21:25:02

3

用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 
0

如果你有一個折線圖,我最終創建了一個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 
相關問題