40
1-10 1-3 初學者入門導引 為了讓初學者去除恐懼,我們將以實例說明與操作,讓您跟著完成簡單的練 習。這一節的內容分成二大部份,分別為:錄寫巨集與自行撰寫巨集,期望讀者 能循序閱讀,以引發您的學習興趣。 1-3-1 錄寫 Excel VBA 巨集 我們經常在授課時,與所有初學 VBA 的朋友說,只要您會唱卡拉 OK 或使 用錄音機、CD 音響、DVD 播放機⋯等設備,就會使用 Excel VBA。其主要原因 是,Excel VBA 有一個「錄寫」功能,能夠將使用者在 Excel 中所執行的指令或 滑鼠的動作,自動錄下來且轉換為 Visual Basic 程式碼。 現在,請依循下列步驟,自己做一次,馬上就會感受到它的神奇魅力!下面 的練習,主要是執行在 A1 儲存格填入 1B2 填入 2C3 填入 3 的基本輸入工 作。 STEP1 啟動 Excel 之後,開啟範例檔案「Ch01_VBA.xlsm」,選擇「工作表 1」, 執行 開發人員 > 程式碼 > 錄製巨集 指令。 STEP2 出現 錄製巨集 對話方塊,輸入所要的 巨集名稱,例如:基本練習。如果 不輸入,Excel 即會使用預設的名稱 巨集 1巨集 2、⋯等來命名。 STEP3 其他設定請使用預設值,暫時不去動它,免得才剛開始就把自己搞得暈頭 轉向,按【確定】鈕。

1-3 初學者入門導引 - epaper.gotop.com.twepaper.gotop.com.tw/PDFSample/ACI028800.pdf · 1-11 輕輕鬆鬆認識 Excel VBA 1 STEP4 開始錄製巨集。請留意!從現在起

  • Upload
    others

  • View
    8

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 1-3 初學者入門導引 - epaper.gotop.com.twepaper.gotop.com.tw/PDFSample/ACI028800.pdf · 1-11 輕輕鬆鬆認識 Excel VBA 1 STEP4 開始錄製巨集。請留意!從現在起

1-10

1-3 初學者入門導引為了讓初學者去除恐懼,我們將以實例說明與操作,讓您跟著完成簡單的練

習。這一節的內容分成二大部份,分別為:錄寫巨集與自行撰寫巨集,期望讀者

能循序閱讀,以引發您的學習興趣。

1-3-1 錄寫 Excel VBA巨集我們經常在授課時,與所有初學 VBA的朋友說,只要您會唱卡拉 OK或使

用錄音機、CD音響、DVD播放機⋯等設備,就會使用 Excel VBA。其主要原因

是,Excel VBA有一個「錄寫」功能,能夠將使用者在 Excel中所執行的指令或

滑鼠的動作,自動錄下來且轉換為 Visual Basic程式碼。

現在,請依循下列步驟,自己做一次,馬上就會感受到它的神奇魅力!下面

的練習,主要是執行在 A1儲存格填入 1、B2填入 2、C3填入 3的基本輸入工

作。

STEP1 啟動 Excel之後,開啟範例檔案「Ch01_VBA.xlsm」,選擇「工作表 1」,

執行 開發人員 >程式碼 >錄製巨集 指令。

STEP2 出現 錄製巨集 對話方塊,輸入所要的 巨集名稱,例如:基本練習。如果

不輸入,Excel即會使用預設的名稱 巨集 1、巨集 2、⋯等來命名。

STEP3 其他設定請使用預設值,暫時不去動它,免得才剛開始就把自己搞得暈頭

轉向,按【確定】鈕。

ACI0288_Excel2016VBA.indb 10 2016/4/25 下午 04:03:34

Page 2: 1-3 初學者入門導引 - epaper.gotop.com.twepaper.gotop.com.tw/PDFSample/ACI028800.pdf · 1-11 輕輕鬆鬆認識 Excel VBA 1 STEP4 開始錄製巨集。請留意!從現在起

1-11

輕輕鬆鬆認識 E

xcel VB

A

1

STEP4 開始錄製巨集。請留意!從現在起 Excel中所執行的每一個動作都會被錄製

下來;此時,程式碼 功能區群組出現 停止錄製 指令。

1

2

說明

巨集名稱 的命名方式必須遵守下列規則:可以使用中文或英文。

名稱的第一個字必須是英文字母或中文字。

名稱中不能含有 空白 ( )的字元。

名稱中可以使用 底線 (_)字元。

STEP5 先點選 A1儲存格,輸入 1;接著,分別在 B2輸入 2、C3輸入 3。

STEP6 點選 A1儲存格,將儲存格游標放在工作表左上角的位置。

STEP7 執行 開發人員 >程式碼 >停止錄製 指令,完成錄寫工作。

接下頁

ACI0288_Excel2016VBA.indb 11 2016/4/25 下午 04:03:34

Page 3: 1-3 初學者入門導引 - epaper.gotop.com.twepaper.gotop.com.tw/PDFSample/ACI028800.pdf · 1-11 輕輕鬆鬆認識 Excel VBA 1 STEP4 開始錄製巨集。請留意!從現在起

1-12

恭喜您,完成了第一個 Excel VBA巨集。您可能會說,這是什麼啊!我只

不過是輸入 1、2、3就算完成一個 VBA巨集。沒錯!下一小節,您就會看到自

己的傑作了。

說明

狀態列 上也會出現 錄製巨集 或 停止錄製 的按鈕。

錄製巨集

停止錄製

ACI0288_Excel2016VBA.indb 12 2016/4/25 下午 04:03:35

Page 4: 1-3 初學者入門導引 - epaper.gotop.com.twepaper.gotop.com.tw/PDFSample/ACI028800.pdf · 1-11 輕輕鬆鬆認識 Excel VBA 1 STEP4 開始錄製巨集。請留意!從現在起

1-13

輕輕鬆鬆認識 E

xcel VB

A

1

STEP2 出現 巨集 對話方塊,在 巨集名稱

清單中選取「基本練習」,按【執

行】鈕。

1-3-2 執行 Excel VBA巨集與顯示 VBA程式前一小節已經錄好一個巨集,現在就依下列步驟來執行它,看看它的成果。

執行 Excel VBA巨集

STEP1 選擇「工作表 2」,執行 開發人員 >程式碼 >巨集 指令。

1

2

ACI0288_Excel2016VBA.indb 13 2016/4/25 下午 04:03:35

