-VBA是Visual Basic for Applications的縮寫 -是由Microsoft公司開發出的一種程式語言

Slides:



Advertisements
Similar presentations
第一單元 建立java 程式.
Advertisements

Visual Basic 程序设计 第四讲.
第 1 章 公共基础知识 第 2 章 Visual Basic程序开发环境 第 3 章 对象及其操作 第 4 章 数据类型及其运算
計算機概論 第4章 基本視窗程式應用 4-1 程式語言簡介 4-2 演算法與流程圖 4-3 視窗程式語言設計 4-4 資料結構.
課程名稱:程式設計 授課老師:________
第四章 控制结构.
Access数据库程序设计 总复习.
第五章 数组.
四 VBScript编程基础.
VBA应用开发与实例 李 辉 微软课程培训讲师. VBA应用开发与实例 李 辉 微软课程培训讲师.
Chapter 5 迴圈.
Visual Basic程序设计.
BLANK overview.
Chapter 1 複習.
程式設計概論 1.1 程式設計概論 程式語言的演進 物件導向程式 程式開發流程 1.2 C++開發工具
Visual Basic 2010 程式設計16堂特訓 第七堂 VB的迴圈流程控制.
講師:戴志華 國立台灣大學電機工程研究所 Visual Basic 程式設計 講師:戴志華 國立台灣大學電機工程研究所.
第10章VBA会计应用与实践 第11章会计凭证管理模块设计与实现
第5章 数组 Visual Basic程序设计.
1 巨集 2 資料型態 3 物件、屬性、方法與事件 4 陳述式與副函式 5 其他注意事項 6 範例
程式語言 I – VISUAL BASIC 選擇結構語法與應用 Chapter 7 認知
講師:戴志華 國立台灣大學電機工程研究所 Visual Basic 程式設計 講師:戴志華 國立台灣大學電機工程研究所.
ASP动态网页设计实用教程 主讲教师: 开课单位:.
第12章 VBA编程 虽然Access的交互操作功能非常强大且易于掌握,但是在实际的数据库应用系统中,用户还是希望尽量通过自动操作达到数据库管理的目的。应用程序设计语言在开发中的应用,可以加强对数据管理应用功能的扩展。Office中包含Visual Basic for Application(VBA),VBA具有与Visual.
Access VBA程序设计 本章重点 Access Basic编程语言 运算符、函数与表达式 Access Basic语句 模块的使用
第4章 程序控制结构与算法基础.
計算機程式 廖文淵 Department of Computer Science and Engineering
新觀念的 VB6 教本 第七章 讓程式轉彎的控制敘述.
第4章 基本的控制结构 4.1 顺序结构 4.2 选择结构程序设计 4.3 循环结构 4.4 综合实例 退出.
流程控制、陣列 台南市聖功女子高級中學 毛全良.
程式語言Visual Basic 重複結構 黃瀧輝 老師 Long Hwai,Huang.
第十二章 多模組與多專案.
6-1 For…Next迴圈敘述 6-2 While…End While迴圈敘述 6-3 Do…Loop迴圈敘述 6-4 巢狀迴圈敘述
安裝JDK 安裝Eclipse Eclipse 中文化
第12章 VBA模块设计.
Visual Basic 物件導向程式設計簡介.
RWM600 (13.56MHz) Reader Antenna.
RWM600 (13.56MHz) Reader Antenna.
第3 章 VBScript的控制结构.
第5章 Visual Basic控制结构 之 常用算法举例
PCR300 (13.56MHz) Reader RS232/USB.
Java 程式設計 講師:FrankLin.
Visual Basic程序设计.
VB程序设计语言 主讲教师:王 杨.
VB程序设计语言 主讲教师:王 杨.
程式設計 Visual Basic簡介 週次:2 建國技術學院 資管系 饒瑞佶 2003年9月17日.
第一單元 建立java 程式.
程式語言(I)- Visual Basic 6.0 第 8 章 模組化程式設計I-副程式與自定函數.
For x = 0 To 9 For y = 0 To 9 z = *x + 10*y …… Next y
金融資訊管理 撰寫VBA的基本事項.
Pocket Access.
江西财经大学信息管理学院 《数据库应用》课程组2007
第六章 選擇結構 (應用:核取方塊、選項按鈕、框架)
小结 郭清溥.
Visual Basic 程序设计教程.
Ch04 VB.NET的流程控制 網頁程式設計.
现代信息技术 微电子技术 计算机技术 传感技术 通信技术 处理、存储信息的技术 传感、采集技术 传递信息的技术
第二章、第三章错题分析.
CH05. 選擇敘述.
期末考.
GridView.
Excel高级功能培训 PSMT质量部 王新民
第四章 控制结构 1、顺序控制结构 2、选择结构 3、循环结构.
流程控制:Switch-Case 94學年度第一學期‧資訊教育 東海大學物理系.
函數應用(二)與自定函數.
單元名稱:結構化程式設計 報告人 劉洲溶.
ABAP Basic Concept (2) 運算子 控制式與迴圈 Subroutines Event Block
程序调试与错误处理.
Develop and Build Drives by Visual C++ IDE
ABAP Basic Concept (2) 運算子 控制式與迴圈 Subroutines Event Block
Presentation transcript:

-VBA是Visual Basic for Applications的縮寫 -是由Microsoft公司開發出的一種程式語言

-VBA用來設計Windows 應用程式。 -也是一種用來控制Office應用軟體巨集的工具。

-VBA與巨集兩者有何差別? -兩者都是以指令來啟動電腦執行某一特定工作。 -VBA就像一本書而巨集類似這本書的目錄。

在Access資料庫中的「模組(Module)」物件是撰寫VBA程式碼的場所,也是執行程式碼的地方。

VBA 下圖是Access資料庫模組的畫面:

VBA 模組工具列

-專案視窗 專案視窗含有「檢視程式碼」、「檢視物件」及「切換資料夾」三個切換標籤 VBA -專案視窗 專案視窗含有「檢視程式碼」、「檢視物件」及「切換資料夾」三個切換標籤

-屬性視窗 屬性視窗用來描述物件的特性,例如按鈕的標題名稱、前景/背景顏色、字型、字體大小、高度、寬度 VBA -屬性視窗 屬性視窗用來描述物件的特性,例如按鈕的標題名稱、前景/背景顏色、字型、字體大小、高度、寬度

-程式碼視窗 程式碼視窗用來撰寫程式碼的地方,也是VBA最重要的地方。

-監看視窗 監看視窗用來監看程式運算式執行的結果。 VBA -監看視窗 監看視窗用來監看程式運算式執行的結果。

VBA -監看視窗 使用「新增監看式」

-即時運算視窗 即時運算視窗除了用來顯示程式執行運算的結果外,還可以在視窗內輸入程式,並且立即執行 VBA -即時運算視窗 即時運算視窗除了用來顯示程式執行運算的結果外,還可以在視窗內輸入程式,並且立即執行

-區域變數視窗 區域變數視窗用於自動顯示出所有宣告在目前程序中的變數及變數值。 VBA -區域變數視窗 區域變數視窗用於自動顯示出所有宣告在目前程序中的變數及變數值。

-區域變數視窗 在區域變數設成中斷點,執行程式,區域變數會在視窗內自動顯示 VBA -區域變數視窗 在區域變數設成中斷點,執行程式,區域變數會在視窗內自動顯示

VBA -VBA的語法 -條件敘述(Choose) Choose(Index,Choice( ))根據Index的值,選擇對應的值。 其語法如下: Choose(Index, Choice( ))

VBA -VBA的語法 -條件敘述(Choose) Dim n As Integer Dim result As String n = 2 result = CStr(Choose(n, "Excel", "Access", "Word")) Debug.Print result 執行結果result= Access。

VBA -VBA的語法 -條件敘述(If..Then) If..Then:用於單一選擇敘述。 如If A Then B代表”如果A為真,就執行B”,相對地,”如果A為假,就不執行B”。 其語法如下: If condition Then statements

VBA -VBA的語法 -條件敘述(If..Then) Dim n,m,result As Integer n=16 m=14 if (n>m) then result=n+m End If 執行結果result=30。

