Microsoft Word - VBA講義手冊.docx

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

四川省普通高等学校

untitled

untitled

Microsoft PowerPoint - VB14.ppt

ACI pdf

Microsoft PowerPoint - OPVB1基本VB.ppt

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

Microsoft PowerPoint - VB3

投影片 1

投影片 1

<4D F736F F D D342DA57CA7DEA447B14D2DA475B57BBB50BADEB27AC3FEB14DA447B8D5C344>

Microsoft PowerPoint - VB5

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

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

ThreeDtunnel.doc

Visual Basic D 3D

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

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

輕鬆學 Dreamweaver CS5 網頁設計..\Example\Ch0\ \.html..\example\ch0\ \mouse.txt..\example\ch0\ \ _Ok.html 學習重點 JavaScript 複製程式碼 mouse.txt Ctrl+C Ctrl+C 0-4

Microsoft PowerPoint - Chapter3

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

Visual C# 2005程式設計

CC213

ACCESS檔案格式:工具/選項/進階/預設檔案格式

TwinCAT 1. TwinCAT TwinCAT PLC PLC IEC TwinCAT TwinCAT Masc

Chapter 16 集合

IsPostBack 2

VBA簡介

VB程序设计教程

Microsoft PowerPoint - Chapter4

第四講 資料型態及變數、常數

穨ac3-4.PDF

<4D F736F F D B0D3B77EC3FEA7DEC3C0C476C1C9A5BFA6A1B8D5C3442DB57BA6A1B35DAD702DBEC7ACEC2E646F6378>


論鄭玄對《禮記‧月令》的考辨

05 CHAPTER Information.IsNumeric ( ) Information.IsDate ( ) True False Date Date True False Y Y Information.IsArray ( ) True False Y Information.IsErr

untitled

投稿類別:資訊類

星星排列 _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

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

The golden pins of the PCI card can be oxidized after months or years

* 40 文Preface 序* VBA 7 12 Excel Excel * 產業沒有景氣的問題, 只有競爭力的問題 * 今天不努力工作, 明天就得努力找工作 * 從業人員也沒有裁員 減薪的問題, 只有工作能力的問題 林文恭 2012/02/04 iii

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

概述

Excel VBA 初探 投稿類別 : 資訊類 篇名 : Excel VBA 初探 作者 : 葉明捷 高雄市立高雄高級工業職業學校 資訊三乙林咏諒 高雄市立高雄高級工業職業學校 資訊三乙羅賢擎 高雄市立高雄高級工業職業學校 資訊三乙 指導老師 : 莊利吉老師

Microsoft Word - 第0講 準備Excel 2013的VBA開發環境

Microsoft Word - ACG chapter00c-3ed.docx

基于UML建模的管理管理信息系统项目案例导航——VB篇

2 WF 1 T I P WF WF WF WF WF WF WF WF 2.1 WF WF WF WF WF WF

ebook45-5

Text 文字输入功能 , 使用者可自行定义文字 高度, 旋转角度 , 行距 , 字间距离 和 倾斜角度。

untitled

VB控件教程大全

Microsoft Word - ACI chapter00-1ed.docx

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

Powerpoint 2003

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

USING MAYA ANIMATION Keyset set Maya sets partitions MEL MEL copykey cutkey pastekey scalekey snapkey keytangent bakeresults MEL Command Reference Edi

【電腦閱卷專用】

untitled

Java 程式設計入門

untitled

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

C/C++ 语言 - 循环

Business Objects 5.1 Windows BusinessObjects 1

C/C++程序设计 - 字符串与格式化输入/输出