Page 5: 1-3 初學者入門導引 - epaper.gotop.com.twepaper.gotop.com.tw/PDFSample/ACI028800.pdf · 1-11 輕輕鬆鬆認識 Excel VBA 1 STEP4 開始錄製巨集。請留意!從現在起

1-14

不錯吧!以後凡是需要重複執行的工作,例如:格式化工作表或調整欄寬列

高,都可以依循上述方法,錄寫一個巨集,然後執行它就行了。

顯示 VBA程式嗯!那麼剛剛錄製的巨集是放在哪裡呢?怎麼找不到啊!別急,這很簡單,

只要執行 開發人員 >程式碼 > Visual Basic 指令,或按 + 鍵,即會看到

如下圖所示的 Visual Basic編輯視窗。

STEP3 Excel立刻在「工作表 2」的 A1、B2、C3儲存格,分別填入 1、2、3。

ACI0288_Excel2016VBA.indb 14 2016/4/25 下午 04:03:35

Page 6: 1-3 初學者入門導引 - epaper.gotop.com.twepaper.gotop.com.tw/PDFSample/ACI028800.pdf · 1-11 輕輕鬆鬆認識 Excel VBA 1 STEP4 開始錄製巨集。請留意!從現在起

1-15

輕輕鬆鬆認識 E

xcel VB

A

1

嘿!怎麼灰灰地一片,什麼也沒有!如果要看到程式內容,還有幾個小動作,

一下子就好了。

STEP1 將滑鼠指向視窗的左側,在 專案總管 中先展開 VBAProjcet,再展開 模組

資料夾。

STEP2 模組 資料夾下方會顯示 Module1,使用滑鼠指向它,並快按二下;右側的

程式碼 窗格即會出現剛剛所錄下來的巨集程式。

1

23

ACI0288_Excel2016VBA.indb 15 2016/4/25 下午 04:03:36

Page 7: 1-3 初學者入門導引 - epaper.gotop.com.twepaper.gotop.com.tw/PDFSample/ACI028800.pdf · 1-11 輕輕鬆鬆認識 Excel VBA 1 STEP4 開始錄製巨集。請留意!從現在起

1-16

1-3-3 逐字逐句輸入 VBA程式雖然我們很快地完成一個巨集,但似乎沒有什麼感覺,也沒有太大的成就

感!現在請開始自己寫一個程式,這樣就會有深刻的印象。不過,別被嚇壞了,

更不要把這本書重重摔下,拔腿就跑!

閱讀本節的內容之前,別擔心您是否具備程式基礎,也別問太多為什麼。這

個練習的目的,是讓您親身試著體會撰寫程式的樂趣,所以只要照著做就可以,

詳細的程式語法會在後續的章節中說明。

自己動手撰寫 VBA

STEP1 啟動 Excel之後,執行 開發人員 >程式碼 > Visual Basic 指令。

STEP2 在 Visual Basic編輯視窗中,執行 插入 >模組 指令,即會在其視窗右側,

出現空白的 程式碼 窗格。

ACI0288_Excel2016VBA.indb 16 2016/4/25 下午 04:03:36

Page 8: 1-3 初學者入門導引 - epaper.gotop.com.twepaper.gotop.com.tw/PDFSample/ACI028800.pdf · 1-11 輕輕鬆鬆認識 Excel VBA 1 STEP4 開始錄製巨集。請留意!從現在起

1-17

輕輕鬆鬆認識 E

xcel VB

A

1

STEP4 回到 Excel工作表之後,選擇「工作表 3」,執行 開發人員 >程式碼 >巨集

指令。

STEP5 出現 巨集 對話方塊,在 巨集名稱 清單中選取「第一個練習」,按【執行】

鈕。是否發現其結果與執行「基本練習」巨集完全相同呢!

STEP3 參考下圖,把內容輸入到程式碼區域。按 檢視 Microsoft Excel 鈕返回

Excel工作表。

1

2

1

2

3

接下頁

ACI0288_Excel2016VBA.indb 17 2016/4/25 下午 04:03:37

Page 9: 1-3 初學者入門導引 - epaper.gotop.com.twepaper.gotop.com.tw/PDFSample/ACI028800.pdf · 1-11 輕輕鬆鬆認識 Excel VBA 1 STEP4 開始錄製巨集。請留意!從現在起

1-18

如果在步驟 5的執行過程中,出現如下圖所示的錯誤訊息,請別心慌!先按

【確定】鈕,這表示剛剛在輸入程式碼時可能打錯字了,先回到 VB編輯視窗將

錯誤改正,然後按 重新設定 鈕,再重新執行巨集。

多打了一個「r」

ACI0288_Excel2016VBA.indb 18 2016/4/25 下午 04:03:37

Page 10: 1-3 初學者入門導引 - epaper.gotop.com.twepaper.gotop.com.tw/PDFSample/ACI028800.pdf · 1-11 輕輕鬆鬆認識 Excel VBA 1 STEP4 開始錄製巨集。請留意!從現在起

4-1 處理 Excel 活頁簿

4-2 處理 Excel 工作表

4-3 儲存格的參照位址

4-4 Excel VBA 中儲存格的定義

4-5 選取儲存格範圍的技巧

4-6 應用程式物件集合

4-7 事件程序的重要應用

Excel VBA 常用的程式

Chapter4

ACI0288_Excel2016VBA.indb 1 2016/4/25 下午 04:04:00

Page 11: 1-3 初學者入門導引 - epaper.gotop.com.twepaper.gotop.com.tw/PDFSample/ACI028800.pdf · 1-11 輕輕鬆鬆認識 Excel VBA 1 STEP4 開始錄製巨集。請留意!從現在起

4-2

Excel VBA的重心是處理 Excel中的 活頁簿、工作表、圖表、儲存格,以

提升或完成人工作業無法做到的事情。因此,我們將依據實際的工作經驗,將此

部份的相關用法與技巧提供讀者參考。請您依循本章範例多加練習,以便建立進

一步學習 Excel VBA的基礎。

4-1 處埋 Excel活頁簿進行 Excel的一般作業時,首先,使用者一定會開啟一個活頁簿檔案,或是

建立一個新的活頁簿,當工作告一段落後,接著會將其儲存或是關閉。上述這些

事情,在使用 Excel VBA的時候,也一定會碰到。

4-1-1 開啟活頁簿檔案在 Excel VBA中「活頁簿」是一個物件,也是一個物件集合,其名稱為

