Friday, November 25, 2005

第廿章 其他

第廿章 其他
20-01 顯示/隱藏Excel命令列

應用範例
Sub 顯示或隱藏命令列()
MsgBox “顯示/隱藏快速入門工具列”
Application.CommandBars(“Task Pane”).Visible = True
MsgBox “回復原來的狀態”
Application.CommandBars(“Task Pane”).Visible = False
End Sub

20-02 開啟Access、Word

應用範例
Sub 開啟Microsoft應用程式()
MsgBox “開啟Word”
Application.ActivateMicrosoftApp xlMicrosoftWord
End Sub

20-03 執行應用程式

應用範例
Sub 開啟小算盤()
MsgBox “開啟小算盤”
x = Shell(“C:\Windows\System32\Calc.exe”, vbNormalFocus)
MsgBox “其PID值為:” & x
End Sub

20-04 設定顏色

應用範例
Sub 設定顏色()
MsgBox “將使用中儲存格內文字顏色中紅色的濃淡程度由255降至0,每次降低50”
For r = 255 To 0 Step -50
ActiveCell.Font.Color = RGB(r,150,200)
MsgBox “目前紅色的濃淡程度為:” & r
Next r
End Sub

20-05 開啟資料表單

應用範例
Sub 開啟資料表單()
MsgBox “開啟資料表單”
ActiveSheet.ShowDataForm
End Sub

20-06 設定超連結

應用範例
Sub 設定超連結()
MsgBox “在使用中儲存格內設定開啟小算盤的超連結”
ActiveCell.Hyperlinks.Add Anchor:=ActiveCell, Address:=“C:\Windows\System32\Calc.exe”, ScreenTip:=“按下我,就會開啟小算盤”, TextToDisplay:=“小算盤”
End Sub

20-07 自動填滿

應用範例
Sub 自動填滿()
MsgBox “以儲存格A1為填滿來源,將A1的內容於儲存格範圍A2到A12中填滿”
ActiveSheet.Range(“A1”).AutoFill Range(Cells(1,1), Cells(12,1))
End Sub
20-08 使用IIf函數

應用範例
Sub IIf的使用()
MsgBox “取得現在的星期,經判斷運算後顯示相對應的訊息”
youbi = Weekday(Date)
henji = IIf(youbi = 2 or youbi = 6, “收紙類垃圾”, IIf(youbi = 3 or youbi = 5 or youbi = 7, “收一般垃圾”, “不收垃圾”))
MsgBox henji
End Sub

20-09 設定狀態列的文字

應用範例
Sub 設定狀態列的文字()
MsgBox “將狀態列的文字設為「執行中」”
stb = Application.StatusBar
dstb = Application.DisplayStatusBar
Application.StatusBar = “執行中”
MsgBox “回復原來的狀態”
Application.DisplayStatusBar = dstb
Application.StatusBar = stb
End Sub

20-10 字串的轉換

應用範例
Sub 轉換字串()
MsgBox “將使用中儲存格內的字串由大寫轉換為小寫”
a = ActiveCell.Value
b = StrConv(a, vbLowerCase)
ActiveCell.Value = b
End Sub

20-11 英文字元的轉換

應用範例
Sub 字串的大小寫轉換()
MsgBox “將使用中儲存格內字串中的小寫文字轉換為大寫文字”
a = ActiveCell.Value
ActiveCell.Value=UCase(a)
End Sub

20-12 計算字串的字數

應用範例
Sub 計算字串的字數()
MsgBox “顯示使用中儲存格內字串的字數”
MsgBox Len(ActiveCell.Value)
End Sub

20-13 刪除字串中頭尾的空白字元

應用範例1
Sub 刪除字串前端的空白字元()
MsgBox “刪除使用中儲存格內字串前端的空白字元”
ActiveCell.Value = LTrim(ActiveCell.Value)
End Sub

應用範例2
Sub 刪除字串前後端的空白字元()
moji = “ 彭 凱堯 ”
MsgBox “將變數moji前後端加上星號以利辨認其空白字元”
MsgBox “*” & moji & “*”
MsgBox “接著,刪除moji前後端的空白字元後,在其前後端加上星號,比較刪除前後的差異”
MsgBox “*” & Trim(moji) & “*”
End Sub

20-14 將字串分割成子字串

應用範例
Sub 分割字串()
MsgBox “將使用中儲存格內的字串以空白作為分割辨識依據,分割為子字串,並列於原字串的右側”
a = ActiveCell.Value
hairetu = Split(a, , 2, vbTextCompare)
i = 1
For Each youso In hairetu
ActiveCell.Offset(ColumnOffset:=i) = youso
i = i +1
Next youso
End Sub

20-15 設定陣列的元素

應用範例
Sub 陣列的應用()
MsgBox “在選取的儲存格範圍上繪製紅色的粗框線”
Sihen = Array(xlEdgeLeft, xlEdgeTop, xlEdgeBottom, xlEdgeRight)
For Each hen In sihen
With Selection.Borders(hen)
.LineStyle = xlContinuous
.Weight = xlThick
.ColorIndex = 3
End With
Next
End Sub

20-16 陣列的索引值

應用範例
Sub 陣列中的最低索引值與最高索引值()
Dim h(0 To 10)
MsgBox “顯示陣列中最低與最高索引值”
MsgBox “最低索引值:” & LBound(h)
MsgBox “最高索引值:” & UBound(h)
End Sub

20-17 亂數

應用範例
Sub 亂數()
MsgBox “在1與6之間產生亂數”
Randomize
MsgBox Int(Rnd() * 6 + 1)
End Sub

20-18 設定小數位數

應用範例
Sub Round函數的運用()
MsgBox “計算使用中儲存格經過四捨五入運算後的值,小數點後為兩位數”
ActiveCell.Value = Round(ActiveCell.Value, 2)
End Sub

20-19 取得數值中的整數部份

應用範例
Sub Fix和Int的差異()
MsgBox “將「-3 + 1÷3」的運算結果寫入儲存格A1,A2寫入Int函數的值,A3寫入Fix函數的值”
Range(“A1”).Value = -3 + 1 / 3
Range(“A2”).Value = Int(-3 + 1 / 3)
Range(“A3”).Value = Fix(-3 + 1 / 3)
End Sub

20-20 使用物件變數

應用範例
Sub Set陳述式的使用()
Set obj = Range(“A1”).Font
MsgBox “顯示變數obj的類型”
MsgBox TypeName(obj)
End Sub

20-21 取得變數的類型

應用範例
Sub 物件的類型()
MsgBox “顯示變數在運算時各種不同的類型”
suu = True
MsgBox “當suu = True時,其物件類型為:” & TypeName(suu)
suu = suu + 10
MsgBox “當suu = suu + 10時,其物件類型變為:” & TypeName(suu)
suu = suu > 10
MsgBox “當suu = suu > 10時,其物件類型變為:” & TypeName(suu)
End Sub

20-22 啟用滑鼠放大縮小視窗的功能

應用範例
Sub 滑鼠放大縮小視窗的功能()
MsgBox “切換啟用/停用滑鼠放大縮小視窗的功能”
MsgBox Application.RollZoom
Application.RollZoom = Not (Application.RollZoom)
MsgBox Application.RollZoom
End Sub

20-23 變更滑鼠的指標外觀

應用範例
Sub 變更滑鼠指標的外觀()
MsgBox “將滑鼠指標變更為沙漏指標”
cs = Application.Cursor
Application.Cursor = xlWait
MsgBox “回復原來的狀態”
Application.Cursor = cs
End Sub

20-24 輸入法的狀態

應用範例
Sub 輸入法狀態()
MsgBox “顯示目前輸入法狀態的常數值”
MsgBox IMEStatus
End Sub

20-25 儲存格內是否有資料

應用範例
Sub 儲存格內是否有資料()
MsgBox “若使用中儲存格內無資料,將顯示True”
MsgBox IsEmpty(ActiveCell.Value)
End Sub

20-26 設定計算模式

應用範例
Sub 切換計算模式()
keisan = Application.Calculation
If keisan = -4105 Then
MsgBox “目前的計算模式為自動,將變更為手動模式”
Application.Calculation = xlCalculationManual
Else
MsgBox “目前的計算模式為手動,將變更為自動模式”
Application.Calculation = xlCalculationAutomatic
End If
End Sub

20-27 發出聲音

應用範例
Sub 發出聲音()
MsgBox “讓電腦發出聲音”
Beep
End Sub

20-28 轉換ASCII碼及字元

應用範例
Sub 轉換ASCII碼及字元()
MsgBox “顯示A~Z”
moji = “”
For i = 65 To 90
moji = moji & Chr(i)
Next i
MsgBox moji
End Sub

20-29 顯示/隱藏資料編輯列

應用範例
Sub 顯示或隱藏資料編輯列()
MsgBox “切換資料編輯列的顯示狀態”
Application.DisplayFormulaBar = Not (Application.DisplayFormulaBar)
End Sub

20-30 設定儲存格的數字格式

應用範例
Sub 儲存格的數字格式()
MsgBox “將被選取的儲存格格式設為小數點後三位數的數值,若為負數則顯示為紅字”
keisiki = Selection.NumberFormatLocal
Selection.NumberFormatLocal = “0.000; [紅色] 0.000”
MsgBox “回復原來的狀態”
Selection.NumberFormatLocal = keisiki
End Sub

20-31 變更按住Enter鍵的儲存格移動方向

應用範例
Sub 按住Enter鍵的儲存格移動方向()
MsgBox “將按住Enter鍵的儲存格移動方向設為向右”
Application.MoveAfterReturnDirection = xlToRight
End Sub

20-32 開啟對話窗

應用範例
Sub 開啟對話窗()
MsgBox “開啟「開啟舊檔」對話窗”
dilog = Application.Dialogs(xlDialogOpen).Show
If dilog = False Then MsgBox “您已關閉對話窗”: Exit Sub
End Sub

第十九章 日期‧時間

第十九章 日期‧時間
19-01 現在的日期及時間

應用範例
Sub 現在的日期時間()
MsgBox “顯示現在的日期及時間”
MsgBox “現在的日期” & Date
MsgBox “現在的時間” & Time
MsgBox “現在的日期及時間” & Now
End Sub

19-02 年、月、日、時、分、秒

應用範例
Sub 年月日時分秒()
MsgBox “顯示現在的時刻”
MsgBox “今天的日期是:” & Year(date) & “ 年 ” & Month(date) & “ 月 ” & Day(date) & “ 日” & Chr(10) & Chr(13) & “現在的時間是:” & Hour(time) & “ 時 ” & Minute(time) & “ 分 ” & Second(time) & “ 秒 ”
End Sub

19-03 月份的名稱

應用範例
Sub 顯示月份的名稱()
MsgBox “從使用中儲存格開始,依序將各月份的名稱填入儲存格內”
ActiveCell.Value = MonthName(1)
For i = 2 To 12
ActiveCell.Offset(rowoffset:=1).Activate
ActiveCell.Value = MonthName(i)
Next i
End Sub

19-04 星期的名稱

應用範例
Sub 今天是星期幾()
MsgBox “顯示今天是星期幾”
youbi = Weekday(date)
MsgBox WeekdayName(youbi)
End Sub

19-05 將字串轉換為日期

應用範例
Sub 將字串轉換為日期()
MsgBox “將字串「2004年12月28日」轉換為日期”
hizuke = “2004年12月28日”
MsgBox DateValue(hizuke)
End Sub

19-06 將字串轉換為時間

應用範例
Sub 將字串轉換為時間()
MsgBox “將字串「4:15:20 PM」轉換為時間”
jikoku = “4:15:20 PM”
MsgBox TimeValue(jikoku)
End Sub

19-07 日期的計算及應用

應用範例1
Sub 彙整個別的年月日數值()
MsgBox “將橫列、相鄰的儲存格內的年、月、日三個數值彙整為完整的日期”
nen = ActiveCell.Value
ActiveCell.Next.Select
tuki =ActiveCell.Value
ActiveCell.Next.Select
hi = ActiveCell.Value
ActiveCell.Next.Select
Selection.Value = DateSerial(nen, tuki, hi)
End Sub

應用範例2
Sub 將日期中的年月日分開()
MsgBox “將儲存格中的日期依年、月、日分別寫入不同的儲存格中”
hizuke = ActiveCell.Value
ActiveCell.Next.Select
ActiveCell.Value = Year(hizuke)
ActiveCell.Next.Select
ActiveCell.Value = Month(hizuke)
ActiveCell.Next.Select
ActiveCell.Value = Day(hizuke)
End Sub

19-08 時間的計算及應用

應用範例
Sub 時間的計算()
MsgBox “顯示中午12時前15分鐘的時間”
MsgBox TimeSerial(12, -15, 0)
End Sub

19-09 計算兩個日期的時間差

應用範例
Sub 計算日期的時間差()
MsgBox “以秒為單位,計算兩個日期的時間差”
hizuke1 = “2005/1/1”
hizuke2 = “2005/12/31”
MsgBox “從2005年1月1日起,要等 ” & DateDiff(“s”, hizuke1, hizuke2) & “ 秒才會到2005年年底”
End Sub

19-10 經過的時間

應用範例
Sub 經過的時間()
MsgBox “在使用中儲存格內輸入今天的日期,於右邊的儲存格顯示兩年後的日期”
ActiveCell.Value = Date
ActiveCell.Next.Select
ActiveCell.Value = DateAdd(“yyyy”, 2, Date)
End Sub

19-11 今天是今年的第幾天

應用範例
Sub 指定的日期在一年中是哪一個部份()
MsgBox “今天是今年的第幾天”
MsgBox “今天(” & Date & “)是今年的第 ” & DatePart(“y”, date) & “ 天”
End Sub

19-12 從00:00起經過多少秒

應用範例
Sub 計時碼錶()
MsgBox “按下確定按鈕後開始計時”
byou1 = Timer
MsgBox “再按一次確定按鈕停止計時”
byou2 = Timer
MsgBox “經過的時間為 ” & byou2 – byou1 & “ 秒”
End Sub

19-13 變更日期、時間的格式

應用範例
Sub 日期與時間的格式()
MsgBox “依序顯示現在日期與時間的格式”
For i = 0 To 4
MsgBox “常數值為 ” & i & “ 的日期時間格式:” & FormatDateTime(Now, i)
Next i
End Sub

19-14 設定系統的日期和時間

應用範例
Sub 系統日期與時間()
MsgBox “將系統日期與時間變更為2006年3月12日上午7時”
Date = #3/12/2006#
Time = #07:00:00 AM#
End Sub

第十八章 巨集

第十八章 巨集
18-01 執行巨集

應用範例
Sub 執行巨集()
MsgBox “選取儲存格範圍B2到D6後執行「繪製外框線」的程序”
ActiveSheet.Range(“B2:D6”).Select
Application.Run “繪製外框線”
End Sub

18-02 在程序中執行其他的程序

應用範例
Public youso, kekka

Sub 呼叫程序()
Msgbox “呼叫計算平方根的程序「keisan」,並顯示計算結果”
n = Array(100, 200, 300)
For Each youso In n
MsgBox “呼叫「keisan」程序來計算 ” & youso & “ 的平方根”
Call keisan
MsgBox “結果計算完成,請按確定”
MsgBox youso & “ 的平方根為:” & kekka
Next youso
End Sub

Sub keisan()
kekka = Sqr(youso)
End Sub

18-03 在指定的時間執行程序

應用範例
Sub 在指定的時間執行程序()
Msgbox “從現在開始,10秒後執行程序「全螢幕模式」”
Application.OnTime Now + Timevalue(“00:00:10”), “全螢幕模式”
End Sub
18-04 在指定的時間內暫停執行巨集

應用範例
Sub 暫時停止執行巨集()
MsgBox “按下「確定」按鈕後,5秒鐘後將執行「全螢幕模式」”
settime = DateAdd(“s”, 5, Now())
Application.Wait settime
Call 全螢幕模式
End Sub