VBA -VBA的語法 -條件敘述(If.Then.Else) -用於多重選擇敘述。 -如If A Then B Else C代表” 如果A為真,就執行B,若A為假, 則執行C”。

VBA -VBA的語法 n=16 m=14 if (n<m) then result=n+m Else result=n-m -條件敘述(If.Then.Else) Dim n,m,result As Integer n=16 m=14 if (n<m) then result=n+m Else result=n-m End If 執行結果result=2。

VBA -VBA的語法 Dim result As String month = 3 -條件敘述(If.Then.ElseIf) Dim n,month As Integer Dim result As String month = 3 n = Int(((month + 10) Mod 12) / 3) + 1 If n = 1 Then result = "Spring" ElseIf n = 2 Then result = "Summer" ElseIf n = 3 Then result = "Fall" ElseIf n = 4 Then result = "Winter" End If 執行結果result= "Spring" 。

VBA -VBA的語法 -條件敘述(IIf) IIf:根據條件式的敘述,傳回兩個物件中的一個。 其語法如下: IIf(Expression,TruePart, FalsePart)

VBA -VBA的語法 -條件敘述(IIf) Dim n,m,result As Integer n =20 m =30 result = IIf(n > m,n,m) 執行結果result=30。

VBA -VBA的語法 -條件敘述( Select Case) Select Case:用於多重選擇敘述。 其語法如下: Select [Case ] testexpression [Case expressionlist [statements ] ] [Case Else [elsestatements ] ] End Select

VBA -VBA的語法 -條件敘述( Select Case) Dim n As Integer Dim result As String Select Case n Case Is < 60 result = "F" Case 60 To 69 result = "D"

VBA -VBA的語法 -條件敘述( Select Case) Case 70 To 79 result = "C" result = "B" Case Else result = "A" End Select 執行結果result="B"

VBA -VBA的語法 -條件敘述(Switch) Switch:用於多重選擇敘述。 其語法如下: Switch(expression1,statement1[,expression2,statement2,.[,expressionn,statementn]])

VBA -VBA的語法 -條件敘述(Switch) Dim score, n As Integer Dim result As String n = Int((99 - score) / 10) + 1 result =Switch(n = 1,“A”,n = 2, "B", n = 3,"C",n = 4,"D",n >= 5,"F") 執行結果result="B"。

VBA -VBA的語法 -條件敘述(GoTo) GoTo:用於程式從甲處跳到乙處去執行。GoTo的用法是在GoTo後面接上標籤名稱(label),到跳躍程式則是在標籤名稱後面加上冒號(:)。 其語法如下: GoTo Line

VBA -VBA的語法 -條件敘述(GoTo) Dim m, n As Integer m = 66 n = 44 If (m > n) Then GoTo max Else Debug.Print n

VBA -VBA的語法 -條件敘述(GoTo) GoTo finish End If max: Debug.Print m finish: 執行結果66。

如果不使用 On Error 敘述區段,則所發生的任何 Run-Time 錯誤都是嚴重錯誤: VBA -VBA的語法 -條件敘述(On Error) On Error:用來停用錯誤處理常式。 如果不使用 On Error 敘述區段,則所發生的任何 Run-Time 錯誤都是嚴重錯誤: 其語法如下: On Error {GoTo [line | 0 | -1] |Resume Next }

VBA -VBA的語法 -重覆敘述(Do..Loop) Do..Loop:用於條件迴圈敘述。 其語法如下: Do Statements [Exit Do] Loop

VBA -VBA的語法 -重覆敘述(Do..Loop) m = 1 n = 10 Do result = result + m m = m + 1 If m > n Then Exit Do End If Loop Debug.Print result 執行結果result=55。

VBA -VBA的語法 -重覆敘述(Do..Loop) Do While..Loop:此類型是條件迴圈敘述,先檢查是否滿足測試運算式的條件,若滿足,才去執行迴圈。 其語法如下: Do While condition Statements [Exit Do] Loop

