昱得資訊工作室
麻辣學園
歡迎光臨, 訪客. 請先 登入註冊一個帳號.
您忘了 啟用您的帳號嗎?
2008-10-12, 06:56:25
世界展望會助學計劃
首頁 說明 登入 註冊 贊助論壇 想當作者?
新聞: Wink有贊助本論壇經營的會員,請務必來信通知小誌,這樣才能為您更新會員群組喔!!


+  麻辣家族討論區
|-+  MS Office 系列
| |-+  EXCEL
| | |-+  Excel程式區 (版主: hsieh)
| | | |-+  怎樣取回 "圖表中線條樣式" 的名稱而非代號
0 會員 以及 1 訪客 正在閱讀本篇主題. « 上一篇主題 下一篇主題 »
頁: [1] 向下 列印
作者 主題: 怎樣取回 "圖表中線條樣式" 的名稱而非代號  (閱讀 958 次)
fly99
小學生
*
離線 離線

文章: 8


怎樣取回 "圖表中線條樣式" 的名稱而非代號
« 於: 2005-09-11, 09:27:23 »

請各位大大幫忙
 
如何正確取回 "圖表中線條樣式" 的名稱而非代號
當然用對應的代號傳遞屬性也是可行
只是很不爽及不易閱讀程式,

  Sheets("Sheet1").Select
  ActiveSheet.ChartObjects("圖表 1").Activate '折線圖
  ActiveChart.SeriesCollection(1).Select
 
 With Selection.Border
  .LineStyle = xlDot ' 常用屬性設定方式
   LS = .LineStyle  ' 取回現有線條樣式
   .LineStyle = LS
  .LineStyle = -4118 ' -4118 = xlDot
  End With

p.s. 這個問題在 excel 97,excel 2003 我都試過,結果都一樣!
已記錄
leonchou
論壇維護群
*
離線 離線

文章: 1160


Re: 怎樣取回 "圖表中線條樣式" 的名稱而非代號
« 回覆文章 #1 於: 2005-09-11, 16:20:26 »

請問 "取回線條樣式的名稱" 做什麼用?
程式可以運作正常就行了不是嗎?

其實嚴格說來那不叫線條樣式名稱 (名稱一般是指文字型態的),
而是線條樣式的常數名稱 (註2);
例如 xlDot 是常數名稱,-4118 是對應的常數值。
重點是無法由常數值反求常數名稱

如果你想了解所有線條樣式設定值的常數名稱與常數值對照,
除了一個一個測之外,
可以寫個簡單的程式全列出來,即一目瞭然 --
Sub xx()
r = 1
For Each LS In Array("xlContinuous", "xlDash", "xlDashDot", "xlDashDotDot", "xlDot", "xlDouble", "xlSlantDashDot", "xlLineStyleNone")
 Cells(r, 1) = LS
 r = r + 1
Next
r = 1
For Each LS In Array(xlContinuous, xlDash, xlDashDot, xlDashDotDot, xlDot, xlDouble, xlSlantDashDot, xlLineStyleNone)
 Cells(r, 2) = LS
 r = r + 1
Next
End Sub

若問我這些常數名稱如何得知? 當然是查 LineStyle 屬性的說明阿。

註1. 線條樣式(LineStyle)的所有設定值是Excel通用(例如儲存格框線樣式也一樣),並非圖表專屬的。
註2. 有關VBA常數可參考 VBA保留字與VBA常數的概念
註3. 希望沒有誤解你的需求。
已記錄

leonchou
論壇維護群
*
離線 離線

文章: 1160


Re: 怎樣取回 "圖表中線條樣式" 的名稱而非代號
« 回覆文章 #2 於: 2005-09-11, 16:34:26 »

補充一點,
一個屬性是什麼資料型態,其設定值就是什麼型態。
例如:
LineStyle屬性是Long型態,所以它的值就是常數;
FontStyle屬性是String型態,所以它的值就是文字。
後者可取回文字型態的名稱,但前者不行。
也就是說,
你可以由某物件的FontStyle屬性取得FontStyle的名稱
但無法由某物件的LineStyle屬性取得LineStyle的名稱
已記錄

fly99
小學生
*
離線 離線

文章: 8


Re: 怎樣取回 "圖表中線條樣式" 的名稱而非代號
« 回覆文章 #3 於: 2005-09-12, 00:16:27 »

謝謝 leonchou 大大
 
  很清楚的講解,我已明白!

   提這問題,因我 vba 屬自學,書嗎都是書店看, excel 內找說明!

   沒注意到有這樣的特性!! 謝謝!!

在寫程式時有測出來:
xlContinuous = 1
xlDash = -4115
xlDot = -4118
xlDashDot = 4
xlDashDotDot = 5
已記錄
頁: [1] 向上 列印 
« 上一篇主題 下一篇主題 »
自訂搜尋
跳到:  

本頁花了 0.322 秒, 以及 20 次的資料庫查詢.