Front 2 Polar F11 ( ) : Polar F11 Polar F11 Polar F11 Polar (Keeps U Fit - Own Workout Program) Polar Polar F11 Polar F11 Polar F11 Polar (

2

Microsoft Word - 投影片ch03

untitled

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


C/C++ - 文件IO

PowerPoint 簡報

<4D F736F F D20AC4FBDBDA4FBB67DA96CAABA2DA743A67EAFC5AAA95FA7B9BD5A5F2E646F63>

ex

多層次傳銷與獎金系統

contents 1 4 Chapter 2 Chapter 5 Chapter 管理自動儲存的版本 以文件復原窗格復原檔案 自訂快速工具 自訂快速存取工具列 自訂功能區

Microsoft Word - 09.數學 docx

FY.DOC

MVB-1001.DOC

主程式 : public class Main3Activity extends AppCompatActivity { ListView listview; // 先整理資料來源,listitem.xml 需要傳入三種資料 : 圖片 狗狗名字 狗狗生日 // 狗狗圖片 int[] pic =new

使用手冊

<4D F736F F D20B3CCD0F2D4B12DC9CFCEE7CCE2A3AD3037C9CF>

epub83-1

封面-12

Transcription:

Excel VBA 設計與應用 黃老師自編講義

目錄 一 開啟開發人員之功能... 1 二 巨集安全性處理... 1 三 巨集之錄製... 1 四 按鈕設計... 2 五 開啟 VBA 進入 VBE... 2 六 程式架構 編輯及除錯... 3 七 基礎程式語法... 3 八 資料型態... 4 九 算術運算子... 5 十 迴圈... 6 十一 條件分支之處理... 9 十二 陣列... 11 十三 副程式... 12 十四 常使用的物件... 14 i

一 開啟開發人員之功能 開啟 Excel 檔案 選項 自訂功能區 主要索引標籤 / v 開發人員 確定 1 2 3 4 二 巨集安全性處理 巨集安全性 巨集設定 停用所有巨集 ( 事先通知 ) 確定 ** 若已有就不需設定 : 巨集安全性 信任位置 新增 瀏覽 C:\Program Files\Microsoft Office\Templates\ 確定 ) 三 巨集之錄製 1. 開發人員 以相對位置錄製 錄製巨集 2. 巨集名稱 : 快速鍵 確定 3. 操作 4. 開發人員 停止錄製 5. 另存成.xlsm 1

四 按鈕設計 1. 插入 表單控制項 / 按鈕 拖曳區塊 2. 選巨集名稱 確定 3. 修改按鈕區塊文字內容簡易方法 : 插入 圖案 選圖並拖曳完成圖形 打入文字 按滑鼠右鍵 指定巨集 選對應的巨集 確定 例 1( 薪水條 ), 練習如何錄製巨集 執行巨集及存檔 例 2( 基本運算 ), 練習如何錄製巨集 執行巨集及存檔 五 開啟 VBA 進入 VBE 開啟 VBA(Visual Basic Application) 進入 VBE(Visual Basic Editor) 1. 開發人員 Vasiual Basic ( 或按 Alt+F11 Excel 與 Visual Basic 互換鍵 ) 2. 在專案視窗的 VBA Project 按滑鼠右鍵 插入 模組, 進入 VBE 畫面 ( 專案視窗的模組會出現 Module1) 1 2 3 2

六 程式架構 編輯及除錯 語法 Sub 程序名稱 () 程式碼 ( 程式語法 ) ** 程式架構 編輯及除錯之詳細內容於課堂內說明 七 基礎程式語法 語法 說明 MsgBox( 文字內容 ) 顯示文字內容 InputBox( 文字內容 ) 輸入資料之交談視窗 Dim 變數名稱 As 資料型態 指定變數之資料型態 文字內容 備註 Const 常數名稱 As 資料型態 = 常數值 常數宣告 ( 或 Const 常數名稱 = 常數值 ) 例 3 Sub Ex1( ) MsgBox( 大家好 ) 例 4 Sub Ex2( ) InputBox( 請輸入一個數字 ) 例 5 Sub Ex3( ) InputBox( 請輸入一個數字 ) a= InputBox( 請輸入另一個數字 ) MsgBox(a) ** 程式要存成.xlsm 之存檔類型 3

八 資料型態 類型 資料型態 說明 布林 Boolean True/False 位元組 Byte 0~255 整數 Integer 32768~32767 長整數 Long 2147483648~2147483647 貨幣 Currency 單精度浮點數 Single 雙精度浮點數 Double 日期時間 Date 字串 String 物件 Object 通用型態 Variant 可以是任何資料類型 例 6: 練習資料型態 Sub Ex1() Dim a As Integer Dim b As Integer a=5 b=a MsgBox(b) 4

九 算術運算子 運算子說明 + 加 減 * 乘 / 除 ^ 次方 \ 商數 Mod 餘數 例 7: 練習算術運算 Sub Ex1() Dim a As Integer Dim b As Integer a=5 b=3 c=a*b MsgBox ("a=" & a & ",b=" & b & ",a*b=" & c) 5

十 迴圈 1. 迴圈次數從起始值執行到結束值語法 For 迴圈變數 = 起始值 to 結束值敘述 Next 2. 先判斷成立與否, 不成立則執行, 成立則不執行語法 DO Until 條件敘述 Loop 3. 先執行, 再判斷成立與否, 不成立則執行, 成立則不執行語法 DO 敘述 Loop Until 條件 4. 先判斷成立與否, 成立則執行, 不成立則不執行語法 DO While 條件敘述 Loop 5. 先執行, 再判斷成立與否, 成立則執行, 不成立則不執行語法 DO 敘述 Loop While 條件 6

例 8: 下載 ForDo.xlsx 練習迴圈 1+2+3+.+10=? Sub Ex1() Dim Total As Integer Dim I As Integer Total = 0 For I = 1 To 10 Total = Total + I Next I MsgBox ("(1)1+2+3+4+5+6+7+8+9+10 = " & Total) Range("B1").Value = Total Sub Ex2() Dim Total As Integer Dim I As Integer Total = 0 I = 0 Do Until I = 10 I = I + 1 Total = Total + I Loop MsgBox ("(2)1+2+3+4+5+6+7+8+9+10 = " & Total) Range("B2").Value = Total Sub Ex3() Dim Total As Integer Dim I As Integer Total = 0 I = 0 Do I = I + 1 Total = Total + I Loop Until I = 10 MsgBox ("(3)1+2+3+4+5+6+7+8+9+10 = " & Total) Range("B3").Value = Total 7

Sub Ex4() Dim Total As Integer Dim I As Integer Total = 0 I = 0 Do While I < 10 I = I + 1 Total = Total + I Loop MsgBox ("(4)1+2+3+4+5+6+7+8+9+10 = " & Total) Range("B4").Value = Total Sub Ex5() Dim Total As Integer Dim I As Integer Total = 0 I = 0 Do I = I + 1 Total = Total + I Loop While I < 10 MsgBox ("(5)1+2+3+4+5+6+7+8+9+10 = " & Total) Range("B5").Value = Total 8

十一 條件分支之處理 1. 單一條件語法 If 條件 Then 敘述 1 End if 2. 多個條件語法 If 條件 1 Then 敘述 1 ElseIf 條件 2 Then 敘述 2 ElseIf 條件 3 Then 敘述 3 Else 敘述 4 End If 例 9: 下載 ifcase.xlsx 利用 if 完成等第欄位 Sub test() irow=2 For i= 1 to 42 irow=irow+1 If Range( J & irow).value>=90 Then Range( K & irow).value= 甲 ElseIf Range( J & irow).value>=80 Then Range( K & irow).value= 乙 ElseIf Range( J & irow).value>=70 Then Range( K & irow).value= 丙 ElseIf Range( J & irow).value>=60 Then Range( K & irow).value= 丁 Else Range( K & irow).value= 戊 End If Next i 9

3. Select Case 語法 Select Case 變數 Case 條件值 1 敘述 1 Case 條件值 2 敘述 2 Case 條件值 3 敘述 3 Case Else 敘述 4 End Select **Case 條件值之例子 Case 1,3,5 Case 2 to 5 Case Is>=5 Case A 例 10: 下載 ifcase.xlsx 利用 Select case 完成等第欄位 Sub test() irow=2 For i= 1 to 42 irow=irow+1 Select Case Range( J & irow).value Case Is >=90 Range( K & irow).value= 甲 Case Is >=80 Range( K & irow).value= 乙 Case Is >=70 Range( K & irow).value= 丙 Case Is >=60 Range( K & irow).value= 丁 Case Else Range( K & irow).value= 戊 End Select Next i 10

十二 陣列 Option Base 1 宣告陣列起始為 1 Dim 陣列名稱 ( ) As 資料型態 宣告陣列大小 Array( 元素 1, 元素 2, 元素 3,.) 新增陣列 例 11: 練習陣列, 課堂內說明 11

十三 副程式 VBA 之函數字串函數 Replace( 字串, 搜尋字串, UCase( 字串 ) 將小寫轉大寫 Lcase( 字串 ) 將大寫轉小寫 StrConv( 字串, 轉變類型 ) 將字串轉換顯示方式 vbuppercase 轉成大寫 vblowercase 轉成小寫 vbpropercase 第一字大寫 vbwide 轉成全形 vbnarrow 轉成半形 Len( 字串 ) 字串字數 Left( 字串, 字數長度 ) 回傳從左到右指定字數 Right( 字串, 字數長度 ) 回傳從右到左指定字數 Mid( 字串, 起始位置, 字數長度 ) 回傳從起始位置開始指定字數 InStr( 字串, 搜尋字串 ) 字串在搜尋字串第幾位置 InStrRev( 字串, 搜尋字串 ) 字串在反向搜尋字串第幾位置 trim( 字串 ) 將字串左右多餘空白移除 取代字串 ) 將搜尋字串換成取代字串 String( 次數, 字串 ) 依指定的次數重複字串 數值函數 Abs( 數值 ) 絕對值 Log( 數值 ) 述職的自然對數 Exp( 數值 ) 以 e 為底的數值次方 Sqr( 數值 ) 數值的平方根 Fix( 數值 ) 整數的部分, 捨小數 Int( 數值 ) 不大於該數的最大整數 Round( 數值, 小數位數 ) 四捨五入留指定的位數, 日期時間函數 DateAdd( 單位, 數值, 日期 ) 日期加上單位數值後的日期單位 yyy 年,q 季,m 月,y 年,d 日,w 週日,ww 週,h 時,n 分,s 秒 DateDiff( 單位, 日期 1, 日期 2) 兩個日期的單位差 Now 回傳現在日期時間 Date 回傳現在日期 Time 回傳現在時間 Year( 日期資料 ) Date 資料中的西元年 Month( 日期資料 ) Date 資料中的月 Day( 日期資料 ) Date 資料中的日 Hour( 日期資料 ) Date 資料中的時 Minute( 日期資料 ) Date 資料中的分 Second( 日期資料 ) Date 資料中的秒 Weekday( 日期資料 ) Date 資料中的星期 其他函數 RGB( 紅數值, 綠數值, 藍數值 ) 紅, 綠, 藍顏色值 0~255 12

例 12: 下載 function.xlsx, 練習函數, Sub Ex() Dim a As integer Dim b As String Dim c As integer Dim d As integer Dim e As Date Dim F As Date a=len( VBA ) b=trim( VBA ) c=len(b) d=round(23.59,1) e=now f=year(e) 13

十四 常使用的物件 物件名稱 說明 Range( 儲存格位址 ) 儲存格 Cells( 列號, 欄號 ) 儲存格 Worksheet 工作表 Workbook 活頁簿 Window Excel 視窗 Application Excel 相關設定 ** 物件的屬性 ( 或方法 ) 在物件後方加上. 屬性 ( 或方法 ) 1.Range * 常見之屬性 : Value( 值 ),Address( 位址 ),Font( 字型 ),Borders( 四邊框線集合, 可再加下層屬性 Weight,Color,LineStyle),Name ( 儲存格範圍名稱 ),Interior ( 儲存格格式 ),RowHeight(),Row( 第幾列 ),Column( 第幾欄 ),Rows( 範圍列 ), Columns( 範圍欄 ),Height( 儲存格高度 ),Width( 儲存格寬度 ),End( 方向最終儲存格集合 ),Formula( 儲存格公式 ), 例 13: 下載 formula.xlsx 完成總分欄位 Sub formula1() Range("E2:E16").FormulaR1C1 = "=RC[ 2]+RC[ 1]" * 常見之方法 : Clear( 清除 ),Delete( 刪除 ),Selection( 選取多格 ),ActiveCell( 只選單一格 ), AutoFilter( 篩選功能 ),AddComment( 註解內容 ),ClearComments( 清除註解內容 ),Merge( 合併儲存格 ),UnMerge( 解除合併儲存格 ),Insert( 插入儲存格 ),Copy( 複製貼上儲存格 ),Cut( 剪下貼上儲存格 ) 例 14: 下載 border.xlsx 練習 Sub Test1() Range("B2:C2").Borders.LineStyle = xlcontinuous B2 到 C2 加一般框線 14

Sub Test2() Range("D2:E2").Borders(xlEdgeTop).Weight = xlthin Range("D2:E2").Borders(xlEdgeTop).LineStyle = xldot D2 到 E2 上方加細框線, 再用點線顯示 Sub Test3() Range("A2").Borders(xlDiagonalUp).Color = vbred A2 加上右上往左下紅線 2. Worksheets * 常見之屬性 : Index( 回傳工作表索引編號 ),Previous( 回傳左邊工作表物件 ),Next( 回傳右邊工作表物件 ),Count( 工作表個數 ),Name ( 工作表名稱 ),UsedRange( 已使用儲存格範圍 ),Visible( 顯示或隱藏 ) * 常見之方法 : Select( 選取工作表 ),Delete( 刪除工作表 ),Add( 插入工作表 ),Copy( 複製工作表 ),Move( 移動工作表 ),PrintOut( 列印工作表 ),PrintPreview( 預覽列印工作表 ),Activate( 啟動工作表 ) 3. WorkBooks * 常見之屬性 : Open( 開啟活頁簿 ),Count( 活頁簿個數 ),Name( 活頁簿名稱 ),FullName( 路徑及檔名 ) * 常見之方法 : Add( 新增活頁簿 ),Svae( 儲存活頁簿 ),SaveAs( 將活頁簿另存 ),PrintOut( 列印活頁簿 ),PrintPreview( 預覽列印活頁簿 ),Close( 關閉活頁簿 ) ** WorkBooks( 路徑 \ 活頁簿名稱 ).Close(True) 存檔再關檔 WorkBooks( 路徑 \ 活頁簿名稱 ).Close(False) 不存檔就關檔 例 15: 下載 object.xlsx 練習物件 Sub Ex1() Range("A3").Copy Range("A12") 將儲存格 A3 複製到儲存格 A12 15

Sub Ex2() Range("A12").Cut Range("A13") 將儲存格 A12 剪貼到儲存格 A13 Sub Ex3() Range("A2:A5").Copy Range("A15") 將儲存格範圍 A2 到 A5 複製到儲存格 A15 起點 Sub Ex4() Worksheets(2).Activate 開啟工作表 2 Sub Ex5() Worksheets(1).Select 開啟工作表 1 Sub Ex6() Worksheets(1).Copy After:=Worksheets(2) 將第 1 工作表複製到工作表 2 後面 Sub Ex7() Worksheets(3).Visible = False 隱藏第 3 張工作表 Sub Ex8() Worksheets.Add 在目前工作表前加新工作表 Sub Ex9() Workbooks(1).Save ' 存檔 16