VBA -VBA的語法 -重覆敘述(Do..Loop) total = 30 leg = 80 r = 0 Do While (r <= leg / 4) c = total - r If ((2 * c + 4 * r) = leg) Then Debug.Print c Debug.Print r End If r = r + 1 Loop 執行結果(c=)20。(r=)10。

VBA -VBA的語法 -重覆敘述(Do..Loop) Do Until..Loop:此類型也是條件迴圈敘述,先檢查是否不滿足測試運算式的條件,若不滿足,才去執行迴圈。 其語法如下: Do Until condition Statements [Exit Do] Loop

VBA -VBA的語法 -重覆敘述(Do..Loop) Dim n, tmp(80), index As Integer Dim result As String n = 112 Do Until n = 0 tmp(index) = n Mod 2 n = Int(n / 2) index = index + 1 Loop

VBA -VBA的語法 Do While (index > 0) -重覆敘述(Do..Loop) index = index - 1 result = result & tmp(index) Loop Debug.Print result 執行結果result= 1110000(二進位值)。

VBA -VBA的語法 -重覆敘述(Do..Loop) Do..Loop While:此條件迴圈敘述,先執行迴圈,然後,再檢查是否滿足測試運算式的條件,若滿足,持續執行迴圈。 其語法如下: Do Statements [Exit Do] Loop While condition

VBA -VBA的語法 n = 24 -重覆敘述(Do..Loop) m= 16 Do temp = n Mod m n = m m = temp Loop While ( m<> 0) result = n 執行結果result=8(最大公因數)。

VBA -VBA的語法 -重覆敘述(Do..Loop) Do..Loop Until:此條件迴圈敘述先執行迴圈,然後,再檢查是否不滿足測試運算式的條件,若不滿足,才去執行迴圈。 其語法如下: Do Statements [Exit Do] Loop Until condition

VBA -VBA的語法 i = 1 s = 10 stans = "1234112234" ans = "1234113234" Do -重覆敘述(Do..Loop) i = 1 s = 10 stans = "1234112234" ans = "1234113234" Do If (Mid(stans, i, 1) = Mid(ans, i, 1)) Then result = result + 1 End If i = i + 1 Loop Until s < i Debug.Print result 執行結果result=9。

VBA -VBA的語法 For..Next:用於計算數值的迴圈。 - For..Next 其語法如下: For var=Vstart To Vend [step 增量或減量] [Statements] [Exit For] Next var

VBA -VBA的語法 For n=1 To 10 step 3 - For..Next sum=sum+n Next n

VBA -VBA的語法 For Each..Next:用於執行陣列的迴圈。 - For Each ..Next 其語法如下: For Each element In group [ statements ] [ Exit For ] [ statements ]Next [ element ]

VBA -VBA的語法 Dim n,result As Integer - For Each ..Next Dim ko( 4) As Integer ko(0)=10 ko(1)=20 ko(2)=30 ko(3)=40 For Each n In ko result = result + n Next 執行結果result =100。

VBA -VBA的語法 While.. Wend:當While後面的測試運算式為True時,就會去執行迴圈。 -While.. Wend 其語法如下: While condition [ statements ]Wend

VBA -VBA的語法 Dim n As Integer = 1 str =”Microsoft Office Access” -While.. Wend Dim str,result As String Dim n As Integer = 1 str =”Microsoft Office Access” While (n <= Len(str)) If (Asc(Mid(str,n,1)) < 97) Then result = result & LCase(Mid(str,n,1)) Else result = result & UCase(Mid(str,n,1)) End If n = n + 1 Wend 執行結果result= “mICROSOFT oFFICE aCCESS

VBA -VBA的語法 -With With:用於代替重複物件或結構。 其語法如下: With object [ statements ] End With

VBA -VBA的語法 -With With .Font .Name = "Arial" .Bold = True .Size = 8 End With

-VBA的語法 -結束或暫停敘述 結束或暫停敘述包含 -End -Exit -Stop

VBA -VBA的語法 -End End:用於終止程式的執行。 使用End語法有End、Private Sub..End Sub、With..End With、While.. Wend、If..Then..End If。

VBA -VBA的語法 -Exit Exit:用於離開執行迴圈程式。 使用Exit語法有Exit Do、Exit For、Exit Function、Exit Property、Exit Sub。

