1
'
'owc.vbs
2
class owc
3
private
o
4
'
傳入物件
5
public
property
set
set_obj(o_id)
6
set
o
=
o_id
7
end property
8
'
畫圖矩形圖
9
'
chart_bgcolor_圖表的背景顏色
10
'
chartCaption_圖表的標題
11
'
chartCaption_fontColor_圖表標題顏色
12
'
Interior_Color_矩形內的填充顏色
13
'
Caption_名稱
14
'
categories_名稱數組
15
'
values_值數組串
16
public
sub
bar(chart_bgcolor_,chartCaption_,chartCaption_fontColor_,Interior_Color_,Caption_,categories_,values_)
17
o.Clear
18
set
cht
=
o.Charts.Add
19
set
c
=
o.Constants
20
cht.Type
=
c.chChartTypeColumnClustered
21
'
設背景色或是填充
22
o.Charts(
0
).PlotArea.Interior.SetSolid chart_bgcolor_
23
24
'
加上圖表的標題
25
o.HasChartSpaceTitle
=
True
26
set
cst
=
o.ChartSpaceTitle
27
cst.Caption
=
chartCaption_
28
cst.Font.Color
=
chartCaption_fontColor_
29
cst.Font.Italic
=
False
30
cst.Font.Name
=
"
Arial
"
31
cst.Font.Size
=
12
32
cst.Font.Underline
=
c.owcUnderlineStyleSingle
33
34
'
添加數據
35
cht.SetData c.chDimCategories, c.chDataLiteral, categories_
36
cht.SeriesCollection(
0
).SetData c.chDimValues, c.chDataLiteral, values_
37
'
直條的背景色進行設定
38
set
sc
=
o.Charts(
0
).SeriesCollection(
0
)
39
sc.Interior.Color
=
Interior_Color_
40
41
'
直條上的顯示設置
42
sc.Caption
=
Caption_
43
set
dl
=
cht.SeriesCollection(
0
).DataLabelsCollection.Add
44
dl.HasValue
=
True
45
dl.HasPercentage
=
False
46
dl.Font.Size
=
9
47
dl.Font.Color
=
"
red
"
48
dl.Position
=
c.chLegendPositionRight
49
dl.NumberFormat
=
"
00.00%
"
50
'
左邊百分比的屬性設置
51
Set
cta
=
cht.Axes(c.chAxisPositionLeft)
52
cta.Font.Size
=
9
53
cta.NumberFormat
=
"
0.0%
"
54
cta.MajorUnit
=
0.1
55
end sub
56
'
多系列矩形圖
57
'
chart_bgColor_圖表的背景顏色
58
'
chartCaption_圖表的標題
59
'
chartCaption_fontColor_圖表標題顏色
60
'
color_顏色數組
61
'
caption_名稱數組
62
'
categories_名稱數組
63
'
values_值數組
64
public
sub
serBar(chart_bgColor_,chartCaption_,chartCaption_fontColor_,color_,caption_,categories_,values_)
65
o.Clear
66
o.Charts.Add
67
Set
c
=
o.Constants
68
'
圖表的類型
69
o.Charts(
0
).type
=
c.chChartTypeColumnClustered
70
'
給繪圖區加背景色
71
o.Charts(
0
).PlotArea.Interior.SetSolid chart_bgColor_
72
'
'加上圖表的標題
73
o.HasChartSpaceTitle
=
True
74
o.ChartSpaceTitle.Caption
=
chartCaption_
75
'
標題的屬性
76
o.ChartSpaceTitle.Font.Color
=
chartCaption_fontColor_
77
o.ChartSpaceTitle.Font.Italic
=
False
78
o.ChartSpaceTitle.Font.Name
=
"
Arial
"
79
o.ChartSpaceTitle.Font.Size
=
12
80
o.ChartSpaceTitle.Font.Underline
=
c.owcUnderlineStyleSingle
81
'
用循環來新增SeriesCollection以及里面的內容
82
for
i
=
0
to
ubound
(caption_)
83
valuetemp
=
""
84
for
j
=
i
*
(
ubound
(categories_)
+
1
)
to
(i
+
1
)
*
(
ubound
(categories_)
+
1
)
-
1
85
valuetemp
=
valuetemp
&
"
,
"
&
values_(j)
86
next
87
valuearr
=
split
(
mid
(valuetemp,
2
),
"
,
"
)
88
o.Charts(
0
).SeriesCollection.Add
89
o.Charts(
0
).SeriesCollection(i).Caption
=
caption_(i)
90
o.Charts(
0
).SeriesCollection(i).Interior.Color
=
color_(i)
91
o.Charts(
0
).SeriesCollection(i).SetData c.chDimCategories, c.chDataLiteral, categories_
92
o.Charts(
0
).SeriesCollection(i).SetData c.chDimValues, c.chDataLiteral, valuearr
93
set
dl
=
o.Charts(
0
).SeriesCollection(i).DataLabelsCollection.Add
94
dl.HasValue
=
True
95
dl.HasPercentage
=
False
96
dl.Font.Size
=
9
97
dl.Font.Color
=
"
red
"
98
dl.Position
=
c.chLegendPositionRight
99
dl.NumberFormat
=
"
00.00%
"
100
next
101
'
'圖例的設定
102
o.Charts(
0
).HasLegend
=
True
103
o.Charts(
0
).Legend.Font.Size
=
9
104
o.Charts(
0
).Legend.Position
=
c.chLegendPositionBottom
105
'
'左邊百分比的屬性設置
106
Set
cta
=
o.Charts(
0
).Axes(c.chAxisPositionLeft)
107
cta.Font.Size
=
9
108
cta.NumberFormat
=
"
0.00%
"
109
cta.MajorUnit
=
0.1
110
end sub
111
'
畫圓餅圖
112
'
chart_bgColor_繪圖區加背景色
113
'
chartCaption_圖表的標題
114
'
chartCaption_fontColor_圖表標題顏色
115
public
sub
Pie(chart_bgColor_,chartCaption_,chartCaption_fontColor_,Caption_,categories_,values_)
116
o.Clear
117
Set
cht
=
o.Charts.Add
118
Set
c
=
o.Constants
119
cht.Type
=
c.chChartTypePie3d
120
'
給繪圖區加背景色
121
o.Charts(
0
).PlotArea.Interior.SetSolid chart_bgColor_
122
cht.ExtrudeAngle
=
90
123
cht.ChartDepth
=
169
124
cht.AspectRatio
=
120
125
cht.Rotation
=
180
126
cht.Inclination
=
70
127
128
o.HasChartSpaceTitle
=
True
129
o.ChartSpaceTitle.Caption
=
chartCaption_
130
o.ChartSpaceTitle.Font.Color
=
chartCaption_fontColor_
131
o.ChartSpaceTitle.Font.Name
=
"
Arial
"
132
o.ChartSpaceTitle.Font.Size
=
12
133
o.ChartSpaceTitle.Font.Underline
=
c.owcUnderlineStyleSingle
134
135
cht.HasLegend
=
True
136
cht.Legend.Font.Size
=
9
137
cht.Legend.Position
=
c.chLegendPositionBottom
138
139
cht.SetData c.chDimCategories, c.chDataLiteral, categories_
140
cht.SeriesCollection(
0
).SetData c.chDimValues, c.chDataLiteral, values_
141
set
sc
=
o.Charts(
0
).SeriesCollection(
0
)
142
sc.Caption
=
Caption_
143
Set
dl
=
cht.SeriesCollection(
0
).DataLabelsCollection.Add
144
dl.Separator
=
"
:
"
145
dl.HasValue
=
false
146
dl.HasSeriesName
=
false
147
dl.HasCategoryName
=
true
148
dl.HasPercentage
=
true
149
dl.Font.Size
=
9
150
dl.Font.Color
=
"
red
"
151
dl.NumberFormat
=
"
00.00%
"
152
end sub
153
'
拆線圖
154
'
chart_bgColor_繪圖區加背景色
155
'
chartCaption_圖表的標題
156
'
chartCaption_fontColor_圖表標題顏色
157
public
sub
line(chart_bgColor_,chartCaption_,chartCaption_fontColor_,Caption_,categories_,values_)
158
o.Clear
159
Set
cht
=
o.Charts.Add
160
Set
c
=
o.Constants
161
cht.Type
=
c.chChartTypeLineMarkers
162
'
給繪圖區加背景色
163
o.Charts(
0
).PlotArea.Interior.SetSolid chart_bgColor_
164
o.HasChartSpaceTitle
=
True
165
o.ChartSpaceTitle.Caption
=
chartCaption_
166
o.ChartSpaceTitle.Font.Color
=
chartCaption_fontColor_
167
o.ChartSpaceTitle.Font.Name
=
"
Arial
"
168
o.ChartSpaceTitle.Font.Size
=
12
169
o.ChartSpaceTitle.Font.Underline
=
c.owcUnderlineStyleSingle
170
171
cht.SetData c.chDimCategories, c.chDataLiteral, categories_
172
cht.SeriesCollection(
0
).SetData c.chDimValues, c.chDataLiteral, values_
173
174
set
sc
=
o.Charts(
0
).SeriesCollection(
0
)
175
sc.Caption
=
Caption_
176
Set
dl
=
cht.SeriesCollection(
0
).DataLabelsCollection.Add
177
dl.HasValue
=
True
178
dl.HasPercentage
=
False
179
dl.Font.Size
=
9
180
dl.Font.Color
=
"
red
"
181
182
Set
categoryAxis
=
cht.Axes(c.chAxisPositionBottom)
183
categoryAxis.Font.Size
=
9
184
185
Set
categoryAxis
=
cht.Axes(c.chAxisPositionLeft)
186
categoryAxis.Font.Size
=
9
187
end sub
188
'
多系列拆線圖
189
'
chart_bgColor_圖表的背景顏色
190
'
chartCaption_圖表的標題
191
'
chartCaption_fontColor_圖表標題顏色
192
'
color_顏色數組
193
'
caption_名稱數組
194
'
categories_名稱數組
195
'
values_值數組
196
public
sub
serLine(chart_bgColor_,chartCaption_,chartCaption_fontColor_,color_,SeriesNames_,categories_,values_)
197
o.Clear
198
Set
cht
=
o.Charts.Add
199
Set
c
=
o.Constants
200
'
設置圖表類型
201
cht.Type
=
c.chChartTypeLineMarkers
202
'
給繪圖區加背景色
203
o.Charts(
0
).PlotArea.Interior.Color
=
chart_bgColor_
204
'
加上標題
205
o.HasChartSpaceTitle
=
True
206
o.ChartSpaceTitle.Caption
=
chartCaption_
207
o.ChartSpaceTitle.Font.Color
=
chartCaption_fontColor_
208
o.ChartSpaceTitle.Font.Name
=
"
Arial
"
209
o.ChartSpaceTitle.Font.Size
=
12
210
'
'添加數據
211
cht.SetData c.chDimSeriesNames, c.chDataLiteral, SeriesNames_
212
cht.SetData c.chDimCategories, c.chDataLiteral, Categories_
213
214
set
categoryAxis
=
cht.Axes(c.chAxisPositionBottom)
215
categoryAxis.Font.Size
=
9
216
217
Set
categoryAxis
=
cht.Axes(c.chAxisPositionLeft)
218
categoryAxis.Font.Size
=
9
219
220
for
i
=
0
to
ubound
(SeriesNames_)
221
valuetemp
=
""
222
for
j
=
i
*
(
ubound
(Categories_)
+
1
)
to
(i
+
1
)
*
(
ubound
(Categories_)
+
1
)
-
1
223
valuetemp
=
valuetemp
&
"
,
"
&
values_(j)
224
next
225
valuearr
=
split
(
mid
(valuetemp,
2
),
"
,
"
)
226
cht.SeriesCollection(i).SetData c.chDimValues, c.chDataLiteral, valuearr
227
cht.SeriesCollection(i).Line.Color
=
color_(i)
228
cht.SeriesCollection(i).Line.Weight
=
c.owcLineWeightThin
229
cht.SeriesCollection(i).Marker.Style
=
c.chMarkerStyleDiamond
230
cht.SeriesCollection(i).Interior.Color
=
color_(i)
231
Set
dl
=
cht.SeriesCollection(i).DataLabelsCollection.Add
232
dl.HasValue
=
true
233
dl.HasPercentage
=
false
234
dl.Font.Size
=
9
235
dl.font.color
=
"
red
"
236
next
237
end sub
238
'
清除圖型
239
public
sub
clear()
240
o.Clear
241
end sub
242
end
class
1
<
html
>
2
<
head
>
3
<
title
>
vbscript owc class test
</
title
>
4
<
script
language
="vbscript"
src
="owc.vbs"
></
script
>
5
<
script
language
="vbscript"
>
6
sub
window_onload()
7
set
t
=
new
owc
8
9
categories
=
Array
(
"
A2-1
"
,
"
A2-2
"
,
"
A2-3
"
,
"
A3-1
"
,
"
A3-2
"
,
"
A3-3
"
_
10
,
"
B2-1
"
,
"
B2-2
"
,
"
B2-3
"
,
"
B3-1
"
,
"
B3-2
"
,
"
B3-3
"
_
11
,
"
C2-1
"
,
"
C2-2
"
,
"
C3-1
"
,
"
C3-2
"
,
"
C3-3
"
)
12
values
=
Array
(
0.813
,
0.689
,
0.800
,
0.833
,
0.681
,
0.864
,
0
.743_
13
,
0.894
,
0.822
,
0.874
,
0.746
,
0.908
,
0
.850_
14
,
0.728
,
0.731
,
0.734
,
0.624
)
15
set
t.set_obj
=
document.getElementById(
"
cs1
"
)
16
t.bar
"
#FFFFFF
"
,
"
報表標題
"
,
"
BLUE
"
,
"
#CCCC00
"
,
"
組別
"
,categories,values
17
18
color
=
Array
(
"
#CCFFFF
"
,
"
#99CCFF
"
,
"
#00CCFF
"
,
"
#FF0000
"
,
"
#660066
"
,
"
#FF8080
"
)
19
caption
=
Array
(
"
第1周
"
,
"
第2周
"
,
"
第3周
"
,
"
第4周
"
)
20
categories
=
Array
(
"
A棟
"
,
"
B棟
"
)
21
values
=
Array
(
0.6951
,
0.5798
,
0.7075
,
0.512
,
0.7907
,
0.7493
,
0.8691
,
0.7716
)
22
set
t.set_obj
=
document.getElementById(
"
cs2
"
)
23
t.serbar
"
#FFFFFF
"
,
"
2008年10月坑頭三廠各周各樓層達成率比較圖
"
,
"
red
"
,color,caption,categories,values
24
25
categories
=
array
(
"
臺北
"
,
"
上海
"
)
26
values
=
array
(
238760
,
912560.62
)
27
set
t.set_obj
=
document.getElementById(
"
cs3
"
)
28
t.Pie
"
#FFFFFF
"
,
"
銷售金額所佔比例(城市分類)
"
,
"
BLUE
"
,
"
城市
"
,categories,values
29
30
categories
=
array
(
"
2008/11/1
"
,
"
2008/11/2
"
,
"
2008/11/3
"
,
"
2008/11/4
"
,
"
2008/11/5
"
,
"
2008/11/6
"
,
"
2008/11/7
"
,
"
2008/11/8
"
,
"
2008/11/9
"
,
"
2008/11/10
"
,
"
2008/11/11
"
,
"
2008/11/12
"
,
"
2008/11/13
"
,
"
2008/11/14
"
,
"
2008/11/15
"
,
"
2008/11/16
"
,
"
2008/11/17
"
,
"
2008/11/18
"
,
"
2008/11/19
"
,
"
2008/11/20
"
,
"
2008/11/21
"
,
"
2008/11/22
"
,
"
2008/11/23
"
,
"
2008/11/24
"
,
"
2008/11/25
"
,
"
2008/11/26
"
,
"
2008/11/27
"
,
"
2008/11/28
"
,
"
2008/11/29
"
,
"
2008/11/30
"
)
31
values
=
array
(
67239.89
,
60400.26
,
7202.89
,
18453.12
,
28889.29
,
102136.25
,
78826.39
,
146291.6
,
93743.29
,
44204.44
,
45349.28
,
50730.6
,
37900.21
,
84359.87
,
169333.62
,
114594.96
,
75334.77
,
51360.32
,
55853.05
,
37912.63
,
45068.22
,
63930.98
,
72993.71
,
18699.5
,
24714.5
,
34792.91
,
39414.58
,
92171.2
,
74433.06
,
3998894.41
)
32
set
t.set_obj
=
document.getElementById(
"
cs4
"
)
33
t.line
"
#FFFFFF
"
,
"
銷售金額
"
,
"
BLUE
"
,
"
日期
"
,categories,values
34
35
color
=
Array
(
"
#CCFFFF
"
,
"
#99CCFF
"
,
"
#00CCFF
"
,
"
#FF0000
"
)
36
SeriesNames
=
array
(
"
A產品
"
,
"
B產品
"
,
"
C產品
"
,
"
D產品
"
)
37
Categories
=
array
(
"
2005/3/24
"
,
"
2005/3/25
"
,
"
2005/3/26
"
,
"
2005/3/27
"
,
"
2005/3/28
"
)
38
values
=
array
(
50
,
100
,
20
,
80
,
89
,
40
,
60
,
20
,
90
,
70
,
20
,
50
,
55
,
25
,
60
,
80
,
20
,
75
,
58
,
100
)
39
set
t.set_obj
=
document.getElementById(
"
cs5
"
)
40
t.serline
"
#FFFFFF
"
,
"
達成率月報表
"
,
"
red
"
,color,SeriesNames,categories,values
41
42
set
t
=
nothing
43
end sub
44
</
script
>
45
</
head
>
46
<
body
>
47
<
div
id
="c1"
><
object
id
="cs1"
name
="cs1"
classid
="CLSID:0002E55D-0000-0000-C000-000000000046"
codebase
="owc11.dll"
style
="width:100%;height:350"
></
object
></
div
>
48
<
div
id
="c2"
><
object
id
="cs2"
name
="cs2"
classid
="CLSID:0002E55D-0000-0000-C000-000000000046"
codebase
="owc11.dll"
style
="width:100%;height:350"
></
object
></
div
>
49
<
div
id
="c3"
><
object
id
="cs3"
name
="cs3"
classid
="CLSID:0002E55D-0000-0000-C000-000000000046"
codebase
="owc11.dll"
style
="width:100%;height:350"
></
object
></
div
>
50
<
div
id
="c4"
><
object
id
="cs4"
name
="cs4"
classid
="CLSID:0002E55D-0000-0000-C000-000000000046"
codebase
="owc11.dll"
style
="width:100%;height:350"
></
object
></
div
>
51
<
div
id
="c5"
><
object
id
="cs5"
name
="cs5"
classid
="CLSID:0002E55D-0000-0000-C000-000000000046"
codebase
="owc11.dll"
style
="width:100%;height:350"
></
object
></
div
>
52
</
body
>
53
</
html
>
54