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

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

Excel VBA Excel Visual Basic for Application

untitled

投影片 1

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

CHAPTER VC#

Microsoft PowerPoint - VB14.ppt

(Microsoft Word - wes _\246p\246\363\250\317\245\316LED\277O\305\343\245\334\252\254\272A.doc)

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

Sub 使用 msgbox 函数退出系统 () Dim inreturn As Integer inreturn = MsgBox(" 真的退出系统吗?", vbyesno + vbquestion, " 提示 ") If inreturn = vbyes Then Application.Quit

<4D F736F F D D342DA57CA7DEA447B14D2DA475B57BBB50BADEB27AC3FEB14DA447B8D5C344>

Microsoft Word - VBA講義手冊.docx

表單\(Form\) 簡介

Microsoft PowerPoint - C_Structure.ppt

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

Visual Basic D 3D

VBA簡介

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

四川省普通高等学校

投影片 1

Microsoft PowerPoint - Chapter3

MVB-1001.DOC

Microsoft Word - ACI chapter00-1ed.docx

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

CC213

<4D F736F F D DA5BFA6A1C476C1C92DBEC7ACECB8D5A8F728B57BB35D292E646F63>

高中國文科期末考            年班號姓名:

封面-12

TwinCAT 1. TwinCAT TwinCAT PLC PLC IEC TwinCAT TwinCAT Masc

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

山东2014第四季新教材《会计基础》冲刺卷第三套

2013年国家司法考试模拟试卷与答案

ACI pdf

Microsoft PowerPoint - OPVB1基本VB.ppt