18-05 巨集執行時不更新螢幕

應用範例
Sub 關閉螢幕更新的功能()
MsgBox “依序切換Sheet1→Sheet2→Sheet3→Sheet2,並在其中開啟及關閉螢幕更新的功能”
Worksheets(1).Select
MsgBox “目前螢幕中顯示工作表Sheet1”
Application.ScreenUpdating = True
WorkSheets(2).Select
MsgBox “顯示Sheet2了嗎?”
WorkSheets(3).Select
MsgBox “顯示Sheet3了嗎?”
WorkSheets(2).Select
MsgBox “接下來和先前的執行程序相同,但關閉螢幕更新的功能”
Worksheets(1).Select
MsgBox “目前螢幕中顯示工作表Sheet1”
Application.ScreenUpdating = False
WorkSheets(2).Select
MsgBox “顯示Sheet2了嗎?”
WorkSheets(3).Select
MsgBox “顯示Sheet3了嗎?”
WorkSheets(2).Select
End Sub

18-06 按下特定的按鍵來執行程序

應用範例1
Sub 按下特定的按鍵來執行程序()
MsgBox “按下Ctrl+D後將執行程序「全螢幕模式」”
Application.OnKey “^{d}”, “全螢幕模式”
End Sub

應用範例2
Sub 清除Key引數的設定值()
MsgBox “回復原來的按鍵設定狀態”
Application.OnKey “^{d}”
End Sub

第十七章 檔案

第十七章 檔案
17-01 開啟最近使用過的檔案

應用範例
Sub 開啟最近使用過的檔案()
MsgBox “顯示最近使用過的第二個檔案名稱,並開啟它”
MsgBox Application.RecentFiles(2).Name
Application.RecentFiles(2).Open
End Sub

17-02 搜尋檔案

應用範例
Sub 搜尋檔案()
sfolda = “C:\My Documents”
sname = “*.xls”
MsgBox “在 ” & sfolda & “ 內搜尋 ” & sname & “ 的檔案,並將顯示搜尋到的檔案數量以及依序顯示搜尋到的檔案名稱”
With Application.FileSearch
.LookIn = sfolda
.Filename = sname
rsl = .Execute
Msgbox “搜尋到的檔案數量為:” & rsl
If rsl > 0 Then
For Each nm In .FoundFiles
MsgBox nm
Next nm
Else
MsgBox “找不到檔案”
End If
End With
End Sub

17-03 取得檔案的日期

應用範例
Sub 檔案的日期()
fname = “C:\My Documents\作圖用 Excel Chp05.xls”……1
MsgBox “顯示 ” & fname & “的檔案建立日期/最後一次修改日期”
MsgBox FileDatetime(fname)
End Sub

17-04 使用循序模式寫入檔案

應用範例
Sub 使用循序模式寫入檔案()
MsgBox “將儲存格範圍A2到D6內的資料以循序模式寫入「分數.txt」檔案中”
Open “分數.txt” For Output As #1
For gyou = 2 To 6
For retu = 1 To 4
x = Cells(gyou, retu)
Print #1, x
Next retu
Next gyou
Close #1
End Sub

17-05 使用循序模式讀取檔案

應用範例
Sub 使用循序輸出模式讀出資料()
MsgBox “將循序檔內的資料讀出,寫入儲存格範圍A2到D6內”
Open “分數.txt” For Input As #1
For gyou = 2 To 6
For retu = 1 To 4
Input #1, x
Cells(gyou, retu) = x
Next retu
Next gyou
Close #1
End Sub
17-06 使用亂數模式寫入檔案

應用範例
Private Type fld
retu1 As Single
retu2 As String * 7
retu3 As String * 12
End Type

Sub 使用亂數模式寫入檔案()
MsgBox “將儲存格範圍A3到C7的資料寫入亂數檔「通訊錄」中”
Dim data As fld
Open “通訊錄” For Random As #1 Len = Len(data)
recnumber = 1
For gyou = 3 To 7
data.retu1 = Cells(gyou, 1)
data.retu2 = Cells(gyou, 2)
data.retu3 = Cells(gyou, 3)
Put #1, recnumber, data
recnumber = recnumber + 1
Next gyou
Close #1
End Sub

17-07 使用亂數模式讀取檔案

應用範例
Private Type fld
retu1 As Single
retu2 As String * 7
retu3 As String * 12
End Type

Sub 使用亂數輸出模式讀出資料()
MsgBox “將亂數檔內的資料讀出,寫入儲存格範圍A3到C7內”
Dim data As fld
Open “通訊錄” For Random As #1 Len = Len(data)……1
recnumber = 1
For gyou = 3 To 7……2
Get #1, recnumber, data
With ActiveSheet
.Cells(gyou, 1) = data.retu1
.Cells(gyou, 2) = data.retu2
.Cells(gyou, 3) = data.retu3
End With
recnumber = recnumber + 1
Next gyou
Close #1
End Sub

第十六章 Office小幫手與汽球文字說明

第十六章 Office小幫手與汽球文字說明
16-01 顯示/隱藏Office小幫手

應用範例
Sub 顯示或隱藏Office小幫手()
MsgBox “切換Office小幫手顯示/隱藏的狀態”
Assistant.Visible = Not (Assistant.Visible)
End Sub

16-02 移動Office小幫手

應用範例
Sub 移動Office小幫手()
x = 200
y = 250
MsgBox “將Office小幫手移到螢幕(” & x & “,” & y & “)的位置”
Assistant.Move x, y
End Sub

16-03 變更Office小幫手的動畫效果

應用範例
Sub 設定動畫效果()
MsgBox “依序顯示Office小幫手的動畫效果類型”
anime = Application.Assistant.Animation
For i = 100 To 116
Application.Assistant.Animation = i
MsgBox “Office小幫手目前的動畫效果常數值:” & i
Next i
MsgBox “回復原來的動畫效果”
Application.Assistant.Animation = anime
End Sub

16-04 Office小幫手的汽球說明文字

應用範例
Sub 汽球中的提示訊息()
MsgBox “建立汽球,並在汽球中顯示提示訊息”
With Assistant.NewBalloon
.Icon = msoIconTip
.Heading = “小計的使用方法”
.Labels(1).Text = “首先,請點選「資料」”
.Labels(2).Text = “其次,請點選「小計」”
.Button = msoButtonSetOK
.Show
End With
Application.Assistant.Visible = False
End Sub

16-05 在汽球中建立標籤

應用範例
Sub 汽球與標籤的應用()
MsgBox “為Office小幫手建立內含標籤選項的汽球”
With Application.Assistant.NewBalloon
.Heading = “◆資料排序◆”
.Text = “請點選下列的項目:”
.Labels(1).Text = “依據姓名遞增排序”
.Labels(2).Text = “依據編號排序”
.Labels(3).Text = “取消”
.Button = msoButtonSetNone
sentaku = .Show
End With
Select Case sentaku
Case 1
Msgbox “依據姓名遞增排序”
hanni = “A2:C12”
kii = “B2”
ActiveSheet.Range(hanni).Select
retu = Range(kii).Value
Selection.Sort key1:=Range(kii), header:=xlYes, Order1:=xlAscending
Case 2
MsgBox “依據編號排序”
hanni = “A2:C12”
kii = “A2”
ActveSheet.Range(hanni).Select
retu = Range(kii).Value
Selection.Sort key1:=Range(kii), header:=xlYes, Order1:=xlAscending
Case 3
MsgBox “取消”
End Select
End Sub

16-06 在汽球中建立核取方塊

應用範例
Sub 汽球與核取方塊的應用()
MsgBox “為Office小幫手建立內含核取方塊的汽球”
With Assistant.NewBalloon
.Heading = “變更A2到C2儲存格範圍的格式”
.Text = “勾選欲執行的項目後,請按OK ”
.CheckBoxes(1).Text = “變更為粗體字”
.CheckBoxes(2).Text = “變更為斜體字”
.Button = msoButtonSetOK
.Show
If .CheckBoxes(1).Checked = True Then
Range(“A2:C2”).Font.Bold = True……1
Else
Range(“A2:C2”).Font.Bold = False……2
End If
If .CheckBoxes(2).Checked = True Then
Range(“A2:C2”).Font.Italic = True……3
Else
Range(“A2:C2”).Font.Italic = False……4
End If
End With
End Sub

第十五章 控制項

第十五章 控制項
15-01 取得表單的控制項名稱

應用範例
Sub 顯示控制項的名稱()
MsgBox “依序顯示各控制項的名稱”
suu = ActiveSheet.Shapes.Count
For i = 1 To suu
henji = MsgBox (“第 ” & i & “ 個控制項名稱為:” & ActiveSheet.Shapes(i).Name & “,繼續嗎?”, vbYesNo)
If henji = vbNo Then Exit Sub
Next i
End Sub

15-02 設定表單控制項的值

應用範例
Sub 設定控制項的值()
MsgBox “點選選項按鈕2、取消勾選核取方塊4”
ActiveSheet.[option button 2].Value = True
ActiveSheet.[check box 4].Value = False
End Sub

15-03 取得表單控制項的值

應用範例
Sub 顯示控制項的值()
MsgBox “顯示選項按鈕、核取方塊、下拉式方塊、清單方塊的值”
MsgBox “選項按鈕2的值:” & ActiveSheet.[option button 2].Value & vbCR & “選項按鈕3的值:” & ActiveSheet.[option button 3].Value & vbCR & “核取方塊4的值:” & ActiveSheet.[check box 4].Value & vbCR & “下拉式方塊的值:” & ActiveSheet.[drop down 5].Value & vbCR & “清單方塊的值:” & ActiveSheet.[list box 6].Value
End Sub

15-04 隱藏表單控制項

應用範例
Sub 隱藏按鈕()
MsgBox “隱藏使用中工作表內的按鈕1”
ActiveSheet.[button 1].Visible = False
MsgBox “回復原來的狀態”
ActiveSheet.[button 1].Visible = True
End Sub

15-05 按下按鈕後執行巨集(表單)

應用範例
按下按鈕,即執行10-05的「資料排序」程序。
※請參閱 10-05應用範例(資料排序)

15-06 取得控制工具箱的控制項名稱

應用範例
Sub 顯示控制項的名稱()
MsgBox “依序顯示各控制項的名稱”
suu = ActiveSheet.Shapes.Count
For i = 1 To suu
henji = MsgBox (“第 ” & i & “ 個控制項名稱為:” & ActiveSheet.Shapes(i).Name & “,繼續嗎?”, vbYesNo)
If henji = vbNo Then Exit Sub
Next i
End Sub

15-07 在控制工具箱的清單方塊、下拉式方塊中新增清單中的項目

應用範例1
Sub 新增下拉式方塊的項目()
MsgBox “新增下拉式方塊的項目”
With ActiveSheet.ComboBox1
.AddItem “台北市”
.AddItem “台中市”
.AddItem “高雄市”
End With
End Sub

應用範例2
Sub 新增清單方塊的項目()
MsgBox “新增清單方塊的項目”
With ActiveSheet.ListBox1
.AddItem “分公司A”
.AddItem “分公司B”
.AddItem “分公司C”
End With
End Sub

15-08 設定控制項的值(控制工具箱)

應用範例
Sub 設定控制項的值()
MsgBox “設定文字方塊、選項按鈕及核取方塊的值”
ActiveSheet.TextBox1.Value = 100
ActiveSheet.OptionButton1.Value = True
ActiveSheet.CheckBox1.Value = True
End Sub

15-09 取得控制工具箱的控制項值

應用範例
Sub 顯示控制項的值()
MsgBox “顯示文字方塊、選項按鈕、核取方塊、清單方塊及下拉式方塊的值”
MsgBox “文字方塊的值:” & ActiveSheet.TextBox1.Value & vbCR & “OptionButton1的值:” & ActiveSheet.OptionButton1.Value & vbCR & “OptionButton2的值:” & ActiveSheet.OptionButton2.Value & vbCR & “CheckBox1的值:” & ActiveSheet.CheckBox1.Value & vbCR & “清單方塊的值:” & ActiveSheet.ListBox1.Value & vbCR & “下拉式方塊的值:” & ActiveSheet.ComboBox1.Value
End Sub

15-11 指令按鈕與事件程序

應用範例
按下CommandButton1按鈕後,即執行姓名排序的程序

Private Sub CommandButton1_Click()
hanni = “A2:C12”
kii = “B2”
ActiveSheet.Range(hanni).Select
retu = Range(kii).Value
henji = MsgBox(“對” & retu & “遞增排序”, vbYesNo)
If henji = vbNo Then Exit Sub
Selection.Sort key1:=Range(kii), header:=xlYes, Order1:=xlAscending
End Sub

15-12 顯示視窗或對話方塊(自訂表單)

應用範例
Sub 顯示自訂表單()
MsgBox “顯示自訂表單”
UserForm1.Show
End Sub

15-13 變更自訂表單的高度及寬度

應用範例
Sub 設定自訂表單的尺寸()
MsgBox “將UserForm1的高度與寬度各放大1.5倍”
takasa = UserForm1.Height
haba = UserForm1.Width
UserForm1.Height = takasa * 3/2
UserForm1.Width = haba * 3/2
UserForm1.Show
MsgBox “回復原來的狀態”
UserForm1.Height = takasa
UserForm1.Width = haba
End Sub

15-14 指令按鈕與事件程序

應用範例
請將下列各應用範例的程式代入Sub ()~End Sub之間後執行:
15-19 取得自訂表單內的控制項數量
15-24 隱藏自訂表單
15-27 關閉自訂表單

15-15 自訂表單與事件程序

應用範例
請將下列各應用範例的程式代入Sub ()~End Sub之間後執行:
15-28 一開啟自訂表單,即設好各控制項的值

15-16 控制項與事件程序

應用範例
請將下列各應用範例的程式代入Sub ()~End Sub之間後執行:
15-29  變更控制項的值後即顯示訊息
15-17 設定自訂表單的初始位置

應用範例
Sub 設定自訂表單的位置()
MsgBox “將自訂表單置於螢幕的左上角”
UserForm1.StartupPosition = 3
UserForm1.Show
End Sub

15-18 設定自訂表單的位置

應用範例 按下CommandButton1按鈕後即變更自訂表單的位置
n 請使用Virtual Basic編輯器,在UserForm1中以滑鼠雙擊CommandButton1將下列程序寫入後,執行15-12的應用範例開啟自訂表單,然後再按表單中CommandButton1按鈕來執行此應用範例。
Private Sub CommandButton1_Click()
MsgBox “變更自訂表單的位置”
x = UserForm1.Left
y = UserForm1.Top
UserForm1.Left = x/2
UserForm1.Top = y/2
MsgBox “回復原來的狀態”
UserForm1.Left = x
UserForm1.Top = y
End Sub
15-19 取得自訂表單內的控制項數量

應用範例
按下CommandButton1按鈕後即顯示自訂表單中控制項的數量
n 請使用Virtual Basic編輯器(請參閱15-18),在UserForm1中以滑鼠雙擊CommandButton1將下列程序寫入後,執行15-12的應用範例開啟自訂表單,然後再按表單中CommandButton1按鈕來執行此應用範例。

Private Sub CommandButton1_Click()
MsgBox “顯示自訂表單UserForm1內的控制項數量”
MsgBox UserForm1.Controls.Count
End Sub

15-20 取得自訂表單中控制項的名稱

應用範例
按下CommandButton1按鈕後即依序顯示自訂表單中的控制項名稱
n 請使用Virtual Basic編輯器(請參閱15-18),在UserForm1中以滑鼠雙擊CommandButton1將下列程序寫入後,執行15-12的應用範例開啟自訂表單,然後再按表單中CommandButton1按鈕來執行此應用範例。