VBA -VBA的語法 -Stop Stop:用於暫停並閒置程式執行。 Stop不會關閉任何檔案或清除任何變數,這一點是Stop與end最大的不同。 。

-VBA的語法 -與程序有關的敘述 與程序有關的敘述包含 -Call -Function -Property -Sub

-VBA的語法 - Call Call:用於呼叫Sub 程序及Function 程序。 其語法如下: [Call] name

VBA -VBA的語法 - Function Function:用於宣告Function 程序名稱。 其語法如下: [{ Public | Protected | Friend | Protected Friend | Private }] Function name[(arglist)] [As type] [Implements interface.definedname ] [statements] [Exit Function] [statements] End Function

VBA -VBA的語法 - Property Property:用來宣告屬性(Property)的名稱以及用來儲存和擷取屬性值的屬性程序。 其語法如下: Property varname([ ByVal parameter list ]) [ As typename ] [ Implements interfacemember ] Get [ block ] End Get Set(ByVal value As typename ) End Set End Property

VBA -VBA的語法 -Sub Sub:用於宣告Sub程序名稱。 其語法如下: [{ Public | Protected | Friend | Protected Friend | Private }]Sub name [(arglist)] [ Implements interface.definedname] [statements] [Exit Sub] End Sub

-VBA具有物件導向觀念 VBA是以物件導向觀念為程式設計的重心,著重於物件的設計,並處理物件間的溝通,而利用類別來描述物件的特性。

-VBA具有物件導向觀念 瀏覽物件主要功能是用來搜尋物件並瀏覽物件的屬性與方法

VBA -VBA具有物件導向觀念 在VBA語法中,如何描述物件與屬性、方法的關係: 物件與屬性表示方法如下: 物件名稱.物件屬性 物件與方法表示方法如下: 物件名稱.物件方法

VBA -VBA程式設計 -開啟資料表

VBA -VBA程式設計 -開啟查詢

VBA -VBA程式設計 -開啟表單

VBA -VBA程式設計 -開啟報表

VBA -VBA程式設計 -開啟資料頁

-VBA程式設計 -開啟巨集 在DoCmd物件並沒有巨集指令用來開啟巨集,倒是可以將巨集轉換成模組

-VBA程式設計 -開啟巨集 將巨集轉換 成模組方法如下:

-VBA程式設計 -開啟巨集 將巨集轉換成模組方法如下:

-VBA程式設計 -開啟巨集 將巨集轉換成模組方法如下:

VBA -VBA程式設計 -開啟巨集 將「已轉換巨集-條件式巨集」的模組略微修改 Option Compare Database Function macro_open() On Error GoTo ko_Err DoCmd.OpenForm "學生成績表單", acNormal, "", "", , acNormal DoCmd.GoToRecord acForm, “學生成績 表單", acNext, 1

VBA -VBA程式設計 -開啟巨集 If (Forms!學生成績表單!總分 >= 240) Then DoCmd.OpenTable "學生成績資料表", acViewNormal, acEdit Beep End If DoCmd.Close acTable, "學生成績資料表" ko_Exit: Exit Function ko_Err: MsgBox Error$ Resume ko_Exit End Function

VBA -VBA程式設計 -開啟模組

VBA -VBA應用 -建立一個執行表單的模組

-VBA應用 -建立一個執行表單的模組 選項按鈕控制項屬性的設定值

-VBA應用 -建立一個執行表單的模組 指令按鈕控制項屬性的設定值:

-VBA應用 -建立一個執行表單的模組 指令按鈕建 立事件的過程:

-VBA應用 -建立一個執行表單的模組 指令按鈕建立事件的過程:

-VBA應用 -建立一個執行表單的模組 指令按鈕建立事件的過程:

-VBA應用 -建立一個執行表單的模組 指令按鈕 建立事件的過 程:

-VBA應用 -建立一個執行表單的模組 指令按鈕建立事件的過程:

-VBA應用 -建立一個執行表單的模組 點選「插入」>「模組」選項 :

-VBA應用 -建立一個執行表單的模組 出現「模組-Module1」:

-VBA應用 -建立一個執行表單的模組 在「模組-Module1」加入下列的程式:

-VBA應用 -建立一個執行表單的模組 將「模組-Module1」改成「模組-開啟表單」,並執行表單程式:

-VBA應用 -模組與表單搭配應用 建立「學生資料表單」的簡易表單

-VBA應用 -模組與表單搭配應用 在「下一筆」按鈕建立事件

-VBA應用 -模組與表單搭配應用 在「上一筆」按鈕建立事件

VBA -VBA應用 -模組與表單搭配應用 插入一個模組,在「模組-Module1」加入與Function open_form( )相同的程式碼,將Module1更名為「開啟資料表單」。

-VBA應用 -模組與表單搭配應用 執行結果:

-VBA應用 -下拉式方塊的使用 建立「下拉式資料表」內容如下:

-VBA應用 -下拉式方塊的使用 建立「下拉式表單」內容如下 :

-VBA應用 -下拉式方塊的使用 「下拉式方塊(Combo2)」的屬性 :

-VBA應用 -下拉式方塊的使用 「顯示資料表」指令按鈕建立事件 :

-VBA應用 -下拉式方塊的使用 「顯示資料表」指令按鈕建立事件 :

-VBA應用 -下拉式方塊的使用 「取消」指令按鈕建立事件 :

-VBA應用 -下拉式方塊的使用 執行的結果 :

-VBA應用 -下拉式方塊的使用 執行的結果 :

-VBA應用 -下拉式方塊的使用 執行的結果 :

-VBA應用 -清單方塊的使用 建立清單資料表的內容:

-VBA應用 -清單方塊的使用 建立「清單表單」的內容如下 :

-VBA應用 -清單方塊的使用 「清單方塊(List4)」的屬性 :

-VBA應用 -清單方塊的使用 「顯示資料表」指令按鈕建立事件 : 「顯示資料表」指令按鈕建立事件 :

-VBA應用 -清單方塊的使用 「顯示資料表」指令按鈕建立事件 : 「顯示資料表」指令按鈕建立事件 :

-VBA應用 -清單方塊的使用 「取消」指令按鈕建立事件 : 「取消」指令按鈕建立事件 :

-VBA應用 -清單方塊的使用 執行的結果 :

-VBA應用 -清單方塊的使用 執行的結果 :

-VBA應用 -清單方塊的使用 執行的結果 :

VBA -VBA應用 - 事件 -事件因果關係

VBA -VBA應用 - 事件 -什麼是「事件(Event)」? 事件是在Microsoft Access啟 動特定巨集指令在特定物件上產生 的事件。

VBA -VBA應用 - 事件 -滑鼠事件

VBA -VBA應用 - 事件 -鍵盤事件

VBA -VBA應用 - 事件 -視窗事件

VBA -VBA應用 - 事件 -時間事件

VBA -VBA應用 - 事件 -焦點事件

VBA -VBA應用 - 事件 -其他事件

-VBA應用 - 事件 -MouseDown的例子

-VBA應用 - 事件 -MouseDown的例子 加入程式碼:

-VBA應用 - 事件 -MouseDown的例子 加入程式碼:

-VBA應用 - 事件 -MouseDown的例子 加入程式碼:

-VBA應用 - 事件 -MouseDown的例子 加入Function open_form( )的程式碼 :

-VBA應用 - 事件 -MouseDown的例子 執行結果 : 按下滑鼠左鍵

-VBA應用 - 事件 -MouseDown的例子 執行結果 :

-VBA應用 - 事件 -KeyDown的例子

-VBA應用 - 事件 -KeyDown的例子 加入程式碼:

-VBA應用 - 事件 -KeyDown的例子 加入程式碼:

-VBA應用 - 事件 -KeyDown的例子 加入程式碼:

-VBA應用 - 事件 -KeyDown的例子 加入程式碼:

-VBA應用 - 事件 -KeyDown的例子 加入Function open_form( )的程式碼

-VBA應用 - 事件 -KeyDown的例子 執行結果 按下Shift鍵

-VBA應用 - 事件 -KeyDown的例子 執行結果