「Workbooks」。將「Workbooks」對應到 Excel的一般作業,就是我們習慣用

的「*.xls」或「*. xlsx」檔案,有下列幾種常見的開啟檔案的作業方式。

開新檔案-建立新活頁簿

新增一個空白的活頁簿,可以使用預設的狀況,使用「Add」方法來進行。

一般而言,新增的活頁簿即為作用中活頁簿。

範例 開新檔案

Sub 開新檔案 ( ) Workbooks.AddEnd Sub

執行程式後已開啟新的活頁簿檔案

ACI0288_Excel2016VBA.indb 2 2016/4/25 下午 04:04:01

Page 12: 1-3 初學者入門導引 - epaper.gotop.com.twepaper.gotop.com.tw/PDFSample/ACI028800.pdf · 1-11 輕輕鬆鬆認識 Excel VBA 1 STEP4 開始錄製巨集。請留意!從現在起

4-3

Excel V

BA

常用的程式

4

範例 開啟指定範本檔案以建立新檔案

Sub 開新檔案 _範本 () Dim wkb1 As Workbook Dim wkb2 As Workbook Set wkb1 = Workbooks.Add(Template:="D:\Test_範本 .xlsx") Set wkb2 = Workbooks.Add(Template:="D:\Test_範本 .xltx") Workbooks.Add ("D:\TAATCL\Test_範本 .xlsx")End Sub

若希望將自己建立好的活頁簿作為範本使用,讓其他使用者不會破壞原始的

活頁簿,則可以依循下列範例,建立一個 VBA巨集,讓使用者透過此 VBA程式

開啟範本檔案。

本例將要開啟的範本檔案放置在「D:\」

執行程式後已開啟指定的「範本」檔案

ACI0288_Excel2016VBA.indb 3 2016/4/25 下午 04:04:01

Page 13: 1-3 初學者入門導引 - epaper.gotop.com.twepaper.gotop.com.tw/PDFSample/ACI028800.pdf · 1-11 輕輕鬆鬆認識 Excel VBA 1 STEP4 開始錄製巨集。請留意!從現在起

4-4

此範例使用三種不同的方式開啟範本檔,在範例中我們知道原始活頁簿建

立妥當後,可以直接儲存為「*.xlsx」檔案,當成巨集所開啟的範本檔,不一定

需要儲存為「*.xltx」範本檔案,且執行此 VBA程式所開啟的新檔,會自動在

其檔名之後加上序號,例如:Test_範本 1.xls、Test_範本 2.xls、Test_範本

3.xls⋯等,等同於以範本檔案為基礎開啟新檔案的操作,會自動在其檔名之後加

上序號一樣。

開啟舊檔

開啟一個已存放在儲存媒體中的活頁簿檔案,是經常要處理的事情。不過在

開啟檔案之前,必須知道檔案所存放的磁碟與資料夾名稱,如此才能順利打開。

所以在 VBA中要開啟舊檔,必須加上此檔案的磁碟與資料夾名稱。

範例 開啟舊檔案

Sub Test( ) Workbooks.Open("D:\Test_範本 .xlsx")End Sub

說明

在檔案管理中,檔案所存放的磁碟與資料夾名稱,我們通稱為「路徑」。

參考前述範例,也可以使用物件變數的方式處理開啟舊檔的工作。

範例 使用物件變數的方式開啟舊檔

Sub Test( ) Dim Wkb = As Workbook Set Wkb = Workbooks.Open(FileName:= "D:\Test_範本 .xlsx")End Sub

執行 VBA程式時,如果想要取得活頁簿的名稱,可以使用下列的方法處理。

「.Name」是擷取檔名、「.FullName」則是擷取檔名與資料夾名稱(路徑)。

範例 擷取檔案名稱

Sub 擷取檔名 () Dim wkb As Workbook Set wkb = Workbooks.Open("D:\Test_範本 .xlsx") MsgBox wkb.Name MsgBox wkb.FullName MsgBox wkb.PathEnd Sub

ACI0288_Excel2016VBA.indb 4 2016/4/25 下午 04:04:01

Page 14: 1-3 初學者入門導引 - epaper.gotop.com.twepaper.gotop.com.tw/PDFSample/ACI028800.pdf · 1-11 輕輕鬆鬆認識 Excel VBA 1 STEP4 開始錄製巨集。請留意!從現在起

4-5

Excel V

BA

常用的程式

4

作用中的檔案(啟動活頁簿)

工作時可能會同時開啟數個 Excel活頁簿檔案,並視需要在不同的檔案間切

換,每一次切換被選取的檔案,稱為「作用中」檔案。同樣地,在 Excel VBA也

可以同時開啟數個活頁簿,但如要針對某一個活頁簿執行一些程式,則必須先啟

動該活頁簿,對應的陳述式範例如下所示。

範例 將已開啟的活頁簿變為作用中的活頁簿

Sub 啟動活頁簿 ( ) Workbooks("Ch04_VBA.xlsm").ActivateEnd Sub

4-1-2 儲存與關閉檔案無論使用電腦進行哪一項工作,過程中必須記得隨時存檔,以免讓不確定因

素造成資料或檔案的毀損。同樣地,執行 Excel VBA程式時,最好也要將這些使

用中的檔案隨時儲存。

檢查是否具有相同名稱的檔案

使用 VBA執行儲存檔案,最好養成一個習慣,那就是存檔之前先確認資料夾

名稱(路徑),並檢查其中是否已具有相同名稱的檔案。

範例 檢查是否具有相同名稱的檔案

Sub 檢查檔案 ()Dim 找找看我在不在Dim 完整檔案名稱 As String

擷取檔案名稱 擷取檔案完整的儲存路徑 擷取檔案所在磁碟

說明

上述範例中,使用 Path所得到的路徑,不含「\」分隔符號,所以在應用 Path屬性時,記得要加上「\」此分隔符號。

ACI0288_Excel2016VBA.indb 5 2016/4/25 下午 04:04:02

Page 15: 1-3 初學者入門導引 - epaper.gotop.com.twepaper.gotop.com.tw/PDFSample/ACI028800.pdf · 1-11 輕輕鬆鬆認識 Excel VBA 1 STEP4 開始錄製巨集。請留意!從現在起

4-6

完整檔案名稱 = "D:\TAATCL\Test_範本 .xlsx" If Dir(完整檔案名稱 ) <> "" Then 找找看我在不在 = True If 找找看我在不在 Then MsgBox 完整檔案名稱 & " 我在這裡哦,請小心! " Else MsgBox 完整檔案名稱 & " 找不到,請放心使用! " End IfEnd Sub