Private Sub CommandButton1_Click()
MsgBox “依序顯示自訂表單中的控制項名稱”
i = 1
For Each youso in UserForm1.Controls
henji = MsgBox(“第 ” & i & “ 個控制項的名稱為:” & youso.Name & “,繼續嗎?”, vbYesNo)
If henji = vbNo Then Exit Sub
i = i +1
Next youso
End Sub

15-21 設定自訂表單控制項的值

應用範例
Sub 設定控制項的值()
MsgBox “將100填入文字方塊中、點選OptionButton1、勾選CheckBox1後開啟自訂表單UserForm1”
UserForm1.TextBox1.Value = 100
UserForm1.OptionButton1.Value = True
UserForm1.CheckBox1.Value = True
UserForm1.Show
End Sub

15-22 自儲存格範圍中指定清單方塊及下拉式方塊的項目來源

應用範例1
Sub 指定清單方塊內的項目()
MsgBox “將儲存格範圍A2到A10中的資料作為清單方塊ListBox1內的項目”
UserForm1.ListBox1.RowSource = “A2:A10”
UserForm1.Show
End Sub

應用範例2
Sub 指定下拉式方塊內的項目()
MsgBox “將儲存格範圍A2到A10中的資料作為下拉式方塊ComboBox1內的項目”
UserForm1.ComboBox1.RowSource = “A2:A10”
UserForm1.Show
End Sub

15-23 設定清單方塊、下拉式方塊內的項目

應用範例1
Sub 設定清單方塊內的項目()
MsgBox “新增清單方塊內的項目”
With UserForm1.ListBox1
.AddItem “分公司A”
.AddItem “分公司B”
.AddItem “分公司C”
End With
UserForm1.Show
End Sub

應用範例2
Sub 設定下拉式方塊內的項目()
MsgBox “新增下拉式方塊內的項目”
With UserForm1.ComboBox1
.AddItem “台北市”
.AddItem “台中市”
.AddItem “高雄市”, 0
End With
UserForm1.Show
End Sub

15-24 隱藏自訂表單

應用範例
按下CommandButton1按鈕後即隱藏自訂表單
n 請使用Virtual Basic編輯器(請參閱15-18),在UserForm1中以滑鼠雙擊CommandButton1將下列程序寫入後,執行15-12的應用範例開啟自訂表單,然後再按表單中CommandButton1按鈕來執行此應用範例。

Private Sub CommandButton1_Click()
MsgBox “隱藏自訂表單UserForm1”
UserForm1.Hide
MsgBox “回復原來的狀態”
UserForm1.Show
End Sub
15-25 隱藏自訂表單內的控制項

應用範例
按下CommandButton1按鈕後即隱藏核取方塊「CheckBox1」
n 請使用Virtual Basic編輯器(請參閱15-18),在UserForm1中以滑鼠雙擊CommandButton1將下列程序寫入後,執行15-12的應用範例開啟自訂表單,然後再按表單中CommandButton1按鈕來執行此應用範例。

Private Sub CommandButton1_Click()
MsgBox “隱藏核取方塊CheckBox1”
UserForm1.CheckBox1.Visible = False
MsgBox “回復原來的狀態”
UserForm1.CheckBox1.Visible = True
End Sub

15-26 停用自訂表單內的控制項

應用範例
按下CommandButton1按鈕後即停用核取方塊「CheckBox1」
n 請使用Virtual Basic編輯器(請參閱15-18),在UserForm1中以滑鼠雙擊CommandButton1將下列程序寫入後,執行15-12的應用範例開啟自訂表單,然後再按表單中CommandButton1按鈕來執行此應用範例。

Private Sub CommandButton1_Click()
MsgBox “停用CheckBox1”
UserForm1.CheckBox1.Enabled = False
MsgBox “回復原來的狀態”
UserForm1.CheckBox1.Enabled = True
End Sub

15-27 關閉自訂表單

應用範例
按下CommandButton2按鈕後即關閉自訂表單「UserForm1」
n 請使用Virtual Basic編輯器(請參閱15-18),在UserForm1中以滑鼠雙擊CommandButton2將下列程序寫入後,執行15-12的應用範例開啟自訂表單,然後再按表單中CommandButton2按鈕來執行此應用範例。

Private Sub CommandButton2_Click()
MsgBox “關閉自訂表單UserForm1”
Unload UserForm1
End Sub

15-28 一開啟自訂表單,即設好各控制項的值

應用範例
n 請使用Virtual Basic編輯器(請參閱15-18),以滑鼠雙擊UserForm1,將下列程序寫入後,執行15-12的應用範例開啟自訂表單來觀察執行結果。

Private Sub UserForm_Activate()
MsgBox “一開啟UserForm1,即依程序中的設定將資料寫入各控制項內”
UserForm1.TextBox1.Value = “Excel VBA”
UserForm1.OptionButton1.Value = True
UserForm1.CheckBox1.Value = True
With UserForm1.ListBox1
.AddItem “分公司A”
.AddItem “分公司B”
.AddItem “分公司C”
End With
With UserForm1.ComboBox1
.AddItem “台北市”
.AddItem “台中市”
.AddItem “高雄市”
End With
End Sub

15-29 變更自訂表單控制項的值後即顯示訊息

應用範例
n 請使用Virtual Basic編輯器(請參閱15-18),按插入→自訂表單(新增自訂表單UserForm2),在UserForm2中新增文字方塊及指令按鈕後,以滑鼠雙擊UserForm2,將下列程序寫入。執行前請參考15-12的應用範例,先開啟自訂表單UserForm2後再依下述說明執行。

說明 在自訂表單UserForm2的文字方塊「TextBox1」內輸入查詢文字後,將顯示「在文字方塊中輸入欲查詢的文字後,請按CommnadButton1按鈕開始搜尋資料」的對話窗;當按下CommandButton1後,開始搜尋的程序(Private Sub CommandButton1_Click()…)。

1. 變更TextBox1內的值後,顯示訊息對話窗
Private Sub TextBox1_AfterUpdate()
MsgBox “在文字方塊中輸入欲查詢的文字後,請按CommnadButton1按鈕開始搜尋資料”
End Sub

2. 按下ConnandButton1後的資料搜尋程序
Private Sub CommandButton1_Click
moji = UserForm2.TextBox1.Value
MsgBox “從使用中儲存格開始搜尋含有「 ” & moji & “」文字的儲存格”
Set iti = Cells.Find(What:=moji, After:=ActiveCell)
If iti Is Nothing Then
MsgBox “查無此資料”
Exit Sub
Else
iti.Select
End If
End Sub

15-30 自訂表單中下拉式方塊與指令按鈕的應用

應用範例
n 請使用Virtual Basic編輯器(請參閱15-18),在UserForm1中以滑鼠雙擊CommandButton1將下列程序寫入後,執行15-12的應用範例開啟自訂表單,然後再按表單中CommandButton1按鈕來執行此應用範例。

說明 按下CommandButton1指令按鈕後,即將下拉式方塊中被選取的項目寫入儲存格A1內。

設定下拉式方塊的項目
Private Sub UserForm_Activate()
With UserForm1.ComboBox1
.AddItem “台北市”
.AddItem “台中市”
.AddItem “高雄市”
End With
End Sub

按下CommandButton1後
Private Sub CommandButton1_Click()
MsgBox “將下拉式方塊內的值寫入使用中工作表內的A1儲存格中”
atai = UserForm1.ComboBox1.Value
ActiveSheet.Range(“A1”) = atai
End Sub

15-31 自訂表單中清單方塊與指令按鈕的應用

應用範例
n 請使用Virtual Basic編輯器(請參閱15-18),在UserForm1中以滑鼠雙擊CommandButton1將下列程序寫入後,執行15-12的應用範例開啟自訂表單,然後再按表單中CommandButton1按鈕來執行此應用範例。

說明 按下CommandButton1指令按鈕後,即將清單方塊中被選取的項目寫入儲存格A1內。

設定清單方塊的項目
Private Sub UserForm_Activate()
With UserForm1.ListBox1
.AddItem “分公司A”
.AddItem “分公司B”
.AddItem “分公司C”
End With
End Sub

按下CommandButton1後
Private Sub CommandButton1_Click()
MsgBox “將清單方塊內被選取的項目寫入使用中工作表內的A1儲存格中”
atai = UserForm1.ListBox1.Value
ActiveSheet.Range(“A1”) = atai
End Sub

15-32 自訂表單中核取方塊與指令按鈕的應用

應用範例
n 請使用Virtual Basic編輯器(請參閱15-18),按插入→自訂表單(新增自訂表單UserForm2),在UserForm2中新增兩個核取方塊及一個指令按鈕後,以滑鼠雙擊UserForm2,將下列程序寫入。執行前請參考15-12的應用範例,先開啟自訂表單UserForm2後再依下述說明執行。

說明 在自訂表單UserForm2中勾選CheckBox1、按下CommandButton1後,將隱藏樞紐分析表中的行總計;勾選CheckBox2則隱藏樞紐分析表中的列總計。

Private Sub CommandButton1_Click()
ch1 = UserForm2.CheckBox1.Value
ch2 = UserForm2.CheckBox2.Value
If ch1 = True Then
Selection.PivotTable.RowGrand = False
Else
Selection.PivotTable.RowGrand = True
End If
If ch2 = True Then
Selection.PivotTable.ColumnGrand = False
Else
Selection.PivotTable.ColumnGrand = True
End If
End Sub

15-33 自訂表單中選項按鈕與指令按鈕的應用

應用範例
n 請使用Virtual Basic編輯器(請參閱15-18),按插入→自訂表單(新增自訂表單UserForm2),在UserForm2中新增兩個選項按鈕及一個指令按鈕後,以滑鼠雙擊UserForm2,將下列程序寫入。執行前請參考15-12的應用範例,先開啟自訂表單UserForm2後再依下述說明執行。

說明 在自訂表單UserForm2中點選OptionButton1後按下CommandButton1,圖案將變為立體圖案,若點選的是OptionButton2,圖案將變為平面圖案。

Private Sub CommandButton1_Click()
op1 = UserForm2.OptionButton1.Value
op2 = UserForm2.OptionButton2.Value
If op1 = True Then
Selection.ShapeRange.ThreeD.SetThreeDFormat msoThreeD1
End If
If op2 = True Then
Selection.ShapeRange.ThreeD.Visible = msoFalse
End If
End Sub

第十四章 圖案

第十四章 圖案
14-01 建立線條

應用範例
Sub 建立線條()
MsgBox “在使用中工作表內建立一條起點為(10,10)、終點為(250,100)的線條”
ActiveSheet.Shapes.AddLine(BeginX:=10, BeginY:=10, EndX:=250, EndY:=100).Select
End Sub

14-02 建立三角形

應用範例
Sub 建立三角形()
MsgBox “在使用中工作表內建立一個左上角位於(70,40)、寬度為130點、高度為72點的三角形”
ActiveSheet.Shapes.AddShape(Type:=msoShapeRightTriangle, Left:=70, Top:=40, Width:=130, Height:=72).Select
End Sub

14-03 建立矩形

應用範例
Sub 建立矩形()
MsgBox “在使用中工作表內建立一個左上角位於(70,40)、寬度為130點、高度為72點的矩形”
ActiveSheet.Shapes.AddShape(Type:=msoShapeRectangle, Left:=70, Top:=40, Width:=130, Height:=72).Select
End Sub

14-04 建立圓形或橢圓形

應用範例
Sub 建立橢圓形()
MsgBox “在使用中工作表內建立一個左上角位於(70,40)、寬度為130點、高度為72點的橢圓形”
ActiveSheet.Shapes.AddShape(Type:=msoShapeOval, Left:=70, Top:=40, Width:=130, Height:=72).Select
End Sub

14-05 刪除圖案

應用範例
Sub 刪除圖案()
MsgBox “刪除使用中工作表內第一個圖案”
ActiveSheet.Shapes(1).Delete
End Sub

14-06 計算圖案的數量

應用範例
Sub 計算圖案的數量()
MsgBox “顯示使用中工作表中圖案的數量”
MsgBox ActiveSheet.Shapes.Count
End Sub

14-07 選取圖案

應用範例
Sub 選取圖案()
MsgBox “輸入號碼來選取圖案”
suu = ActiveSheet.Shapes.Count
zbangou = InputBox(“圖案的數量為:” & suu & “個,請輸入1到” & suu & “的數字來選取圖案”)
MsgBox “您選取了使用中工作表內第 ” & zbangou & “ 個圖案”
zbangou = CInt(zbangou)
ActiveSheet.Shapes(zbangou).Select
End Sub
14-08 移動圖案

應用範例
Sub 移動圖案()
MsgBox “將被選取的圖案向右移動200點、向下移動40點”
With Selection.ShapeRange
.IncrementLeft 200
.IncrementTop 40
End With
End Sub

14-09 隱藏圖案

應用範例
Sub 隱藏圖案()
bangou = 1
MsgBox “隱藏使用中工作表內第 ” & bangou & “ 個圖案”
ActiveSheet.Shapes(bangou).Visible = False
MsgBox “回復原來的狀態”
ActiveSheet.Shapes(bangou).Visible = True
End Sub

14-10 變更圖案線條的粗細

應用範例
Sub 變更圖案線條的粗細()
MsgBox “將第一個圖案的線條設為粗線”
ActiveSheet.Shapes(1).Line.Weight = xlThick……1
End Sub

14-11 變更圖案線條的虛線樣式

應用範例
Sub 設定圖案虛線的樣式()
MsgBox “將第一個圖案的線條變更為方形點線”
ActiveSheet.Shapes(1).Select
sensyu = Selection.ShapeRange.Line.DashStyle
Selection.ShapeRange.Line.DashStyle = msoLineSquareDot
MsgBox “回復原來的狀態”
Selection.ShapeRange.Line.DashStyle = sensyu
End Sub

14-12 變更圖案線條的顏色

應用範例
Sub 變更圖案線條的顏色()
i = 2
MsgBox “將使用中工作表內第 ” & i & “ 個圖案的線條顏色變更為藍色”
ActiveSheet.Shapes(i).Line.ForeColor.RGB = RGB(0,0,255)
MsgBox “回復原來的狀態”
ActiveSheet.Shapes(i).Line.ForeColor.RGB = RGB(0,0,0)
End Sub

14-13 設定圖案的前景色及背景色

應用範例
Sub 設定圖案的前景色()
MsgBox “將使用中工作表內第二個圖案的前景色設為紅色”
ActiveSheet.Shapes(2).Fill.Forecolor.RGB = RGB(255,0,0)
End Sub

14-14 圖案的旋轉

應用範例
Sub 旋轉圖案()
MsgBox “將使用中工作表內第一個圖案旋轉20度”
ActiveSheet.Shapes(1).Rotation = 20……1
End Sub
14-15 圖案的翻轉

應用範例1
Sub 將圖案水平翻轉()
MsgBox “水平翻轉使用中圖表內第一個圖案”
ActiveSheet.Shapes(1).Select
Selection.ShapeRange.Flip msoFlipHorizontal
End Sub

應用範例2
Sub 將圖案垂直翻轉()
MsgBox “垂直翻轉使用中圖表內第一個圖案”
ActiveSheet.Shapes(1).Select
Selection.ShapeRange.Flip msoFlipVertical
End Sub

14-16 設定圖案的顏色

應用範例
Sub 設定圖案的顏色()
MsgBox “將使用中圖表的第一個圖案顏色設為黃色”
ActiveSheet.Shapes(1).Fill.ForeColor.SchemeColor = 13
End Sub

14-17 圖案的漸層色

應用範例1
Sub 圖案的漸層色1()
MsgBox “依序顯示單色漸層的六種漸層樣式”
For syurui = 1 To 6
ActiveSheet.Shapes(1).Fill.OneColorGradient syurui, 4, 0.3
MsgBox “第 ” & syurui & “ 種漸層樣式”
Next syurui
End Sub

