Excel巨集指令@ 我的生活.我自己 - 隨意窩
文章推薦指數: 80 %
巨集:一連串的執行指令所構成,可以利用Visual Basic程式指令、也可以利用錄製巨集的方式來錄寫指令。
如何錄製巨集: 如果要執行巨集,則需要更改「EXCEL ...
我的生活.我自己幸福有時候是需要一個台階,無論是他下來,還是你上去,只要兩個人的心和眼神在同一個高度和諧地凝視振動...那就是幸福。
日誌相簿影音好友名片
201205310000Excel巨集指令?未分類
巨集:一連串的執行指令所構成,可以利用VisualBasic程式指令、也可以利用錄製巨集的方式來錄寫指令。
如何錄製巨集:
如果要執行巨集,則需要更改「EXCEL選項」\「信任中心」\「信任中心設定」\「巨集設定」
在「檢視」、「巨集」/「錄製巨集」
設定「巨集名稱」、快速鍵(Ctrl+英文鍵),將巨集儲存位置
開始錄製相關動作(錄製是以絕對位址方式來錄製,如果要以相對位址來錄製則要選「以相對位置錄製」)
停止錄製
查看巨集程式碼,並作必要的修正
執行巨集(可以利用「執行巨集」或快速鍵、或利用表單按鈕來執行)如果要編修表單時,可以按下Ctrl+該物件,進行修改。
範例:下載(錄製巨集)
C6至C12的數值格式設定「"進貨"#,##0;"出貨"#,##0」
「檢視」、「巨集」、「開始錄製」,並開始執行下列指令
選取範圍C6至C12,並執行「複製」
選取範圍B6至B12,並按下「選擇性貼上」,選擇貼上「值」與運算「加」
選取範圍C6至C12,並按下「Del」,清除儲存格內容
在儲存格C6按一下
停止錄製巨集
在工作表中,產生一個按鈕,並指定該按鈕執行該巨集,並將其按鈕文字改為異動
每次輸入異動資料(正的表示進貨,負的表示出貨),按下按鈕即可執行巨集
VBA簡介:VisualBasicforApplications,利用VB來延申Office的能力。
開啟EXCEL顯示開發人員(在「EXCEL選項」/「常用」中勾選),再撰寫或修改VBA程式。
VBA主要的組成要件:物件,其中包括
屬性:對物件狀態的描述,可以定義物件的特性(大小、顏色、狀態等)。
方法:物件的某些特定動作,可以指定動作的細別內容。
其主要結構如下:物件.方法指定引數1:=xl常數1,指定引數2:=xl常數2,....
指定引數設定為某些內建常數,每個內建常數前會有關鍵字連接。
EXCEL物件的常數會以xl開始。
VB的陳述式及函數的常數會以vb開始。
Office物件模式的常數會以mso開始。
事件:物件的觸發反應。
EXCEL常用的物件
Workbook活頁簿
Workbooks活頁簿集合
Workbooks("filename")檔名為filename的活頁簿
ActiveWorkbook正在作用中的活頁簿
Sheets活頁簿中所有工作表
Sheets(n)活頁簿中第n張工作表
Worksheet工作表
Worksheets所有工作表(包括圖表)
Worksheets("sheet")指表名為sheet工作表
ActiveSheet正在作用中的工作表
Columns("c1:c2")c1至c2欄(其中c1,c2為A~Z或AA~XFD等欄名)
Rows("r1:r2")r1至r2列(其中r1,r2為1~1048576等列名
Range("x1:x2")x1至x2間的儲存格(其中x1,x2為儲存格位址名稱)
cells(i,j)儲存格(第i列、第j行)
ActiveCell目前的儲存格
Selection目前所選取的物件
範例:
Workbooks("Book1").Sheets("Sheet1").Range("A1:D5").Font.Bold=True
Worksheets("Sheet1").Cells.ClearContents
Worksheets("Sheet1").Rows(1).Font.Bold=True
Range("1:1,3:3,8:8")
Worksheets("Sheet1").Cells(6,1).Value=10
Worksheets("Sheet1").[A1:B5].ClearContents
ActiveCell.Offset(1,3).Font.Underline=xlDouble
活頁簿常用屬性:
ActiveWorkBook.Name目前活頁簿的名稱
ActiveWorkBook.Save儲存目前的活頁簿
ActiveWorkBook.SaveAsFilename:="filename"另儲新檔
WorkBooks.Add新增活頁簿
WorkBooks(i).Close[SaveChange,Filename,RouteWorkbook]關閉指定的第i個活頁簿
SaveChange:=True改變儲存
SaveChange:=False不會改變儲存
SaveChange省略時,會出現對話方塊
filename:="檔名"
WorkBooks.Open"filename"開啟一個活頁簿
Application.Windows所有活頁簿視窗
WorkBooks.Count活頁簿的數量
WorkBooks.Item(Index)傳回單一活頁簿,由索引值指定
工作表常用屬性:
Worksheets.Add[Before,After,Count,Type]新增工作表
Before:=Worksheets(n)出現於某工作表之前
After:=Worksheets(n)出現於某工作表之後
Count:=n新增工作表數量
Type:=xlWorksheet(工作表)或xlChart(圖表)
WorkSheets.Name工作表名稱
WorkSheets("Sheet1").Activate設定工作表為目前作用的功作表
儲存格常用屬性:
Rows.RowHeight指定範圍內的所有列高
Columns.ColumnsWidth:指定範圍內的所欄寬
expression.NumberFormatLocal以本地的數字格式
Range.CurrentRegion目前區域是指以任意空白列及空白欄的組合為邊界的範圍
範例:
Worksheets("Sheet1").Activate
ActiveCell.CurrentRegion.Select
expression.Address(RowAbsolute,ColumnAbsolute,ReferenceStyle,External,RelativeTo)以參照的方式
RowAbsolute為True,則用列的絕對位址
ColumnAbsolute為True,則用欄的絕對位址
ReferenceStyle預設值為xlA1,如為xlR1C1則為R1C1的表達方式
expression.count傳回範圍的數量(可以是欄數、列數或儲存格數量)
expression.Item(RowIndex,ColumnIndex)代表相對於指定之範圍某個位移距離的範圍。
expression.value傳回或設定物件的值
expression.Formula傳回或設定物件的公式,代表A1樣式註解以及巨集語言中的物件公式。
範例:Worksheets("Sheet1").Range("A1").Formula="=$A$4+$Aid=mce_marker0"
expression.FormulaR1C1傳回或設定物件的公式,並以巨集語言中的R1C1樣式標記法表示範例:Worksheets("Sheet1").Range("B1").FormulaR1C1="=SQRT(R1C1)"
expression.Text傳回或設定物件的文字
範例:
Setc=Worksheets("Sheet1").Range("B14")
c.Value=1198.3
c.NumberFormat="$#,##0_);($#,##0)"
MsgBoxc.Value
MsgBoxc.Text
常用方法:
Range.Select方法/Selection屬性設定目前選取的範圍/使用目前所選取的範圍
範例:
SubMacro1()
Sheets("Sheet1").Select
Range("A1").Select
ActiveCell.FormulaR1C1="Name"
Range("B1").Select
ActiveCell.FormulaR1C1="Address"
Range("A1:B1").Select
Selection.Font.Bold=True
EndSub
expression.Copy將目前所選取的物件復製至剪貼簿
expression.Cut將目前所選取的物件剪下
expression.Delete將目前所選取的物件刪除
expression.Paste將剪貼簿的內容貼上
範例:
SubCopyRow()
Worksheets("Sheet1").Rows(1).Copy
Worksheets("Sheet2").Select
Worksheets("Sheet2").Rows(1).Select
Worksheets("Sheet2").Paste
EndSub
expression.RasteSpecial(Paste,Operation,SkipBlanks,Transpose)
範例:
WithWorksheets("Sheet1")
.Range("C1:C5").Copy
.Range("D1:D5").PasteSpecial_
Operation:=xlPasteSpecialOperationAdd
EndWith
Range.Activate目前的儲存格
Range.Clear清除資料
Range.ClearContents清除資料內容
Range.ClearFormats清除資料格式
Range.ClearComments清除註解
expression.AutoFit:自動調整列高和欄寬
Range.FillDown、Range.FillUp、Range.FillLeft、Range.FillRight填滿
Range.Offset(RowOffset,ColumnOffset)指定區域的位移列與行
範例:
SubMoveActive()
Worksheets("Sheet1").Activate
Range("A1:D10").Select
ActiveCell.Value="MonthlyTotals"
ActiveCell.Offset(0,1).Activate
EndSub
程式語法:
Dim陳述式(變數)Dimvarname[As[New]type]type包括Byte、Boolean、Integer、Long、Single、Double、Date、String、Object等
Set陳述式(物件)Setobjectvar={[New]objectexpression|Nothing}例:SetRangeA=Range("A1:B2")
範例:
SubRandom()
DimmyRangeAsRange
SetmyRange=Worksheets("Sheet1").Range("A1:D5")
myRange.Formula="=RAND()"
myRange.Font.Bold=True
EndSub
With多種屬性設定With物件.屬性1=設定值.屬性2=設定值....EndWith
範例:
SubAddNew()
SetNewBook=Workbooks.Add
WithNewBook
.Title="AllSales"
.Subject="Sales"
.SaveAsFilename:="Allsales.xls"
EndWith
EndSub
Array陣列Array(Range1,Range2,....)
範例:
SubSeveral()
Worksheets(Array("Sheet1","Sheet2","Sheet4")).Select
EndSub
InputBox函數InputBox("文字說明",[,title][,default][,xpos][,ypos][,helpfile,context])
MsgBox函數MsgBox"文字說明"
Union將多個範圍合併成單一Range物件Union(Range1,Range2,...)
範例:
SubMultipleRange()
Dimr1,r2,myMultipleRangeAsRange
Setr1=Sheets("Sheet1").Range("A1:B2")
Setr2=Sheets("Sheet1").Range("C3:D4")
SetmyMultipleRange=Union(r1,r2)
myMultipleRange.Font.Bold=True
EndSub
For...Next陳述式Forcounter=starttoend[stepstepvalue][statements][ExitFor][statements]Next[counter]
範例:
SubCycleThrough()
DimCounterAsInteger
ForCounter=1To20
Worksheets("Sheet1").Cells(Counter,3).Value=Counter
NextCounter
EndSub
ForEach...Next陳述式ForEachelementIngroup[statements][ExitFor][statements]Next[element]
範例:
SubApplyColor()
ConstLimitAsInteger=25
ForEachcInRange("MyRange")
Ifc.Value>LimitThen
c.Interior.ColorIndex=27
EndIf
Nextc
EndSub
Do...Loop陳述式Do[{While|Until}condition][statements][ExitDo][statements]Loop或Do[statements][ExitDo][statements]Loop[{While|Until}condition]
If...Then...Else...陳述式IfconditionThen[statements][Elseelsestatements]或IfconditionThen[statements][ElseIfcondition-nThen[elseifstatements]...[Else[elsestatements]]EndIf
培迪/Xuite日誌/回應(0)/引用(0)原來感激會讓愛持續好久好久…....|日誌首頁|ExcelVBA常用語句300上一篇原來感激會讓愛持續好久好久…...下一篇ExcelVBA常用語句300回應
【請點我】旅遊打卡享樂趣
【2012臺灣OTOP遊程大賞】9/10
『瘋旅遊全球大暴走!』串聯至7/31
【17MOVIE活動】貼紙串聯
「團結就是力量!讀好書送防毒!」
【拒絕不當醫藥廣告當個聰明消費者】
加我為好友日誌相簿影音
我的相簿
HiNet部落格背景音樂功能下架
延伸文章資訊
- 18. 巨集指令
提供有效的系統整合同時成為最經濟便宜的硬體應用架構。而且. 使用巨集指令也可大大的減少PLC 的程式容量,讓PLC 的控制精. 度及效率最佳化。 ADP 6.0 使用者手冊371 ...
- 25. 使用巨集和外掛程式
依序按一下[工具] 接下來 [指令碼編輯器]。 建立指令碼。 如需協助,請參閱Google Apps Script 總覽。
- 3使用巨集錄製器自動化工作 - Microsoft Support
您可以使用巨集錄製器來錄製巨集,或以VBA 撰寫您專屬的巨集指令碼。 ... 當您錄製巨集時,巨集錄製器會以Visual Basic for Applications (VBA) 程式碼錄製所有步驟。
- 4Excel巨集指令@ 我的生活.我自己 - 隨意窩
巨集:一連串的執行指令所構成,可以利用Visual Basic程式指令、也可以利用錄製巨集的方式來錄寫指令。 如何錄製巨集: 如果要執行巨集,則需要更改「EXCEL ...
- 5巨集- 維基百科,自由的百科全書
絕大多數情況下,「巨集」這個詞的使用暗示著將小命令或動作轉化為一系列指令。 ... 在用一種不熟悉的巨集語言進行巨集程式設計時,可以這樣做,首先記錄下使用者想要 ...