2019年5月21日 星期二

讓EXCEL VBA具有進度狀態條功能(表單設計)

讓EXCEL VBA具有進度狀態條功能(表單設計)




示意畫面:



緣起:

由於範例黑名單篩選,需要查詢兩個範圍是否有相同資料,

需要耗費時間比對,因此會有一小段時間需要讓使用者等待,

此時若是有個進度狀態調出現,就可以讓使用者知道所需等待時間,
與進行的進度,這樣可以讓VBA程式更加友善。
但是該如何做,從那下手呢?
首先需要知道的事VBA的表單設計,
其次是當啟動表單之後,會觸發Activate事件,

所以需要將狀態條的程式寫在這裡,

讓迴圈中加入更新狀態條的比例。

以下是詳細步驟截圖:



1.設計表單

加入Label控制項(大A)

2.增加啟動表單功能

Public Sub 查詢黑名單_表單()
   home.Show
End Sub


3.在Activate事件裡撰寫程式
Private Sub UserForm_Activate()
   PB.Width = 0
   r = Sheets(1).Range("A2").End(xlDown).Row
   k = 1
   '1.取查詢名單和黑名單字串比對
   For i = 2 To r
       Sheets(1).Cells(i, "B") = "=CountIf(黑名單, A" & i & ")"
       '2.將結果寫到查詢結果
       If Sheets(1).Cells(i, "B") >= 1 Then
           Sheets(3).Cells(k, "A") = Sheets(1).Cells(i, "A")
           k = k + 1
       End If
       PB.Width = (i - 1) * (200 /r)
       Me.Repaint
   Next
   home.Hide
End Sub


4.在EXCEL中增加啟動表單按鈕

所以如果按下按鈕,就會啟動進度狀態條表單,

並觸發Activate事件裡的程式,

此時就會到進度狀態條表單畫面會出現了。

也就是將來如果有需要等待的VBA程式,

就可以加入進度狀態條,讓程式更加專業有趣。



教學影片:



相關學習:
    教學論壇:
    https://groups.google.com/forum/#!forum/scu_excel_vba2_83

    與前幾期的課程雖然用的是相同的範例,但最大的不同在:
    1.除了解說建函數公式,並將之轉成自訂函數,把複雜的公式變簡單。
    2.如何將複雜的公式變成簡單的按鈕,按下按鈕就自動完成工作。

    內容主要分成:
    1.常用函數
    2.進階函數應用
    3.從函數到VBA設計
    4.如何自訂函數
    5.VBA程式設計入門
    6.如何錄製巨集與修改
    7.如何將大量資料轉存到資料庫
    8.如何讀取資料庫資料
    詳細目錄:http://goo.gl/eQptxx

    有講義與範例和完成的畫面公式與程式碼,
    只要按照每周的順序學習,學會EXCEL VBA自動化絕非難事,
    優點:
    1.可非線性學習:可按照自己最不熟的部分多次學習。
    2.可反覆學習:有疑問可以多次聽講,保證學的會。
    3.可攜帶學習:只要有瀏覽器就可以播放SWF檔,MAC電腦也沒問題。

    課程理念:
    1.以循序漸進的方式, 透過詳細的說明和實用的Excel VBA範例, 逐步了解整個 VBA 的架構與輪廓,進而學習 VBA 變數、函式及邏輯的觀念, 即使沒有任何程式設計基礎, 也能自己親手撰寫 VBA 程序來提昇工作效率, 晉身職場 Excel 高手! 2.進而解說EXCEL與資料庫的結合,將EXCEL當成資料庫來使用,結合函數、VBA等更深入的功能,讓資料處理和分析的應用更上層樓。 3.將結合GOOGLE雲端試算表,教您如何將EXCEL函數雲端化與網路化。

    更多EXCEL VBA連結:
    01_EXCEL函數與VBA(入門) http://terry55wu.blogspot.tw/p/excelvba.html
    02_EXCEL VBA自動化教學(進階) http://terry55wu.blogspot.tw/p/excel-vba.html

    吳老師 2019/5/21


    大數據, 巨集錄製, 函數東吳進修推廣部, 表單, 處理, 資料庫, ADO, EXCEL, excel函數教學, excel函數應用, SQL, VBA, vba教學視頻