應用範例2
Sub 圖案的漸層色2()
MsgBox “依序顯示雙色漸層的四種變化”
ActiveSheet.Shapes(1).Fill.ForeColor.SchemeColor = 13
For i = 1 To 4
ActiveSheet.Shapes(1).Fill.TwoColorGradient msoGradientHorizontal, i
MsgBox “第 ” & i & “ 種漸層變化”
Next i
End Sub

14-18 圖案的超連結

應用範例
Sub 設定圖型的超連結()
MsgBox “在使用中工作表內第一個圖案中建立超連結”
fname = “Y:\成績一覽表.xls”……1
ActiveSheet.Hyperlinks.Add Anchor:=ActiveSheet.Shapes(1), Address:=fname
End Sub

14-19 建立立體圖案

應用範例1
Sub 建立立體圖案()
MsgBox “將所選取的圖案設為第一種立體樣式的圖案”
Selection.ShapeRange.ThreeD.SetThreeDFormat msoThreeD1
End Sub

應用範例2
Sub 顯示立體圖案的立體樣式()
MsgBox “在被選取的立體圖案上依序顯示立體樣式”
For i = 1 To 20
Selection.ShapeRange.ThreeD.SetThreeDFormat i
henji = MsgBox(“第 ” & i & “種立體樣式,是否繼續?”, vbYesNo)
If henji = vbNo Then Exit Sub
Next i
End Sub

14-20 變更立體圖案的深度

應用範例
Sub 設定立體圖案的深度()
MsgBox “將使用中工作表內第一個立體圖案的深度設為70點”
okuyuki = 70
ActiveSheet.Shapes(1).ThreeD.Depth = okuyuki
End Sub

14-21 變更立體圖案深度部份的顏色

應用範例
Sub 變更立體圖案深度部份的顏色()
MsgBox “將使用中工作表內第一個立體圖案深度部份的顏色設為藍色”
ActiveSHeet.Shapes(1).ThreeD.ExtrusionColor.RGB = RGB(0,0,255)
End Sub

14-22 旋轉立體圖案

應用範例1
Sub 設定立體圖案的X軸旋轉角度()
kakudo = 60
MsgBox “將立體圖案繞X軸旋轉 ” & kakudo & “ 度”
ActiveSheet.Shapes(1).ThreeD.RotationX = kakudo
End Sub

應用範例2
Sub 設定立體圖案的Y軸旋轉角度()
kakudo = 30
MsgBox “將立體圖案繞Y軸旋轉 ” & kakudo & “ 度”
ActiveSheet.Shapes(1).ThreeD.RotationY = kakudo
End Sub

應用範例3
Sub 設定立體圖案的X、Y軸旋轉角度()
kakudox = 60
kakudoy = 30
MsgBox “將立體圖案繞X軸旋轉 ” & kakudox & “ 度、繞Y軸旋轉 ” & kakudoy & “ 度”
ActiveSheet.Shapes(1).ThreeD.RotationX = kakudox
ActiveSheet.Shapes(1).ThreeD.RotationY = kakudoy
End Sub

14-23 設定立體圖案的材質

應用範例
Sub 設定立體圖案的材質()
MsgBox “依序變更使用中工作表內第一個立體圖案的材質”
For i = 1 To 4
ActiveSheet.Shapes(1).ThreeD.PresetMaterial = i
MsgBox “目前的材質常數值為:” & i
Next i
End Sub

14-24 將立體圖案變更為平面圖案

應用範例
Sub 將立體圖案變更為平面圖案()
MsgBox “將所選取的立體圖案變更為平面圖案”
Selection.ShapeRange.ThreeD.Visible = msoFalse
End Sub

14-25 建立文字藝術師

應用範例
Sub 建立文字藝術師()
MsgBox “在座標(50,100)處建立文字藝術師,並選取它”
ActiveSheet.Shapes.AddTextEffect(PresetTextEffect:=msoTextffect1, Text:=“Excel VBA”, FontName:=“Cooper Black”, FontSize:=44, FontBold:=True, FontItalic:=False, Left:=100, Top:=50).Select
End Sub

14-26 文字藝術師的形狀

應用範例
Sub 設定文字藝術師圖案()
MsgBox “依序顯示使用中工作表內第一個圖案的文字藝術師圖案”
For i =1 To 40
ActiveSheet.Shapes(1).TextEffect.PresetShape = i
henji = MsgBox (“目前文字藝術師圖案的常數值:” & i & “,要繼續嗎?”, vbYesNo)
If henji = vbNo Then Exit Sub
Next i
End Sub

14-27 文字藝術師圖庫

應用範例
Sub 設定文字藝術師樣式()
sutairu = 14
MsgBox “第 ” & sutairu & “ 種文字藝術師樣式”
ActiveSheet.Shapes(1).TextEffect.PresetTextEffect = sutairu
End Sub

14-28 文字藝術師的字體

應用範例
Sub 設定文字藝術師的斜體字()
MsgBox “將使用中工作表內第一個圖形的文字藝術師字體設為斜體”
ActiveSheet.Shapes(1).TextEffect.FontItalic = True
End Sub

14-29 文字藝術師的文字大小

應用範例
Sub 調整文字藝術師的大小()
MsgBox “將使用中工作表內第一個圖案放大1.2倍”
ritu = 1.2
With ActiveSheet.shapes(1)
.ScaleHeight ritu, False
.ScaleWidth ritu, False
End With
End Sub

14-30 文字藝術師的文字排列方向

應用範例
Sub 變更文字藝術師的文字排列方向()
MsgBox “變更使用中工作表內第一個圖案的文字排列方向”
ActiveSheet.Shapes(1).TextEffect.ToggleVerticalText
End Sub

第十三章 列印

第十三章 列印
13-01 預覽列印

應用範例
Sub 預覽列印()
MsgBox “開啟使用中工作表的預覽列印視窗”
ActiveSheet.PrintPreview
End Sub

13-02 開始列印

應用範例
Sub 列印()
henji = MsgBox (“列印使用中工作表,需要設定紙張、列印範圍、列印方向,或設定列印邊界嗎?”, vbYesNo)
If henji = vbNo Then Exit Sub
ActiveSheet.PrintOut
End Sub

13-03 設定列印範圍

應用範例
Sub 設定列印範圍()
MsgBox “在使用中工作表內設定儲存格範圍A1到D6為列印範圍,並開啟預覽列印視窗”
ActiveSheet.PageSetup.PrintArea = “A1:D6”
ActiveSheet.PrintPreview
End Sub

13-04 設定列印方向

應用範例
Sub 設定列印方向()
MsgBox “將列印方向變更為橫向”
ActiveSheet.PageSetup.Orientation = xlLandScape
ActiveSheet.PrintPreview
End Sub
11-05 設定紙張大小

應用範例
Sub 設定紙張大小()
MsgBox “顯示列印時所設定的紙張大小”
MsgBox ActiveSheet.PageSetup.PaperSize
End Sub

13-06 設定邊界

應用範例
Sub 設定列印邊界()
MsgBox “設定上下左右的列印邊界”
With ActiveSheet.PageSetup
.TopMargin = 120
.BottomMargin = Application.CentimetersToPoints(1.5)
.LeftMargin = 90
.RightMargin = Application.InchesToPoints(1)
End With
ActiveSheet.PrintPreview
End Sub

13-07 設定頁首標題

應用範例
Sub 設定列印的頁首標題()
MsgBox “將左側頁首標題設為目前的日期、中間頁首標題設為雙底線,20點的檔案名稱、右側頁首標題設為工作表標籤名稱”
With ActiveSheet.PageSetup
.LeftHeader = “&D”
.CenterHeader = “&E &20 &F”
.RightHeader = “&A”
End With
ActiveSheet.PrintPreview
End Sub

13-08 設定頁尾標題

應用範例
Sub 設定列印的頁尾標題()
MsgBox “將左側頁尾標題設為目前的時間、中間頁尾標題設為頁碼、右側頁尾標題設為斜體文字”
With ActiveSheet.PageSetup
.LeftFooter = “&T”
.CenterFooter = “-” & “&P -”
.RightFooter = “&I應用範例13-08”
End With
ActiveSheet.PrintPreview
End Sub

13-09 在每一頁列印出工作表中指定的列(行)儲存格

應用範例
Sub 列與行的標題()
MsgBox “設定第2列為每張列印頁的列標題,第A行為每張列印頁的行標題”
With ActiveSheet.PageSetup
midasig = .PrintTitleRows
midasir = .PrintTitleColumns
End With
ActiveSheet.PageSetup.PrintTitleColumns = “$A:$A”……1
ActiveSheet.PageSetup.PrintTitleRows = “$2:$2”……2
ActiveSheet.PrintPreview
MsgBox “回復原來的狀態”
With ActiveSheet.PageSetup
.PrintTitleRows = midasig
.PrintTitleColumns = midasir
End With
End Sub

13-10 調整列印頁的頁高及頁寬縮放比例

應用範例
Sub 調整列印頁的頁高及頁寬縮放比例()
bairitu = ActiveSheet.PageSetup.Zoom
ActiveSheet.PageSetup.Zoom = False
ActiveSheet.PageSetup.FitToPagesWide = 1
ActiveSheet.PageSetup.FitToPagesTall = 1
ActiveSheet.PrintPreview
MsgBox “回復原來的狀態”
ActiveSheet.PageSetup.Zoom = bairitu
End Sub

13-11 調整列印頁整體縮放比例

應用範例
Sub 調整列印頁整體縮放比例()
MsgBox “將儲存格範圍A1到O25間的列印頁縮放比例設為50%”
ActiveSheet.PageSetup.PrintArea = “A1:O25”……1
bairitu = ActiveSheet.PageSetup.Zoom
ActiveSheet.PageSetup.Zoom = 50
ActiveSheet.PrintPreview
MsgBox “回復原來的狀態”
ActiveSheet.PageSetup.Zoom = bairitu
End Sub

13-12 在列印頁中顯示列與行的編號

應用範例1
Sub 在列印頁中顯示列與行的編號()
MsgBox “在列印頁中顯示列與行的編號”
ActiveSheet.PageSetup.PrintHeadings = True
ActiveSheet.PrintPreview
End Sub

應用範例2
Sub 隱藏列印頁中列與行的編號()
MsgBox “在列印頁中不顯示列與行的編號”
ActiveSheet.PageSetup.PrintHeadings = False
ActiveSheet.PrintPreview
End Sub

13-13 在列印頁中顯示儲存格的格線

應用範例
Sub 在列印頁中顯示儲存格的格線()
MsgBox “利用格線來列印稿紙”
With Activesheet.PageSetup
.PrintArea = “B2:V21”
.TopMargin = 120
.BottomMargin = 120
.LeftMargin = 90
.RightMargin = 90
.CenterHeader = “&20 稿紙”
End With
ActiveSheet.PageSetup.PrintGridlines = True
ActiveSheet.PrintPreview
End Sub

13-14 取得使用中的印表機名稱

應用範例
Sub 顯示印表機名稱()
MsgBox “顯示目前使用中的印表機名稱”
MsgBox Application.ActivePrinter
End Sub

第十二章 尋找、取代

第十二章 尋找、取代
12-01 尋找資料

應用範例
Sub 尋找資料()
moji = “台北”
MsgBox “從使用中儲存格後開始尋找含有” & moji & “文字的儲存格”
Set iti = Cells.Find(What:=moji, After:=ActiveCell)
If iti Is Nothing Then
MsgBox “找不到您想要找的資料”
Exit Sub
Else
iti.Activate
End If
End Sub

12-02 使用InStr函數尋找字串

應用範例
Sub 使用InStr函數搜尋字串()
MsgBox “從使用中儲存格內取得姓名中的姓氏”
seimei = ActiveCell.Value
jisuu = InStr(1, seimei, “ ”, 1)
sei = Left(seimei, jisuu – 1)
MsgBox sei
End Sub

12-03 將字串中指定的字串字元以其他字串字元取代

應用範例
Sub Replace函數的應用()
f = “鼓山”
r = “旗津”
MsgBox “將使用中儲存格內的 ” & f & “ 置換為 ” & r
moji = ActiveCell.Value
moji2 = Replace(moji, f, r, 1, , 1)
ActiveCell.Value = moji2
End Sub

12-04 將變數(Variant或String)中某部份的字串(字元)以其他字串(字元)取代

應用範例
Sub Mid函數的應用()
moji = ActiveCell.Value
MsgBox “將使用中儲存格內字串的前三個字以空白字取代,再刪除空白字”
Mid(moji,1 ,3) = “   ”
moji = LTrim(moji)
ActiveCell.Value = moji
End Sub

第十一章 選取、篩選資料

第十一章 選取、篩選資料
11-01 自動篩選

應用範例
Sub 自動篩選()
moji = “台北”
MsgBox “在使用中儲存格所屬的資料表中,將資料表中自左數起第三行欄位內,含有” & moji & “字樣的資料篩選出來”
Moji = “*” & moji & “*”
Selection.AutoFilter Field:=3, Criteria1:=moji
End Sub

11-02 解除自動篩選

應用範例1
Sub 解除自動篩選1()
MsgBox “解除自動篩選的狀態(保留資料篩選按鈕)”
ActiveSheet.ShowAllData
End Sub

應用範例2
Sub 解除自動篩選2()
MsgBox “解除自動篩選的狀態(清除資料篩選按鈕)”
Selection.AutoFilter
End Sub

11-03 Switch函數的應用

應用範例
Sub Switch函數的應用()
MsgBox “顯示今天的日期,並在其後以括號顯示相對應的星期”
hi = FormatDateTime(Now, vbLongDate)
youbi = Weekday(Now())
youbi2 = Switch(youbi = 1, “(Sun.)”, youbi = 2, “(Mon.)”, youbi = 3, “(Tue.)”, youbi = 4, “(Wed.)”, youbi = 5, “(Thu.)”, youbi = 6, “(Fri.)”, youbi = 7, “(Sat.)”)
MsgBox hi & youbi2
End Sub

11-04 Choose函數的應用

應用範例
Sub Choose函數的應用()
MsgBox “以1到6的範圍作為選擇的條件:2為「特獎」,3和5為「頭獎」,1、4、6為「銘謝惠顧」”
suu = Int(Rnd()*6) + 1
MsgBox Choose(suu, “銘謝惠顧”, “特獎”, “頭獎”, “銘謝惠顧”, “頭獎”, “銘謝惠顧”)
End Sub

11-05 篩選資料表中特定的資料

應用範例
Sub 進階篩選()
hanni = “A2:C12”
jhanni = “E2:G3”
thanni = “E6:G6”
ActiveSheet.Range(hanni).Select
henji = MsgBox (“在A2到C12中,以儲存格範圍E2到G3內的準則為篩選條件,將被篩選出來的資料放置在儲存格範圍E6到G6之下”, vbYesNo)
If henji = vbNo Then Exit Sub
Selection.AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Range(jhanni), CopyToRange:=Range(thanni)
End Sub

第十一章 選取 篩選資料

第十一章 選取、篩選資料
11-01 自動篩選

應用範例
Sub 自動篩選()
moji = “台北
MsgBox “在使用中儲存格所屬的資料表中,將資料表中自左數起第三行欄位內,含有” & moji & “字樣的資料篩選出來
Moji = “*” & moji & “*”
Selection.AutoFilter Field:=3, Criteria1:=moji
End Sub

11-02 解除自動篩選

應用範例1
Sub 解除自動篩選1()
MsgBox “解除自動篩選的狀態(保留資料篩選按鈕)”
ActiveSheet.ShowAllData
End Sub

應用範例2
Sub 解除自動篩選2()
MsgBox “解除自動篩選的狀態(清除資料篩選按鈕)”
Selection.AutoFilter
End Sub

11-03 Switch函數的應用

