Microsoft PowerPoint - Chapter4

Similar documents
Excel VBA Excel Visual Basic for Application

1 1 Excel VBA 說明 ( ) (_) STEP4 Excel 2 STEP5 A1 1 B2 2 C3 3 STEP6 A1 STEP7 > > 1-11

Microsoft PowerPoint - VB14.ppt

Microsoft Word - 小心翼翼的二十一點N.doc

穨文件1

untitled

投稿類別:電子工程類

Visual C# 2005程式設計

投影片 1

<4D F736F F D D342DA57CA7DEA447B14D2DA475B57BBB50BADEB27AC3FEB14DA447B8D5C344>

Visual Basic D 3D

27 :OPC 45 [4] (Automation Interface Standard), (Costom Interface Standard), OPC 2,,, VB Delphi OPC, OPC C++, OPC OPC OPC, [1] 1 OPC 1.1 OPC OPC(OLE f

ThreeDtunnel.doc

Spyder Anaconda Spyder Python Spyder Python Spyder Spyder Spyder 開始 \ 所有程式 \ Anaconda3 (64-bit) \ Spyder Spyder IPython Python IPython Sp

TC35短信发送程序设计

當母親禱告時

投影片 1

PowerPoint Presentation

四川省普通高等学校

If Close[Length]!= 0 Then B Close[Length] 是 Length 日前的 Close 不是 0 的話則執行 B % Number 以 Divisor 來求取除法並傳回剩下的部份和 Divisor 具備相同的符 號 格式 :Number % Divisor Numb

2010年3月计算机等级考试四级网络工程师笔试

Python a p p l e b e a r c Fruit Animal a p p l e b e a r c 2-2

######## First set of commands x <- 0.5; y <- 0 if (x>3) y <- 1 else y <- 2 ######## Second set of commands x <- 0.5; y <- 0 if (x>3) y <- 1 else ###

3 Driver do Microsoft Access (*.mdb) hisdata IFIX 1.4

任務二 : 產生 20 個有炸彈的磚塊, 放在隨機的位置編輯 Block 類別的程式碼 import greenfoot.; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo) Write a description of class


<4D F736F F D B0D3B77EC3FEA7DEC3C0C476C1C9A5BFA6A1B8D5C3442DB57BA6A1B35DAD702DBEC7ACEC2E646F6378>

untitled

Microsoft Word - ACI chapter00-1ed.docx

VHDL(Statements) (Sequential Statement) (Concurrent Statement) VHDL (Architecture)VHDL (PROCESS)(Sub-program) 2

Microsoft Word - 01.DOC








1

VB控件教程大全

Microsoft PowerPoint - VB3

IsPostBack 2

VB程序设计教程

1 Framework.NET Framework Microsoft Windows.NET Framework.NET Framework NOTE.NET NET Framework.NET Framework 2.0 ( 3 ).NET Framework 2.0.NET F

untitled

840 提示 Excel - Excel -- Excel (=) Excel ch0.xlsx H5 =D5+E5+F5+G5 (=) = - Excel 00

馬偕醫學院 學生事務工作簡報

Microsoft PowerPoint - OPVB1基本VB.ppt

( 总 第 1073 期 ) 浙 江 省 人 民 政 府 主 办 2015 年 3 月 17 日 出 版 省 政 府 令 省 政 府 文 件 目 录 浙 江 省 大 型 群 众 性 活 动 安 全 管 理 办 法 ( 浙 江 省 人 民 政 府 令 第 333 号 ) (3) 浙 江 省 人 民 政

多層次傳銷與獎金系統

目 录 第 一 部 分 档 案 局 概 况 一 主 要 职 责 二 部 门 决 算 单 位 构 成 第 二 部 分 档 案 局 2016 年 度 部 门 预 算 表 一 2016 年 度 市 级 部 门 收 支 预 算 总 表 二 2016 年 度 市 级 部 门 支 出 预 算 表 三 2016

2015 年 度 收 入 支 出 决 算 总 表 单 位 名 称 : 北 京 市 朝 阳 区 卫 生 局 单 位 : 万 元 收 入 支 出 项 目 决 算 数 项 目 ( 按 功 能 分 类 ) 决 算 数 一 财 政 拨 款 一 一 般 公 共 服 务 支 出 二