使用 VBA擷取檔名與資料夾(路徑)的做法,還有許多語法可以使用,例

如:ChDir、CurDir、GetFile、FileExists、GetFolder⋯等,讀者可以透過微軟

的「Microsoft Visual Basic for Applications說明」查詢相關資訊。

另存新檔

活頁簿的工作處理完成之後,要趕快將其儲存,其中一種方法是 另存新檔。

Sub 另存新檔 ()Dim wkb As Workbook Set wkb = Workbooks.Open("D:\TAATCL\Test_範本 .xlsx") wkb.SaveAs Filename:="D: TAATCL\ANT Test_範本 .xlsx"End Sub

執行之後,檔案名稱已經變更

ACI0288_Excel2016VBA.indb 6 2016/4/25 下午 04:04:02

Page 16: 1-3 初學者入門導引 - epaper.gotop.com.twepaper.gotop.com.tw/PDFSample/ACI028800.pdf · 1-11 輕輕鬆鬆認識 Excel VBA 1 STEP4 開始錄製巨集。請留意!從現在起

4-7

Excel V

BA

常用的程式

4

如果要使用原來的檔名直接 儲存檔案,可以使用下列陳述式來處理。

Sub Test( ) ActiveWorkbook.SaveEnd Sub

關閉檔案

當我們使用完某些檔案以後,即會將其關閉。在 Excel VBA中,關閉檔案 的

方法有下列三種選擇:

ActiveWorkbook.Close

關閉檔案,並出現對話方塊,詢問您是否要儲存檔案。

ActiveWorkbook.Close SaveChanges:=True

直接關閉檔案並儲存。

ActiveWorkbook.Close SaveChanges:=False

直接關閉檔案,不要儲存。

4-1-3 調整視窗的顯示位置Microsoft的視窗作業環境,能夠在世間大行其道,是其「視覺化」的操作介

面讓電腦應用容易上手。使用 Excel VBA如果同時開啟數個檔案,仍然可以安排

這些檔案在螢幕(視窗)上的顯示位置。

活頁簿的視窗編號或名稱

同時開啟數個 Excel活頁簿檔案之後,可以執行 檢視 >視窗 >切換視窗 指

令,在清單中即會看到各個活頁簿對應的視窗編號。在 Excel VBA中,則是以

「Windows (1)」代表編號 1的活頁簿視窗,以此類推。另外,為了確保開啟視窗