應用範例
Sub Switch函數的應用()
MsgBox “顯示今天的日期,並在其後以括號顯示相對應的星期
hi = FormatDateTime(Now, vbLongDate)
youbi = Weekday(Now())
youbi2 = Switch(youbi = 1, “(Sun.)”, youbi = 2, “(Mon.)”, youbi = 3, “(Tue.)”, youbi = 4, “(Wed.)”, youbi = 5, “(Thu.)”, youbi = 6, “(Fri.)”, youbi = 7, “(Sat.)”)
MsgBox hi & youbi2
End Sub

11-04 Choose函數的應用

應用範例
Sub Choose函數的應用()
MsgBox “16的範圍作為選擇的條件:2為「特獎」,35為「頭獎」,146為「銘謝惠顧」
suu = Int(Rnd()*6) + 1
MsgBox Choose(suu, “銘謝惠顧”, “特獎”, “頭獎”, “銘謝惠顧”, “頭獎”, “銘謝惠顧”)
End Sub

11-05 篩選資料表中特定的資料

應用範例
Sub 進階篩選()
hanni = “A2:C12”
jhanni = “E2:G3”
thanni = “E6:G6”
ActiveSheet.Range(hanni).Select
henji = MsgBox (“A2C12中,以儲存格範圍E2G3內的準則為篩選條件,將被篩選出來的資料放置在儲存格範圍E6G6之下”, vbYesNo)
If henji = vbNo Then Exit Sub
Selection.AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Range(jhanni), CopyToRange:=Range(thanni)
End Sub

Chapter-10 小計- 排序

第十章 小計‧排序
10-01 工作表中資料的小計

應用範例
Sub 建立小計清單()
MsgBox “在被選取儲存格所屬的資料表中,以月份作為小計的分類依據來建立小計清單”
Selection.SubTotal GroupBy:=1, Function:=xlSum, TotalList:=Array(3)
End Sub

10-02 移除小計清單

應用範例
Sub 移除小計清單()
MsgBox “移除被選取儲存格所屬的小計清單”
Selection.RemoveSubtotal
End Sub

10-03 變更小計清單中的大綱層次

應用範例
Sub 小計清單的大綱()
MsgBox “變更小計清單中大綱的層次”
ActiveSheet.Outline.ShowLevels 3
MsgBox “現在的層次設定為3”
ActiveSheet.Outline.ShowLevels 2
MsgBox “現在的層次設定為2”
ActiveSheet.Outline.ShowLevels 1
MsgBox “現在的層次設定為1”
End Sub

10-04 隱藏小計清單的大綱

應用範例
Sub 隱藏小計清單的大綱()
MsgBox “隱藏小計清單的大綱”
Selection.ClearOutline
End Sub

10-05 資料排序

應用範例
Sub 資料排序()
hanni = “A2:C12”
kii = “B2”
ActiveSheet.Range(hanni).Select
retu = Range(kii).Value
henji = MsgBox (“以” & retu & “為依據對資料表進行排序”, vbYesNo)
If henji = vbNo Then Exit Sub
Selection.Sort Key1:=Range(kii), header:=xlYes
End Sub

Chapter-09 Excel

第九章 Excel
09-01 Excel可使用的記憶體大小

應用範例
Sub 記憶體容量()
MsgBox “Excel可使用的記憶體大小為:” & Application.MemoryTotal
MsgBox “Excel已使用的記憶體為:” & Application.MemoryUsed
MsgBox “Excel剩餘的記憶體大小為:” & Application.MemoryFree
End Sub

09-02 全螢幕模式

應用範例
Sub 全螢幕模式()
MsgBox "將Excel的顯示模式設為全螢幕"
gamen = Application.DisplayFullScreen
Application.DisplayFullScreen = True
MsgBox "回復原來的狀態"
Application.DisplayFullScreen = gamen
End Sub

09-03 取得Excel啟動的資料夾路徑

應用範例
Sub Excel啟動的資料夾路徑()
MsgBox “顯示Excel啟動的資料夾路徑”
MsgBox Application.StartupPath
End Sub

09-04 儲存工作環境

應用範例
Sub 儲存Excel的工作環境()
MsgBox “將Excel的工作環境儲存到D:\ExcelWork\Work中”
Application.SaveWorkspace “D:\ExcelWork\Work”
End Sub

09-05 關閉Excel

應用範例
Sub 關閉Excel()
MsgBox “關閉Excel”
Application.Quit
End Sub

Chapter-08 視窗

第八章 視窗
08-01 建立視窗的複本

應用範例
Sub 建立視窗的副本()
MsgBox “以使用中視窗為來源建立一個新的視窗副本”
ActiveWindow.NewWindow
End Sub

08-02 選取視窗

應用範例
Sub 選取視窗()
MsgBox “依序切換已開啟的視窗”
wsuu = Windows.Count
For i = 1 To wsuu
Windows(i).Activate
henji = MsgBox(“第 ” & i & “個視窗,還要繼續嗎?”, vbYesNo)
If henji = vbNo Then Exit Sub
Next i
End Sub

08-03 關閉視窗

應用範例
Sub 關閉視窗()
MsgBox “關閉使用中的視窗”
ActiveWindow.Close
End Sub

08-04 顯示視窗的標題

應用範例
Sub 顯示視窗的標題()
MsgBox “顯示使用中視窗的標題”
MsgBox ActiveWindow.Caption
End Sub
08-05 取得視窗的數量

應用範例
Sub 取得視窗的數量()
MsgBox “顯示目前已開啟的視窗數量”
MsgBox Windows.Count
End Sub

08-06 分割視窗與解除分割視窗

應用範例
Sub 分割視窗()
MsgBox “以使用中儲存格為基準點來分割視窗”
gyou = ActiveCell.Row
retu = ActiveCell.Column
With ActiveWindow
.SplitColumn = retu
.SplitRow = gyou
End With
MsgBox “回復原來的狀態”
ActiveWindow.Split = False
End Sub

08-07 凍結窗格

應用範例1
Sub 凍解窗格()
MsgBox “以使用中的儲存格為基準將窗格凍結”
ActiveWindow.FreezePanes = True
End Sub

應用範例2
Sub 取消凍結窗格()
MsgBox “取消凍結的窗格”
ActiveWindow.FreezePanes = False
End Sub

08-08 移動視窗的位置

應用範例
Sub 設定視窗的位置()
MsgBox “將使用中視窗向下移動60點、向右移動90點”
jyoutan = ActiveWindow.Top
satan = ActiveWindow.Left
ActiveWindow.Top = jyoutan + 60
ActiveWindow.Left = satan + 90
MsgBox “回復原來的狀態”
ActiveWindow.Top = jyoutan
ActiveWindow.Left = satan
End Sub

08-09 變更視窗的高度及寬度

應用範例
Sub 變更視窗的高度及寬度()
MsgBox “將使用中視窗的高度及寬度各縮減一半”
takasa = ActiveWindow.Height
haba = ActiveWindow.Width
ActiveWindow.Height = takasa / 2
ActiveWindow.Width = haba / 2
MsgBox “回復原來的狀態”
ActiveWindow.Height = takasa
ActiveWindow.Width = haba
End Sub

08-10 鎖定視窗的尺寸

應用範例
Sub 視窗尺寸的變更()
MsgBox “鎖定/解除視窗尺寸變更的功能”
ActiveWindow.EnableResize = Not (ActiveWindow.EnableResize)
End Sub

08-11 變更視窗格線的顏色

應用範例
Sub 設定視窗的格線顏色()
MsgBox “將視窗的格線顏色變更為紅色”
iro = ActiveWindow.GridlineColor
ActiveWindow.GridlineColor = RGB(255,0,0)
MsgBox “回復原來的狀態”
ActiveWindow.GridlineColor = iro
End Sub

08-12 重排視窗

應用範例1
Sub 重排視窗()
MsgBox "將目前所有開啟的視窗以階梯式並排的方式來排列"
Windows.Arrange arrangestyle:=xlArrangeStyleCascade
End Sub

應用範例2
Sub 重排視窗()
MsgBox "將目前所有開啟的視窗以磚塊式並排的方式來排列"
MsgBox "目前開啟的視窗數量:" & Windows.Count
Application.Windows.Arrange arrangestyle:=xlArrangeStyleTiled
End Sub

08-13 視窗的最大化及最小化

應用範例
Sub 設定視窗的狀態()
MsgBox “將使用中視窗變為最小化”
Windows(1).WindowState = xlMinimized
MsgBox “將使用中視窗變為最大化”
Windows(1).WindowState = xlMaximized
End Sub

08-14 隱藏最大化及最小化的按鈕

應用範例
Sub 隱藏最大化及最小化的按鈕()
MsgBox “隱藏視窗中最大化及最小化的按鈕”
ActiveWindow.EnableResize = Not (ActiveWindow.EnableResize)
MsgBox “回復原來的狀態”
ActiveWindow.EnableResize = True
End Sub

08-15 將最上層的視窗移到最下層

應用範例
Sub 將視窗移到最下層()
MsgBox “將使用中的視窗移到最下層”
ActiveWindow.ActivateNext
End Sub

08-16 將最下層的視窗移到最上層

應用範例
Sub 將視窗移到最上層()
MsgBox “將最下層的視窗移到最上層”
ActiveWindow.ActivatePrevious
End Sub

08-17 顯示儲存格內的運算式

應用範例
Sub 顯示運算式()
MsgBox “在使用中視窗內,讓有運算式的儲存格顯示運算式”
ActiveWindow.DisplayFormulas = True
MsgBox “回復原來的狀態”
ActiveWindow.DisplayFormulas = False
End Sub

08-18 顯示或隱藏零值

應用範例
Sub 顯示或隱藏零值()
MsgBox “顯示/隱藏使用中視窗內的零值”
ActiveWindow.DisplayZeros = Not (ActiveWindow.DisplayZeros)
End Sub

08-19 顯示及隱藏格線

應用範例
Sub 顯示或隱藏格線()
MsgBox “顯示/隱藏使用中視窗的格線”
ActiveWindow.DisplayGridlines = Not (ActiveWindow.DisplayGridlines)
End Sub

08-20 以列或行為單位捲動視窗內容

應用範例1
Sub 列的捲動()
MsgBox “將視窗畫面向下捲動五列”
gyou = 5
ActiveWindow.SmallScroll Down:=gyou
End Sub

應用範例2
Sub 行的捲動()
MsgBox “將視窗畫面向右捲動兩行”
retu = 2
ActiveWindow.SmallScroll ToRight:=retu
End Sub

08-21 以頁為單位捲動視窗內容

應用範例
Sub 頁的捲動()
MsgBox “將視窗畫面向下捲動一頁”
pge = 1
ActiveWindow.LargeScroll Down:=pge
End Sub

08-22 顯示、隱藏水平捲軸及垂直捲軸

應用範例1
Sub 隱藏視窗的捲軸()
MsgBox “隱藏/顯示使用中視窗的捲軸”
ActiveWindow.DisplayHorizontalScrollBar = Not (ActiveWindow.DisplayHorizontalScrollBar)
ActiveWindow.DisplayVerticalScrollBar = Not (ActiveWindow.DisplayVerticalScrollBar)
End Sub

應用範例2
Sub 隱藏活頁簿的捲軸()
MsgBox “隱藏/顯示活頁簿的水平及垂直捲軸”
Application.DisplayScrollBars = Not (Application.DisplayScrollBars)
End Sub

08-23 以指定的儲存格捲動到視窗左上角

應用範例
Sub 以視窗左上角為基準的視窗畫面捲動()
MsgBox “將儲存格C6捲動到視窗的左上角”
ActiveWindow.ScrollRow = 6
ActiveWindow.ScrollColumn = 3
End Sub

Thursday, November 24, 2005

Chapter-07 活頁簿

第七章 活頁簿
07-01 建立新的活頁簿

應用範例
Sub 建立新的活頁簿()
MsgBox “建立新的活頁簿”
Workbooks.Add
End Sub

07-02 將活頁簿以唯讀的方式開啟

應用範例
Sub 開啟活頁簿()
Msgbox “將D磁碟內的「成績一覽表.xls」活頁簿以唯讀方式開啟”
fname = “D:\成績一覽表.xls”
Workbooks.Open Filename:=fname, ReadOnly:=True
End Sub

07-03 選取活頁簿

應用範例
Sub 選取活頁簿()
MsgBox “依序切換已開啟的活頁簿”
suu = Workbooks.Count
For i = 1 To suu
Workbooks(i).Activate
henji = MsgBox(“第 ” & i & “個活頁簿,還要繼續嗎?”, vbYesNo)
If henji = vbNo Then Exit Sub
Next i
End Sub

07-04 取得開啟中的活頁簿名稱

應用範例
Sub 活頁簿的名稱()
MsgBox “顯示使用中活頁簿的名稱”
MsgBox ActiveWorkbook.Name
End Sub

07-05 取得活頁簿的數量

應用範例
Sub 取得活頁簿的數量()
MsgBox “顯示目前已開啟的活頁簿數量”
MsgBox Workbooks.Count
End Sub

07-06 取得Excel檔案預設的存放路徑

應用範例
Sub 預設存放路徑名稱()
MsgBox “顯示Excel檔案預設存放的路徑”
MsgBox Application.DefaultFilePath
End Sub

07-07 儲存檔案

應用範例
Sub 儲存活頁簿()
MsgBox “儲存使用中的活頁簿”
ActiveWorkbook.Save
End Sub

07-08 另存新檔

應用範例
Sub 將活頁簿另存新檔()
booknme = ActiveWorkbook.Name
newbooknme = “new” & booknme
MsgBox “將「” & booknme & “」以「” & newbooknme & “」的名稱另存新檔”
folda = Application.DefaultFilePath
fname = folda & “\” & newbooknme
ActiveWorkbook.SaveAs fname
End Sub

07-09 在另存新檔時輸入新的檔案名稱

應用範例
Sub 在另存新檔視窗中輸入的檔案名稱()
MsgBox “在另存新檔視窗中輸入檔案名稱”
namae = Application.GetSaveAsFilename(FileFilter:=“Excel 2003 VBA (*.xls), *.xls”)
MsgBox namae
End Sub

07-10 存檔前自動重算

應用範例
Sub 存檔前自動重算()
MsgBox “在活頁簿中,若設定為手動計算,在存檔前將執行自動重算”
calc = Application.Calculation
If calc = xlCalculationManual Then
MsgBox “由於目前的設定為手動計算,本活頁簿在存檔前將執行自動重算”
Application.CalculateBeforeSave = True
End If
ActiveWorkbook.Save
End Sub

07-11 儲存活頁簿時一併建立備份檔案

應用範例
Sub儲存活頁簿時一併建立備份檔案()
MsgBox “儲存活頁簿時一併建立備份檔案”
ActiveWorkbook.SaveAs CreateBackup:=True
End Sub

07-12 檢查在儲存活頁簿時有無一併建立備份檔案

應用範例
Sub 檢查存檔時是否建立備份檔案()
MsgBox “儲存活頁簿時,若一併建立備份檔案,訊息視窗中將出現True,若沒有建立備份檔案則出現False”
MsgBox ActiveWorkbook.CreateBackup
End Sub

07-13 關閉活頁簿

應用範例
Sub 關閉活頁簿()
MsgBox “關閉使用中的活頁簿”
ActiveWorkbook.Close
End Sub

07-14 關閉所有的活頁簿

應用範例
Sub 關閉所有的活頁簿()
MsgBox “關閉目前開啟的所有活頁簿”
Workbooks.Close
End Sub

07-15 不儲存變更、直接關閉活頁簿

應用範例1
Sub 關閉活頁簿並不予存檔1()
MsgBox “關閉使用中的活頁簿,不論其內容是否被變更都不會存檔”
Activeworkbook.Close SaveChanges:=False
End Sub

應用範例2
Sub 關閉活頁簿並不予存檔2()
MsgBox “關閉使用中的活頁簿,不論其內容是否被變更都不會存檔”
ActiveWorkbook.Saved = True
ActiveWorkbook.Close
End Sub

07-16 設定數字的精確度