就 构 成 了 盗 窃 罪 与 破 坏 交 通 设 施 罪 的 想 象 竞 合, 按 照 其 中 处 罚 较 重 的 犯 罪 处 罚 5. 答 案 :B 本 题 主 要 考 察 如 何 区 分 收 买 被 拐 卖 的 妇 女 儿 童 罪 与 拐 卖 妇 女 儿 童 罪 的 共 犯 问 题 ( 对 向

bingdian001.com

. (A) (B) (C) A (D) (E). (A)(B)(C)(D)(E) A

單步除錯 (1/10) 打開 Android Studio, 點選 Start a new Android Studio project 建立專案 Application name 輸入 BMI 點下 Next 2 P a g e

Chapter 6 step 01 \ \06\ \.docx step 02 step \ \06\ \.docx \ \06\ \.docx 達 人 XXXTabN XXX Tab TabN

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


考 查 知 识 点 肝 气 疏 泄 调 畅 气 机 的 作 用, 主 要 表 现 在 以 下 几 个 方 面 :(1) 促 进 血 液 与 津 液 的 运 行 输 布 ;(2) 促 进 脾 胃 的 运 化 功 能 和 胆 汁 分 泌 排 泄 ;(3) 调 畅 情 志 ;(4) 促 进 男 子 排 精

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

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

实 信 用 的 原 则 " 其 中, 诚 实 信 用 原 则 是 指 民 事 主 体 进 行 民 事 活 动 时, 均 应 诚 实, 不 作 假, 不 欺 诈, 不 损 害 他 人 利 益 和 社 会 利 益, 正 当 地 行 使 权 利 和 履 行 义 务 甲 将 平 房 售 与 丙 而 未 告


Microsoft PowerPoint - Chapter4

Photoshop CS3 影像創造力 基礎講堂 8 學習流程 學習重要性 學習難度 必學指令工具 實作應用範例 創造舞台燈光的漸層繪圖 延伸學習 雜訊與半透明漸層 8-1 Photoshop Photoshop 8 136

untitled

过 程 排 除 A 正 确 答 案 是 B 14.A 解 析 本 题 考 查 思 修 第 八 章 中 国 人 权, 新 增 考 点 其 中 直 接 考 查 宪 法 保 障 是 人 权 保 障 的 前 提 和 基 础 A 人 权 保 障 的 最 后 防 线 是 司 法 保 障,B 人 权 保 障 的

<4D F736F F D B0D3B77EC3FEA7DEC3C0C476C1C9A5BFA6A1B8D5C3442DB57BA6A1B35DAD702DBEC7ACEC2E646F6378>

Microsoft PowerPoint - VB3

Ps22Pdf

Java網路程式教材研發

0 0 = 1 0 = 0 1 = = 1 1 = 0 0 = 1

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

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

C/C++ - 字符输入输出和字符确认

(Microsoft Word - wes _\246p\246\363\250\317\245\316watchdog\250\276\244\356\265{\246\241\267\355\276\367.doc)

Microsoft Word - ch doc

黔卫计发〔2015〕64号(两单位)(人事处)(上网版)

Microsoft PowerPoint - VB5

Microsoft Word - CMU200 WCDMA 手機測試步驟.doc

2011-论文选集-2.cdr

北京2014年会计从业资格考试《会计基础》备考机试卷一

! "#$%& $()*+#$, $(-.&,./.+#/(-.&01( &-#&(&$# (&2*(,#-3.,14& $ +()5(*-#5(-#/-/#(-1#&-+)(& :;<<= > A B?

2 A

SMM667.mps

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

資料結構之C語言重點複習

<4D F736F F D B3F5BCB6BBE1BCC6A1B6BFBCB5E3BEABBBAAA1B72E646F63>

重 要 声 明 长 城 证 券 股 份 有 限 公 司 编 制 本 报 告 的 内 容 及 信 息 来 源 于 陕 西 东 岭 工 贸 集 团 股 份 有 限 公 司 提 供 的 证 明 文 件 以 及 第 三 方 中 介 机 构 出 具 的 专 业 意 见 长 城 证 券 对 报 告 中 所 包


使用手冊

Microsoft Word - 第3章.doc

优合会计考点直击卷子之财经法规答案——第八套

p.2 1. a. b. c. (i) (ii)

Transcription:

EXCEL 錄製巨集與 VBA-1 1 搭配範例 : 錄製巨集範例資料檔 2 巨集與 VBA: 巨集是一程式, 紀錄一連串的操作步驟, 而這些程式的程式碼是由 VBA 程式語言所撰寫 3 巨集工具列 : 開發人員 / 程式碼 4 錄製巨集 開發人員 / 程式碼 / 錄製巨集 5 相對 / 絕對 : 絕對 + 未換位 絕對 + 重新定位 相對 + 未換位 相對 + 重新定位 以上情況交錯 ( 重點在於所選的對象是否要採用相對或絕對位置之前, 要先設定好相對 / 絕對的切換 ), 參考錄製巨集範例 6 巨集快速鍵 開發人員 / 程式碼 / 巨集 / 選項 / 快速鍵 7 巨集按鈕 EX: 矩形圖 / 右鍵 / 指定巨集 8 巨集內容編輯檢視 修改 開發人員 / 程式碼 / 巨集 / 編輯 9 巨集儲存位置 : 新的活頁簿 現用活頁簿 個人巨集活頁簿 ( 個人巨集活頁簿 PERSONAL.XLSB 預設為隱藏, 如要編輯或查看需先 : 檢視 / 視窗 / 取消隱藏式窗 ) 10 啟動錄製巨集 執行動作 查閱相對在 VBA 的程式內容 ( 開發人員 / 程式碼 /Visual Basic) 可進一步利用 F1 查詢 11 錄製巨集的限制 : 11.1 容易錄製冗長的操作 11.1.1 Sub test1() range("b2").select activecell.formular1c1="test" range("b3").select 11.1.2 Sub test2() range("b2").value = "TEST" 11.2 對話型巨集無法被錄製, 欠失情況與對象的彈性 11.3 無法錄製條件判斷與重複執行 12 EXCEL 2003 檔案格式.XLS 可以含巨集 13 EXCEL 2007 以上檔案格式.XLSX 不能帶巨集 14 EXCEL 2007 以上若有巨集時必須存為.XLSM 或.XLSB VBA 編輯視窗功能介紹 15 視窗切換 : 15.1 視窗 / 切換選擇 15.2 視窗 / 排列 顯示 15.3 Ctrl+Tab 15.4 視窗最大化 還原 15.5 模組程式碼視窗 /( 在程式視窗左下角兩圖示 : 程序檢視 全模組檢視 ) 16 工具 / 選項 / 撰寫風格 / 一般文字 / 字型 大小 17 工具 / 選項 / 停駐 ( 之後可針對拖曳出來的視窗, 雙按滑鼠於該視窗的標題列即可將之回到原來位置 ) 18 工具 /VBAProject 屬性 / 保護 / 設定密碼 19 執行 [F5] 20 偵錯 / 逐行 [F8] 執行到游標處 監看式 中斷點 20.1 中斷點的設定 : 在程式視窗左邊界, 單按滑鼠左鍵, 出現一紅點, 再按一下即取消 程式中可依需要設定多個中斷點觀察執行過程 21 插入 / 模組 22 檢視 / 程式碼 瀏覽物件 即時運算視窗 區域變數視窗 監看視窗 專案總管 屬性視窗 22.1 EX: Sub a() Cells(1, 2) = 1 Cells(2, 2) = 2 Cells(3, 2) = 3 Cells(4, 2) = 4 Cells(5, 2) = 5 22.2 EX: Sub b() For i = 1 To 10 Cells(i, 1) = i 23 檢視 / 工具列 / 編輯, 在編輯列當中有 " 使程式行變為註解 ", 可一次處理多行 24 編輯 / 列出屬性或方法 快速諮詢 25 檔案 / 儲存 匯入 匯出 移除 26 更改模組名稱 : 選好模組, 修改對應 [ 檢視 / 屬性視窗 /NAME 屬性 ] EXCEL VBA ( 1 / 8 )

VBA 與活頁簿 27 Sub 新增活頁簿 () Workbooks.Add end Sub 28 Sub 開啟活頁簿 () Workbooks.Open Filename:="E:\test.xlsx" 'Workbooks.Open ("E:\test.xlsx") ' 這樣也可 ' 若無指定路徑則表示取用預設資料夾 29 Sub 關閉所有活頁簿 () Workbooks.Close 29.1 關閉單一活頁簿 ActiveWorkbook.Close 29.2 關閉特定活頁簿 Workbooks("test.xlsx").Close 29.3 關閉第幾個活頁簿 Workbooks(2).Close 29.4 活頁簿存檔後關閉 : Workbooks("test.xlsx").Close 29.5 活頁簿關閉時不存檔 : Workbooks("test.xlsx").Close 30 Sub 指定使用中的活頁簿 () Workbooks("test.xlsx").Activate 31 Sub 儲存使用中的活頁簿 () ActiveWorkbook.Save SaveChanges:=True False 31.1 儲存指定名稱的活頁簿 Workbooks("test.xlsx").Save 31.2 將活頁簿另存新檔 ActiveWorkbook.SaveAs Filename:="E:\tst.xlsx" VBA 與工作表 32 Sub 插入工作表 () Worksheets.Add 32.1 在第一頁後插入兩張工作表 Worksheets.Add After:=Worksheets(1), Count:=2 33 Sub 選取指定工作表 () Worksheets(" 工作表 3").Activate ' 也可以是 Worksheets(" 工作表 3").Select 33.1 選取所有工作表 Worksheets.Select 33.2 選取第 1 3 工作表 Worksheets(Array(1,3)).Select 34 Sub 移動工作表 () Worksheets(" 工作表 1").Move After:=Worksheets(" 工作表 3") 34.1 移動到其他指定的活頁簿中 Worksheets(" 工作表 1").Move _ Before:=Workbooks("test.xls").sheets(2) 34.2 移動到新建的活頁簿中 Worksheets(" 工作表 1").Move 34.3 複製工作表到新建的活頁簿中 Worksheets(" 工作表 1").Copy 34.4 其他複製如同以上搬移概念 35 Sub 刪除工作表 () ' 不顯示工作表刪除確認視窗 Application.DisplayAlerts=False Worksheets(" 工作表 1").Delete Application.DisplayAlerts=True ' 還原 DisplayAlerts 的值 36 Sub 隱藏工作表 () EXCEL VBA ( 2 / 8 ) Worksheets(" 工作表 1").Visible = xlsheethidden ' 也可以 Worksheets(" 工作表 1").Visible =False 'ActiveSheet.Visible = False ' 隱藏目前所在工作表 36.1 此法, 使用者將無法自行顯示被隱藏的工作表 Worksheets(" 工作表 1").Visible = xlsheetveryhidden ' 也可 Worksheets(" 工作表 1").Visible = xlveryhidden 36.2 ' 解除上述被隱藏的工作表 Sub 顯示工作表 () Worksheets(" 工作表 1").Visible = xlsheetvisible ' 也可以 Worksheets(" 工作表 1").Visible =True 37 備註 : 37.1 單引號 ' 表示 : 註解 37.2 一對雙引號 " " 表示 : 字串 37.3 字串中包含 " 符號之處理,EX:"a""b""c", 表示 a"b"c 37.4 敘述要串連下一列, 用 _ 符號, 注意 _ 之前要有空格, 例如後面第 #57 剪貼簿範例中有用到 37.5 敘述 1 : 敘述 2: 敘述 3 ( 一列當中多個敘述, 可用於運算視窗中只能一列敘述之限制 ) 37.6 WORD/ 檔案 / 選項 / 校訂 / 自動校正選項 : 37.6.1 自動校正 / 取消 : 英文句子第一個字母大寫 表格儲存格第一個英文字母大寫 37.6.2 輸入時自動套用格式 / 取消 : 將 一般引號 取代為 智慧引號

EXCEL VBA-2,VBA 與儲存格 38 選取儲存格 39 Sub 選取儲存格 _range() Range("b4").Select 39.1 Range("B4:D8").Select 39.2 Range("b3,b5,d3,d5").select 39.3 Range("b3:d5,b6:d8").select 39.4 Range(" 範圍名稱 ").select 39.5 Range("2:2").select 39.6 Range("B:B").select 39.7 Range("1:3").select 39.8 Range("A:D").select 39.9 Range("1:3,5:5").select 39.10 Range("A:D,E:E").select 40 Sub 選取儲存格 _cells() cells(4,3).activate cells(4,"c").activate 40.1 Cells.select ' 表示選取所有儲存格 40.2 Cells 屬性只能選取單一或是全部儲存格 41 Range(cells(1,2),cells(5,4)).select Range("b1:d5").select 42 Range(" 行列 ") cells( 列, 行 ) 42.1 Range("c5").select cells(5,3).activate 43 ' cells 屬性可使用變數, 例如 : Sub input1to100() dim i as integer for i = 1 to 10 cells(i, i) = i next i 44 'range 屬性選取的儲存格必須在工作表內的儲存格例如有 1 2 兩張工作表, 目前在 1, 要選取 2 當中的 A1:C5, 44.1 錯誤方法 worksheets("2").range("a1:c5").select 44.2 正確方法 worksheets("2").activate range("a1:c5").select 45 取得 / 設定儲存格的值 46 Sub 取值 () msgbox "test" msgbox range("a3").value 47 Sub 設定值 () range("a3").value = "ABC" cells(1,3).value="def" range("b2:d5").value ="test" 48 注意以下只有數值資料不用雙引號 range("a1").value=123.45 range("a2").value= "-1,234" range("a3").value= "2018/9/10" range("a4").value= "12:34:56" range("a5").value=" 文字 0123" 49 range("b5").value=range("a5").value range("b5")=range("a5") ' 可省略 value 50 取得 / 設定儲存格的計算式 51 range("a3").formula = "=$a$1+$a$2" ' 絕對參照 range("a3").formula = "=a1+a2" ' 相對參照 range("a5").formula= "=sum(a1:a4)" range("b5").formula= "=max(b1:b4)" range("c5").formula= "=if(a1>100,""abc"",""def"")" 52 ' 注意以下兩者用法, 在之後更改 "c1:c10" 為 "d1:d10" 之後呢? range("c1:c10").formular1c1= "=rc[-2]+rc[-1]" range("c1:c10").formula= "=a1+b1" ' 以下表示 formula 還是可以直接以 R1C1 設定值的 range("a5").formula= "=sum(r[-4]c:r[-1]c)" range("b5").formula= "=max(r[-4]c:r[-1]c)" 53 ' R1C1 當中使用變數取得位置 Dim i As Integer i = -3 ActiveCell.FormulaR1C1 = "=SUM(RC[" & Str(i) & "]:RC[-1])" 54 取 值 或是 公式, 注意公式的相對與絕對 EX: range("a1").value=10 range("b1").value=20 range("c1").formula="=$a$1+$b$1" range("d1").value=range("c1").value ' d1=30 'range("d1").formula= range("c1").formula ' d1="=$a$1+$b$1" 'range("d1").formular1c1= range("c1").formular1c1 ' d1="=$a$1+$b$1" range("a1").value=10 range("b1").value=20 range("c1").formula="=a1+b1" range("d1").value=range("c1").value ' d1=30 ' 取計算結果值 'range("d1").formula= range("c1").formula ' d1="=a1+b1" ' 取公式字串 'range("d1").formular1c1= range("c1").formular1c1 ' d1="=b1+c1" ' 取相對公式字串 55 設定選取範圍中的反白位置點 range("a1:d5").select range("c3").activate 56 複製 / 貼上儲存格資料 EXCEL VBA ( 3 / 8 )

57 ' 透過剪貼簿 sheets(" 工作表 1").select range("a1:c10").select selection.copy sheets(" 工作表 2").select range("a1").select activesheet.paste 'activesheet.paste _ 'destination:=worksheets(" 工作表 1").range("b1:d10") Sub test2() ' 不透過剪貼簿 worksheets(" 工作表 1").range("a1:c10").copy _ destination:=worksheets(" 工作表 2").range("a1") Sub test3() ' 選擇性貼上 worksheets(" 工作表 1").range("c1:c5").copy worksheets(" 工作表 1").range("d1").PasteSpecial _ Paste:=xlPasteValues xlpasteall 'PS: cut 與 PasteSpecial 不能一起使用 'PS: 上例是選擇性貼上 " 值 ", 其他屬性如下 xlpasteformulas xlpastevalues xlpasteformats xlpastecomments xlpastevalidation xlpasteallusingsourcetheme 13 xlpasteallexceptborders xlpastecolumnwidths xlpasteformulasandnumberformats xlpastevaluesandnumberformats xlpasteallmergingconditionalformats 14 58 清除儲存格資料 59 ' 清除內容 Range("a5").Select Selection.ClearContents Activecell.value = "" Range("a6").Value = "" 60 Range("a3:b5").clearformats ' 清除格式 Range("c4:d6").clear 61 Sub 變更選取儲存格的範圍 () ' 本範例在開始時先選取 B3:C5-4104 會貼上一切 -4123 會貼上公式 -4163 會貼上值 -4122 會貼上來源格式 -4144 會貼上註解 6 會貼上驗證 會使用來源佈景主題貼上一切 7 會貼上框線以外的一切 8 會貼上複製的欄寬 11 會貼上公式和數字格式 12 會貼上值和數字格式 ' 清除格式與資料 會貼上一切並且合併條件格式 range("b3:c5").select selection.offset(-1,2).select selection.offset(2).select selection.offset(2,0).select selection.offset(0,-1).select selection.offset(,-1).select 62 Sub 隱藏 () worksheets(" 工作表 1").rows("5:7").hidden = true worksheets(" 工作表 1").rows("5:7").hidden = false ' 不能指定非連續範圍的複數列,ex rows("1:3,5,6") 63 range("b3:d6").select msgbox selection.rows.count selection.rows.value = "TEST" Selection.Value = "TEST" rows("8:9")="test" msgbox selection.columns.count selection.resize(selection.rows.count+2,selection.columns.co unt-1).select selection.offset(2).resize(, selection.columns.count+2).select 64 選取連續資料區域儲存格 Range("b4").CurrentRegion.Select Range("b4").CurrentRegion.name =" 範圍名稱 " ' 指定列印範圍 ActiveSheet.PageSetup.PrintArea =" 範圍名稱 " ActiveSheet.PrintOut ' 列印 ActiveSheet.PrintPreview ' 預覽列印 ' 列印資料筆數 ( 不含標題 ) Msgbox Range("b4").CurrentRegion.Rows.Count -1 65 連續資料區域的邊界儲存格 range ("b4").end(xlup).select 'ctrl+ 向上鍵 range ("b4").end(xldown).select 'ctrl+ 向下鍵 range ("b4").end(xltoleft).select 'ctrl+ 向左鍵 range ("b4").end(xltoright).select 'ctrl+ 向右鍵 66 移到新增資料的儲存格 Range("A65536").End(xlUp).Offset(1).Select 67 使用 END 取得特定資料 Range("A3",Range("a3").End(xltoRight)).select EXCEL VBA ( 4 / 8 )

EXCEL 68 變數宣告 VBA-3,VBA 與變數 程式控制功能敘述 Dim abc Abc=workbooks(1).name Msgbox " 第一個活頁簿名稱為 :" & abc & " " 69 要求變數宣告的兩個對照範例 Sub test1() Dim abc Abc=workbooks(1).name Msgbox " 第一個活頁簿名稱為 :" & abd & " " ' 注意, 以上 abc 變數名稱打錯了, 執行沒有發現 Option Explicit Sub test2() Dim abc Abc=workbooks(1).name Msgbox " 第一個活頁簿名稱為 :" & abd & " " ' 注意, 以上 abc 變數名稱打錯了, 執行會有錯誤訊息 70 自動將 Option Explicit 陳述式加在模組中 : 70.1 工具 / 選項 / 編輯器 / 勾選 " 要求變數宣告 " 71 變數資料型態 : dim 變數 As 資料型態 71.1 Byte: 佔用 1 個位元組 71.2 Integer: 整數, 佔用 2 個位元組 71.3 Long: 長整數, 佔用 4 個位元組 71.4 Boolean: 佔用 2 個位元組 (TRUE FALSE) 71.5 Single: 佔用 4 個位元組 71.6 Double: 佔用 8 個位元組 71.7 Date: 佔用 8 個位元組 71.8 String: 字串 71.9 Variant: 可變動長度變數 71.9.1 Dim abc as variant 可省略為 dim abc 71.10 Object: 物件變數, 佔用 4 個位元組 72 宣告多個變數 71.10.1 dim ab as worksheet set ab =workbooks("a.xlsx").worksheets("sheet1") ab.range("a1:d5").value="test" 72.1 Dim a as integer, b as integer ( 正確, 皆為 integer) 72.2 Dim a, b as integer ( 錯誤, 第一個會視為 variant) 73 自動顯示資料提示 ( 在逐行執行時, 點選程式中的變數, 可得到提示結果 ) 73.1 工具 / 選項 / 編輯器 / 勾選 " 自動顯示資料提示 " 74 變數的宣告區域與有限期限 75 VBA 的控制功能 75.1 算數運算子 75.1.1 + 加 減 * 乘 / 除 ^ 次方 \ 除 ( 只取商數 ) (EX: 5\3 ) Mod 除 ( 只取餘數 ) (EX: 5 mod 3 ) 75.2 邏輯運算子 75.2.1 And or not eqv xor EX: msgbox (1=1 and 2=2) 75.3 比較運算子 75.3.1 = > < >= <= <> 75.4 VBA 函數, 參考 : 檢視 / 瀏覽物件 range("a2").value=12.345 range("a3").value=int(range("a1").value) ' 輸入 "VBA." 之後, 會出現 VBA 的函數 75.5 在 VBA 中使用 EXCEL 工作表函數 dim a as long a=application.worksheetfunction.max(range("a1:b5").v alue) ' 輸入 " Application.WorksheetFunction." 之後, 會出現 'EXCEL 工作表中可用的函數 msgbox "MAX = " & a &" " 75.6 With Range("a2").value="test" Range("a2").font.name=" 標楷體 " Range("a2").forn.size=14 對照以下 with range("a2").value="test".font.name=" 標楷體 ".forn.size=14 end with 75.7 If then else If range("a1")="a" then msgbox "it s a" If range("b1")="b" then Msgbox "test 1" Msgbox "test 2" End if EXCEL VBA ( 5 / 8 )

If range("c1")="c" then Msgbox "it s c" Elseif range("c1")="d" then Msgbox "it s d" Elseif range("c1")="e" then Msgbox "it s e" Else Msgbox "it s f" End if A=range("a4").value If a>10 and a<20 then Msgbox "10<a<20" End if 75.8 Select case Dim a as integer, b as integer A=range("a1").value Select case a Case is >80 B=1 Case is >60 B=2 Case else B=3 End select Select case b Case is =1 Msgbox "1" Case 2 Msgbox "2" End select ' case 1 to 3 ' case 1, 2 75.9 For next 'for i = a to b step c Dim i as integer, j as integer j=worksheets.count For i = 1 to j Worksheets(i).name="test" & i 'if i=3 then exit for ' 中間跳離的方式 Sub 九九乘法表 () Dim i As Integer, j As Integer For i = 1 To 9 For j = 1 To 9 Cells(i, j) = (i * j) Next j 75.10 Do loop (until while ) Dim i as integer, j as integer i=0 j=0 Do i=i+1 j=j+i Loop until i=100 Msgbox i & "," & j ' 結果是 : 100, 5050 i = 0 j = 0 Do Until i = 100 i = i + 1 j = j + i Loop MsgBox i & "," & j ' 結果是 : 100, 5050 Dim i As Integer, j As Integer i = 0 j = 0 Do i =i + 1 j = j + i Loop While i = 100 MsgBox I & "," & j ' 結果是 1, 1 i = 0 j = 0 Do While i = 100 i = i + 1 j = j + i Loop MsgBox i & "," & j ' 結果是 0, 0 EXCEL VBA ( 6 / 8 )

76 建立對話型程序 (input /output) 76.1 Msgbox (prompt, buttons, title) Dim I as integer 76.1.1 Prompt: 顯示的訊息, 不可省略 76.1.2 Buttons: 按鈕種類 圖示類型 預設按鈕 76.1.2.1 按鈕種類 :vbokonly (0) vbokcancel (1) vbabortretryignore (2) vbyesnocancel(3) vbyesno(4) vbretrycancel (5) 76.1.2.2 圖示種類 :vbcritical(16) 錯誤圖示 vbquestion(32) 詢問圖示 vbexclamation 警告圖示 (48) vbinformation 資訊圖示 (64) 76.1.2.3 預設按鈕 :vbdefaultbutton1~4 (0 256 512 768), 預設為 vbdefaultbutton1(0) 76.1.2.4 可將以上三組數字加起來表示功能組合 76.1.3 Title: 視窗標題 76.1.4 Msgbox 傳回值 76.1.4.1 vbok: 1 76.1.4.2 vbcancel :2 76.1.4.3 vbabort :3 76.1.4.4 vbretry: 4 76.1.4.5 vbignore : 5 76.1.4.6 vbyes: 6 76.1.4.7 vbno : 7 Msgbox "please input ", vbokonly+vbexclamation,"error" ' 以上同等於 Msgbox "please input ", 48,"ERROR" i=msgbox ("please input ", vbokonly+vbexclamation,"error") Msgbox i ' 注意以上第一個 msgbox 參數可沒有括號, 第二個必須有 MsgBox " 第一列 " & vbnewline & " 第二列 " 'MSGBOX 換列用法 ' 不論是 msgbox 函數或是其他函數, 若要將值寫入變數, 都要用括號將所有引數框起來 76.2 result=application.inputbox(prompt,title,default,type) 76.2.1 prompt: 視窗中的訊息, 不可省略 76.2.2 title: 標題, 可略 76.2.3 default: 預設值, 可略 76.2.4 type: 資料型態, 預設值為文字串型態 76.2.4.1 公式 : 0 76.2.4.2 數字 : 1 76.2.4.3 文字 ( 字串 ): 2 76.2.4.4 邏輯值 : 4 76.2.4.5 儲存格參照 (RANGE): 8 76.2.4.6 如 #N/A 的錯誤值 : 16 76.2.4.7 數值陣列 : 64 Sub test1() Dim a As Variant Dim i As Integer For i = 1 To 3 Selection.Offset(1).Select a = Application.InputBox("pls input number", "test") If a <> False Then Selection.Value = a ' 以下個範例搭配 "F8" 逐行執行, 並觀察區域變數視窗 Sub test2() Dim a As Integer a = 5 a = Val(InputBox("pls input a")) ' 測試 a = InputBox("pls input a") 並輸入 "kk" MsgBox (a) Sub test3() Dim a As Integer Dim i As Integer For i = 1 To 5 Selection.Offset(1).Select On Error Resume Next a = 0 ' 預防後面輸入文字內容 a = Application.InputBox("pls input number", "test", "aa") If a <> False Then Selection.Value = a ' 回傳值若是 " 取消 ", 則傳回 FALSE, 也就是 0 Sub test4() Dim a As Integer Dim i As Integer For i = 1 To 5 Selection.Offset(1).Select 'On Error Resume Next ' 改用將以下輸入加上 VAL 處理, 避免輸入文字問題 a = 0 a = val(application.inputbox("pls input number", "test", "aa")) If a <> False Then Selection.Value = a ' 回傳值若是 " 取消 ", 則傳回 FALSE, 也就是 0 77 建立巨集按鈕 77.1 先產生圖片, 例如用繪圖工具會至一個矩形, 且可以內插文字說明, 然後在其上按下滑鼠右鍵, 指定對應的巨集, 即可產生該巨集的按鈕 EXCEL VBA ( 7 / 8 )

EXCEL VBA 其他範例與補充 Ex: 將游標所在連續儲存格範圍內的資料作判斷, 如果 <60 的將字體顏色改為紅色 :( 方法 1) Sub t2() Dim i1 As Integer, i2 As Integer, i3 As Integer, i4 As Integer Dim i As Integer, j As Integer ActiveCell.End(xlUp).Select i1 = ActiveCell.Row() ActiveCell.End(xlDown).Select i2 = ActiveCell.Row() ActiveCell.End(xlToLeft).Select i3 = ActiveCell.Column() ActiveCell.End(xlToRight).Select i4 = ActiveCell.Column() 'MsgBox i1 & "," & i2 & "," & i3 & "," & i4 For i = i1 To i2 For j = i3 To i4 'If Cells(i, j).value < 60 Then Cells(i, j).font.colorindex = 3 Cells(i, j).select If ActiveCell.Value < 60 Then ActiveCell.Font.ColorIndex = 3 Next j EX: 將游標所在連續儲存格範圍內的資料作判斷, 如果 <60 的將字體顏色改為紅色 :( 方法 2) Dim i1 As Integer, i2 As Integer, i3 As Integer, i4 As Integer Dim i As Integer, j As Integer Selection.CurrentRegion.Select i1 = Selection.Row() i2 = Selection.Rows.Count i3 = Selection.Column() i4 = Selection.Columns.Count For i = i1 To i1 + i2-1 For j = i3 To i3 + i4-1 Cells(i, j).select If ActiveCell.Value < 60 Then ActiveCell.Font.ColorIndex = 3 Next j 其他補充 1 開啟活頁簿時候, 自動執行的巨集 1 2 插入 / 自訂表單 2 3 EX: 先選取一區域, 變更區域內文字為粗體, 並計算該區域起始所在的列 行, 以及區域的列數 行數 Selection.Font.Bold = True MsgBox Selection.Row() MsgBox Selection.Rows.Count MsgBox Selection.Column() MsgBox Selection.Columns.Count 表單名稱 控制項 表單 EX: 未先選取一區域, 利用自動選取所在連續區域, 並變更區域內文字為粗體, 並計算該區域起始所在的列 行, 以及區域的列數 行數 Selection.CurrentRegion.Select Selection.Font.Bold = True MsgBox Selection.Row() MsgBox Selection.Rows.Count MsgBox Selection.Column() MsgBox Selection.Columns.Count 3 表單 控制項 / 右鍵 / 檢視程式碼 ( 或是 F7 鍵 ) 表單中兩個命令按鈕控制項當中的程式 工作表開啟時, 自動開此表單 呼叫其他巨集 EXCEL VBA ( 8 / 8 )