星星排列 _for loop Protected Sub Page_Load(ByVal sender As Object, ByVal e As Dim h As Integer = 7 'h 為變數 ' Dim i, j As Integer For i = 1 To h

CWP156.pdf

Microsoft Word - 透析8051之迴圈控制方法.doc

全国计算机技术与软件专业技术资格(水平)考试

3. 流 程 管 理 ( 系 统 管 理 员 或 者 教 务 处 管 理 员 主 要 操 作 功 能 部 分 ) 系 统 管 理 员 发 布 的 供 学 校 登 录 人 员 查 看 校 内 公 告 信 息 ; 系 统 管 理 员 审 核 提 前 实 习 的 学 生 申 请 ; 系 统 管 理 员 审

1.5招募说明书(草案)


序 1995 年 我 走 进 了 朝 阳 区 将 台 乡 五 保 老 人 院, 如 今 17 年 后, 十 分 欣 喜 有 机 会 为 这 本 流 金 岁 月 小 集 作 序 在 多 年 陪 伴 孤 单 老 人 的 过 程 中, 我 深 深 地 体 会 到 每 位 老 人 的 生 命 里 其 实 都

78 云 芝 79 五 加 皮 80 五 味 子 81 五 倍 子 82 化 橘 红 83 升 麻 84 天 山 雪 莲 85 天 仙 子 86 天 仙 藤 87 天 冬 88 天 花 粉 89 天 竺 黄 90 天 南 星 91 天 麻 92 天 然 冰 片 ( 右 旋 龙 脑 ) 93 天 葵

43081.indb


工 造 价 15 邗 江 南 路 建 设 工 一 标 市 政 公 用 6000 中 机 环 建 集 团 有 限 公 胡 美 娟 16 邗 江 南 路 建 设 工 二 标 市 政 公 用 品 尊 国 际 花 园 1# 2# 3# 4# 7# 9# 10# 11# 楼 地 库 C 区 工

第一篇 建置区划


untitled


31 121

ǎà

一 天 吃 两 顿, 从 不 例 外 我 上 班 就 是 找 一 个 网 吧 上 网 上 网 的 内 容 很 杂, 看 新 闻, 逛 论 坛, 或 者 打 打 小 游 戏 如 果 没 钱 上 网, 我 会 独 自 一 个 人 到 一 个 偏 僻 的 地 方, 静 静 地 坐 着 发 呆 这 也 是

Microsoft PowerPoint - Chapter5

秘密大乘佛法(下)

國立臺東高級中學102學年度第一學期第二次期中考高一國文科試題

Page 2 of 12

<D2B0D0C4D3C5D1C52DC8CED6BEC7BF202D20BCC7CAC2B1BE>

Microsoft Word - Sunday

鎶ョ焊0

!! :!!??!!?!??!!!... :... :'?'?! :' ' :'?' :'?' :'!' : :? Page 2

¥¼©R¦W-5

05322AR13.indd

6-1 Table Column Data Type Row Record 1. DBMS 2. DBMS MySQL Microsoft Access SQL Server Oracle 3. ODBC SQL 1. Structured Query Language 2. IBM

jQuery實戰手冊

untitled

Microsoft Word - VBA講義手冊.docx

Microsoft Word - 專題製作研究報告書.doc

HTML網頁基礎語言

TwinCAT 1. TwinCAT TwinCAT PLC PLC IEC TwinCAT TwinCAT Masc


AM101-1(中文)11.cdr

Python_02

REPORT ID: SS-220D COMPILED BY: HONG KONG HOUSING SOCIETY 香港房屋協會 PROJECT:THS2018 HONG KONG HOUSING SOCIETY 香港房屋協會 T-HOME TRANSITIONAL RENTAL HOUSING S

Microsoft Word - ch03.doc

PowerPoint 簡報

Microsoft Word - 投影片ch11

CC213

Microsoft PowerPoint - Bronson-v3-ch07.ppt [相容模式]

新版 明解C++入門編

Java 程式設計初階 第 5 章:基本輸出入 & 流程控制

, 7, Windows,,,, : ,,,, ;,, ( CIP) /,,. : ;, ( 21 ) ISBN : -. TP CIP ( 2005) 1

Transcription:

CH04 流程控制 課程目標 : 學會 VBA 中用來控制程式流程之陳述式

本章重點 判斷式迴圈狀態判斷其他實用之陳述式陣列 (Array) 2

4-1 判斷式 判斷式係指用於判斷狀態是否存在之陳述式, 若判斷為真時, 應否採取任何動作 3

判斷式 If Then End If If Then End If 陳述式的用途在於判斷條件式是否成立, 當條件式的邏輯判斷為 True 時, 才執行 Then 陳述式後的程式區塊內容 ; 倘偌條件式的邏判斷為 False 時, 則略過 If Then End If 陳述式所包含的程式區塊, 繼續執行 End If 之後程式碼 If 陳述式開始條件式判斷 True 程式敘述的執行 If 陳述式 False 4

If Then End If-Example 利用範例統計表, 若想知道 S009 號經銷商之 ADSL 銷售數量 (C10 儲存格 ) 是否大於 20 件, 可利用下列程式判斷之 : Sub Chap4_1() Dim cell as Variant If Range( C9 ).Value>=20 Then Range( C9 ).Font.Color=RGB(255,0,0) Red End If End Sub 5

判斷式 If Then else End IF If Then End If 陳述式的用途在於判斷條件式是否成立, 當條件式的邏輯判斷為 True 時, 才執行 Then 陳述式後的程式區塊內容 ; 但在條件式的邏判斷為 False 時, 還希望能夠執行其它動作時, 就可以利用 If then else End If 陳述式, 來達成這個目的 If 陳述式開始條件式判斷 True Then 程式敘述的執行 If 陳述式 False Else 程式敘述的執行 6

If Then else End IF If 條件式 then 條件式為 True( 程式碼 ) Else 條件式為 False( 程式碼 ) End If 7

Example Sub chap4-1() Dim cell as Variant If Range( C8 ).Value>=20 Range( C8 ).Font.Color=RGB(0,200,0) Else If Range( C8 ).Value >= 50 Then Range( C8 ).Font.Color=RGB(0,255,0) End If End if 8

4-1-3 example 產品庫存量判定 當使用者輸入要查詢之商品編號, 接著判斷使用者所輸入的商品編號是否有效, 最後再回報庫存量 Sub chap4_3() Dim x, y As Integer x = InputBox(" 請指定要查詢之商品庫存編號 ") Ifx>8Then MsgBox (" 請輸入正確商品編號 ") Else y = Range("e" & CStr(x + 1)).Value MsgBox " 目前庫存量為 " + CStr(y) End If End Sub 9

Extended example 計算表準體重 男生 : 身高 2 *22/10000*(1+0.1) 女生 : 身高 2 *22/10000*(1+0.05) Public Function std_weight( 身高, 性別 ) Dim x As Double x= 身高 ^2*22/10^4 If 性別 =" 女 " Then std_weight = Round(x * (1 + 0.05), 2) Else std_weight = Round(x * (1 + 0.1), 2) End If End Function 10

4-2 迴圈 諸多狀況需要重複執行相同動作, 可以利用迴圈陳述式, 以達到事半功倍效果 For Next For Each Next ( 為集合物件或陣列執行特定工作 ) Page. 111 11

For Next For Next 陳述式可以指定程式區塊, 指定所要執行的次數, 並在執行完成所指定次數後, 自動跳出 For Next 迴圈, 繼續執行迴圈之後的程式內容 迴圈開始 For i=x To Y 計數變數 i= 初值 X 計數變數 i = 計數變數 + 間距值 程式區塊 判斷計數變數 i <= Y True 迴圈 12

Example For Next 一次開啟十個活頁簿 Sub ch4_4_1() For I=1 to 10 Workbooks.Add Next I End Sub 一次開啟十個活頁簿, 每張再開啟 10 個工作表 Sub ch4_4_2() For I=1 to 10 Workbooks.Add For Y=1 to 10 Worksheets.Add Next Y, I End Sub 13

For Each Next For Each Next 陳述式允許使用者為集合物件中的每個物件 或陣列中的每個元素執行迴圈內的程式區塊內容 在執行包含有 For Each Next 陳述式的程式碼時, 若要中止執行迴圈內的程式區塊時, 您可以利用 Exit For 陳述式離開迴圈 語法 For each 變數 in 集合物件 / 陣列程式區塊 {Exit For} 程式區塊 Next 變數 14

For Each Next 程式會先針對群體中第一個元素執行迴圈中的所有程式區塊內容 若群體中還有其他元素, 則 For Each 陳述式會針對其餘元素, 一一執行迴圈中之陳述式內容, 直到群組中的所有元素都執行完程式區塊內容後離開迴圈 ; 再從 Next 陳述式之後的指令繼續執行 注意事項 : 必須定義為 Variant 資料型態, 在實際運作時, 通常可以選擇工作表中之某一儲存格 工作表 (Worksheets) 物件或 Excel 之活頁簿 (Workbooks) 集合物件 / 陣列內容 15

For each Next - Example 判斷產品庫存量是否足夠, 利用 For Each Next 判斷庫存量是否不足 Sub Ch4_115() Dim cell As Variant For Each cell In Range("E2:E9") If cell.value = 0 Then cell.font.color = RGB(255, 0, 0) cell.value = " 庫存不足 " End If Next End Sub 16

Do While.Loop Do While 條件式 Loop 迴圈, 表示只有判斷條件式的內容為 True 時, 才執行迴圈內的內容, 直到條件式變成 False 後, 才迴圈, 繼續執行 Loop 敘述之後的其它指令 迴圈開始 判斷條件是否成立 True False 執行程式區塊的內容 17

Do while Loop - example 密碼設置以管理文件機密性, 在活頁簿加入密碼機制 : Sub ch4_2_3() Dim password as string Do while password <> linsanity password = inputbox( 請輸入密碼, 輸入密碼, ) Loop Msgbox 你已通過認證 End sub 18

Do Until Loop Do Until 條件式 Loop, 則與 Do While Loop 條件相反, 只有在條件式的邏輯值狀態被判斷為 False 時, 才會進入迴圈之中, 並且不斷地執行迴圈內的程式區塊, 直到條件式為 True 時, 才跳出迴圈, 繼續執行 Loop 後面的程式碼內容 迴圈開始 執行程式區塊的內容 判斷條件是否成立 False True 迴圈 19

Do Until Loop - example Sub ch4_2_3() Dim password as string Do Until password = linsanity password = inputbox( 請輸入密碼, 輸入密碼, ) Loop Msgbox 你已通過認證 End sub 20

實力應用 - 人事出缺勤 統計每位員工遲到紀錄 Sub ch4_2_4 Dim cell as Variant For each cell in Range( B2:F11 ) If cell.value > #9:00:00 AM# Then cell.value= 遲到 End if Next End sub 21

4-3 判斷狀態 若判斷狀況多, 則應利用 Select Case End Select 陳述式撰寫程式 語法 : Select Case 條件運算式 Case 條件式 1 程式區塊 1( 處理 1) Case 條件式 2 程式區塊 1( 處理 2).. End Select 22

Select Case End Select 23

Select case - example 隨機產生 1-10 數字, 並利用訊息方塊顯示出來 Sub test9() x=rnd()*10\1 Select Case x Case 1 b=msgbox( 亂數為 & x, 48) Case 2 b=msgbox( 亂數為 & x, 48).. Case 9 b=msgbox( 亂數為 & x, 48) End select End sub 24

With End With With End With 可以讓在遇到同一個物件, 以不同屬性來形容的情況時, 能省略輸入物件, 直接以 With End With 取代 傳統寫法 Sub test10() worksheets(1).range( a1:a10 ).Select Selection.Font.Size=20 Selection.Font.Bold=True Selection.Font.Italic=True Selection.Font.Underline=True End sub 25

With End With 不須重複鍵入相同物件, 可以利用 With End With 簡化之 Sub test11() worksheets(1).range( a1:a10 ).Select With Selection.Font.Size=20.Font.Bold=True.Font.Italic=True.Font.Underline=True End With End Sub 26

GoTo 陳述式能讓您執行程式時, 若遇到某些情況, 能跳離逐行執行的模式, 執行其它程式區塊的程式 限制開啟工作表數量, 不超過七個 Sub test12() ForI=1to7 worksheets.add If Worksheets.Count=7 Then Goto 1 End if Next I 1 A = MsgBox( 工作表已超過七個, 48) i=worksheets.count IfI>=7Then workbooks.add End if End sub 27

實例操作 階級式獎金 達到最低銷售標準時, 以基本佣金計算, 若在達到某加碼標準時, 則以不同佣金標準計算之 基本銷售數 :30 台, 小於 30 台經銷商, 則領取基本銷售佣金 300, 若大於 30 台, 則領取 500 銷售獎金, 若超過 60 台以上, 則每台領取 700 佣金 28

陣列 指的是一群依序排列, 且由資料型態相同的陣列元素所組成的資料 在陣列當中, 每一個元素, 相當於一個變數, 而每一個陣列元都可用來存取資料 也就是說, 陣列可以用來指定一系列有順序關係的變數 您可以使用 Dim Static Private 或 Public 陳述式來宣告陣列 要宣告一個陣列時, 必須使用下列語法, 其中 Var 為陣列名稱,x 則代表陣列大小, 資料型別必須是 Long 資料型別的數字 Dim Var(x) 29