應用範例
Sub 設定精確度()
MsgBox “在使用中儲存格人輸入1/3,將計算結果算至小數點後兩位”
ActiveCell.Value = 1/3
ActiveCell.NumberFormatLocal = “0.00”
suu = ActiveCell.Value * 3
MsgBox “將使用中儲存格內的數字乘以3等於:” & suu
MsgBox “接著,將數值類別設為「數值」”
ActiveWorkbook.PrecisionAsDisplayed = True
suu = ActiveCell.Value * 3
MsgBox “將使用中儲存格內的數字乘以3等於:” & suu & “而不是1”
ActiveWorkbook.PrecisionAsDisplayed = False
End Sub

Chapter-06 工作表.

第六章 工作表

06-01 建立新的工作表

應用範例
Sub 新增工作表()
MsgBox “在最後一個工作表(最右邊的工作表)的後面新增一個工作表”
maisuu = Worksheets.Count
Worksheets.Add After:=Worksheets(maisuu)
End Sub

06-02 選取工作表

應用範例
Sub 選取工作表()
MsgBox “在使用中活頁簿內選取索引編號為2的工作表”
Worksheets(2).Activate
End Sub

06-03 選取多個工作表

應用範例
Sub 選取多個工作表()
MsgBox “選取第一及第三個工作表”
Worksheets(1).Select
Worksheets(3).Select False
End Sub

06-04 選取前面(後面)的工作表

應用範例
Sub 選取後一個工作表()
MsgBox “選取使用中工作表的後一個工作表”
ActiveSheet.Next.Activate
End Sub

06-05 取得工作表的數量

應用範例
Sub 取得工作表的數量()
MsgBox “顯示活頁簿中工作表的數量”
MsgBox ActiveWorkbook.Worksheets.Count
End Sub

06-06 取得工作表的索引編號

應用範例
Sub 取得工作表的索引編號()
MsgBox “顯示使用中工作表的索引編號”
MsgBox ActiveSheet.Index
End Sub

06-07 隱藏工作表

應用範例1
Sub 隱藏工作表()
MsgBox “隱藏使用中的工作表”
n = ActiveSheet.Index
Worksheets(n).Visible = False
MsgBox “回復原來的狀態”
Worksheets(n).Visible = True
End Sub

應用範例2
Sub 顯示所有的工作表()
MsgBox “在使用中活頁簿內,將包含隱藏中的所有工作表都顯示出來”
For Each youso In Sheets
youso.Visible = True
Next youso
End Sub

06-08 刪除工作表

應用範例
Sub 刪除工作表()
MsgBox “刪除使用中的工作表”
ActiveSheet.Delete
End Sub

06-09 複製工作表

應用範例
Sub 複製工作表()
MsgBox “複製使用中的工作表,並貼到使用中工作表的後方”
ActiveSheet.Copy After:=ActiveSheet
End Sub

06-10 使用VBA的工作表函數

應用範例
Sub 使用工作表函數()
MsgBox “計算儲存格範圍B3到B6的平均值”
MsgBox Application.Average(Range(“B3:B6”))
End Sub

06-11 保護工作表/取消保護工作表

應用範例1
Sub 保護工作表()
MsgBox “保護使用中工作表,並設定取消保護工作表的密碼”
ActiveSheet.Protect password:=“excel2003”
End Sub

應用範例2
Sub 取消保護工作表
MsgBox “取消保護使用中的工作表”
ActiveSheet.Unprotect
End Sub

06-12 移動工作表的位置

應用範例
Sub 移動工作表的位置()
MsgBox “將使用中工作表移動到最後面”
suu = Sheets.Count
ActiveSheet.Move After:=Worksheets(suu)
End Sub

06-13 變更工作表索引標籤的名稱

應用範例
Sub 變更工作表的索引標籤名稱()
MsgBox “將使用中工作表的索引標籤名稱變更為「資料」”
namae = ActiveSheet.name
ActiveSheet.Name = “資料”
MsgBox “回復原來的狀態”
ActiveSheet.Name = namae
End Sub

06-14 變更工作表索引標籤的顏色

應用範例1
Sub 設定工作表索引標籤的顏色()
MsgBox “變更使用中工作表的索引標籤顏色”
ActiveSheet.Tab.ColorIndex = 7
End Sub

應用範例2
Sub 將工作表索引標籤的顏色設為預設值()
MsgBox “將使用中工作表的索引標籤顏色設為預設值”
ActiveSheet.Tab.ColorIndex = -4142
End Sub

06-15 隱藏工作表的索引標籤

應用範例
Sub 隱藏工作表的索引標籤()
MsgBox “交替工作表索引標籤的狀態”
ActiveWindow.DisplayWorkbookTabs = Not (ActiveWindow.DisplayWorkbookTabs)
End Sub

06-16 捲動到最後面的工作表索引標籤

應用範例
Sub 捲動工作表的索引標籤()
MsgBox “捲動到最後面的工作表索引標籤”
ActiveWindow.ScrollWorkbookTabs Position:=xlLast
MsgBox “捲動到最前面的工作索引標籤”
ActiveWindow.ScrollWorkbookTabs Position:=xlFirst
End Sub

06-17 隱藏列與行

應用範例1
Sub 隱藏列()
MsgBox “隱藏使用中儲存格所屬的列”
gyou = ActiveCell.Row……1
ActiveSheet.Rows(gyou).Hidden = True
MsgBox “回復原來的狀態”
ActiveSheet.Rows(gyou).Hidden = False
End Sub

應用範例2
Sub 隱藏行()
MsgBox “隱藏使用中儲存格所屬的行”
retu = ActiveCell.Column
ActiveSheet.Columns(retu).Hidden = True
MsgBox “回復原來的狀態”
ActiveSheet.Columns(retu).Hidden = False
End Sub
06-18 隱藏列、行的標題

應用範例
Sub 隱藏列與行的標題()
MsgBox “切換列、行標題的顯示狀態”
ActiveWindow.DisplayHeadings = Not (ActiveWindow.DisplayHeadings)
End Sub

06-19 插入列、行

應用範例1
Sub 插入一列()
MsgBox “在使用中儲存格所屬列的上方插入一列”
gyou = Selection.Row
ActiveSheet.Rows(gyou).Insert
End Sub

應用範例2
Sub 插入一行()
MsgBox “在使用中儲存格所屬行的左方插入一行”
retu = Selection.Column……1
ActiveSheet.Columns(retu).Insert
End Sub

應用範例3
Sub 插入多個列()
MsgBox “在使用中儲存格所屬列的上方插入三列”
For i = 1 To 3
gyou = Selection.Row
ActiveSheet.Rows(gyou).Insert
Next i
End Sub

06-20 刪除列及行

應用範例
Sub 刪除工作表中的列或行()
MsgBox “刪除使用中工作表內所選取的列或行”
Selection.Delete
End Sub

06-21 變更列高與行寬

應用範例1
Sub 設定列高()
MsgBox “將使用中儲存格所屬列的高度設為30點”
gyou = ActiveCell.Row
takasa = ActiveSheet.Rows(gyou).RowHeight
ActiveSheet.Rows(gyou).RowHeight = 30
MsgBox “回復原來的狀態”
ActiveSheet.Rows(gyou).RowHeight = takasa
End Sub

應用範例2
Sub 設定行寬()
MsgBox “將使用中儲存格所屬行的寬度設為14個字元”
retu = ActiveCell.Column
haba = ActiveSheet.Columns(retu).ColumnWidth
ActiveSheet.Columns(retu).ColumnWidth = 14
MsgBox “回復原來的狀態”
ActiveSheet.Columns(retu).ColumnWidth = haba
End Sub

06-22 設定標準列高及標準行寬

應用範例
Sub 將列高與行寬還原回標準值()
MsgBox “將使用中儲存格範圍所屬的列高及行寬還原回標準值”
Selection.UseStandardHeight = True
Selection.UseStandardWidth = True
End Sub

Chapter-04 圖表.

第四章 圖表
04-01 新增圖表工作表

應用範例
Sub 新增圖表工作表()
MsgBox “在使用中工作表的後面新增圖表工作表”
Charts.Add after:=Activesheet
End Sub

04-02 在圖表工作表中繪製圖表

應用範例
Sub 建立圖表()
MsgBox “以使用中工作表A2到D6的範圍為資料來源,建立圖表”
Charts.Add Before:=Worksheets(“sheet1”)
Charts(“Chart1”).ChartWizard Source:=Worksheets(“sheet1”).Range(“A2:D6”), Gallery:=xlColumn, PlotBy:=xlColumns, CategoryLabels:=1, SeriesLabels:=1, CategoryTitle:=“姓名”, ValueTitle:=“分數”, Title:=“成績一覽表”
End Sub

04-03 在工作表內新增嵌入式圖表

應用範例
Sub 建立嵌入式圖表的範圍()
MsgBox “以(30,100)為左上角座標,建立寬度200點、高度100點的嵌入式圖表範圍”
ActiveSheet.ChartObjects.add 30, 100, 200, 100
End Sub

04-04 在嵌入式圖表內建立圖表

應用範例
Sub 建立嵌入式圖表()
MsgBox “建立嵌入式圖表範圍後,以A2到D6的儲存格為資料來源,在嵌入式圖表範圍內建立圖表”
ActiveSheet.ChartObjects.Add(30, 100, 300, 100).Select
ActiveChart.ChartType = xlLineMarkersStacked
ActiveChart.SetSourceData source:=ActiveSheet.Range(“A2:D6”), PlotBy:=xlColumns
End Sub

04-05 計算活頁簿中圖表的數量

應用範例
Sub 圖表的數量()
MsgBox “顯示使用中工作表內的圖表工作表數量”
MsgBox ActiveWorkbook.Charts.Count
End Sub

04-06 選取活頁簿中的圖表工作表

應用範例
Sub 選取圖表工作表()
MsgBox “依序顯示活頁簿中的圖表工作表”
suu = ActiveWorkbook.Charts.Count
For i = 1 To suu
ActiveWorkbook.Charts(i).Activate
MsgBox “第 ” & i & “ 個圖表工作表”
Next i
End Sub

04-07 變更圖表的種類

應用範例
Sub 變更圖表的類型()
MsgBox “將使用中圖表的類型變更為立體折線圖”
syurui = ActiveChart.ChartType
ActiveChart.ChartType = xl3DLine
MsgBox “回復原來的圖表類型”
ActiveChart.Charttype = syurui
End Sub

04-08 還原圖表的預設格式

應用範例
Sub 還原回圖表的預設格式()
MsgBox “將使用中圖表的格式還原回預設格式”
ActiveChart.ChartArea.ClearFormats
End Sub

04-09 變更圖表區的顏色

應用範例
Sub 變更圖表區的顏色()
MsgBox “將使用中圖表的圖表區顏色設為黃色”
iro = ActiveChart.ChartArea.Interior.ColorIndex
ActiveChart.ChartArea.Interior.ColorIndex = 6
MsgBox “回復原來的顏色”
ActiveChart.ChartArea.Interior.ColorIndex = iro
End Sub

04-10 變更圖表區的框線顏色

應用範例
Sub 變更圖表區的框線顏色()
MsgBox “將使用中圖表的圖表區框線變更為紅色”
iro = ActiveChart.ChartArea.Border.ColorIndex
ActiveChart.ChartArea.Border.ColorIndex = 3
MsgBox “回復原來的狀態”
ActiveChart.ChartArea.Border.ColorIndex = iro
End Sub

04-11 變更繪圖區的顏色

應用範例
Sub 變更繪圖區的顏色()
MsgBox “將使用中圖表的繪圖區顏色設為紅色”
iro = ActiveChart.PlotArea.Interior.Color
ActiveChart.PlotArea.Interior.Color = RGB(255,0,0)
MsgBox “回復原來的顏色”
ActiveChart.PlotArea.Interior.Color = iro
End Sub

04-12 變更資料數列依據的對象

應用範例
Sub 變更資料數列()
houkou = ActiveChart.PlotBy
If houkou = 1 Then
MsgBox “目前圖表資料數列以列的資料為依據”
houkou = 2
Else
MsgBox “目前圖表資料數列以行的資料為依據”
houkou = 1
End If
MsgBox “更變圖表資料數列依據的對象”
ActiveChart.PlotBy = houkou
End Sub

04-13 變更資料數列的顏色

應用範例
Sub 變更資料數列的顏色()
MsgBox “將使用中圖表內第一個資料數列的顏色變更為紅色”
iro = ActiveChart.SeriesCollection(1).Interior.Color
ActiveChart.SeriesCollection(1).Interior.Color = RGB(255,0,0)
MsgBox “回復原來的顏色”
ActiveChart.SeriesCollection(1).Interior.Color = iro
End Sub

04-14 變更資料數列的前景色、背景色

應用範例
Sub 設定資料數列的前景色()
MsgBox “將第三個資料數列顏色變更為紅色”
iro = ActiveChart.SeriesCollection(3).Fill.ForeColor.SchemeColor
ActiveChart.SeriesCollection(3).Fill.ForeColor.SchemeColor = 3
MsgBox “回復原來的前景色”
ActiveChart.SeriesCollection(3).Fill.ForeColor.SchemeColor = iro
End Sub

04-15 變更圖表的標題

應用範例
Sub 設定圖表的標題()
MsgBox “將使用中圖表的標題變更為「成績排行榜」”
taitoru = ActiveChart.ChartTitle.Text
MsgBox “目前的標題: ” & taitoru
ActiveChart.HasTitle = True
ActiveChart.ChartTitle.Text = “成績排行榜”
MsgBox “回復原來的標題”
ActiveChart.ChartTitle.Text = taitoru
End Sub

04-16 變更標題的文字尺寸

應用範例
Sub 變更圖表標題文字的尺寸()
MsgBox “將標題文字的尺寸變更為廿點”
Ookisa = ActiveChart.ChartTitle.Font.Size
MsgBox “目前圖表標題文字的尺寸為: ” & ookisa
ActiveChart.ChartTitle.Font.Size = 20
MsgBox “回復原來的文字尺寸”
ActiveChart.ChartTitle.Font.Size = ookisa
End Sub

04-17 變更圖表標題的顏色

應用範例
Sub 變更標題的顏色()
MsgBox “將使用中圖表的圖表標題顏色變更為紅色”
iro = ActiveChart.ChartTitle.Font.ColorIndex
With ActiveChart
.HasTitle = True
.ChartTitle.Font.ColorIndex = 3
End With
MsgBox “回復到原來的狀態”
ActiveChart.ChartTitle.Font.ColorIndex = iro
End Sub

04-18 一次設定多種圖表標題屬性

應用範例
Sub 設定圖表標題的文字尺寸顏色()
MsgBox “變更圖表標題的文字、尺寸及顏色”
ActiveChart.HasTitle = True
With ActiveChart.ChartTitle
.Text = “得分英雄榜”
.Font.Size = 20
.Font.ColorIndex = 3
End With
End Sub
04-19 在圖表中顯示資料表

應用範例
Sub 顯示資料表()
MsgBox “在使用中圖表內顯示資料表”
ActiveChart.HasDataTable = True
MsgBox “回復原來的狀態”
ActiveChart.HasDataTable = False
End Sub

04-20 變更圖表來源資料的參考範圍

應用範例
Sub 變更圖表的資料來源()
MsgBox “將使用中圖表的資料來源變更為A2到D2及A4到D5的資料”
ActiveChart.ChartWizard Source:=Worksheets(“sheet1”).Range(“A2:D2,A4:D5”)……1
MsgBox “回復原來的狀態”
ActiveChart.ChartWizard Source:=Worksheets(“sheet1”).Range(“A2:D6”)……2
End Sub

04-21 在圖表中顯示資料標籤

應用範例1
Sub 顯示資料數列的資料值()
MsgBox “顯示第一組資料數列的資料值”
ActiveChart.SeriesCollection(1).HasDataLabels = True
MsgBox “回復原來的狀態”
ActiveChart.SeriesCollection(1).HasDataLabels = False
End Sub