時不發生錯誤,也可以使用視窗名稱來辦識,Excel VBA中是以「Windows ("活

頁簿名稱 ")」代表其名稱。

ACI0288_Excel2016VBA.indb 7 2016/4/25 下午 04:04:02

Page 17: 1-3 初學者入門導引 - epaper.gotop.com.twepaper.gotop.com.tw/PDFSample/ACI028800.pdf · 1-11 輕輕鬆鬆認識 Excel VBA 1 STEP4 開始錄製巨集。請留意!從現在起

4-8

一共開啟 5個活頁簿檔案

編號 1的活頁簿

VBA的用法

ACI0288_Excel2016VBA.indb 8 2016/4/25 下午 04:04:02

Page 18: 1-3 初學者入門導引 - epaper.gotop.com.twepaper.gotop.com.tw/PDFSample/ACI028800.pdf · 1-11 輕輕鬆鬆認識 Excel VBA 1 STEP4 開始錄製巨集。請留意!從現在起

4-9

Excel V

BA

常用的程式

4

作用中的視窗(啟動視窗)

作用中的視窗與作用中的檔案,一般作業中可以將其視為同一件事情,但在

Excel VBA中,會分別以不同的陳述式表示,但其結果相同。

Sub 啟動視窗 () Workbooks("Test_範本 .xlsx").Activate '啟動活頁簿 Windows("Ch04_VBA.xlsm").Activate '啟動視窗End Sub

最大化 /最小化視窗視需要可以將視窗以最小化或最大化方式呈現,Excel VBA 中是以

「WindowState」屬性描述,然後再加上所要的常數。

Sub 調整視窗 () Windows(1).WindowState = xlMaximized '視窗最大化 Windows(2).WindowState = xlMinimized '視窗最小化 Windows(2).WindowState = xlNormal '還原視窗End Sub

關閉視窗

關閉視窗與關閉檔案,在一般作業是指同一件事情,而在 Excel VBA的定義

也是一樣,但表示方法卻不相同。

Sub 關閉視窗 ( ) Windows(1).close '關閉視窗 Windows("Test_範本 .xlsx").close '關閉視窗 Workbooks("Ch04_VBA.xlsm").close '關閉檔案End Sub

ACI0288_Excel2016VBA.indb 9 2016/4/25 下午 04:04:03

Page 19: 1-3 初學者入門導引 - epaper.gotop.com.twepaper.gotop.com.tw/PDFSample/ACI028800.pdf · 1-11 輕輕鬆鬆認識 Excel VBA 1 STEP4 開始錄製巨集。請留意!從現在起

4-10

4-2 處理 Excel工作表使用試算表軟體一定會用到 工作表,另外,若要顯示圖表,則會用到 圖表

工作表。由此可知工作表與圖表是試算表軟體中的重要元件。Excel VBA也將

工作表 與 圖表 物件包含於 活頁簿 物件集合中,工作表 物件本身也是一個物件

集合,其名稱為「Sheets」;圖表 物件集合,其名稱為「Charts」。

4-2-1 工作表的命名Excel 2016的每一個新活頁簿其預設值擁有一張工作表,工作表名稱預設

為「工作表 1」、「工作表 2」、「工作表 3」⋯等,執行 常用 >儲存格 >格式 >重

新命名工作表 指令,可以變更工作表的名稱。

1

2

在 Excel VBA中則可以使用「工作表名稱」或「工作表索引編號」的表示

方式,處理工作表的相關事情。由於「工作表索引編號」會因為工作表 新增、

搬移、刪除⋯等動作而變更,所以使用時必須特別留意!

ACI0288_Excel2016VBA.indb 10 2016/4/25 下午 04:04:03

Page 20: 1-3 初學者入門導引 - epaper.gotop.com.twepaper.gotop.com.tw/PDFSample/ACI028800.pdf · 1-11 輕輕鬆鬆認識 Excel VBA 1 STEP4 開始錄製巨集。請留意!從現在起

4-11

Excel V

BA

常用的程式

4

使用「工作表名稱」指定工作表

當我們以人工方式變更 Excel的「工作表名稱」之後,可以透過 Excel VBA

直接使用這些「工作表名稱」指定其代表的工作表。

Sub 指定工作表 () Worksheets("月報 ").Activate Sheets("週報 ").Select Charts("銷售圖 ").SelectEnd Sub

另外,也可以在 VB編輯視窗中,選到所要的工作表物件,在其 屬性 窗格之

「Name」屬性欄,定義其「工作表物件名稱」(與「工作表名稱」不同);如此,

在處理工作表物件名稱時,其相關陳述式中的描述將會不同,請參考圖例。

原來的 Name屬性

變更後的Name屬性

ACI0288_Excel2016VBA.indb 11 2016/4/25 下午 04:04:03

Page 21: 1-3 初學者入門導引 - epaper.gotop.com.twepaper.gotop.com.tw/PDFSample/ACI028800.pdf · 1-11 輕輕鬆鬆認識 Excel VBA 1 STEP4 開始錄製巨集。請留意!從現在起

4-12

使用索引編號指定工作表

工作表物件在 Excel VBA中,會自動賦予一個「工作表索引編號」,其順

序是在 Excel活頁簿檔案中,依照活頁簿工作表標籤所在的位置,由左至右

依序定義。「Worksheets (1)」為活頁簿中的第一頁(最左邊的)工作表,而

「Worksheets (Worksheets.Count)」為最後一頁工作表,且所有的工作表均包

括在索引計數之中,即使是隱藏的工作表也不例外。

Sub 工作表索引編號 A() Worksheets(1).Select MsgBox ActiveWorkbook.Worksheets(2).NameEnd Sub

執行結果

Sub 工作表索引編號 B() For K = 1 To 4 MsgBox ActiveWorkbook.Worksheets(K).Name & _ " 工作表序號 =" & ActiveWorkbook.Worksheets(K).Index Next KEnd Sub

ACI0288_Excel2016VBA.indb 12 2016/4/25 下午 04:04:04

Page 22: 1-3 初學者入門導引 - epaper.gotop.com.twepaper.gotop.com.tw/PDFSample/ACI028800.pdf · 1-11 輕輕鬆鬆認識 Excel VBA 1 STEP4 開始錄製巨集。請留意!從現在起

4-13

Excel V

BA

常用的程式

4

上圖中,我們從活頁簿工作表標籤看到的順序為:參照應用(編號 1)、週報

(編號 2)、月報(編號 3)、4-4-4(編號 4),其編號會因工作表的搬移、複製、新

增、刪除而改變。

索引編號 1的工作表

但是在 VB編輯視窗的 專案總管 中,所看到

的順序則是:Sheet2(月報)、Sheet3(週報)、

Sheet4(參照應用)、Sheet6(4-4-4),且不會隨

便更動。因此,在使用工作表索引編號時,必須謹

慎以免發生錯誤。

說明

Sheets是指活頁簿中的所有工作表與圖表;WorkSheets則僅是指一般工作表,但不含圖表。

ACI0288_Excel2016VBA.indb 13 2016/4/25 下午 04:04:04

Page 23: 1-3 初學者入門導引 - epaper.gotop.com.twepaper.gotop.com.tw/PDFSample/ACI028800.pdf · 1-11 輕輕鬆鬆認識 Excel VBA 1 STEP4 開始錄製巨集。請留意!從現在起

4-14

檢查相同名稱的工作表

在同一個活頁簿中,不能存在相同名稱的二張工作表。因此,若要透過

Excel VBA變更工作表名稱時,必須注意是否已存在相同名稱的工作表,否則程

式執行時會出現錯誤訊息。

Sub 檢查相同名稱的工作表 ()Dim 工作表 As Worksheet For Each 工作表 In Worksheets If 工作表 .Name = "月報 " Then 存在 = True Next 工作表 If 存在 = True Then MsgBox "***月報工作表存在 ***" Else MsgBox "月報工作表不存在 " End IfEnd Sub

執行結果

上述範例程式,是先使用「For Each⋯Next」陳述式檢查活頁簿中所有的

工作表名稱,然後再使用所得結果判斷指定的工作表名稱是否存在。

4-2-2 選取與啟動工作表使用滑鼠選取工作表,當工作表被選取時,即稱為「作用中」的工作表。這

個動作,在 Excel VBA中可以使用「Select」或「Activate」選取工作表,並啟

動此工作表。

Sub 選取與啟動工作表 ( ) Sheets("月報 ").Select Sheets("週報 ").ActivateEnd Sub

ACI0288_Excel2016VBA.indb 14 2016/4/25 下午 04:04:04

Page 24: 1-3 初學者入門導引 - epaper.gotop.com.twepaper.gotop.com.tw/PDFSample/ACI028800.pdf · 1-11 輕輕鬆鬆認識 Excel VBA 1 STEP4 開始錄製巨集。請留意!從現在起

4-15

Excel V

BA

常用的程式

4

4-2-3 顯示與隱藏工作表執行 常用 >儲存格 >格式 >隱藏及取消隱藏 >隱藏工作表 指令,可以隱藏作

用中的工作表;當然也可以再執行 常用 >儲存格 >格式 >隱藏及取消隱藏 >取消

隱藏工作表 指令重新顯示。

執行結果作用中的工作表

隱藏作用中工作表

1

2

3

4

ACI0288_Excel2016VBA.indb 15 2016/4/25 下午 04:04:04

Page 25: 1-3 初學者入門導引 - epaper.gotop.com.twepaper.gotop.com.tw/PDFSample/ACI028800.pdf · 1-11 輕輕鬆鬆認識 Excel VBA 1 STEP4 開始錄製巨集。請留意!從現在起

4-16

使用 Excel VBA也可以進行相同的工作,還可以進一步設定「隱藏」指令,

讓使用者無法經由執行 常用 >儲存格 >格式 >隱藏及取消隱藏 >取消隱藏工作

表 指令顯示被隱藏的工作表,僅能經由 VBA程式重新設定其「顯示」屬性。

Sub 顯示與隱藏工作表 () Sheets("月報 ").Visible = False ' 隱藏 Sheets("月報 ").Visible = True ' 顯示 Sheets("週報 ").Visible = xlVeryHidden ' 加重隱藏無法以手動方式恢復顯示End Sub

程式執行過程中,「週報」工作表已隱藏,而且 取消隱藏工作表 指令無法

使用。執行結果,請參考下圖。

取消隱藏的工作表

1

2

3

4

5

ACI0288_Excel2016VBA.indb 16 2016/4/25 下午 04:04:05

Page 26: 1-3 初學者入門導引 - epaper.gotop.com.twepaper.gotop.com.tw/PDFSample/ACI028800.pdf · 1-11 輕輕鬆鬆認識 Excel VBA 1 STEP4 開始錄製巨集。請留意!從現在起

4-17

Excel V

BA

常用的程式

4透過 專案總管 與 屬性 窗格,也可以將選取的工作表的隱藏或取消隱藏,其

中 Visible屬性值是 -1時為 顯示、0為 隱藏、2為 加重隱藏。

說明

如果要重新顯示「週報」工作表,只要再加入下列程式即可。

Sheets("週報 ").Visible = True '重新顯示

1

2

4-2-4 工作表的其他作業既然一個活頁簿可以包含許多張工作表,當然就可以進行 新增、刪除、搬移、

複製 或 保護⋯等作業。

新增、刪除、搬移與複製工作表

複製、搬移、新增或刪除工作表,是使用 Excel經常會碰到的事情。在 Excel

VBA針對Worksheet亦有對應的 Copy、Move、Add、Delete方法,請記得在執

行這幾項工作之前,先選取所要的工作表,以避免執行錯誤。有關 Copy、Move、

Add與 Delete的陳述式如下所示:

Sub 新增刪除工作表 () Worksheets("工作表 2").Copy after:=Worksheets(1) Sheets("工作表 2").Move before:=Sheets(1) Sheets.Add Worksheets(1).DeleteEnd Sub

接下頁

ACI0288_Excel2016VBA.indb 17 2016/4/25 下午 04:04:05

Page 27: 1-3 初學者入門導引 - epaper.gotop.com.twepaper.gotop.com.tw/PDFSample/ACI028800.pdf · 1-11 輕輕鬆鬆認識 Excel VBA 1 STEP4 開始錄製巨集。請留意!從現在起

4-18

工作表 2原來在活頁簿中的位置

執行結果工作表 2換到這裡複製的工作表 2

ACI0288_Excel2016VBA.indb 18 2016/4/25 下午 04:04:06

Page 28: 1-3 初學者入門導引 - epaper.gotop.com.twepaper.gotop.com.tw/PDFSample/ACI028800.pdf · 1-11 輕輕鬆鬆認識 Excel VBA 1 STEP4 開始錄製巨集。請留意!從現在起

4-19

Excel V

BA

常用的程式

4

使用 鍵時,是指選取連續的數頁工作表,其 Excel VBA的陳述式列示

如下:

Sub Test( ) Worksheets(Array(1,2,3)).SelectEnd Sub

如果想要跳著選取多頁工作表,則可使用下列 Excel VBA的陳述式:

Sub Test( ) Worksheets(Array(1,3,5)).SelectEnd Sub

說明

群組工作表

可以使用 或 鍵並配合滑鼠點選的方式,選取多頁工作表。

同時選取多頁工作表

此處 Array(x,y,z)的 x,y,z引數,是對應於工作表的序號。

保護工作表

為了確保工作表中的內容不被隨意破壞,可以執行 校閱 >變更 >保護工作表

指令,讓使用者無法任意破壞工作表,在 Excel VBA中可以使用下列陳述式:

ACI0288_Excel2016VBA.indb 19 2016/4/25 下午 04:04:06

Page 29: 1-3 初學者入門導引 - epaper.gotop.com.twepaper.gotop.com.tw/PDFSample/ACI028800.pdf · 1-11 輕輕鬆鬆認識 Excel VBA 1 STEP4 開始錄製巨集。請留意!從現在起

4-20

Sub 保護工作表 ( ) Sheets("月報 ").Select Range("A2:E4").Locked = True ActiveSheet.Protect Password:="abc123",DrawingObjects:=True, _ Contents:=True,Scenarios:=True, _ UserInterfaceOnly:=TrueEnd Sub

執行程式之後,若要在 A2:E4儲存格範圍中輸入資料,會出現警告訊息

如果執行 校閱 > 變更 >取消保護工作表 指令,會出現要求輸入取消保護密碼的對話方塊,輸入正確就能在原保護的範圍中輸入資料

ACI0288_Excel2016VBA.indb 20 2016/4/25 下午 04:04:06

Page 30: 1-3 初學者入門導引 - epaper.gotop.com.twepaper.gotop.com.tw/PDFSample/ACI028800.pdf · 1-11 輕輕鬆鬆認識 Excel VBA 1 STEP4 開始錄製巨集。請留意!從現在起

4-21

Excel V

BA

常用的程式

44-3 儲存格的參照位址不論是在一般的作業過程或是使用 Excel VBA的過程,儲存格 參照位址 的使

用都非常重要,如果觀念不清楚會嚴重影響試算的最後結果,或得到完全不同的

顯示範圍。

4-3-1 參照位址的表示方式什麼是 參照位址?工作表 中是最基本的單位是 儲存格,為了使用方便,

Excel針對每一個儲存格皆賦予 參照位址,如此,才能在公式中辨識與計算。儲

存格的 參照位址,一般都是以 欄名列號 為其代表,舉例來說:位於 B欄、第 5

列的儲存格,其 參照位址 為 B5。事實上,參照位址有三種方式表示,分別為 絕

對參照、相對參照 與 混合參照。

絕對參照

絕對參照 的意義是指,在公式中的儲存格參照位址,不會隨著儲存格本身位

址的改變而變更。當複製儲存格時,如果不希望其公式的 參照位址 隨著儲存格位

址不同而改變,就必須在欄名、列號的前方加上「$」符號。此種用法,可以確保

工作表的計算值不會產生 參照錯誤 的情況。一般計算利息或幣值轉換常用到的固

定利率或匯率,即可使用此類型的參照。

說明

工作表的保護作業,必須要伴隨儲存格的保護設定一併處理。

公式完全沒有改變

D4儲存格複製到 F6儲存格

ACI0288_Excel2016VBA.indb 21 2016/4/25 下午 04:04:07

Page 31: 1-3 初學者入門導引 - epaper.gotop.com.twepaper.gotop.com.tw/PDFSample/ACI028800.pdf · 1-11 輕輕鬆鬆認識 Excel VBA 1 STEP4 開始錄製巨集。請留意!從現在起

4-22

相對參照

相對參照 的意義是指,在公式中的儲存格參照位址,會隨著公式所在儲存

格位址的變更而改變,其表示法為 A1。這裡所謂的 相對,是指相對其公式的所

在位址。舉例來說,D4儲存格的公式為「=E22+B27」,此公式內容所有參照位

址皆為 相對參照。它所代表的意義,改以口語敘述如下:

在 D4儲存格所顯示的數值是:於右邊一欄上方 2列(E22)的數值,加上

左邊二欄下方 3列(B27)的數值。

由上述口語話的說明,可以使用另一 R1C1寫法表示,其中(R代表「列」,

C代表「欄」)。

R4C4=R[-2]C[1]+R[3]C[-2]

在 相對參照 說明上是相當清楚的,但請記得左、右、上、下之間的關係

(向左、向上,以 負號 (-)表示;向右、向下,以 正號 (+)表示)。參考下圖,將

D19(數值為 25)儲存格複製到 F21儲存格,結果其數值變為 370,這表示用

以計算的公式已隨儲存格的位址改變而變更。

D19儲存格公式為「=E17+B22」 複製到 F21儲存格公式為「=G24+D29」

混合參照

混合參照 的意義是指,在公式中的儲存格參照位址,視定義隨著公式所在

的儲存格位置而變化,有時我們只需要固定某一欄參照,而改變列參照;或固定

某一列參照,僅改變欄參照,這種情形即稱之為 混合參照,例如:$A1、A$1。

混合參照 的應用是綜合 相對參照 與 絕對參照 的結果,所以當公式中具有

混合參照時,使用者本身必須相當清楚這些儲存格資料,是否已滿足需求,否則

非常容易發生錯誤!

ACI0288_Excel2016VBA.indb 22 2016/4/25 下午 04:04:07

Page 32: 1-3 初學者入門導引 - epaper.gotop.com.twepaper.gotop.com.tw/PDFSample/ACI028800.pdf · 1-11 輕輕鬆鬆認識 Excel VBA 1 STEP4 開始錄製巨集。請留意!從現在起

4-23

Excel V

BA

常用的程式

4

4-3-2 R1C1與 A1表示法的意義參照方式的表示方法,有 A1與 R1C1表示方法二種,使用不同的表示方法,

其 VBA的寫法也完全不同。這個特性,請讀者特別留意,在此僅以範例再敘述一

次相關的概念。

D34儲存格公式為「=E$32+B$37」複製到 F36儲存格,公式變為「=G$32+D$37」

絕對與相對參照的應用

上圖範例中,C4:E8儲存格範圍是用來計算「各單價 *數量」的值。因此,

在單價上使用絕對參照到第 3列,各類水果使用相對參照到各欄位名稱,例如:

C$3;數量則使用絕對參照到 B欄位,各月份則使用相對參照到各列號,例如:

$B4。如此一來,整個計算範圍可運用單一公式再輔以滑鼠拖曳填滿的方式,完成

完成全部的計算工作。

如將其設定為 R1C1的表示法,會發現在 C4:E8的儲存格範圍中,所有公式

皆為「=R3C*RC2」,這是不同的表示方法必然的結果。R3C表示儲存格在第 3列

上的各個欄位;RC2表示儲存格在 B欄上的各個列號。

ACI0288_Excel2016VBA.indb 23 2016/4/25 下午 04:04:07

Page 33: 1-3 初學者入門導引 - epaper.gotop.com.twepaper.gotop.com.tw/PDFSample/ACI028800.pdf · 1-11 輕輕鬆鬆認識 Excel VBA 1 STEP4 開始錄製巨集。請留意!從現在起

4-24

看完上述範例的說明,在 Excel VBA 同樣有 R1C1 與 A1 表示方法,

Formula屬性是指 A1表示方法、FormulaR1C1屬性則是指 R1C1表示方法。

所謂 A1是代表從指標儲存格算起 1欄 1列的位址,而 R1C1則是以欄數與列數

的數目來表示儲存格的位址。換句話說,不同的 Formula屬性,其屬性傳回值

就會不同。下列範例是從同一個儲存格公式得到不同的回應顯示。

「欄名」已經顯示為數字,不再是英文字母

ACI0288_Excel2016VBA.indb 24 2016/4/25 下午 04:04:08

Page 34: 1-3 初學者入門導引 - epaper.gotop.com.twepaper.gotop.com.tw/PDFSample/ACI028800.pdf · 1-11 輕輕鬆鬆認識 Excel VBA 1 STEP4 開始錄製巨集。請留意!從現在起

4-25

Excel V

BA

常用的程式

4

範例 儲存格 R1C1、A1表示方法

Sub 儲存格 R1C1_A1參照 1() Sheets("工作表 2").Select Range("C3").Formula = "= A2 * B3" Range("C3").Select MsgBox ActiveCell.Formula & " 其值為 " & ActiveCell.Value MsgBox ActiveCell.FormulaR1C1 & " 其值為 " & ActiveCell.Value Sheets("工作表 2").Select Range("A1:D10").Select Range("C3").Select Range("C3").Range("D3").SelectEnd Sub

執行結果

在「Range("A1:D10").Select」與「Range("C3").Select」的陳述式中,可以

直接判斷其儲存格範圍是 A1:D10與 C3,因為此時 Range屬性的對象是現行工作

表物件的左上角原始指標位址(A1)。

在「Range("C3").Range("D3").Select」的陳述式中,實際的儲存格位址是

F4,其原因是「Range("D2")」屬性的對象是以現行工作表物件的 C3儲存格為指

標儲存格,再以 C為基準算出 4欄;以第三列為基準算出 2列的位址。因此,如

果將陳述式寫成下列方式,則是多此一舉。

Range("F4").Range("A1").SelectActiveCell.Range("A1").Select

ACI0288_Excel2016VBA.indb 25 2016/4/25 下午 04:04:08

Page 35: 1-3 初學者入門導引 - epaper.gotop.com.twepaper.gotop.com.tw/PDFSample/ACI028800.pdf · 1-11 輕輕鬆鬆認識 Excel VBA 1 STEP4 開始錄製巨集。請留意!從現在起

4-43

Excel V

BA

常用的程式

4

Excel VBA中對應的用法,請參考下列範例。此範例是要尋找所有內含公式

的儲存格。

Sub 特殊選取 () Sheets("參照應用 ").Select Range("C3").Select Selection.SpecialCells(xlCellTypeFormulas).SelectEnd Sub

4-5-5 特殊選取Excel工作表中,若按 鍵,會出現 到 對話方塊,再按【特殊】鈕,則會

出現 特殊目標 對話方塊,如此即可選取特殊要求的儲存格。

執行結果

ACI0288_Excel2016VBA.indb 43 2016/4/25 下午 04:04:13

Page 36: 1-3 初學者入門導引 - epaper.gotop.com.twepaper.gotop.com.tw/PDFSample/ACI028800.pdf · 1-11 輕輕鬆鬆認識 Excel VBA 1 STEP4 開始錄製巨集。請留意!從現在起

4-44

4-5-6 選取欄與列選取整欄或整列儲存格範圍,也是經常會碰到的工作。在 Excel VBA可以

使用 Columns與 Rows屬性處理。

Sub 選取欄與列 () Columns("B:B").Select Columns("D:F").Select Rows("8:8").Select Rows("3:5").Select Range("a1").Value = Rows.CountEnd Sub

說明

SpecialCells括弧內可以是下表所列的 XlCellType常數之一:

xlCellTypeAllFormatConditions 任何格式的儲存格

xlCellTypeAllValidation 具有驗證準則的儲存格

xlCellTypeBlanks 空儲存格

xlCellTypeComments 包含註解的儲存格

xlCellTypeConstants 包含常數的儲存格

xlCellTypeFormulas 包含公式的儲存格

xlCellTypeLastCell 已用範圍的最後一個儲存格

xlCellTypeSameFormatConditions 有相同格式的儲存格

xlCellTypeSameValidation 有相同驗證準則的儲存格

xlCellTypeVisible 所有可見儲存格

如果不是很熟悉 SpecialCells的用法,可以試著使用「錄寫巨集」的方式處理,如此就會得到相關的 VBA程式。

執行結果

選取範圍的儲存格總數

ACI0288_Excel2016VBA.indb 44 2016/4/25 下午 04:04:14

Page 37: 1-3 初學者入門導引 - epaper.gotop.com.twepaper.gotop.com.tw/PDFSample/ACI028800.pdf · 1-11 輕輕鬆鬆認識 Excel VBA 1 STEP4 開始錄製巨集。請留意!從現在起

4-45

Excel V

BA

常用的程式

4

4-5-7 Union、Intersect與 AreasExcel VBA對於不連續的儲存格範圍,有許多屬性或方法無法執行。此時,

可以使用 Union方法;若要在多重範圍中尋找相互重疊的儲存格,則可以使用

Intersect方法。

Sub 聯集與交集 () Dim 聯集 As Range, 交集 As Range, 我不連續 As Range Set 聯集 = Union(Range("B2:C6"), Range("E2:F3")) 聯集 .Interior.Color = vbGreen Set 交集 = Intersect(Range("B2:C6"), Range("C3:D6")) 交集 .Interior.Color = vbBlueEnd Sub

如果要選取不連續的欄或列儲存格範圍,可以配合 Union 方法。下表是

Columns與 Rows屬性常用到的參照方式。

參照 含義

Columns("A") 工作表的第 1欄

Columns(3) 工作表的第 3欄

Columns 工作表上的所有欄位

Rows(2) 工作表的第 2列

Rows 工作表上的所有列數

執行結果

說明

若要針對多重範圍,分別執行設定或編輯工作,可先使用 Areas屬性傳回集合物件,再使用「For⋯Each⋯Next」陳述式處理,這部份的操作請參考 3-3-3節。

ACI0288_Excel2016VBA.indb 45 2016/4/25 下午 04:04:14

Page 38: 1-3 初學者入門導引 - epaper.gotop.com.twepaper.gotop.com.tw/PDFSample/ACI028800.pdf · 1-11 輕輕鬆鬆認識 Excel VBA 1 STEP4 開始錄製巨集。請留意!從現在起

4-49

Excel V

BA

常用的程式

4

4-7-1 活頁簿物件之事件程序撰寫活頁簿物件之事件程序,請依循下列步驟處理。此範例是當指定的活頁

簿為作用中時,出現「歡迎使用」的訊息對話方塊。

STEP1 快按二下 ThisWorkbook物件,在 物件 清單中,選擇Workbook。

4-7 事件程序的重要應用使用 VBA的特點之一,即是希望其自動執行經常性的工作,但有些時候,又

得手動進行額外的操作,才會繼續執行指定的巨集。此時,靈活應用事件狀況,以

決定巨集執行的時機是個不錯的方法。

Excel VBA中,開啟活頁簿、選取工作表⋯等都是事件;而程式設計者可以

選定某特定物件(例如:工作表),在此物件專屬的 程式碼 窗格中,撰寫所要執

行的 事件程序。

說明

要撰寫 事件程序,請先進入 VB編輯視窗,在 專案總管 視窗中選擇所要設計的物件,在其名稱上快按二下,即可進入些物件專屬的 程式碼 窗格。

1

2

ACI0288_Excel2016VBA.indb 49 2016/4/25 下午 04:04:15

Page 39: 1-3 初學者入門導引 - epaper.gotop.com.twepaper.gotop.com.tw/PDFSample/ACI028800.pdf · 1-11 輕輕鬆鬆認識 Excel VBA 1 STEP4 開始錄製巨集。請留意!從現在起

4-50

STEP3 撰寫自己的程式碼,請參考下圖所示的範例。

STEP2 在 程序 清單中,選擇所要撰寫的事件狀態,例如:Activate。

STEP4 當使用者在 Excel編輯環境,只要切換到此活頁簿,即會顯示「歡迎使

用」訊息方塊。

ACI0288_Excel2016VBA.indb 50 2016/4/25 下午 04:04:15

Page 40: 1-3 初學者入門導引 - epaper.gotop.com.twepaper.gotop.com.tw/PDFSample/ACI028800.pdf · 1-11 輕輕鬆鬆認識 Excel VBA 1 STEP4 開始錄製巨集。請留意!從現在起

4-51

Excel V

BA

常用的程式

4

4-7-2 工作表物件之事件程序撰寫工作表物件之事件程序,請依循下列步驟處理。此範例是選到此工作表

時,出現一個「您選到我了」的訊息對話方塊。

STEP1 快按二下工作表物件(例如:Sheet4(參照應用 )),在 物件 清單中,選擇

Worksheet。

1

2

STEP2 在 程序 清單中,選擇所要的事件狀態,例如:BeforeRightClick。

STEP3 撰寫自己的程式碼,請參考下圖所示的範例。

ACI0288_Excel2016VBA.indb 51 2016/4/25 下午 04:04:16