應用範例2
Sub 顯示特定資料數列的資料值()
MsgBox “將第一組資料數列中第二個數列的顯示資料設定為文字:「請注意此項!」”
ActiveChart.SeriesCollection(1).HasDataLabels = True
ActiveChart.SeriesCollection(1).Points(2).DataLabel.Text = “請注意此項!”
MsgBox “回復原來的狀態”
ActiveChart.SeriesCollection(1).HasDataLabels = False
End Sub

04-22 資料標籤的位置

應用範例
Sub 設定資料數列標籤的顯示位置()
Set sc = ActiveChart.SeriesCollection(1)
Sc.HasDataLabels = True
MsgBox “將直條圖的資料數列標籤顯示位置設在中間”
iti = sc.DataLabels.Position
sc.DataLabels.Position = xlLabelPositionCenter
MsgBox “回復原來的狀態”
sc.DataLabels.Position = iti
sc.HasDataLabels = False
End Sub

04-23 隱藏數值座標軸的資料

應用範例
Sub 隱藏數值座標軸()
MsgBox “隱藏使用中圖表的主要數值座標軸”
ActiveChart.HasAxis(xlValue, xlPrimary) = False
MsgBox “回復原來的狀況”
ActiveChart.HasAxis(xlValue, xlPrimary) = True
End Sub

04-24 變更數值座標軸標題的顏色

應用範例
Sub 變更數值座標軸標題文字的顏色()
MsgBox “將數值座標軸標題的文字顏色變更為綠色”
iro = ActiveChart.Axes.Item(xlValue).AxisTitle.Font.ColorIndex
With ActiveChart.Axes.Item(xlValue)
.HasTitle = True
.AxisTitle.Font.ColorIndex = 4
End With
MsgBox “回復原來的顏色”
ActiveChart.Axes.Item(xlValue).AxisTitle.Font.ColorIndex = iro
End Sub

04-25 變更數值座標軸的刻度類型

應用範例
Sub 設定數值座標軸的刻度類型()
MsgBox “將使用中圖表的數值座標軸刻度顯示在座標軸外側”
muki = ActiveChart.Axes(xlValue).MajorTickMark
ActiveChart.Axes(xlValue).MajorTickMark = xlTickMarkOutside
MsgBox “回復原來的狀態”
ActiveChart.Axes(xlValue).MajorTickMark = muki
End Sub

04-26 隱藏數值座標軸格線

應用範例
Sub 隱藏數值座標軸的格線()
MsgBox “隱藏使用中圖表的數值座標軸格線”
ActiveChart.Axes(xlValue).HasMajorGridlines = False
MsgBox “回復原來的狀態”
ActiveChart.Axes(xlValue).HasMajorGridlines = True
End Sub

04-27 變更數值座標軸刻度文字的顏色

應用範例
Sub 變更數值座標軸刻度的文字顏色()
MsgBox “將使用中圖表的數值座標軸文字顏色變更為綠色”
iro = ActiveChart.Axes(xlValue).TickLabels.Font.Color
ActiveChart.Axes(xlValue).TickLabels.Font.Color = RGB(0,255,0)
MsgBox “回復原來的顏色”
ActiveChart.Axes(xlValue).TickLabels.Font.Color = iro
End Sub

04-28 變更數值座標軸刻度文字的角度

應用範例
Sub 變更數值座標軸刻度的文字角度()
MsgBox “將使用中圖表內數值座標軸刻度的文字變更為垂直文字”
kakudo = ActiveChart.Axes(xlValue).TickLabels.Orientation
ActiveChart.Axes(xlValue).TickLabels.Orientation = xlTickLabelOrientationVertical
MsgBox “回復原來的文字狀態”
ActiveChart.Axes(xlValue).TickLabels.Orientation = kakudo
End Sub

04-29 顯示數值座標軸的次要刻度

應用範例
Sub 設定數值座標軸的次要刻度類型()
MsgBox “將使用中圖表內數值座標軸的次要刻度顯示在座標軸內側”
muki = ActiveChart.Axes(xlValue).MinorTickMark
ActiveChart.Axes(xlValue).MinorTickMark = xlTickMarkInside
MsgBox “回復原來的狀態”
ActiveChart.Axes(xlValue).MinorTickMark = muki
End Sub

04-30 設定次要數值座標軸的格線

應用範例
Sub 顯示數值座標軸的次要格線()
MsgBox “顯示使用中圖表的數值座標軸次要格線”
ActiveChart.Axes(xlValue).HasMinorGridlines = True
MsgBox “回復原來的狀態”
ActiveChart.Axes(xlValue).HasMinorGridlines = False
End Sub

04-31 變更數值座標軸的數值排列順序

應用範例
Sub 變更數值座標軸的數值排列順序值()
MsgBox “將使用中圖表內數值座標軸的數值由上(小)到下(大)排列”
ActiveChart.Axes(xlValue).ReversePlotOrder = True
MsgBox “回復原來的排列狀態”
ActiveChart.Axes(xlValue).ReversePlotOrder = False
End Sub

04-32 變更數值座標軸的顯示單位

應用範例
Sub 設定數值座標軸的顯示單位()
MsgBox “變更使用中圖表內數值座標軸刻度的顯示單位”
du = ActiveChart.Axes(xlValue).DisplayUnit
memori = ActiveChart.Axes(xlValue).DisplayUnitCustom
MsgBox “目前數值座標軸刻度的單位為: ” & du & “,接下來要將顯示單位設為「萬」”
ActiveChart.Axes(xlValue).DisplayUnit = xlTenThousands
MsgBox “回復原來的狀態”
ActiveChart.Axes(xlValue).DisplayUnitCustom = memori
ActiveChart.Axes(xlValue).DisplayUnit = du
End Sub

04-33 將數值座標軸的刻度以對數的方式顯示

應用範例
Sub 將數值座標軸的刻度類型設為對數()
MsgBox “使用對數作為數值座標軸的刻度類型”
memori = ActiveChart.Axes(xlValue).ScaleType
ActiveChart.Axes(xlValue).ScaleType = xlScaleLogarithmic
MsgBox “回復原來的刻度類型”
ActiveChart.Axes(xlValue).ScaleType = memori
End Sub

04-34 變更數值座標軸刻度文字的位置

應用範例
Sub 變更數值座標軸刻度的文字位置()
MsgBox “將數值座標軸刻度的文字位置變更到圖表的右方”
tlp = ActiveChart.Axes(xlValue).TickLabelPosition
ActiveChart.Axes(xlValue).TickLabelPosition = xlTickLabelPositionHigh
MsgBox “回復原來的位置”
ActiveChart.Axes(xlValue).TickLabelPosition = tlp
End Sub

04-35 變更數值座標軸標題的文字尺寸

應用範例
Sub 設定數值座標軸標題文字的尺寸()
MsgBox “將數值座標軸標題文字尺寸設為18點”
ookisa = ActiveChart.Axes.Item(xlValue).AxisTitle.Font.Size
MsgBox “目前數值座標軸標題的文字尺寸為: ” & ookisa
ActiveChart.Axes.Item(xlValue).AxisTitle.Font.Size = 18
MsgBox “回復原來的文字尺寸”
ActiveChart.Axes.Item(xlValue).AxisTitle.Font.Size = ookisa
End Sub

04-36 變更數值座標軸及類別座標軸的文字

應用範例1
Sub 設定數值座標軸標籤()
MsgBox “將數值座標軸的標籤文字變更為「Results」”
taitoru = ActiveChart.Axes.Item(xlValue).AxisTitle.Caption
With ActiveChart.Axes.Item(xlValue)
.HasTitle = True
.AxisTitle.Caption = “Results”
End With
MsgBox “回復原來的標籤”
ActiveChart.Axes.Item(xlValue).AxisTitle.Caption = taitoru
End Sub

應用範例2
Sub 設定類別座標軸標籤()
MsgBox “將類別座標軸的標籤文字變更為「Name」”
taitoru = ActiveChart.Axes.Item(xlCategory).AxisTitle.Text
ActiveChart.Axes.Item(xlCategory).HasTitle = True
ActiveChart.Axes.Item(xlCategory).AxisTitle.Text = “Name”
MsgBox “回復原來的標籤”
ActiveChart.Axes.Item(xlCategory).AxisTitle.Text = taitoru
End Sub

03-37 變更類別座標軸的文字尺寸

應用範例
Sub 設定類別座標軸標題文字的尺寸()
MsgBox “將類別座標軸標題文字尺寸設為18點”
ookisa = ActiveChart.Axes.Item(xlCategory).AxisTitle.Font.Size
ActiveChart.Axes.Item(xlCategory).AxisTitle.Font.Size = 18
MsgBox “回復原來的文字尺寸”
ActiveChart.Axes.Item(xlCategory).AxisTitle.Font.Size = ookisa
End Sub

04-38 變更類別座標軸標題文字的顏色

應用範例
Sub 變更類別座標軸標題文字的顏色()
MsgBox “將類別座標軸標題的文字顏色變更為綠色”
iro = ActiveChart.Axes.Item(xlCategory).AxisTitle.Font.ColorIndex
With ActiveChart.Axes.Item(xlCategory)
.HasTitle = True
.AxisTitle.Font.ColorIndex = 4
End With
MsgBox “回復原來的顏色”
ActiveChart.Axes.Item(xlCategory).AxisTitle.Font.ColorIndex = iro
End Sub

04-39 變更類別座標軸刻度文字的顏色

應用範例
Sub 變更類別座標軸刻度的文字顏色()
MsgBox “將使用中圖表的類別座標軸文字顏色變更為紅色”
iro = ActiveChart.Axes(xlCategory).TickLabels.Font.Color
ActiveChart.Axes(xlCategory).TickLabels.Font.Color = RGB(255,0,0)
MsgBox “回復原來的顏色”
ActiveChart.Axes(xlCategory).TickLabels.Font.Color = iro
End Sub

04-40 變更類別座標軸刻度文字的角度

應用範例
Sub 變更類別座標軸刻度的文字角度()
MsgBox “將使用中圖表內類別座標軸刻度的文字角度變更為60度”
kakudo = ActiveChart.Axes(xlCategory).TickLabels.Orientation
ActiveChart.Axes(xlCategory).TickLabels.Orientation = 60
MsgBox “回復原來的文字狀態”
ActiveChart.Axes(xlCategory).TickLabels.Orientation = kakudo
End Sub

04-41 變更類別座標軸刻度文字的位置

應用範例
Sub 變更類別座標軸刻度的文字位置()
MsgBox “將類別座標軸刻度的文字位置變更到圖表的上方”
memori = ActiveChart.Axes(xlCategory).TickLabelPosition
ActiveChart.Axes(xlCategory).TickLabelPosition = xlTickLabelPositionHigh
MsgBox “回復原來的位置”
ActiveChart.Axes(xlCategory).TickLabelPosition = memori
End Sub

04-42 將類別座標軸的零點與數值座標軸合併在一起

應用範例
Sub 設定類別座標軸的零點位置()
MsgBox “在使用中圖表內,將類別座標軸的零點與數值座標軸合併起來”
ActiveChart.Axes(xlCategory).AxisBetweenCategories = False
MsgBox “回復到原來的狀態”
ActiveChart.Axes(xlCategory).AxisBetweenCategories = True
End Sub

04-43 隱藏圖例

應用範例
Sub 隱藏圖例()
MsgBox “將圖例隱藏起來”
ActiveChart.ChartWizard HasLegend:= False
MsgBox “回復原來的狀態”
ActiveChart.ChartWizard HasLegend:= True
End Sub

04-44 變更圖例的文字顏色

應用範例
Sub 設定圖例的文字()
MsgBox “將圖例文字設為18點的紅色粗斜體字”
With ActiveChart.Legend.Font
ookisa = .Size
iro = .ColorIndex
.Size = 18
.Bold = True
.Italic = True
.ColorIndex = 3
End With
MsgBox “回復原來的狀態”
With ActiveChart.Legend.Font
.Size = ookisa
.Bold = False
.Italic = False
.ColorIndex = iro
End With
End Sub

04-45 設定圖例的位置

應用範例
Sub 設定圖例的位置()
MsgBox “將圖例放在使用中圖表的左側”
iti = ActiveChart.Legend.Position
ActiveChart.Legend.Position = xlLegendPositionLeft
MsgBox “回復原來的狀態”
ActiveChart.Legend.Position = iti
End Sub

04-46 顯示圖例符號

應用範例
Sub 顯示圖例符號()
MsgBox “顯示第一個數列的圖例符號”
Set objas = ActiveChart.SeriesCollection(1)
objas.HasDataLabels = True
objas.DataLabels.ShowLegendKey = True
MsgBox “回復原來的狀態”
objas.DataLabels.ShowLegendKey = False
objas.HasDataLabels = False
End Sub

04-47 變更標記的尺寸

應用範例
Sub 設定標記的尺寸()
MsgBox “在使用中圖表內,將第二個數列的標記尺寸設為15點”
ms = ActiveChart.SeriesCollection(2).MarkerSize
ActiveChart.SeriesCollection(2).MarkerSize = 15
MsgBox “回復原來的狀態”
ActiveChart.SeriesCollection(2).MarkerSize = ms
End Sub

04-48 變更標記的形狀

應用範例
Sub 設定標記的形狀()
MsgBox “將第三個數列的標記形狀變更為圓形”
mark = ActiveChart.SeriesCollection(3).MarkerStyle
ActiveChart.SeriesCollection(3).MarkerStyle = xlMarkerStyleCircle
MsgBox “回復原來的狀態”
ActiveChart.SeriesCollection(3).MarkerStyle = mark
End Sub

04-49 變更標記的前景色及背景色

應用範例
Sub 設定標記的前景色及背景色()
MsgBox “將使用中圖表內第一個數列標記的前景色設為紅色,背景色設為白色,尺寸設為20點”
With ActiveChart.SeriesCollection(1)
ms = .MarkerSize
.MarkerSize = 20
irof = .MarkerForegroundColor
irob = .MarkerBackgroundColor
.MarkerForegroundColor = RGB(255,0,0)
.MarkerBackgroundColor = RGB(255,255,255)
End With
MsgBox “回復原來的狀態”
With ActiveChart.SeriesCollection(1)
.MarkerForegroundColor = irof
.MarkerBackgroundColor = irob
.MarkerSize = ms
End With
End Sub

04-50 繪製數列線

應用範例
Sub 顯示數列線()
MsgBox “在使用中的堆疊直條圖內繪製數列線”
ActiveChart.ChartGroups(1).HasSeriesLines = True
MsgBox “回復原來的狀態”
ActiveChart.ChartGroups(1).HasSeriesLines = False
End Sub

04-51 變更數列線的樣式

應用範例
Sub 設定數列線的樣式()
MsgBox “在堆疊直條圖內繪製樣式為虛線的數列線”
With ActiveChart.ChartGroups(1)
.HasSeriesLines = True
.SeriesLines.Border.LineStyle = xlDot
End With
MsgBox “清除數列線”
ActiveChart.ChartGroups(1).HasSeriesLines = False
End Sub

04-52 繪製鉛垂線

應用範例
Sub 繪製鉛垂線()
MsgBox “在使用中折線圖內繪製鉛垂線”
ActiveChart.ChartGroups(1).HasDropLines = True
MsgBox “回復原來的狀態”
ActiveChart.ChartGroups(1).HasDropLines = False
End Sub

04-53 設定鉛垂線的樣式

應用範例
Sub 設定鉛垂線的樣式()
MsgBox “在使用中圖表內繪製樣式為虛線的鉛垂線”
ActiveChart.ChartGroups(1).HasDropLines = True
ActiveChart.ChartGroups(1).DropLines.Border.LineStyle = xlDot
MsgBox “回復原來的狀態”
ActiveChart.ChartGroups(1).HasDropLines = False
End Sub

04-54 繪製高低點連線

應用範例
Sub 繪製高低點連線()
MsgBox “在折線圖內繪製高低點連線”
ActiveChart.ChartGroups(1).HasHiLoLines = True
MsgBox “回復原來的狀態”
ActiveChart.ChartGroups(1).HasHiLoLines = False
End Sub

04-55 設定高低點連線的樣式

應用範例
Sub 設定高低點連線的樣式()
MsgBox “繪製虛線狀的高低點連線”
ActiveChart.ChartGroups(1).HasHiLoLines = True
ActiveChart.ChartGroups(1).HiLolines.Border.LineStyle = xlDot
MsgBox “回復原來的狀態”
ActiveChart.ChartGroups(1).HasHiLoLines = False
End Sub

04-56 繪製圓型圖的輔助圖

應用範例1
Sub 在圓形圖中繪製輔助圖()
MsgBox “在使用中圓形圖內以最大值500、數值為類型,繪製輔助圖”
ActiveChart.ChartType = xlBarOfPie
With ActiveChart.ChartGroups(1)
.SplitType = xlSplitByValue
.SplitValue = 500
End With
End Sub

應用範例2
Sub 回復到原來的圓形圖()
ActiveChart.ChartType = xlPie
End Sub

04-57 變更輔助圖的尺寸

應用範例
Sub 變更輔助圖的尺寸()
MsgBox “將輔助圖的高度設為圓形圖直徑的一半”
ookisa = ActiveChart.ChartGroups(1).SecondPlotSize
ActiveChart.ChartGroups(1).SecondPlotSize = 50
MsgBox “回復原來的狀態”
ActiveChart.ChartGroups(1).SecondPlotSize = ookisa
End Sub

04-58 變更輔助圖的類型

應用範例
Sub 變更輔助圖的類型()
MsgBox “變更輔助圖的類型”
ct = ActiveChart.ChartType
If ct = xlBarOfPie Then
ActiveChart.ChartType = xlPieOfPie
Else
ActiveChart.ChartType = xlBarOfPie
End If
End Sub

04-59 設定條狀圖數列間的重疊比例

應用範例
Sub 設定數列間的重疊比例()
MsgBox “將使用中直條圖內數列間的重疊比例設為50%”
Kasanari = ActiveChart.ChartGroups(1).Overlap
ActiveChart.ChartGroups(1).Overlap = 50
MsgBox “回復原來的狀態”
ActiveChart.ChartGroups(1).Overlap = kasanari
End Sub

04-60 調整條狀圖數列組的間距

應用範例
Sub 設定數列組的間距()
MsgBox “將使用中條狀圖的數列組間距設為50”
kankaku = ActiveChart.ChartGroups(1).GapWidth
ActiveChart.ChartGroups(1).GapWidth = 50
MsgBox “回復原來的狀態”
ActiveChart.ChartGroups(1).GapWidth = kankaku
End Sub

04-61 變更環圈圖的內徑

應用範例
Sub 設定環圈內徑的尺寸()
MsgBox “將使用中環圈圖的內徑設為20%”
ana = ActiveChart.DoughnutGroups(1).DoughnutHoleSize
ActiveChart.DoughnutGroups(1).DoughnutHoleSize = 20
MsgBox “回復原來的狀態”
ActiveChart.DoughnutGroups(1).DoughnutHoleSize = ana
End Sub

04-62 設定環圈圖的基線角度

應用範例
Sub 設定環圈圖的基線角度()
MsgBox “將使用中環圈圖的基線角度設為90度”
kakudo = ActiveChart.DoughnutGroups(1).FirstSliceAngle
ActiveChart.DoughnutGroups(1).FirstSliceAngle = 90
MsgBox “回復原來的狀態”
ActiveChart.DoughnutGroups(1).FirstSliceAngle = kakudo
End Sub

04-63 變更數列座標軸的標題文字

應用範例
Sub 設定數列座標軸的標題()
MsgBox “將數列座標軸的標題設為「科目」”
With ActiveChart.Axes.Item(xlSeriesAxis)
.HasTitle = True
.AxisTitle.Caption = “科目”
End With
End Sub

04-64 變更數列座標軸標題文字的顏色

應用範例
Sub 設定數列座標軸標題文字的顏色()
MsgBox “將使用中圖表的數列座標軸標題文字顏色變更為綠色”
iro = ActiveChart.Axes.Item(xlSeriesAxis).AxisTitle.Font.ColorIndex
With ActiveChart.Axes.Item(xlSeriesAxis)
.HasTitle = True
.AxisTitle.Font.ColorIndex = 4
End With
MsgBox “回復原來的狀態”
ActiveChart.Axes.Item(xlSeriesAxis).AxisTitle.Font.ColorIndex = iro
End Sub

04-65 設定立體圖表的旋轉角度(Z軸)

應用範例
Sub 設定立體圖表的旋轉角度()
MsgBox “將使用中立體圖表的Z軸旋轉角度設為60度”
kakudo = ActiveChart.Rotation
ActiveChart.Rotation = 60
MsgBox “回復原來的狀態”
ActiveChart.Rotation = kakudo
End Sub

04-66 設定立體圖表的仰角

應用範例
Sub 設定立體圖表的仰角()
MsgBox “將使用中立體圖表的仰角設為30度”
kakudo = ActiveChart.Elevation
MsgBox “目前的仰角為: ” & kakudo & “度”
ActiveChart.Elevation = 30
MsgBox “回復到原來的狀態”
ActiveChart.Elevation = kakudo
End Sub

06-67 設定立體圖表的景深

應用範例
Sub 設定立體圖表的景深()
MsgBox “將使用中立體圖表的景深設為80”
okuyuki = ActiveChart.Perspective
MsgBox “目前的景深為: ” & okuyuki
ActiveChart.Perspective = 80
MsgBox “回復原來的狀態”
ActiveChart.Perspective = okuyuki
End Sub

06-68 變更立體圖表底板的顏色

應用範例
Sub 設定底板的顏色()
MsgBox “將使用中立體圖表的底板顏色設為白色”
iro = ActiveChart.Floor.Interior.ColorIndex
MsgBox “目前的底板顏色為: ” & iro & “色”
ActiveChart.Floor.Interior.ColorIndex = 2
MsgBox “回復原來的狀態”
ActiveChart.Floor.Interior.ColorIndex = iro
End Sub

04-69 變更立體圖表的背景牆顏色

應用範例
Sub 設定背景牆的顏色()
MsgBox “將使用中立體圖表的背景牆顏色設為白色”
iro = ActiveChart.Walls.Interior.ColorIndex
MsgBox “目前的背景牆顏色為: ” & iro & “色”
ActiveChart.Walls.Interior.ColorIndex = 2
MsgBox “回復原來的狀態”
ActiveChart.Walls.Interior.ColorIndex = iro
End Sub

04-70 變更立體圖表背景牆的框線

應用範例
Sub 設定背景牆框線的顏色()
MsgBox “將使用中立體圖表背景牆的框線顏色設為紅色”
iro = ActiveChart.Walls.Border.ColorIndex
MsgBox “目前的背景牆框線顏色為: ” & iro & “色”
ActiveChart.Walls.Border.ColorIndex = 3
MsgBox “回復原來的狀態”
ActiveChart.Walls.Border.ColorIndex = iro
End Sub

04-71 選取嵌入式圖表

應用範例
Sub 選取嵌入式圖表()
MsgBox “選取使用中工作表的第二個嵌入式圖表”
ActiveSheet.ChartObjects(2).Select
End Sub

04-72 取得嵌入式圖表的數量

應用範例
Sub 嵌入式圖表的數量()
MsgBox “取得使用中工作表的嵌入式圖表數量”
MsgBox ActiveSheet.ChartObjects.Count
End Sub

04-73 移動嵌入式圖表的位置

應用範例
Sub 移動嵌入式圖表()
MsgBox “將使用中工作表內第二個嵌入式圖表移到儲存格B2上”
retu = ActiveSheet.ChartObjects(2).Left
gyou = ActiveSheet.ChartObjects(2).Top
MsgBox “目前的位置為: ” & gyou & “_” & retu
ActiveSheet.ChartObjects(2).Left = ActiveSheet.Columns(“B”).Left
ActiveSheet.ChartObjects(2).Top = ActiveSheet.Rows(“2”).Top
MsgBox “回復原來的狀態”
ActiveSheet.ChartObjects(2).Left = retu
ActiveSheet.ChartObjects(2).Top = gyou
End Sub

04-74 將嵌入式圖表移動到圖表工作表中

應用範例
Sub 將嵌入式圖表移到圖表工作表中()
MsgBox “將使用中工作表內第二個嵌入式圖表移動到新的圖表工作表中”
ActiveSheet.ChartObjects(2).Chart.Location Where:=xlLocationAsNewSheet, Name:=“New Chart”
End Sub

04-75 在樞紐分析表中隱藏列或行欄位中的項目

應用範例1
Sub 隱藏樞紐分析表中列欄位內的項目()
MsgBox “隱藏使用中樞紐分析表內列欄位「資料」的「1月」、「6月」、「12月」三個項目”
With ActiveChart.PivotLayout.PivotFields(“資料”)
.PivotItems(“1月”).Visible = False
.PivotItems(“6月”).Visible = False
.PivotItems(“12月”).Visible = False
End With
End Sub

應用範例2
Sub 隱藏樞紐分析表中行欄位內的項目()
MsgBox “隱藏使用中樞紐分析表內行欄位「項目」的「信用卡」、「置裝費」兩個項目”
With ActiveChart.PivotLayout.PivotFields(“項目”)
.PivotItems(“信用卡”).Visible = False
.PivotItems(“置裝費”).Visible = False
End With
End Sub

04-76 變更樞紐分析表頁欄位的項目

應用範例
Sub 變更樞紐分析表頁面欄位的項目()
MsgBox “將樞紐分析表頁欄位的項目設為「信用卡」”
ActiveChart.PivotLayout.PivotFields(“總計”).CurrentPage = “信用卡”
End Sub

04-77 將負值數列的顏色設為補色

應用範例
Sub 設定負值數列的顏色()
MsgBox “若各數列組的第一個數列為負值,其顏色將以補色顯示”
ActiveChart.SeriesCollection(1).InvertIfNegative = True
MsgBox “回復原來的狀態”
ActiveChart.SeriesCollection(1).InvertIfNegative = False
End Sub

04-78 調整圖表的尺寸以符合工作表視窗的大小

應用範例
Sub 將圖表納於圖表工作表中()
MsgBox “自動調整圖表的尺寸,使符合圖表工作表視窗的大小”
ActiveChart.SizeWithWindow = True
End Sub

Chapter-05 樞紐分析表

第五章 樞紐分析表

05-01 取得樞紐分析表的資料來源

應用範例
Sub 取得樞紐分析表的資料來源()
MsgBox “顯示被選取的樞紐分析表的資料來源
MsgBox Selection.PivotTable.SourceData
End Sub

05-02 取得樞紐分析表資料來源工作表的欄位名稱

應用範例
Sub 顯示樞紐分析表資料來中的欄位名稱()
MsgBox "將樞紐分析表的資料來源工作表的欄位依序顯示出來"
pfsuu = Selection.PivotTable.PivotFields.Count
For i = 1 To pfsuu
pfname = Selection.PivotTable.PivotFields(i).Name
MsgBox "" & i & " 個欄位的名稱: " & pfname
Next i
End Sub

05-03 取得樞紐分析表的資料欄位名稱

應用範例
Sub 取得樞紐分析表中資料欄位的名稱()
MsgBox “顯示被選取的樞紐分析表內資料欄位的名稱
dfsuu = Selection.PivotTable.DataFields.Count
For i = 1 To dfsuu
MsgBox Selection.PivotTable.DataFields(i).Name
Next i
End Sub

05-04 取得樞紐分析表行欄位的名稱

應用範例
Sub 取得樞紐分析表中行欄位的名稱()
MsgBox “顯示被選取的樞紐分析表內行欄位的名稱
cfsuu = Selection.PivotTable.ColumnFields.Count
For i = 1 To cfsuu
MsgBox Selection.PivotTable.ColumnFields(i).Name
Next i
End Sub

05-05 取得樞紐分析表列欄位的名稱

應用範例
Sub 取得樞紐分析表中列欄位的名稱()
MsgBox “顯示被選取的樞紐分析表內列欄位的名稱
gfname = Selection.PivotTable.RowFields.Count
For i = 1 To gfname
MsgBox Selection.PivotTable.RowFields(i).Name
Next i
End Sub

05-06 取得樞紐分析表的頁欄位名稱

應用範例
Sub 取得頁欄位的名稱()
MsgBox “取得頁欄位的名稱
pfsuu = Selection.PivotTable.PageFields.Count
For i = 1 To pfsuu
MsgBox Selection.PivotTable.PageFields(i).Name
Next i
End Sub

05-07 隱藏欄位中的項目

應用範例
Sub 隱藏欄位中的項目()
MsgBox “隱藏樞紐分析表中「費用類別」欄位內的「置裝費」項目
Selection.PivotTable.PivotFields(“費用類別”).PivotItems.Item(“置裝費”).Visible = False
MsgBox “回復原來的狀態
Selection.PivotTable.PivotFields(“費用類別”).PivotItems.Item(“置裝費”).Visible = True
End Sub

05-08 變更頁欄位所顯示的項目

應用範例
Sub 變更頁欄位中的項目()
MsgBox “將樞紐分析表中頁欄位「類別」所顯示的項目變更為「轉帳」
Selection.PivotTable.PivotFields(“類別”).CurrentPage = “轉帳
MsgBox “回復原來的狀態
Selection.PivotTable.PivotFields(“類別”).CurrentPage = “全部
End Sub

05-09 隱藏樞紐分析表的加總資料

應用範例
Sub 隱藏樞紐分析表的加總資料()
MsgBox “隱藏樞紐分析表中列與行的加總資料
Selection.PivotTable.RowGrand = False
Selection.PivotTable.ColumnGrand = False
MsgBox “回復原來的狀態
Selection.PivotTable.RowGrand = True
Selection.PivotTable.ColumnGrand = True
End Sub

05-10 變更列欄位與行欄位的位置

應用範例
Sub 變更列欄位及行欄位的位置()
MsgBox “將列欄位及行欄位的位置交換
Selection.PivotTable.PivotFields(“”).Orientation = xlColumnField
Selection.PivotTable.PivotFields(“費用類別”).Orientation = xlRowField
MsgBox “回復原來的狀態
Selection.PivotTable.PivotFields(“”).Orientation = xlRowField
Selection.PivotTable.PivotFields(“費用類別”).Orientation = xlColumnField
End Sub

05-11 變更頁欄位與行欄位的位置

應用範例
Sub 變更列欄位及頁欄位的位置()
MsgBox “將列欄位及頁欄位的位置交換
Selection.PivotTable.PivotFields(“”).Orientation = xlPageField
Selection.PivotTable.PivotFields(“類別”).Orientation = xlRowField
MsgBox “回復原來的狀態
Selection.PivotTable.PivotFields(“”).Orientation = xlRowField
Selection.PivotTable.PivotFields(“類別”).Orientation = xlPageField
End Sub

05-12 變更樞紐分析表行欄位的欄寬

應用範例
Sub 設定樞紐分析表的行寬()
MsgBox “將樞紐分析表中B行到F行的行寬設為7
ActiveSheet.Columns(“B:F”).Select
Selection.ColumnWidth = 7
End Sub

05-13 更新樞紐分析表的資料

應用範例
Sub 更新樞紐分析表的資料()
MsgBox “更新樞紐分析表的資料,並顯示是否更新成功
MsgBox ActiveSheet.PivotTables(1).RefreshTable
End Sub

05-14 取得最新的樞紐分析表資料更新日期

應用範例
Sub 取得資料更新的日期()
MsgBox “顯示樞紐分析表最新的資料更新日期
MsgBox Selection.PivotTable.RefreshDate
End Sub